def sign_up(ClientId=None, SecretHash=None, Username=None, Password=None,
    UserAttributes=None, ValidationData=None):
    """
    Registers the user in the specified user pool and creates a user name, password, and user attributes.
    See also: AWS API Documentation
    
    
    :example: response = client.sign_up(
        ClientId='string',
        SecretHash='string',
        Username='string',
        Password='string',
        UserAttributes=[
            {
                'Name': 'string',
                'Value': 'string'
            },
        ],
        ValidationData=[
            {
                'Name': 'string',
                'Value': 'string'
            },
        ]
    )
    
    
    :type ClientId: string
    :param ClientId: [REQUIRED]
            The ID of the client associated with the user pool.
            

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

    :type Username: string
    :param Username: [REQUIRED]
            The user name of the user you wish to register.
            

    :type Password: string
    :param Password: [REQUIRED]
            The password of the user you wish to register.
            

    :type UserAttributes: list
    :param UserAttributes: An array of name-value pairs representing user attributes.
            For custom attributes, you must prepend the custom: prefix to the attribute name.
            (dict) --Specifies whether the attribute is standard or custom.
            Name (string) -- [REQUIRED]The name of the attribute.
            Value (string) --The value of the attribute.
            
            

    :type ValidationData: list
    :param ValidationData: The validation data in the request to register a user.
            (dict) --Specifies whether the attribute is standard or custom.
            Name (string) -- [REQUIRED]The name of the attribute.
            Value (string) --The value of the attribute.
            
            

    :rtype: dict
    :return: {
        'UserConfirmed': True|False,
        'CodeDeliveryDetails': {
            'Destination': 'string',
            'DeliveryMedium': 'SMS'|'EMAIL',
            'AttributeName': 'string'
        },
        'UserSub': 'string'
    }
    
    
    """
    pass
