import * as $dara from '@darabonba/typescript';
export declare class DescribeInstancesRequestFilter extends $dara.Model {
    /**
     * @remarks
     * The key of filter 1 used to query resources. Set the value to `CreationStartTime`. You can specify a time by setting both `Filter.1.Key` and `Filter.1.Value` to query resources that were created after the specified time.
     *
     * @example
     * CreationStartTime
     */
    key?: string;
    /**
     * @remarks
     * The value of filter 1 used to query resources. Set the value to a time. If you specify this parameter, you must also specify `Filter.1.Key`. Specify the time in the ISO 8601 standard in the `yyyy-MM-ddTHH:mmZ` format. The time must be in UTC.
     *
     * @example
     * 2017-12-05T22:40Z
     */
    value?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeInstancesRequestTag extends $dara.Model {
    /**
     * @remarks
     * The key of tag N of the instance. Valid values of N: 1 to 20.
     *
     * If you specify a single tag to query resources, up to 1,000 resources to which the tag is added are returned. If you specify multiple tags to query resources, up to 1,000 resources to which all specified tags are added are returned. To query more than 1,000 resources that have specified tags added, call the [ListTagResources](https://help.aliyun.com/document_detail/110425.html) operation.
     *
     * @example
     * TestKey
     */
    key?: string;
    /**
     * @remarks
     * The value of tag N of the instance. 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 DescribeInstancesRequest extends $dara.Model {
    filter?: DescribeInstancesRequestFilter[];
    /**
     * @remarks
     * The additional instance attributes.
     *
     * @example
     * META_OPTIONS
     */
    additionalAttributes?: string[];
    /**
     * @remarks
     * >  This parameter is in invitational preview and is not publicly available.
     *
     * @example
     * false
     */
    deviceAvailable?: boolean;
    /**
     * @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 the request for potential issues, including invalid AccessKey pairs, unauthorized RAM users, and missing parameter values. If the request fails the dry run, an error message is returned. If the request passes the dry run, the DryRunOperation error code is returned.
     * *   false: 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.
     *
     * Default value: false.
     *
     * @example
     * false
     */
    dryRun?: boolean;
    /**
     * @remarks
     * The elastic IP addresses (EIPs) of instances. This parameter is valid when InstanceNetworkType is set to vpc. The value can be a JSON array that consists of up to 100 IP addresses. Separate the IP addresses with commas (,).
     *
     * @example
     * ["42.1.1.**", "42.1.2.**", … "42.1.10.**"]
     */
    eipAddresses?: string;
    /**
     * @remarks
     * The ID of the high-performance computing (HPC) cluster to which the instance belongs.
     *
     * @example
     * hpc-bp67acfmxazb4p****
     */
    hpcClusterId?: string;
    /**
     * @remarks
     * Specifies whether the access channel is enabled for instance metadata. Valid values:
     *
     * *   enabled
     * *   disabled
     *
     * Default value: enabled.
     *
     * >  For information about instance metadata, see [Access instance metadata](https://help.aliyun.com/document_detail/49122.html).
     *
     * @example
     * enabled
     */
    httpEndpoint?: string;
    /**
     * @remarks
     * >  This parameter is in invitational preview and is not publicly available.
     *
     * @example
     * 0
     */
    httpPutResponseHopLimit?: number;
    /**
     * @remarks
     * Specifies whether the security hardening mode (IMDSv2) is forcefully used to access instance metadata. Valid values:
     *
     * *   optional: The security hardening mode (IMDSv2) is not forcefully used.
     * *   required: The security hardening mode (IMDSv2) is forcefully used. After you set this parameter to required, you cannot access instance metadata in normal mode.
     *
     * Default value: optional.
     *
     * >  For information about modes of accessing instance metadata, see [Access instance metadata](https://help.aliyun.com/document_detail/150575.html).
     *
     * @example
     * optional
     */
    httpTokens?: string;
    /**
     * @remarks
     * The ID of the image.
     *
     * @example
     * m-bp67acfmxazb4p****
     */
    imageId?: string;
    /**
     * @remarks
     * The internal IP addresses of instances located in the classic network. This parameter is valid when InstanceNetworkType is set to classic. The value can be a JSON array that consists of up to 100 IP addresses. Separate the IP addresses with commas (,).
     *
     * @example
     * ["10.1.1.1", "10.1.2.1", … "10.1.10.1"]
     */
    innerIpAddresses?: string;
    /**
     * @remarks
     * The billing method of the instance. Valid values:
     *
     * *   PostPaid: pay-as-you-go
     * *   PrePaid: subscription
     *
     * @example
     * PostPaid
     */
    instanceChargeType?: string;
    /**
     * @remarks
     * The ID of the instance. The value can be a JSON array that consists of up to 100 instance IDs. Separate the IDs with commas (,).
     *
     * @example
     * ["i-bp67acfmxazb4p****", "i-bp67acfmxazb4p****", … "i-bp67acfmxazb4p****"]
     */
    instanceIds?: string;
    /**
     * @remarks
     * The name of the instance. Fuzzy search with asterisk (\\*) wildcard characters is supported.
     *
     * @example
     * Test
     */
    instanceName?: string;
    /**
     * @remarks
     * The network type of the instance. Valid values:
     *
     * *   classic
     * *   vpc
     *
     * @example
     * vpc
     */
    instanceNetworkType?: string;
    /**
     * @remarks
     * The instance type of the instance.
     *
     * @example
     * ecs.g5.large
     */
    instanceType?: string;
    /**
     * @remarks
     * The instance family of the instance.
     *
     * @example
     * ecs.g5
     */
    instanceTypeFamily?: string;
    /**
     * @remarks
     * The billing method for network usage. Valid values:
     *
     * *   PayByBandwidth
     * *   PayByTraffic
     *
     * >  When the **pay-by-traffic** billing method is used for network usage, the maximum inbound and outbound bandwidths are used as the upper limits of bandwidths instead of guaranteed performance specifications. In scenarios in which demands exceed resource supplies, the maximum bandwidths may not be reached. If you want guaranteed bandwidths for your instance, use the **pay-by-bandwidth** billing method for network usage.
     *
     * @example
     * PayByTraffic
     */
    internetChargeType?: string;
    /**
     * @remarks
     * Specifies whether the instance is an I/O optimized instance. Valid values:
     *
     * *   true
     * *   false
     *
     * @example
     * true
     */
    ioOptimized?: boolean;
    /**
     * @remarks
     * The IPv6 addresses assigned to elastic network interfaces (ENIs).
     *
     * **if can be null:**
     * false
     */
    ipv6Address?: string[];
    /**
     * @remarks
     * The name of the SSH key pair bound to the instance.
     *
     * @example
     * KeyPairNameTest
     */
    keyPairName?: string;
    /**
     * @remarks
     * The reason why the instance is locked. Valid values:
     *
     * *   financial: The instance is locked due to overdue payments.
     * *   security: The instance is locked due to security reasons.
     * *   recycling: The spot instance is locked and pending release.
     * *   dedicatedhostfinancial: The instance is locked due to overdue payments for the dedicated host.
     * *   refunded: The instance is locked because a refund is made for the instance.
     *
     * @example
     * security
     */
    lockReason?: string;
    /**
     * @remarks
     * The maximum number of entries per page. Valid values: 1 to 100.
     *
     * Default value:
     *
     * *   If you do not specify this parameter or if you set this parameter to a value that is smaller than 10, the default value is 10.
     * *   If you set this parameter to a value that is greater than 100, the default value is 100.
     *
     * @example
     * 10
     */
    maxResults?: number;
    /**
     * @remarks
     * >  This parameter is in invitational preview and is not publicly available.
     *
     * @example
     * false
     */
    needSaleCycle?: boolean;
    /**
     * @remarks
     * The pagination token that is used in the next request to retrieve a new page of results. You do not need to specify this parameter for the first request. 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 private IP addresses of instances located in a VPC. This parameter is valid when InstanceNetworkType is set to vpc. The value can be a JSON array that consists of up to 100 IP addresses. Separate the IP addresses with commas (,).
     *
     * @example
     * ["172.16.1.1", "172.16.2.1", … "172.16.10.1"]
     */
    privateIpAddresses?: string;
    /**
     * @remarks
     * The public IP addresses of instances. The value can be a JSON array that consists of up to 100 IP addresses. Separate the IP addresses with commas (,).
     *
     * @example
     * ["42.1.1.**", "42.1.2.**", … "42.1.10.**"]
     */
    publicIpAddresses?: string;
    /**
     * @remarks
     * The remote direct memory access (RDMA) IP addresses of the instance in the HPC cluster.
     *
     * @example
     * 10.10.10.102
     */
    rdmaIpAddresses?: string;
    /**
     * @remarks
     * The region ID of the instance. 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 ID of the resource group to which the instance belongs. If this parameter is specified 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 how this parameter is set.
     *
     * @example
     * rg-bp67acfmxazb4p****
     */
    resourceGroupId?: string;
    resourceOwnerAccount?: string;
    resourceOwnerId?: number;
    /**
     * @remarks
     * The ID of the security group to which the instance belongs.
     *
     * @example
     * sg-bp67acfmxazb4p****
     */
    securityGroupId?: string;
    /**
     * @remarks
     * The status of the instance. Valid values:
     *
     * *   Pending: The instance is being created.
     * *   Running: The instance is running.
     * *   Starting: The instance is being started.
     * *   Stopping: The instance is being stopped.
     * *   Stopped: The instance is stopped.
     *
     * @example
     * Running
     */
    status?: string;
    /**
     * @remarks
     * The tags of the instance.
     */
    tag?: DescribeInstancesRequestTag[];
    /**
     * @remarks
     * The ID of the vSwitch.
     *
     * @example
     * vsw-bp67acfmxazb4p****
     */
    vSwitchId?: string;
    /**
     * @remarks
     * The ID of the virtual private cloud (VPC).
     *
     * @example
     * v-bp67acfmxazb4p****
     */
    vpcId?: string;
    /**
     * @remarks
     * The zone ID of the instance.
     *
     * @example
     * cn-hangzhou-g
     */
    zoneId?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
