<gh_stars>0
# 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 Service(kulado.CustomResource):
    additional_location: kulado.Output[dict]
    """
    One or more `additional_location` blocks as defined below.
    """
    certificates: kulado.Output[list]
    """
    One or more (up to 10) `certificate` blocks as defined below.
    """
    gateway_regional_url: kulado.Output[str]
    """
    The URL of the Regional Gateway for the API Management Service in the specified region.
    """
    gateway_url: kulado.Output[str]
    """
    The URL of the Gateway for the API Management Service.
    """
    hostname_configuration: kulado.Output[dict]
    """
    A `hostname_configuration` block as defined below.
    """
    identity: kulado.Output[dict]
    """
    An `identity` block is documented below.
    """
    location: kulado.Output[str]
    """
    The Azure location where the API Management Service exists. Changing this forces a new resource to be created.
    """
    management_api_url: kulado.Output[str]
    """
    The URL for the Management API associated with this API Management service.
    """
    name: kulado.Output[str]
    """
    The name of the API Management Service. Changing this forces a new resource to be created.
    """
    notification_sender_email: kulado.Output[str]
    """
    Email address from which the notification will be sent.
    """
    policy: kulado.Output[dict]
    """
    A `policy` block as defined below.
    """
    portal_url: kulado.Output[str]
    """
    The URL for the Publisher Portal associated with this API Management service.
    """
    public_ip_addresses: kulado.Output[list]
    """
    Public Static Load Balanced IP addresses of the API Management service in the additional location. Available only for Basic, Standard and Premium SKU.
    """
    publisher_email: kulado.Output[str]
    """
    The email of publisher/company.
    """
    publisher_name: kulado.Output[str]
    """
    The name of publisher/company.
    """
    resource_group_name: kulado.Output[str]
    """
    The name of the Resource Group in which the API Management Service should be exist. Changing this forces a new resource to be created.
    """
    scm_url: kulado.Output[str]
    """
    The URL for the SCM (Source Code Management) Endpoint associated with this API Management service.
    """
    security: kulado.Output[dict]
    """
    A `security` block as defined below.
    """
    sign_in: kulado.Output[dict]
    """
    A `sign_in` block as defined below.
    """
    sign_up: kulado.Output[dict]
    """
    A `sign_up` block as defined below.
    """
    sku: kulado.Output[dict]
    """
    A `sku` block as documented below.
    """
    tags: kulado.Output[dict]
    """
    A mapping of tags assigned to the resource.
    """
    def __init__(__self__, resource_name, opts=None, additional_location=None, certificates=None, hostname_configuration=None, identity=None, location=None, name=None, notification_sender_email=None, policy=None, publisher_email=None, publisher_name=None, resource_group_name=None, security=None, sign_in=None, sign_up=None, sku=None, tags=None, __name__=None, __opts__=None):
        """
        Manages an API Management Service.
        
        :param str resource_name: The name of the resource.
        :param kulado.ResourceOptions opts: Options for the resource.
        :param kulado.Input[dict] additional_location: One or more `additional_location` blocks as defined below.
        :param kulado.Input[list] certificates: One or more (up to 10) `certificate` blocks as defined below.
        :param kulado.Input[dict] hostname_configuration: A `hostname_configuration` block as defined below.
        :param kulado.Input[dict] identity: An `identity` block is documented below.
        :param kulado.Input[str] location: The Azure location where the API Management Service exists. Changing this forces a new resource to be created.
        :param kulado.Input[str] name: The name of the API Management Service. Changing this forces a new resource to be created.
        :param kulado.Input[str] notification_sender_email: Email address from which the notification will be sent.
        :param kulado.Input[dict] policy: A `policy` block as defined below.
        :param kulado.Input[str] publisher_email: The email of publisher/company.
        :param kulado.Input[str] publisher_name: The name of publisher/company.
        :param kulado.Input[str] resource_group_name: The name of the Resource Group in which the API Management Service should be exist. Changing this forces a new resource to be created.
        :param kulado.Input[dict] security: A `security` block as defined below.
        :param kulado.Input[dict] sign_in: A `sign_in` block as defined below.
        :param kulado.Input[dict] sign_up: A `sign_up` block as defined below.
        :param kulado.Input[dict] sku: A `sku` block as documented below.
        :param kulado.Input[dict] tags: A mapping of tags assigned to the resource.

        > This content is derived from https://github.com/terraform-providers/terraform-provider-azurerm/blob/master/website/docs/r/api_management.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()

        __props__['additional_location'] = additional_location

        __props__['certificates'] = certificates

        __props__['hostname_configuration'] = hostname_configuration

        __props__['identity'] = identity

        __props__['location'] = location

        __props__['name'] = name

        __props__['notification_sender_email'] = notification_sender_email

        __props__['policy'] = policy

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

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

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

        __props__['security'] = security

        __props__['sign_in'] = sign_in

        __props__['sign_up'] = sign_up

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

        __props__['tags'] = tags

        __props__['gateway_regional_url'] = None
        __props__['gateway_url'] = None
        __props__['management_api_url'] = None
        __props__['portal_url'] = None
        __props__['public_ip_addresses'] = None
        __props__['scm_url'] = None

        super(Service, __self__).__init__(
            'azure:apimanagement/service:Service',
            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 Service(kulado.CustomResource):
    additional_location: kulado.Output[dict]
    """
    One or more `additional_location` blocks as defined below.
    """
    certificates: kulado.Output[list]
    """
    One or more (up to 10) `certificate` blocks as defined below.
    """
    gateway_regional_url: kulado.Output[str]
    """
    The URL of the Regional Gateway for the API Management Service in the specified region.
    """
    gateway_url: kulado.Output[str]
    """
    The URL of the Gateway for the API Management Service.
    """
    hostname_configuration: kulado.Output[dict]
    """
    A `hostname_configuration` block as defined below.
    """
    identity: kulado.Output[dict]
    """
    An `identity` block is documented below.
    """
    location: kulado.Output[str]
    """
    The Azure location where the API Management Service exists. Changing this forces a new resource to be created.
    """
    management_api_url: kulado.Output[str]
    """
    The URL for the Management API associated with this API Management service.
    """
    name: kulado.Output[str]
    """
    The name of the API Management Service. Changing this forces a new resource to be created.
    """
    notification_sender_email: kulado.Output[str]
    """
    Email address from which the notification will be sent.
    """
    policy: kulado.Output[dict]
    """
    A `policy` block as defined below.
    """
    portal_url: kulado.Output[str]
    """
    The URL for the Publisher Portal associated with this API Management service.
    """
    public_ip_addresses: kulado.Output[list]
    """
    Public Static Load Balanced IP addresses of the API Management service in the additional location. Available only for Basic, Standard and Premium SKU.
    """
    publisher_email: kulado.Output[str]
    """
    The email of publisher/company.
    """
    publisher_name: kulado.Output[str]
    """
    The name of publisher/company.
    """
    resource_group_name: kulado.Output[str]
    """
    The name of the Resource Group in which the API Management Service should be exist. Changing this forces a new resource to be created.
    """
    scm_url: kulado.Output[str]
    """
    The URL for the SCM (Source Code Management) Endpoint associated with this API Management service.
    """
    security: kulado.Output[dict]
    """
    A `security` block as defined below.
    """
    sign_in: kulado.Output[dict]
    """
    A `sign_in` block as defined below.
    """
    sign_up: kulado.Output[dict]
    """
    A `sign_up` block as defined below.
    """
    sku: kulado.Output[dict]
    """
    A `sku` block as documented below.
    """
    tags: kulado.Output[dict]
    """
    A mapping of tags assigned to the resource.
    """
    def __init__(__self__, resource_name, opts=None, additional_location=None, certificates=None, hostname_configuration=None, identity=None, location=None, name=None, notification_sender_email=None, policy=None, publisher_email=None, publisher_name=None, resource_group_name=None, security=None, sign_in=None, sign_up=None, sku=None, tags=None, __name__=None, __opts__=None):
        """
        Manages an API Management Service.
        
        :param str resource_name: The name of the resource.
        :param kulado.ResourceOptions opts: Options for the resource.
        :param kulado.Input[dict] additional_location: One or more `additional_location` blocks as defined below.
        :param kulado.Input[list] certificates: One or more (up to 10) `certificate` blocks as defined below.
        :param kulado.Input[dict] hostname_configuration: A `hostname_configuration` block as defined below.
        :param kulado.Input[dict] identity: An `identity` block is documented below.
        :param kulado.Input[str] location: The Azure location where the API Management Service exists. Changing this forces a new resource to be created.
        :param kulado.Input[str] name: The name of the API Management Service. Changing this forces a new resource to be created.
        :param kulado.Input[str] notification_sender_email: Email address from which the notification will be sent.
        :param kulado.Input[dict] policy: A `policy` block as defined below.
        :param kulado.Input[str] publisher_email: The email of publisher/company.
        :param kulado.Input[str] publisher_name: The name of publisher/company.
        :param kulado.Input[str] resource_group_name: The name of the Resource Group in which the API Management Service should be exist. Changing this forces a new resource to be created.
        :param kulado.Input[dict] security: A `security` block as defined below.
        :param kulado.Input[dict] sign_in: A `sign_in` block as defined below.
        :param kulado.Input[dict] sign_up: A `sign_up` block as defined below.
        :param kulado.Input[dict] sku: A `sku` block as documented below.
        :param kulado.Input[dict] tags: A mapping of tags assigned to the resource.

        > This content is derived from https://github.com/terraform-providers/terraform-provider-azurerm/blob/master/website/docs/r/api_management.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()

        __props__['additional_location'] = additional_location

        __props__['certificates'] = certificates

        __props__['hostname_configuration'] = hostname_configuration

        __props__['identity'] = identity

        __props__['location'] = location

        __props__['name'] = name

        __props__['notification_sender_email'] = notification_sender_email

        __props__['policy'] = policy

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

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

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

        __props__['security'] = security

        __props__['sign_in'] = sign_in

        __props__['sign_up'] = sign_up

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

        __props__['tags'] = tags

        __props__['gateway_regional_url'] = None
        __props__['gateway_url'] = None
        __props__['management_api_url'] = None
        __props__['portal_url'] = None
        __props__['public_ip_addresses'] = None
        __props__['scm_url'] = None

        super(Service, __self__).__init__(
            'azure:apimanagement/service:Service',
            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! *** One or more `additional_location` blocks as defined below. One or more (up to 10) `certificate` blocks as defined below. The URL of the Regional Gateway for the API Management Service in the specified region. The URL of the Gateway for the API Management Service. A `hostname_configuration` block as defined below. An `identity` block is documented below. The Azure location where the API Management Service exists. Changing this forces a new resource to be created. The URL for the Management API associated with this API Management service. The name of the API Management Service. Changing this forces a new resource to be created. Email address from which the notification will be sent. A `policy` block as defined below. The URL for the Publisher Portal associated with this API Management service. Public Static Load Balanced IP addresses of the API Management service in the additional location. Available only for Basic, Standard and Premium SKU. The email of publisher/company. The name of publisher/company. The name of the Resource Group in which the API Management Service should be exist. Changing this forces a new resource to be created. The URL for the SCM (Source Code Management) Endpoint associated with this API Management service. A `security` block as defined below. A `sign_in` block as defined below. A `sign_up` block as defined below. A `sku` block as documented below. A mapping of tags assigned to the resource. Manages an API Management Service.                  :param str resource_name: The name of the resource.         :param kulado.ResourceOptions opts: Options for the resource.         :param kulado.Input[dict] additional_location: One or more `additional_location` blocks as defined below.         :param kulado.Input[list] certificates: One or more (up to 10) `certificate` blocks as defined below.         :param kulado.Input[dict] hostname_configuration: A `hostname_configuration` block as defined below.         :param kulado.Input[dict] identity: An `identity` block is documented below.         :param kulado.Input[str] location: The Azure location where the API Management Service exists. Changing this forces a new resource to be created.         :param kulado.Input[str] name: The name of the API Management Service. Changing this forces a new resource to be created.         :param kulado.Input[str] notification_sender_email: Email address from which the notification will be sent.         :param kulado.Input[dict] policy: A `policy` block as defined below.         :param kulado.Input[str] publisher_email: The email of publisher/company.         :param kulado.Input[str] publisher_name: The name of publisher/company.         :param kulado.Input[str] resource_group_name: The name of the Resource Group in which the API Management Service should be exist. Changing this forces a new resource to be created.         :param kulado.Input[dict] security: A `security` block as defined below.         :param kulado.Input[dict] sign_in: A `sign_in` block as defined below.         :param kulado.Input[dict] sign_up: A `sign_up` block as defined below.         :param kulado.Input[dict] sku: A `sku` block as documented below.         :param kulado.Input[dict] tags: A mapping of tags assigned to the resource.          > This content is derived from https://github.com/terraform-providers/terraform-provider-azurerm/blob/master/website/docs/r/api_management.html.markdown.