def describe_image_attribute(DryRun=None, ImageId=None, Attribute=None):
    """
    Describes the specified attribute of the specified AMI. You can specify only one attribute at a time.
    See also: AWS API Documentation
    
    
    :example: response = client.describe_image_attribute(
        DryRun=True|False,
        ImageId='string',
        Attribute='description'|'kernel'|'ramdisk'|'launchPermission'|'productCodes'|'blockDeviceMapping'|'sriovNetSupport'
    )
    
    
    :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 ImageId: string
    :param ImageId: [REQUIRED]
            The ID of the AMI.
            

    :type Attribute: string
    :param Attribute: [REQUIRED]
            The AMI attribute.
            Note : Depending on your account privileges, the blockDeviceMapping attribute may return a Client.AuthFailure error. If this happens, use DescribeImages to get information about the block device mapping for the AMI.
            

    :rtype: dict
    :return: {
        'ImageId': 'string',
        'LaunchPermissions': [
            {
                'UserId': 'string',
                'Group': 'all'
            },
        ],
        'ProductCodes': [
            {
                'ProductCodeId': 'string',
                'ProductCodeType': 'devpay'|'marketplace'
            },
        ],
        'KernelId': {
            'Value': 'string'
        },
        'RamdiskId': {
            'Value': 'string'
        },
        'Description': {
            'Value': 'string'
        },
        'SriovNetSupport': {
            'Value': 'string'
        },
        'BlockDeviceMappings': [
            {
                'VirtualName': 'string',
                'DeviceName': 'string',
                'Ebs': {
                    'SnapshotId': 'string',
                    'VolumeSize': 123,
                    'DeleteOnTermination': True|False,
                    'VolumeType': 'standard'|'io1'|'gp2'|'sc1'|'st1',
                    'Iops': 123,
                    'Encrypted': True|False
                },
                'NoDevice': 'string'
            },
        ]
    }
    
    
    """
    pass
