import * as $dara from '@darabonba/typescript';
export declare class DescribeSnapshotsRequestFilter extends $dara.Model {
    /**
     * @remarks
     * The key of filter 1 that is used to query resources. Set the value to `CreationStartTime`. You can specify a time by configuring both `Filter.1.Key` and `Filter.1.Value` to query resources that were created after the time.
     *
     * @example
     * CreationStartTime
     */
    key?: string;
    /**
     * @remarks
     * The value of filter 1 that is used to query resources. Set the value to a time. If you configure this parameter, you must also configure `Filter.1.Key`. Specify the time in the `yyyy-MM-ddTHH:mmZ` format. The time must be in UTC.
     *
     * @example
     * 2019-12-13T17:00Z
     */
    value?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeSnapshotsRequestTag extends $dara.Model {
    /**
     * @remarks
     * The key of tag N of the snapshot. Valid values of N: 1 to 20
     *
     * If a single tag is specified to query resources, up to 1,000 resources that have this tag added are returned. If multiple tags are specified to query resources, up to 1,000 resources that have all these tags added are returned. To query more than 1,000 resources with the specified tags, call the [ListTagResources](https://help.aliyun.com/document_detail/110425.html) operation.
     *
     * @example
     * TestKey
     */
    key?: string;
    /**
     * @remarks
     * The value of tag N of the snapshot. Valid values of N: 1 to 20.
     *
     * @example
     * TestValue
     */
    value?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeSnapshotsRequest extends $dara.Model {
    filter?: DescribeSnapshotsRequestFilter[];
    /**
     * @remarks
     * The category of the snapshot. Valid values:
     *
     * *   Standard: standard snapshot.
     *
     * *   Flash: local snapshot. This value will be deprecated. The local snapshot feature is replaced by the instant access feature. When you specify this parameter, take note of the following items:
     *
     *     *   If you have used local snapshots before December 14, 2020, you can use this parameter.
     *     *   If you have not used local snapshots before December 14, 2020, you cannot use this parameter.
     *
     * *   archive: archive snapshot.
     *
     * @example
     * Standard
     */
    category?: string;
    /**
     * @remarks
     * The disk ID.
     *
     * @example
     * d-bp67acfmxazb4p****
     */
    diskId?: string;
    /**
     * @remarks
     * Specifies whether to perform only a dry run, without performing the actual request. Valid values:
     *
     * *   true: performs only a dry run. The system checks your AccessKey pair, the permissions of the RAM user, and the required parameters. If the request passes the dry run, the DryRunOperation error code is returned. Otherwise, an error message is returned.
     * *   false (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.
     *
     * @example
     * false
     */
    dryRun?: boolean;
    /**
     * @remarks
     * Specifies whether the snapshot is encrypted. Default value: false.
     *
     * @example
     * false
     */
    encrypted?: boolean;
    /**
     * @remarks
     * The ID of the instance whose cloud disk snapshots you want to query.
     *
     * @example
     * i-bp67acfmxazb4p****
     */
    instanceId?: string;
    /**
     * @remarks
     * The ID of the Key Management Service (KMS) key that is used for the data disk.
     *
     * @example
     * 0e478b7a-4262-4802-b8cb-00d3fb40****
     */
    KMSKeyId?: string;
    /**
     * @remarks
     * The number of entries per page. Maximum value: 100
     *
     * Default value: 10.
     *
     * @example
     * 10
     */
    maxResults?: number;
    /**
     * @remarks
     * The pagination token that is used in the next request to retrieve a new page of results. You must specify the token that is obtained from the previous query as the value of NextToken.
     *
     * @example
     * caeba0bbb2be03f84eb48b699f0a4883
     */
    nextToken?: string;
    ownerAccount?: string;
    ownerId?: number;
    /**
     * @remarks
     * >  This parameter will be removed in the future. We recommend that you use NextToken and MaxResults for a paged query.
     *
     * @example
     * 1
     */
    pageNumber?: number;
    /**
     * @remarks
     * >  This parameter will be removed in the future. We recommend that you use NextToken and MaxResults for a paged query.
     *
     * @example
     * 10
     */
    pageSize?: number;
    /**
     * @remarks
     * The region ID of the disk. You can call the [DescribeRegions](https://help.aliyun.com/document_detail/25609.html) operation to query the most recent region list.
     *
     * This parameter is required.
     *
     * @example
     * cn-hangzhou
     */
    regionId?: string;
    /**
     * @remarks
     * The resource group ID. If you configure this parameter to query resources, up to 1,000 resources that belong to the specified resource group can be displayed in the response.
     *
     * > Resources in the default resource group are displayed in the response regardless of whether you configure this parameter.
     *
     * @example
     * rg-bp67acfmxazb4p****
     */
    resourceGroupId?: string;
    resourceOwnerAccount?: string;
    resourceOwnerId?: number;
    /**
     * @remarks
     * The IDs of snapshots. You can specify a JSON array that consists of up to 100 snapshot IDs. Separate the snapshot IDs with commas (,).
     *
     * @example
     * ["s-bp67acfmxazb4p****", "s-bp67acfmxazb5p****", … "s-bp67acfmxazb6p****"]
     */
    snapshotIds?: string;
    /**
     * @remarks
     * The snapshot chain ID. You can specify a JSON array that contains up to 100 snapshot chain IDs. Separate the snapshot chain IDs with commas (,).
     *
     * @example
     * ["sl-bp1grgphbcc9brb5****", "sl-bp1c4izumvq0i5bs****", … "sl-bp1akk7isz866dds****"]
     */
    snapshotLinkId?: string;
    /**
     * @remarks
     * The name of the snapshot.
     *
     * @example
     * testSnapshotName
     */
    snapshotName?: string;
    /**
     * @remarks
     * The type of the snapshot. Valid values:
     *
     * *   auto: automatic snapshot
     * *   user: manual snapshot
     * *   all (default): all snapshot types
     *
     * @example
     * all
     */
    snapshotType?: string;
    /**
     * @remarks
     * The source disk type of the snapshot. Valid values:
     *
     * *   system: system disk.
     * *   data: data disk.
     *
     * >  The value of this parameter is case-insensitive.
     *
     * @example
     * Data
     */
    sourceDiskType?: string;
    /**
     * @remarks
     * The status of the snapshot. Valid values:
     *
     * *   progressing: The snapshot is being created.
     * *   accomplished: The snapshot is created.
     * *   failed: The snapshot fails to be created.
     * *   all (default): This value indicates all snapshot states.
     *
     * @example
     * all
     */
    status?: string;
    /**
     * @remarks
     * The tags of the snapshot.
     */
    tag?: DescribeSnapshotsRequestTag[];
    /**
     * @remarks
     * Specifies whether the snapshot has been used to create custom images or disks. Valid values:
     *
     * *   image: The snapshot has been used to create custom images.
     * *   disk: The snapshot has been used to create disks.
     * *   image_disk: The snapshot has been used to create both custom images and data disks.
     * *   none: The snapshot has not been used to create custom images or disks.
     *
     * @example
     * none
     */
    usage?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
