<reponame>kulado/kulado-azure
# coding=utf-8
# *** WARNING: this file was generated by the Kulado Terraform Bridge (tfgen) Tool. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import json
import warnings
import kulado
import kulado.runtime
from .. import utilities, tables

class Group(kulado.CustomResource):
    containers: kulado.Output[list]
    """
    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.
    """
    diagnostics: kulado.Output[dict]
    """
    A `diagnostics` block as documented below.
    """
    dns_name_label: kulado.Output[str]
    """
    The DNS label/name for the container groups IP. Changing this forces a new resource to be created.
    """
    fqdn: kulado.Output[str]
    """
    The FQDN of the container group derived from `dns_name_label`.
    """
    identity: kulado.Output[dict]
    """
    An `identity` block as defined below.
    """
    image_registry_credentials: kulado.Output[list]
    """
    A `image_registry_credential` block as documented below. Changing this forces a new resource to be created.
    """
    ip_address: kulado.Output[str]
    """
    The IP address allocated to the container group.
    """
    ip_address_type: kulado.Output[str]
    """
    Specifies the ip address type of the container. `Public` is the only acceptable value at this time. Changing this forces a new resource to be created.
    """
    location: kulado.Output[str]
    """
    Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
    """
    name: kulado.Output[str]
    """
    Specifies the name of the Container Group. Changing this forces a new resource to be created.
    """
    os_type: kulado.Output[str]
    """
    The OS for the container group. Allowed values are `Linux` and `Windows`. Changing this forces a new resource to be created.
    """
    resource_group_name: kulado.Output[str]
    """
    The name of the resource group in which to create the Container Group. Changing this forces a new resource to be created.
    """
    restart_policy: kulado.Output[str]
    """
    Restart policy for the container group. Allowed values are `Always`, `Never`, `OnFailure`. Defaults to `Always`. Changing this forces a new resource to be created.
    """
    tags: kulado.Output[dict]
    """
    A mapping of tags to assign to the resource. Changing this forces a new resource to be created.
    """
    def __init__(__self__, resource_name, opts=None, containers=None, diagnostics=None, dns_name_label=None, identity=None, image_registry_credentials=None, ip_address_type=None, location=None, name=None, os_type=None, resource_group_name=None, restart_policy=None, tags=None, __name__=None, __opts__=None):
        """
        Manage as an Azure Container Group instance.
        
        :param str resource_name: The name of the resource.
        :param kulado.ResourceOptions opts: Options for the resource.
        :param kulado.Input[list] containers: 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.
        :param kulado.Input[dict] diagnostics: A `diagnostics` block as documented below.
        :param kulado.Input[str] dns_name_label: The DNS label/name for the container groups IP. Changing this forces a new resource to be created.
        :param kulado.Input[dict] identity: An `identity` block as defined below.
        :param kulado.Input[list] image_registry_credentials: A `image_registry_credential` block as documented below. Changing this forces a new resource to be created.
        :param kulado.Input[str] ip_address_type: Specifies the ip address type of the container. `Public` is the only acceptable value at this time. Changing this forces a new resource to be created.
        :param kulado.Input[str] location: Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
        :param kulado.Input[str] name: Specifies the name of the Container Group. Changing this forces a new resource to be created.
        :param kulado.Input[str] os_type: The OS for the container group. Allowed values are `Linux` and `Windows`. Changing this forces a new resource to be created.
        :param kulado.Input[str] resource_group_name: The name of the resource group in which to create the Container Group. Changing this forces a new resource to be created.
        :param kulado.Input[str] restart_policy: Restart policy for the container group. Allowed values are `Always`, `Never`, `OnFailure`. Defaults to `Always`. Changing this forces a new resource to be created.
        :param kulado.Input[dict] tags: A mapping of tags to assign to the resource. Changing this forces a new resource to be created.

        > This content is derived from https://github.com/terraform-providers/terraform-provider-azurerm/blob/master/website/docs/r/container_group.html.markdown.
        """
        if __name__ is not None:
            warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning)
            resource_name = __name__
        if __opts__ is not None:
            warnings.warn("explicit use of __opts__ is deprecated, use 'opts' instead", DeprecationWarning)
            opts = __opts__
        if not resource_name:
            raise TypeError('Missing resource name argument (for URN creation)')
        if not isinstance(resource_name, str):
            raise TypeError('Expected resource name to be a string')
        if opts and not isinstance(opts, kulado.ResourceOptions):
            raise TypeError('Expected resource options to be a ResourceOptions instance')

        __props__ = dict()

        if containers is None:
            raise TypeError("Missing required property 'containers'")
        __props__['containers'] = containers

        __props__['diagnostics'] = diagnostics

        __props__['dns_name_label'] = dns_name_label

        __props__['identity'] = identity

        __props__['image_registry_credentials'] = image_registry_credentials

        __props__['ip_address_type'] = ip_address_type

        __props__['location'] = location

        __props__['name'] = name

        if os_type is None:
            raise TypeError("Missing required property 'os_type'")
        __props__['os_type'] = os_type

        if resource_group_name is None:
            raise TypeError("Missing required property 'resource_group_name'")
        __props__['resource_group_name'] = resource_group_name

        __props__['restart_policy'] = restart_policy

        __props__['tags'] = tags

        __props__['fqdn'] = None
        __props__['ip_address'] = None

        super(Group, __self__).__init__(
            'azure:containerservice/group:Group',
            resource_name,
            __props__,
            opts)


    def translate_output_property(self, prop):
        return tables._CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop

    def translate_input_property(self, prop):
        return tables._SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop


# coding=utf-8
# *** WARNING: this file was generated by the Kulado Terraform Bridge (tfgen) Tool. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import json
import warnings
import kulado
import kulado.runtime
from .. import utilities, tables

class Group(kulado.CustomResource):
    containers: kulado.Output[list]
    """
    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.
    """
    diagnostics: kulado.Output[dict]
    """
    A `diagnostics` block as documented below.
    """
    dns_name_label: kulado.Output[str]
    """
    The DNS label/name for the container groups IP. Changing this forces a new resource to be created.
    """
    fqdn: kulado.Output[str]
    """
    The FQDN of the container group derived from `dns_name_label`.
    """
    identity: kulado.Output[dict]
    """
    An `identity` block as defined below.
    """
    image_registry_credentials: kulado.Output[list]
    """
    A `image_registry_credential` block as documented below. Changing this forces a new resource to be created.
    """
    ip_address: kulado.Output[str]
    """
    The IP address allocated to the container group.
    """
    ip_address_type: kulado.Output[str]
    """
    Specifies the ip address type of the container. `Public` is the only acceptable value at this time. Changing this forces a new resource to be created.
    """
    location: kulado.Output[str]
    """
    Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
    """
    name: kulado.Output[str]
    """
    Specifies the name of the Container Group. Changing this forces a new resource to be created.
    """
    os_type: kulado.Output[str]
    """
    The OS for the container group. Allowed values are `Linux` and `Windows`. Changing this forces a new resource to be created.
    """
    resource_group_name: kulado.Output[str]
    """
    The name of the resource group in which to create the Container Group. Changing this forces a new resource to be created.
    """
    restart_policy: kulado.Output[str]
    """
    Restart policy for the container group. Allowed values are `Always`, `Never`, `OnFailure`. Defaults to `Always`. Changing this forces a new resource to be created.
    """
    tags: kulado.Output[dict]
    """
    A mapping of tags to assign to the resource. Changing this forces a new resource to be created.
    """
    def __init__(__self__, resource_name, opts=None, containers=None, diagnostics=None, dns_name_label=None, identity=None, image_registry_credentials=None, ip_address_type=None, location=None, name=None, os_type=None, resource_group_name=None, restart_policy=None, tags=None, __name__=None, __opts__=None):
        """
        Manage as an Azure Container Group instance.
        
        :param str resource_name: The name of the resource.
        :param kulado.ResourceOptions opts: Options for the resource.
        :param kulado.Input[list] containers: 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.
        :param kulado.Input[dict] diagnostics: A `diagnostics` block as documented below.
        :param kulado.Input[str] dns_name_label: The DNS label/name for the container groups IP. Changing this forces a new resource to be created.
        :param kulado.Input[dict] identity: An `identity` block as defined below.
        :param kulado.Input[list] image_registry_credentials: A `image_registry_credential` block as documented below. Changing this forces a new resource to be created.
        :param kulado.Input[str] ip_address_type: Specifies the ip address type of the container. `Public` is the only acceptable value at this time. Changing this forces a new resource to be created.
        :param kulado.Input[str] location: Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
        :param kulado.Input[str] name: Specifies the name of the Container Group. Changing this forces a new resource to be created.
        :param kulado.Input[str] os_type: The OS for the container group. Allowed values are `Linux` and `Windows`. Changing this forces a new resource to be created.
        :param kulado.Input[str] resource_group_name: The name of the resource group in which to create the Container Group. Changing this forces a new resource to be created.
        :param kulado.Input[str] restart_policy: Restart policy for the container group. Allowed values are `Always`, `Never`, `OnFailure`. Defaults to `Always`. Changing this forces a new resource to be created.
        :param kulado.Input[dict] tags: A mapping of tags to assign to the resource. Changing this forces a new resource to be created.

        > This content is derived from https://github.com/terraform-providers/terraform-provider-azurerm/blob/master/website/docs/r/container_group.html.markdown.
        """
        if __name__ is not None:
            warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning)
            resource_name = __name__
        if __opts__ is not None:
            warnings.warn("explicit use of __opts__ is deprecated, use 'opts' instead", DeprecationWarning)
            opts = __opts__
        if not resource_name:
            raise TypeError('Missing resource name argument (for URN creation)')
        if not isinstance(resource_name, str):
            raise TypeError('Expected resource name to be a string')
        if opts and not isinstance(opts, kulado.ResourceOptions):
            raise TypeError('Expected resource options to be a ResourceOptions instance')

        __props__ = dict()

        if containers is None:
            raise TypeError("Missing required property 'containers'")
        __props__['containers'] = containers

        __props__['diagnostics'] = diagnostics

        __props__['dns_name_label'] = dns_name_label

        __props__['identity'] = identity

        __props__['image_registry_credentials'] = image_registry_credentials

        __props__['ip_address_type'] = ip_address_type

        __props__['location'] = location

        __props__['name'] = name

        if os_type is None:
            raise TypeError("Missing required property 'os_type'")
        __props__['os_type'] = os_type

        if resource_group_name is None:
            raise TypeError("Missing required property 'resource_group_name'")
        __props__['resource_group_name'] = resource_group_name

        __props__['restart_policy'] = restart_policy

        __props__['tags'] = tags

        __props__['fqdn'] = None
        __props__['ip_address'] = None

        super(Group, __self__).__init__(
            'azure:containerservice/group:Group',
            resource_name,
            __props__,
            opts)


    def translate_output_property(self, prop):
        return tables._CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop

    def translate_input_property(self, prop):
        return tables._SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop
# coding=utf-8 # *** WARNING: this file was generated by the Kulado Terraform Bridge (tfgen) Tool. *** # *** Do not edit by hand unless you're certain you know what you are doing! *** 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. A `diagnostics` block as documented below. The DNS label/name for the container groups IP. Changing this forces a new resource to be created. The FQDN of the container group derived from `dns_name_label`. An `identity` block as defined below. A `image_registry_credential` block as documented below. Changing this forces a new resource to be created. The IP address allocated to the container group. Specifies the ip address type of the container. `Public` is the only acceptable value at this time. Changing this forces a new resource to be created. Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created. Specifies the name of the Container Group. Changing this forces a new resource to be created. The OS for the container group. Allowed values are `Linux` and `Windows`. Changing this forces a new resource to be created. The name of the resource group in which to create the Container Group. Changing this forces a new resource to be created. Restart policy for the container group. Allowed values are `Always`, `Never`, `OnFailure`. Defaults to `Always`. Changing this forces a new resource to be created. A mapping of tags to assign to the resource. Changing this forces a new resource to be created. Manage as an Azure Container Group instance.                  :param str resource_name: The name of the resource.         :param kulado.ResourceOptions opts: Options for the resource.         :param kulado.Input[list] containers: 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.         :param kulado.Input[dict] diagnostics: A `diagnostics` block as documented below.         :param kulado.Input[str] dns_name_label: The DNS label/name for the container groups IP. Changing this forces a new resource to be created.         :param kulado.Input[dict] identity: An `identity` block as defined below.         :param kulado.Input[list] image_registry_credentials: A `image_registry_credential` block as documented below. Changing this forces a new resource to be created.         :param kulado.Input[str] ip_address_type: Specifies the ip address type of the container. `Public` is the only acceptable value at this time. Changing this forces a new resource to be created.         :param kulado.Input[str] location: Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.         :param kulado.Input[str] name: Specifies the name of the Container Group. Changing this forces a new resource to be created.         :param kulado.Input[str] os_type: The OS for the container group. Allowed values are `Linux` and `Windows`. Changing this forces a new resource to be created.         :param kulado.Input[str] resource_group_name: The name of the resource group in which to create the Container Group. Changing this forces a new resource to be created.         :param kulado.Input[str] restart_policy: Restart policy for the container group. Allowed values are `Always`, `Never`, `OnFailure`. Defaults to `Always`. Changing this forces a new resource to be created.         :param kulado.Input[dict] tags: A mapping of tags to assign to the resource. Changing this forces a new resource to be created.          > This content is derived from https://github.com/terraform-providers/terraform-provider-azurerm/blob/master/website/docs/r/container_group.html.markdown.