def create_hit_with_hit_type(HITTypeId=None, MaxAssignments=None, LifetimeInSeconds=None, Question=None, RequesterAnnotation=None, UniqueRequestToken=None, AssignmentReviewPolicy=None, HITReviewPolicy=None, HITLayoutId=None, HITLayoutParameters=None):
    """
    The CreateHITWithHITType operation creates a new Human Intelligence Task (HIT) using an existing HITTypeID generated by the CreateHITType operation.
    This is an alternative way to create HITs from the CreateHIT 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 Question parameter that fully specifies the contents of the HIT, or by providing a HitLayoutId and associated HitLayoutParameters .
    See also: AWS API Documentation
    
    
    :example: response = client.create_hit_with_hit_type(
        HITTypeId='string',
        MaxAssignments=123,
        LifetimeInSeconds=123,
        Question='string',
        RequesterAnnotation='string',
        UniqueRequestToken='string',
        AssignmentReviewPolicy={
            'PolicyName': 'string',
            'Parameters': [
                {
                    'Key': 'string',
                    'Values': [
                        'string',
                    ],
                    'MapEntries': [
                        {
                            'Key': 'string',
                            'Values': [
                                'string',
                            ]
                        },
                    ]
                },
            ]
        },
        HITReviewPolicy={
            'PolicyName': 'string',
            'Parameters': [
                {
                    'Key': 'string',
                    'Values': [
                        'string',
                    ],
                    'MapEntries': [
                        {
                            'Key': 'string',
                            'Values': [
                                'string',
                            ]
                        },
                    ]
                },
            ]
        },
        HITLayoutId='string',
        HITLayoutParameters=[
            {
                'Name': 'string',
                'Value': 'string'
            },
        ]
    )
    
    
    :type HITTypeId: string
    :param HITTypeId: [REQUIRED]
            The HIT type ID you want to create this HIT with.
            

    :type MaxAssignments: integer
    :param MaxAssignments: The number of times the HIT can be accepted and completed before the HIT becomes unavailable.

    :type LifetimeInSeconds: integer
    :param LifetimeInSeconds: [REQUIRED]
            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.
            

    :type Question: string
    :param 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.
            

    :type RequesterAnnotation: string
    :param 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.
            

    :type UniqueRequestToken: string
    :param 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.
            

    :type AssignmentReviewPolicy: dict
    :param 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.
            PolicyName (string) --Name of a Review Policy: SimplePlurality/2011-09-01 or ScoreMyKnownAnswers/2011-09-01
            Parameters (list) --Name of the parameter from the Review policy.
            (dict) --Name of the parameter from the Review policy.
            Key (string) --Name of the parameter from the list of Review Polices.
            Values (list) --The list of values of the Parameter
            (string) --
            MapEntries (list) --List of ParameterMapEntry objects.
            (dict) --This data structure is the data type for the AnswerKey parameter of the ScoreMyKnownAnswers/2011-09-01 Review Policy.
            Key (string) --The QuestionID from the HIT that is used to identify which question requires Mechanical Turk to score as part of the ScoreMyKnownAnswers/2011-09-01 Review Policy.
            Values (list) --The list of answers to the question specified in the MapEntry Key element. The Worker must match all values in order for the answer to be scored correctly.
            (string) --
            
            
            

    :type HITReviewPolicy: dict
    :param HITReviewPolicy: The HIT-level Review Policy applies to the HIT. You can specify for Mechanical Turk to take various actions based on the policy.
            PolicyName (string) --Name of a Review Policy: SimplePlurality/2011-09-01 or ScoreMyKnownAnswers/2011-09-01
            Parameters (list) --Name of the parameter from the Review policy.
            (dict) --Name of the parameter from the Review policy.
            Key (string) --Name of the parameter from the list of Review Polices.
            Values (list) --The list of values of the Parameter
            (string) --
            MapEntries (list) --List of ParameterMapEntry objects.
            (dict) --This data structure is the data type for the AnswerKey parameter of the ScoreMyKnownAnswers/2011-09-01 Review Policy.
            Key (string) --The QuestionID from the HIT that is used to identify which question requires Mechanical Turk to score as part of the ScoreMyKnownAnswers/2011-09-01 Review Policy.
            Values (list) --The list of answers to the question specified in the MapEntry Key element. The Worker must match all values in order for the answer to be scored correctly.
            (string) --
            
            
            

    :type HITLayoutId: string
    :param 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.
            

    :type HITLayoutParameters: list
    :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.
            (dict) --The HITLayoutParameter data structure defines parameter values used with a HITLayout. A HITLayout is a reusable Amazon Mechanical Turk project template used to provide Human Intelligence Task (HIT) question data for CreateHIT.
            Name (string) --The name of the parameter in the HITLayout.
            Value (string) --The value substituted for the parameter referenced in the HITLayout.
            
            

    :rtype: dict
    :return: {
        'HIT': {
            'HITId': 'string',
            'HITTypeId': 'string',
            'HITGroupId': 'string',
            'HITLayoutId': 'string',
            'CreationTime': datetime(2015, 1, 1),
            'Title': 'string',
            'Description': 'string',
            'Question': 'string',
            'Keywords': 'string',
            'HITStatus': 'Assignable'|'Unassignable'|'Reviewable'|'Reviewing'|'Disposed',
            'MaxAssignments': 123,
            'Reward': 'string',
            'AutoApprovalDelayInSeconds': 123,
            'Expiration': datetime(2015, 1, 1),
            'AssignmentDurationInSeconds': 123,
            'RequesterAnnotation': 'string',
            'QualificationRequirements': [
                {
                    'QualificationTypeId': 'string',
                    'Comparator': 'LessThan'|'LessThanOrEqualTo'|'GreaterThan'|'GreaterThanOrEqualTo'|'EqualTo'|'NotEqualTo'|'Exists'|'DoesNotExist'|'In'|'NotIn',
                    'IntegerValues': [
                        123,
                    ],
                    'LocaleValues': [
                        {
                            'Country': 'string',
                            'Subdivision': 'string'
                        },
                    ],
                    'RequiredToPreview': True|False
                },
            ],
            'HITReviewStatus': 'NotReviewed'|'MarkedForReview'|'ReviewedAppropriate'|'ReviewedInappropriate',
            'NumberOfAssignmentsPending': 123,
            'NumberOfAssignmentsAvailable': 123,
            'NumberOfAssignmentsCompleted': 123
        }
    }
    
    
    :returns: 
    (integer) --
    
    """
    pass
The CreateHITWithHITType operation creates a new Human Intelligence Task (HIT) using an existing HITTypeID generated by the CreateHITType operation.
    This is an alternative way to create HITs from the CreateHIT 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 Question parameter that fully specifies the contents of the HIT, or by providing a HitLayoutId and associated HitLayoutParameters .
    See also: AWS API Documentation
    
    
    :example: response = client.create_hit_with_hit_type(
        HITTypeId='string',
        MaxAssignments=123,
        LifetimeInSeconds=123,
        Question='string',
        RequesterAnnotation='string',
        UniqueRequestToken='string',
        AssignmentReviewPolicy={
            'PolicyName': 'string',
            'Parameters': [
                {
                    'Key': 'string',
                    'Values': [
                        'string',
                    ],
                    'MapEntries': [
                        {
                            'Key': 'string',
                            'Values': [
                                'string',
                            ]
                        },
                    ]
                },
            ]
        },
        HITReviewPolicy={
            'PolicyName': 'string',
            'Parameters': [
                {
                    'Key': 'string',
                    'Values': [
                        'string',
                    ],
                    'MapEntries': [
                        {
                            'Key': 'string',
                            'Values': [
                                'string',
                            ]
                        },
                    ]
                },
            ]
        },
        HITLayoutId='string',
        HITLayoutParameters=[
            {
                'Name': 'string',
                'Value': 'string'
            },
        ]
    )
    
    
    :type HITTypeId: string
    :param HITTypeId: [REQUIRED]
            The HIT type ID you want to create this HIT with.
            

    :type MaxAssignments: integer
    :param MaxAssignments: The number of times the HIT can be accepted and completed before the HIT becomes unavailable.

    :type LifetimeInSeconds: integer
    :param LifetimeInSeconds: [REQUIRED]
            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.
            

    :type Question: string
    :param 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.
            

    :type RequesterAnnotation: string
    :param 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.
            

    :type UniqueRequestToken: string
    :param 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.
            

    :type AssignmentReviewPolicy: dict
    :param 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.
            PolicyName (string) --Name of a Review Policy: SimplePlurality/2011-09-01 or ScoreMyKnownAnswers/2011-09-01
            Parameters (list) --Name of the parameter from the Review policy.
            (dict) --Name of the parameter from the Review policy.
            Key (string) --Name of the parameter from the list of Review Polices.
            Values (list) --The list of values of the Parameter
            (string) --
            MapEntries (list) --List of ParameterMapEntry objects.
            (dict) --This data structure is the data type for the AnswerKey parameter of the ScoreMyKnownAnswers/2011-09-01 Review Policy.
            Key (string) --The QuestionID from the HIT that is used to identify which question requires Mechanical Turk to score as part of the ScoreMyKnownAnswers/2011-09-01 Review Policy.
            Values (list) --The list of answers to the question specified in the MapEntry Key element. The Worker must match all values in order for the answer to be scored correctly.
            (string) --
            
            
            

    :type HITReviewPolicy: dict
    :param HITReviewPolicy: The HIT-level Review Policy applies to the HIT. You can specify for Mechanical Turk to take various actions based on the policy.
            PolicyName (string) --Name of a Review Policy: SimplePlurality/2011-09-01 or ScoreMyKnownAnswers/2011-09-01
            Parameters (list) --Name of the parameter from the Review policy.
            (dict) --Name of the parameter from the Review policy.
            Key (string) --Name of the parameter from the list of Review Polices.
            Values (list) --The list of values of the Parameter
            (string) --
            MapEntries (list) --List of ParameterMapEntry objects.
            (dict) --This data structure is the data type for the AnswerKey parameter of the ScoreMyKnownAnswers/2011-09-01 Review Policy.
            Key (string) --The QuestionID from the HIT that is used to identify which question requires Mechanical Turk to score as part of the ScoreMyKnownAnswers/2011-09-01 Review Policy.
            Values (list) --The list of answers to the question specified in the MapEntry Key element. The Worker must match all values in order for the answer to be scored correctly.
            (string) --
            
            
            

    :type HITLayoutId: string
    :param 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.
            

    :type HITLayoutParameters: list
    :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.
            (dict) --The HITLayoutParameter data structure defines parameter values used with a HITLayout. A HITLayout is a reusable Amazon Mechanical Turk project template used to provide Human Intelligence Task (HIT) question data for CreateHIT.
            Name (string) --The name of the parameter in the HITLayout.
            Value (string) --The value substituted for the parameter referenced in the HITLayout.
            
            

    :rtype: dict
    :return: {
        'HIT': {
            'HITId': 'string',
            'HITTypeId': 'string',
            'HITGroupId': 'string',
            'HITLayoutId': 'string',
            'CreationTime': datetime(2015, 1, 1),
            'Title': 'string',
            'Description': 'string',
            'Question': 'string',
            'Keywords': 'string',
            'HITStatus': 'Assignable'|'Unassignable'|'Reviewable'|'Reviewing'|'Disposed',
            'MaxAssignments': 123,
            'Reward': 'string',
            'AutoApprovalDelayInSeconds': 123,
            'Expiration': datetime(2015, 1, 1),
            'AssignmentDurationInSeconds': 123,
            'RequesterAnnotation': 'string',
            'QualificationRequirements': [
                {
                    'QualificationTypeId': 'string',
                    'Comparator': 'LessThan'|'LessThanOrEqualTo'|'GreaterThan'|'GreaterThanOrEqualTo'|'EqualTo'|'NotEqualTo'|'Exists'|'DoesNotExist'|'In'|'NotIn',
                    'IntegerValues': [
                        123,
                    ],
                    'LocaleValues': [
                        {
                            'Country': 'string',
                            'Subdivision': 'string'
                        },
                    ],
                    'RequiredToPreview': True|False
                },
            ],
            'HITReviewStatus': 'NotReviewed'|'MarkedForReview'|'ReviewedAppropriate'|'ReviewedInappropriate',
            'NumberOfAssignmentsPending': 123,
            'NumberOfAssignmentsAvailable': 123,
            'NumberOfAssignmentsCompleted': 123
        }
    }
    
    
    :returns: 
    (integer) --