import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Manages as an Azure Container Group instance.
 *
 * ## Example Usage
 *
 * This example provisions a Basic Container.
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as azure from "@pulumi/azure";
 *
 * const example = new azure.core.ResourceGroup("example", {
 *     name: "example-resources",
 *     location: "West Europe",
 * });
 * const exampleGroup = new azure.containerservice.Group("example", {
 *     name: "example-continst",
 *     location: example.location,
 *     resourceGroupName: example.name,
 *     ipAddressType: "Public",
 *     dnsNameLabel: "aci-label",
 *     osType: "Linux",
 *     containers: [
 *         {
 *             name: "hello-world",
 *             image: "mcr.microsoft.com/azuredocs/aci-helloworld:latest",
 *             cpu: 0.5,
 *             memory: 1.5,
 *             ports: [{
 *                 port: 443,
 *                 protocol: "TCP",
 *             }],
 *         },
 *         {
 *             name: "sidecar",
 *             image: "mcr.microsoft.com/azuredocs/aci-tutorial-sidecar",
 *             cpu: 0.5,
 *             memory: 1.5,
 *         },
 *     ],
 *     tags: {
 *         environment: "testing",
 *     },
 * });
 * ```
 *
 * ## API Providers
 *
 * <!-- This section is generated, changes will be overwritten -->
 * This resource uses the following Azure API Providers:
 *
 * * `Microsoft.ContainerInstance` - 2025-09-01
 *
 * ## Import
 *
 * Container Group's can be imported using the `resource id`, e.g.
 *
 * ```sh
 * $ pulumi import azure:containerservice/group:Group containerGroup1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.ContainerInstance/containerGroups/myContainerGroup1
 * ```
 */
export declare class Group extends pulumi.CustomResource {
    /**
     * Get an existing Group 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 state Any extra arguments used during the lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, state?: GroupState, opts?: pulumi.CustomResourceOptions): Group;
    /**
     * Returns true if the given object is an instance of Group.  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 Group;
    /**
     * The definition of a container that is part of the group as documented in the `container` block below. Changing this forces a new resource to be created.
     */
    readonly containers: pulumi.Output<outputs.containerservice.GroupContainer[]>;
    /**
     * A `diagnostics` block as documented below. Changing this forces a new resource to be created.
     */
    readonly diagnostics: pulumi.Output<outputs.containerservice.GroupDiagnostics | undefined>;
    /**
     * A `dnsConfig` block as documented below. Changing this forces a new resource to be created.
     */
    readonly dnsConfig: pulumi.Output<outputs.containerservice.GroupDnsConfig | undefined>;
    /**
     * The DNS label/name for the container group's IP. Changing this forces a new resource to be created.
     *
     * > **Note:** DNS label/name is not supported when deploying to virtual networks.
     */
    readonly dnsNameLabel: pulumi.Output<string | undefined>;
    /**
     * The value representing the security enum. `Noreuse`, `ResourceGroupReuse`, `SubscriptionReuse`, `TenantReuse` or `Unsecure`. Defaults to `Unsecure`. Changing this forces a new resource to be created.
     */
    readonly dnsNameLabelReusePolicy: pulumi.Output<string | undefined>;
    /**
     * Zero or more `exposedPort` blocks as defined below. Changing this forces a new resource to be created.
     *
     * > **Note:** The `exposedPort` can only contain ports that are also exposed on one or more containers in the group.
     */
    readonly exposedPorts: pulumi.Output<outputs.containerservice.GroupExposedPort[]>;
    /**
     * The FQDN of the container group derived from `dnsNameLabel`.
     */
    readonly fqdn: pulumi.Output<string>;
    /**
     * An `identity` block as defined below.
     */
    readonly identity: pulumi.Output<outputs.containerservice.GroupIdentity | undefined>;
    /**
     * An `imageRegistryCredential` block as documented below. Changing this forces a new resource to be created.
     */
    readonly imageRegistryCredentials: pulumi.Output<outputs.containerservice.GroupImageRegistryCredential[] | undefined>;
    /**
     * The definition of an init container that is part of the group as documented in the `initContainer` block below. Changing this forces a new resource to be created.
     */
    readonly initContainers: pulumi.Output<outputs.containerservice.GroupInitContainer[] | undefined>;
    /**
     * The IP address allocated to the container group.
     */
    readonly ipAddress: pulumi.Output<string>;
    /**
     * Specifies the IP address type of the container. `Public`, `Private` or `None`. Changing this forces a new resource to be created. If set to `Private`, `subnetIds` also needs to be set. Defaults to `Public`.
     *
     * > **Note:** `dnsNameLabel` and `osType` set to `windows` are not compatible with `Private` `ipAddressType`
     */
    readonly ipAddressType: pulumi.Output<string | undefined>;
    /**
     * The Key Vault key URI for CMK encryption. Changing this forces a new resource to be created.
     */
    readonly keyVaultKeyId: pulumi.Output<string | undefined>;
    /**
     * The user assigned identity that has access to the Key Vault Key. If not specified, the RP principal named "Azure Container Instance Service" will be used instead. Make sure the identity has the proper `keyPermissions` set, at least with `Get`, `UnwrapKey`, `WrapKey` and `GetRotationPolicy`.
     */
    readonly keyVaultUserAssignedIdentityId: pulumi.Output<string | undefined>;
    /**
     * Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
     */
    readonly location: pulumi.Output<string>;
    /**
     * Specifies the name of the Container Group. Changing this forces a new resource to be created.
     */
    readonly name: pulumi.Output<string>;
    /**
     * @deprecated the 'network_profile_id' has been removed from the latest versions of the container instance API and has been deprecated. It no longer functions and will be removed from the 4.0 AzureRM provider. Please use the 'subnet_ids' field instead
     */
    readonly networkProfileId: pulumi.Output<string>;
    /**
     * The OS for the container group. Allowed values are `Linux` and `Windows`. Changing this forces a new resource to be created.
     *
     * > **Note:** if `osType` is set to `Windows` currently only a single `container` block is supported. Windows containers are not supported in virtual networks.
     */
    readonly osType: pulumi.Output<string>;
    /**
     * The priority of the Container Group. Possible values are `Regular` and `Spot`. Changing this forces a new resource to be created.
     *
     * > **Note:** When `priority` is set to `Spot`, the `ipAddressType` has to be `None`.
     */
    readonly priority: pulumi.Output<string | undefined>;
    /**
     * The name of the resource group in which to create the Container Group. Changing this forces a new resource to be created.
     */
    readonly resourceGroupName: pulumi.Output<string>;
    /**
     * Restart policy for the container group. Allowed values are `Always`, `Never`, `OnFailure`. Defaults to `Always`. Changing this forces a new resource to be created.
     */
    readonly restartPolicy: pulumi.Output<string | undefined>;
    /**
     * Specifies the sku of the Container Group. Possible values are `Confidential`, `Dedicated` and `Standard`. Defaults to `Standard`. Changing this forces a new resource to be created.
     */
    readonly sku: pulumi.Output<string | undefined>;
    /**
     * The subnet resource IDs for a container group. Changing this forces a new resource to be created.
     */
    readonly subnetIds: pulumi.Output<string | undefined>;
    /**
     * A mapping of tags to assign to the resource.
     */
    readonly tags: pulumi.Output<{
        [key: string]: string;
    } | undefined>;
    /**
     * A list of Availability Zones in which this Container Group is located. Changing this forces a new resource to be created.
     */
    readonly zones: pulumi.Output<string[] | undefined>;
    /**
     * Create a Group 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: GroupArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Group resources.
 */
export interface GroupState {
    /**
     * The definition of a container that is part of the group as documented in the `container` block below. Changing this forces a new resource to be created.
     */
    containers?: pulumi.Input<pulumi.Input<inputs.containerservice.GroupContainer>[] | undefined>;
    /**
     * A `diagnostics` block as documented below. Changing this forces a new resource to be created.
     */
    diagnostics?: pulumi.Input<inputs.containerservice.GroupDiagnostics | undefined>;
    /**
     * A `dnsConfig` block as documented below. Changing this forces a new resource to be created.
     */
    dnsConfig?: pulumi.Input<inputs.containerservice.GroupDnsConfig | undefined>;
    /**
     * The DNS label/name for the container group's IP. Changing this forces a new resource to be created.
     *
     * > **Note:** DNS label/name is not supported when deploying to virtual networks.
     */
    dnsNameLabel?: pulumi.Input<string | undefined>;
    /**
     * The value representing the security enum. `Noreuse`, `ResourceGroupReuse`, `SubscriptionReuse`, `TenantReuse` or `Unsecure`. Defaults to `Unsecure`. Changing this forces a new resource to be created.
     */
    dnsNameLabelReusePolicy?: pulumi.Input<string | undefined>;
    /**
     * Zero or more `exposedPort` blocks as defined below. Changing this forces a new resource to be created.
     *
     * > **Note:** The `exposedPort` can only contain ports that are also exposed on one or more containers in the group.
     */
    exposedPorts?: pulumi.Input<pulumi.Input<inputs.containerservice.GroupExposedPort>[] | undefined>;
    /**
     * The FQDN of the container group derived from `dnsNameLabel`.
     */
    fqdn?: pulumi.Input<string | undefined>;
    /**
     * An `identity` block as defined below.
     */
    identity?: pulumi.Input<inputs.containerservice.GroupIdentity | undefined>;
    /**
     * An `imageRegistryCredential` block as documented below. Changing this forces a new resource to be created.
     */
    imageRegistryCredentials?: pulumi.Input<pulumi.Input<inputs.containerservice.GroupImageRegistryCredential>[] | undefined>;
    /**
     * The definition of an init container that is part of the group as documented in the `initContainer` block below. Changing this forces a new resource to be created.
     */
    initContainers?: pulumi.Input<pulumi.Input<inputs.containerservice.GroupInitContainer>[] | undefined>;
    /**
     * The IP address allocated to the container group.
     */
    ipAddress?: pulumi.Input<string | undefined>;
    /**
     * Specifies the IP address type of the container. `Public`, `Private` or `None`. Changing this forces a new resource to be created. If set to `Private`, `subnetIds` also needs to be set. Defaults to `Public`.
     *
     * > **Note:** `dnsNameLabel` and `osType` set to `windows` are not compatible with `Private` `ipAddressType`
     */
    ipAddressType?: pulumi.Input<string | undefined>;
    /**
     * The Key Vault key URI for CMK encryption. Changing this forces a new resource to be created.
     */
    keyVaultKeyId?: pulumi.Input<string | undefined>;
    /**
     * The user assigned identity that has access to the Key Vault Key. If not specified, the RP principal named "Azure Container Instance Service" will be used instead. Make sure the identity has the proper `keyPermissions` set, at least with `Get`, `UnwrapKey`, `WrapKey` and `GetRotationPolicy`.
     */
    keyVaultUserAssignedIdentityId?: pulumi.Input<string | undefined>;
    /**
     * Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
     */
    location?: pulumi.Input<string | undefined>;
    /**
     * Specifies the name of the Container Group. Changing this forces a new resource to be created.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * @deprecated the 'network_profile_id' has been removed from the latest versions of the container instance API and has been deprecated. It no longer functions and will be removed from the 4.0 AzureRM provider. Please use the 'subnet_ids' field instead
     */
    networkProfileId?: pulumi.Input<string | undefined>;
    /**
     * The OS for the container group. Allowed values are `Linux` and `Windows`. Changing this forces a new resource to be created.
     *
     * > **Note:** if `osType` is set to `Windows` currently only a single `container` block is supported. Windows containers are not supported in virtual networks.
     */
    osType?: pulumi.Input<string | undefined>;
    /**
     * The priority of the Container Group. Possible values are `Regular` and `Spot`. Changing this forces a new resource to be created.
     *
     * > **Note:** When `priority` is set to `Spot`, the `ipAddressType` has to be `None`.
     */
    priority?: pulumi.Input<string | undefined>;
    /**
     * The name of the resource group in which to create the Container Group. Changing this forces a new resource to be created.
     */
    resourceGroupName?: pulumi.Input<string | undefined>;
    /**
     * Restart policy for the container group. Allowed values are `Always`, `Never`, `OnFailure`. Defaults to `Always`. Changing this forces a new resource to be created.
     */
    restartPolicy?: pulumi.Input<string | undefined>;
    /**
     * Specifies the sku of the Container Group. Possible values are `Confidential`, `Dedicated` and `Standard`. Defaults to `Standard`. Changing this forces a new resource to be created.
     */
    sku?: pulumi.Input<string | undefined>;
    /**
     * The subnet resource IDs for a container group. Changing this forces a new resource to be created.
     */
    subnetIds?: pulumi.Input<string | undefined>;
    /**
     * A mapping of tags to assign to the resource.
     */
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * A list of Availability Zones in which this Container Group is located. Changing this forces a new resource to be created.
     */
    zones?: pulumi.Input<pulumi.Input<string>[] | undefined>;
}
/**
 * The set of arguments for constructing a Group resource.
 */
export interface GroupArgs {
    /**
     * The definition of a container that is part of the group as documented in the `container` block below. Changing this forces a new resource to be created.
     */
    containers: pulumi.Input<pulumi.Input<inputs.containerservice.GroupContainer>[]>;
    /**
     * A `diagnostics` block as documented below. Changing this forces a new resource to be created.
     */
    diagnostics?: pulumi.Input<inputs.containerservice.GroupDiagnostics | undefined>;
    /**
     * A `dnsConfig` block as documented below. Changing this forces a new resource to be created.
     */
    dnsConfig?: pulumi.Input<inputs.containerservice.GroupDnsConfig | undefined>;
    /**
     * The DNS label/name for the container group's IP. Changing this forces a new resource to be created.
     *
     * > **Note:** DNS label/name is not supported when deploying to virtual networks.
     */
    dnsNameLabel?: pulumi.Input<string | undefined>;
    /**
     * The value representing the security enum. `Noreuse`, `ResourceGroupReuse`, `SubscriptionReuse`, `TenantReuse` or `Unsecure`. Defaults to `Unsecure`. Changing this forces a new resource to be created.
     */
    dnsNameLabelReusePolicy?: pulumi.Input<string | undefined>;
    /**
     * Zero or more `exposedPort` blocks as defined below. Changing this forces a new resource to be created.
     *
     * > **Note:** The `exposedPort` can only contain ports that are also exposed on one or more containers in the group.
     */
    exposedPorts?: pulumi.Input<pulumi.Input<inputs.containerservice.GroupExposedPort>[] | undefined>;
    /**
     * An `identity` block as defined below.
     */
    identity?: pulumi.Input<inputs.containerservice.GroupIdentity | undefined>;
    /**
     * An `imageRegistryCredential` block as documented below. Changing this forces a new resource to be created.
     */
    imageRegistryCredentials?: pulumi.Input<pulumi.Input<inputs.containerservice.GroupImageRegistryCredential>[] | undefined>;
    /**
     * The definition of an init container that is part of the group as documented in the `initContainer` block below. Changing this forces a new resource to be created.
     */
    initContainers?: pulumi.Input<pulumi.Input<inputs.containerservice.GroupInitContainer>[] | undefined>;
    /**
     * Specifies the IP address type of the container. `Public`, `Private` or `None`. Changing this forces a new resource to be created. If set to `Private`, `subnetIds` also needs to be set. Defaults to `Public`.
     *
     * > **Note:** `dnsNameLabel` and `osType` set to `windows` are not compatible with `Private` `ipAddressType`
     */
    ipAddressType?: pulumi.Input<string | undefined>;
    /**
     * The Key Vault key URI for CMK encryption. Changing this forces a new resource to be created.
     */
    keyVaultKeyId?: pulumi.Input<string | undefined>;
    /**
     * The user assigned identity that has access to the Key Vault Key. If not specified, the RP principal named "Azure Container Instance Service" will be used instead. Make sure the identity has the proper `keyPermissions` set, at least with `Get`, `UnwrapKey`, `WrapKey` and `GetRotationPolicy`.
     */
    keyVaultUserAssignedIdentityId?: pulumi.Input<string | undefined>;
    /**
     * Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
     */
    location?: pulumi.Input<string | undefined>;
    /**
     * Specifies the name of the Container Group. Changing this forces a new resource to be created.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * @deprecated the 'network_profile_id' has been removed from the latest versions of the container instance API and has been deprecated. It no longer functions and will be removed from the 4.0 AzureRM provider. Please use the 'subnet_ids' field instead
     */
    networkProfileId?: pulumi.Input<string | undefined>;
    /**
     * The OS for the container group. Allowed values are `Linux` and `Windows`. Changing this forces a new resource to be created.
     *
     * > **Note:** if `osType` is set to `Windows` currently only a single `container` block is supported. Windows containers are not supported in virtual networks.
     */
    osType: pulumi.Input<string>;
    /**
     * The priority of the Container Group. Possible values are `Regular` and `Spot`. Changing this forces a new resource to be created.
     *
     * > **Note:** When `priority` is set to `Spot`, the `ipAddressType` has to be `None`.
     */
    priority?: pulumi.Input<string | undefined>;
    /**
     * The name of the resource group in which to create the Container Group. Changing this forces a new resource to be created.
     */
    resourceGroupName: pulumi.Input<string>;
    /**
     * Restart policy for the container group. Allowed values are `Always`, `Never`, `OnFailure`. Defaults to `Always`. Changing this forces a new resource to be created.
     */
    restartPolicy?: pulumi.Input<string | undefined>;
    /**
     * Specifies the sku of the Container Group. Possible values are `Confidential`, `Dedicated` and `Standard`. Defaults to `Standard`. Changing this forces a new resource to be created.
     */
    sku?: pulumi.Input<string | undefined>;
    /**
     * The subnet resource IDs for a container group. Changing this forces a new resource to be created.
     */
    subnetIds?: pulumi.Input<string | undefined>;
    /**
     * A mapping of tags to assign to the resource.
     */
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * A list of Availability Zones in which this Container Group is located. Changing this forces a new resource to be created.
     */
    zones?: pulumi.Input<pulumi.Input<string>[] | undefined>;
}
//# sourceMappingURL=group.d.ts.map