def describe_snapshot_attribute(DryRun=None, SnapshotId=None, Attribute=None):
    """
    Describes the specified attribute of the specified snapshot. You can specify only one attribute at a time.
    For more information about EBS snapshots, see Amazon EBS Snapshots in the Amazon Elastic Compute Cloud User Guide .
    See also: AWS API Documentation
    
    Examples
    This example describes the createVolumePermission attribute on a snapshot with the snapshot ID of snap-066877671789bd71b.
    Expected Output:
    
    :example: response = client.describe_snapshot_attribute(
        DryRun=True|False,
        SnapshotId='string',
        Attribute='productCodes'|'createVolumePermission'
    )
    
    
    :type DryRun: boolean
    :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 DryRunOperation . Otherwise, it is UnauthorizedOperation .

    :type SnapshotId: string
    :param SnapshotId: [REQUIRED]
            The ID of the EBS snapshot.
            

    :type Attribute: string
    :param Attribute: [REQUIRED]
            The snapshot attribute you would like to view.
            

    :rtype: dict
    :return: {
        'SnapshotId': 'string',
        'CreateVolumePermissions': [
            {
                'UserId': 'string',
                'Group': 'all'
            },
        ],
        'ProductCodes': [
            {
                'ProductCodeId': 'string',
                'ProductCodeType': 'devpay'|'marketplace'
            },
        ]
    }
    
    
    """
    pass
