def update_association(AssociationId=None, Parameters=None, DocumentVersion
    =None, ScheduleExpression=None, OutputLocation=None, Name=None, Targets
    =None):
    """
    Updates an association. You can only update the document version, schedule, parameters, and Amazon S3 output of an association.
    See also: AWS API Documentation
    
    
    :example: response = client.update_association(
        AssociationId='string',
        Parameters={
            'string': [
                'string',
            ]
        },
        DocumentVersion='string',
        ScheduleExpression='string',
        OutputLocation={
            'S3Location': {
                'OutputS3Region': 'string',
                'OutputS3BucketName': 'string',
                'OutputS3KeyPrefix': 'string'
            }
        },
        Name='string',
        Targets=[
            {
                'Key': 'string',
                'Values': [
                    'string',
                ]
            },
        ]
    )
    
    
    :type AssociationId: string
    :param AssociationId: [REQUIRED]
            The ID of the association you want to update.
            

    :type Parameters: dict
    :param 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}}
            (string) --
            (list) --
            (string) --
            
            

    :type DocumentVersion: string
    :param DocumentVersion: The document version you want update for the association.

    :type ScheduleExpression: string
    :param ScheduleExpression: The cron expression used to schedule the association that you want to update.

    :type OutputLocation: dict
    :param OutputLocation: An Amazon S3 bucket where you want to store the results of this request.
            S3Location (dict) --An Amazon S3 bucket where you want to store the results of this request.
            OutputS3Region (string) --The Amazon S3 region where the association information is stored.
            OutputS3BucketName (string) --The name of the Amazon S3 bucket.
            OutputS3KeyPrefix (string) --The Amazon S3 bucket subfolder.
            
            

    :type Name: string
    :param Name: The name of the association document.

    :type Targets: list
    :param Targets: The targets of the association.
            (dict) --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.
            Key (string) --User-defined criteria for sending commands that target instances that meet the criteria. Key can be tag:Amazon EC2 tagor InstanceIds. For more information about how to send commands that target instances using Key,Value parameters, see Executing a Command Using Systems Manager Run Command .
            Values (list) --User-defined criteria that maps to Key. For example, if you specified tag:ServerRole, you could specify value:WebServer to execute a command on instances that include Amazon EC2 tags of ServerRole,WebServer. For more information about how to send commands that target instances using Key,Value parameters, see Executing a Command Using Systems Manager Run Command .
            (string) --
            
            

    :rtype: dict
    :return: {
        'AssociationDescription': {
            'Name': 'string',
            'InstanceId': 'string',
            'Date': datetime(2015, 1, 1),
            'LastUpdateAssociationDate': datetime(2015, 1, 1),
            'Status': {
                'Date': datetime(2015, 1, 1),
                'Name': 'Pending'|'Success'|'Failed',
                'Message': 'string',
                'AdditionalInfo': 'string'
            },
            'Overview': {
                'Status': 'string',
                'DetailedStatus': 'string',
                'AssociationStatusAggregatedCount': {
                    'string': 123
                }
            },
            'DocumentVersion': 'string',
            'Parameters': {
                'string': [
                    'string',
                ]
            },
            'AssociationId': 'string',
            'Targets': [
                {
                    'Key': 'string',
                    'Values': [
                        'string',
                    ]
                },
            ],
            'ScheduleExpression': 'string',
            'OutputLocation': {
                'S3Location': {
                    'OutputS3Region': 'string',
                    'OutputS3BucketName': 'string',
                    'OutputS3KeyPrefix': 'string'
                }
            },
            'LastExecutionDate': datetime(2015, 1, 1),
            'LastSuccessfulExecutionDate': datetime(2015, 1, 1)
        }
    }
    
    
    :returns: 
    (string) --
    (integer) --
    
    
    
    """
    pass
