import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
import * as enums from "../types/enums";
/**
 * A container group.
 *
 * Uses Azure REST API version 2024-05-01-preview. In version 2.x of the Azure Native provider, it used API version 2023-05-01.
 *
 * Other available API versions: 2023-05-01, 2024-09-01-preview, 2024-10-01-preview, 2024-11-01-preview, 2025-09-01. These can be accessed by generating a local SDK package using the CLI command `pulumi package add azure-native containerinstance [ApiVersion]`. See the [version guide](../../../version-guide/#accessing-any-api-version-via-local-packages) for details.
 */
export declare class ContainerGroup extends pulumi.CustomResource {
    /**
     * Get an existing ContainerGroup resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, opts?: pulumi.CustomResourceOptions): ContainerGroup;
    /**
     * Returns true if the given object is an instance of ContainerGroup.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is ContainerGroup;
    /**
     * The Azure API version of the resource.
     */
    readonly azureApiVersion: pulumi.Output<string>;
    /**
     * The properties for confidential container group
     */
    readonly confidentialComputeProperties: pulumi.Output<outputs.containerinstance.ConfidentialComputePropertiesResponse | undefined>;
    /**
     * The reference container group profile properties.
     */
    readonly containerGroupProfile: pulumi.Output<outputs.containerinstance.ContainerGroupProfileReferenceDefinitionResponse | undefined>;
    /**
     * The containers within the container group.
     */
    readonly containers: pulumi.Output<outputs.containerinstance.ContainerResponse[]>;
    /**
     * The diagnostic information for a container group.
     */
    readonly diagnostics: pulumi.Output<outputs.containerinstance.ContainerGroupDiagnosticsResponse | undefined>;
    /**
     * The DNS config information for a container group.
     */
    readonly dnsConfig: pulumi.Output<outputs.containerinstance.DnsConfigurationResponse | undefined>;
    /**
     * The encryption properties for a container group.
     */
    readonly encryptionProperties: pulumi.Output<outputs.containerinstance.EncryptionPropertiesResponse | undefined>;
    /**
     * extensions used by virtual kubelet
     */
    readonly extensions: pulumi.Output<outputs.containerinstance.DeploymentExtensionSpecResponse[] | undefined>;
    /**
     * The identity of the container group, if configured.
     */
    readonly identity: pulumi.Output<outputs.containerinstance.ContainerGroupIdentityResponse | undefined>;
    /**
     * The image registry credentials by which the container group is created from.
     */
    readonly imageRegistryCredentials: pulumi.Output<outputs.containerinstance.ImageRegistryCredentialResponse[] | undefined>;
    /**
     * The init containers for a container group.
     */
    readonly initContainers: pulumi.Output<outputs.containerinstance.InitContainerDefinitionResponse[] | undefined>;
    /**
     * The instance view of the container group. Only valid in response.
     */
    readonly instanceView: pulumi.Output<outputs.containerinstance.ContainerGroupPropertiesResponseInstanceView>;
    /**
     * The IP address type of the container group.
     */
    readonly ipAddress: pulumi.Output<outputs.containerinstance.IpAddressResponse | undefined>;
    /**
     * The flag indicating whether the container group is created by standby pool.
     */
    readonly isCreatedFromStandbyPool: pulumi.Output<boolean>;
    /**
     * The resource location.
     */
    readonly location: pulumi.Output<string | undefined>;
    /**
     * The resource name.
     */
    readonly name: pulumi.Output<string>;
    /**
     * The operating system type required by the containers in the container group.
     */
    readonly osType: pulumi.Output<string | undefined>;
    /**
     * The priority of the container group.
     */
    readonly priority: pulumi.Output<string | undefined>;
    /**
     * The provisioning state of the container group. This only appears in the response.
     */
    readonly provisioningState: pulumi.Output<string>;
    /**
     * Restart policy for all containers within the container group.
     * - `Always` Always restart
     * - `OnFailure` Restart on failure
     * - `Never` Never restart
     */
    readonly restartPolicy: pulumi.Output<string | undefined>;
    /**
     * The SKU for a container group.
     */
    readonly sku: pulumi.Output<string | undefined>;
    /**
     * The reference standby pool profile properties.
     */
    readonly standbyPoolProfile: pulumi.Output<outputs.containerinstance.StandbyPoolProfileDefinitionResponse | undefined>;
    /**
     * The subnet resource IDs for a container group.
     */
    readonly subnetIds: pulumi.Output<outputs.containerinstance.ContainerGroupSubnetIdResponse[] | undefined>;
    /**
     * The resource tags.
     */
    readonly tags: pulumi.Output<{
        [key: string]: string;
    } | undefined>;
    /**
     * The resource type.
     */
    readonly type: pulumi.Output<string>;
    /**
     * The list of volumes that can be mounted by containers in this container group.
     */
    readonly volumes: pulumi.Output<outputs.containerinstance.VolumeResponse[] | undefined>;
    /**
     * The zones for the container group.
     */
    readonly zones: pulumi.Output<string[] | undefined>;
    /**
     * Create a ContainerGroup resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: ContainerGroupArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * The set of arguments for constructing a ContainerGroup resource.
 */
export interface ContainerGroupArgs {
    /**
     * The properties for confidential container group
     */
    confidentialComputeProperties?: pulumi.Input<inputs.containerinstance.ConfidentialComputePropertiesArgs>;
    /**
     * The name of the container group.
     */
    containerGroupName?: pulumi.Input<string>;
    /**
     * The reference container group profile properties.
     */
    containerGroupProfile?: pulumi.Input<inputs.containerinstance.ContainerGroupProfileReferenceDefinitionArgs>;
    /**
     * The containers within the container group.
     */
    containers: pulumi.Input<pulumi.Input<inputs.containerinstance.ContainerArgs>[]>;
    /**
     * The diagnostic information for a container group.
     */
    diagnostics?: pulumi.Input<inputs.containerinstance.ContainerGroupDiagnosticsArgs>;
    /**
     * The DNS config information for a container group.
     */
    dnsConfig?: pulumi.Input<inputs.containerinstance.DnsConfigurationArgs>;
    /**
     * The encryption properties for a container group.
     */
    encryptionProperties?: pulumi.Input<inputs.containerinstance.EncryptionPropertiesArgs>;
    /**
     * extensions used by virtual kubelet
     */
    extensions?: pulumi.Input<pulumi.Input<inputs.containerinstance.DeploymentExtensionSpecArgs>[]>;
    /**
     * The identity of the container group, if configured.
     */
    identity?: pulumi.Input<inputs.containerinstance.ContainerGroupIdentityArgs>;
    /**
     * The image registry credentials by which the container group is created from.
     */
    imageRegistryCredentials?: pulumi.Input<pulumi.Input<inputs.containerinstance.ImageRegistryCredentialArgs>[]>;
    /**
     * The init containers for a container group.
     */
    initContainers?: pulumi.Input<pulumi.Input<inputs.containerinstance.InitContainerDefinitionArgs>[]>;
    /**
     * The IP address type of the container group.
     */
    ipAddress?: pulumi.Input<inputs.containerinstance.IpAddressArgs>;
    /**
     * The resource location.
     */
    location?: pulumi.Input<string>;
    /**
     * The operating system type required by the containers in the container group.
     */
    osType?: pulumi.Input<string | enums.containerinstance.OperatingSystemTypes>;
    /**
     * The priority of the container group.
     */
    priority?: pulumi.Input<string | enums.containerinstance.ContainerGroupPriority>;
    /**
     * The name of the resource group. The name is case insensitive.
     */
    resourceGroupName: pulumi.Input<string>;
    /**
     * Restart policy for all containers within the container group.
     * - `Always` Always restart
     * - `OnFailure` Restart on failure
     * - `Never` Never restart
     */
    restartPolicy?: pulumi.Input<string | enums.containerinstance.ContainerGroupRestartPolicy>;
    /**
     * The SKU for a container group.
     */
    sku?: pulumi.Input<string | enums.containerinstance.ContainerGroupSku>;
    /**
     * The reference standby pool profile properties.
     */
    standbyPoolProfile?: pulumi.Input<inputs.containerinstance.StandbyPoolProfileDefinitionArgs>;
    /**
     * The subnet resource IDs for a container group.
     */
    subnetIds?: pulumi.Input<pulumi.Input<inputs.containerinstance.ContainerGroupSubnetIdArgs>[]>;
    /**
     * The resource tags.
     */
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * The list of volumes that can be mounted by containers in this container group.
     */
    volumes?: pulumi.Input<pulumi.Input<inputs.containerinstance.VolumeArgs>[]>;
    /**
     * The zones for the container group.
     */
    zones?: pulumi.Input<pulumi.Input<string>[]>;
}
