def start_query_execution(QueryString=None, ClientRequestToken=None,
    QueryExecutionContext=None, ResultConfiguration=None):
    """
    Runs (executes) the SQL query statements contained in the Query string.
    For code samples using the AWS SDK for Java, see Examples and Code Samples in the Amazon Athena User Guide .
    See also: AWS API Documentation
    
    
    :example: response = client.start_query_execution(
        QueryString='string',
        ClientRequestToken='string',
        QueryExecutionContext={
            'Database': 'string'
        },
        ResultConfiguration={
            'OutputLocation': 'string',
            'EncryptionConfiguration': {
                'EncryptionOption': 'SSE_S3'|'SSE_KMS'|'CSE_KMS',
                'KmsKey': 'string'
            }
        }
    )
    
    
    :type QueryString: string
    :param QueryString: [REQUIRED]
            The SQL query statements to be executed.
            

    :type ClientRequestToken: string
    :param ClientRequestToken: A unique case-sensitive string used to ensure the request to create the query is idempotent (executes only once). If another StartQueryExecution request is received, the same response is returned and another query is not created. If a parameter has changed, for example, the QueryString , an error is returned.
            Warning
            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.
            This field is autopopulated if not provided.
            

    :type QueryExecutionContext: dict
    :param QueryExecutionContext: The database within which the query executes.
            Database (string) --The name of the database.
            

    :type ResultConfiguration: dict
    :param ResultConfiguration: [REQUIRED]
            Specifies information about where and how to save the results of the query execution.
            OutputLocation (string) -- [REQUIRED]The location in S3 where query results are stored.
            EncryptionConfiguration (dict) --If query results are encrypted in S3, indicates the S3 encryption option used (for example, SSE-KMS or CSE-KMS and key information.
            EncryptionOption (string) -- [REQUIRED]Indicates whether Amazon S3 server-side encryption with Amazon S3-managed keys (SSE-S3 ), server-side encryption with KMS-managed keys (SSE-KMS ), or client-side encryption with KMS-managed keys (CSE-KMS) is used.
            KmsKey (string) --For SSE-KMS and CSE-KMS , this is the KMS key ARN or ID.
            
            

    :rtype: dict
    :return: {
        'QueryExecutionId': 'string'
    }
    
    
    """
    pass
