From 07e915659e6855adfa33f258c76b12ace85a0e79 Mon Sep 17 00:00:00 2001 From: xinyu pang <1042945277@qq.com> Date: Tue, 18 Apr 2023 16:21:11 +0800 Subject: [PATCH 1/5] copy sdk model for 1101preview api-version --- .../_container_apps_api_client_enums.py | 303 + .../azext_containerapp/_sdk_models.py | 9557 ++++++++++++----- 2 files changed, 7326 insertions(+), 2534 deletions(-) create mode 100644 src/containerapp/azext_containerapp/_container_apps_api_client_enums.py diff --git a/src/containerapp/azext_containerapp/_container_apps_api_client_enums.py b/src/containerapp/azext_containerapp/_container_apps_api_client_enums.py new file mode 100644 index 00000000000..2edbcb24261 --- /dev/null +++ b/src/containerapp/azext_containerapp/_container_apps_api_client_enums.py @@ -0,0 +1,303 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from enum import Enum +from azure.core import CaseInsensitiveEnumMeta + + +class AccessMode(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Access mode for storage.""" + + READ_ONLY = "ReadOnly" + READ_WRITE = "ReadWrite" + + +class Action(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Allow or Deny rules to determine for incoming IP. Note: Rules can only consist of ALL Allow or + ALL Deny. + """ + + ALLOW = "Allow" + DENY = "Deny" + + +class ActiveRevisionsMode(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """ActiveRevisionsMode controls how active revisions are handled for the Container app: + + + .. raw:: html + + Multiple: multiple revisions can be active.Single: Only one + revision can be active at a time. Revision weights can not be used in this mode. If no value if + provided, this is the default.. + """ + + MULTIPLE = "Multiple" + SINGLE = "Single" + + +class Affinity(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Sticky Session Affinity.""" + + STICKY = "sticky" + NONE = "none" + + +class Applicability(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """indicates whether the profile is default for the location.""" + + LOCATION_DEFAULT = "LocationDefault" + CUSTOM = "Custom" + + +class AppProtocol(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Tells Dapr which protocol your application is using. Valid options are http and grpc. Default + is http. + """ + + HTTP = "http" + GRPC = "grpc" + + +class BindingType(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Custom Domain binding type.""" + + DISABLED = "Disabled" + SNI_ENABLED = "SniEnabled" + + +class CertificateProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Provisioning state of the certificate.""" + + SUCCEEDED = "Succeeded" + FAILED = "Failed" + CANCELED = "Canceled" + DELETE_FAILED = "DeleteFailed" + PENDING = "Pending" + + +class CheckNameAvailabilityReason(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """The reason why the given name is not available.""" + + INVALID = "Invalid" + ALREADY_EXISTS = "AlreadyExists" + + +class ConnectedEnvironmentProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Provisioning state of the Kubernetes Environment.""" + + SUCCEEDED = "Succeeded" + FAILED = "Failed" + CANCELED = "Canceled" + WAITING = "Waiting" + INITIALIZATION_IN_PROGRESS = "InitializationInProgress" + INFRASTRUCTURE_SETUP_IN_PROGRESS = "InfrastructureSetupInProgress" + INFRASTRUCTURE_SETUP_COMPLETE = "InfrastructureSetupComplete" + SCHEDULED_FOR_DELETE = "ScheduledForDelete" + + +class ContainerAppProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Provisioning state of the Container App.""" + + IN_PROGRESS = "InProgress" + SUCCEEDED = "Succeeded" + FAILED = "Failed" + CANCELED = "Canceled" + DELETING = "Deleting" + + +class CookieExpirationConvention(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """The convention used when determining the session cookie's expiration.""" + + FIXED_TIME = "FixedTime" + IDENTITY_PROVIDER_DERIVED = "IdentityProviderDerived" + + +class CreatedByType(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """The type of identity that created the resource.""" + + USER = "User" + APPLICATION = "Application" + MANAGED_IDENTITY = "ManagedIdentity" + KEY = "Key" + + +class DnsVerificationTestResult(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """DNS verification test result.""" + + PASSED = "Passed" + FAILED = "Failed" + SKIPPED = "Skipped" + + +class EnvironmentProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Provisioning state of the Environment.""" + + SUCCEEDED = "Succeeded" + FAILED = "Failed" + CANCELED = "Canceled" + WAITING = "Waiting" + INITIALIZATION_IN_PROGRESS = "InitializationInProgress" + INFRASTRUCTURE_SETUP_IN_PROGRESS = "InfrastructureSetupInProgress" + INFRASTRUCTURE_SETUP_COMPLETE = "InfrastructureSetupComplete" + SCHEDULED_FOR_DELETE = "ScheduledForDelete" + UPGRADE_REQUESTED = "UpgradeRequested" + UPGRADE_FAILED = "UpgradeFailed" + + +class ExtendedLocationTypes(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """The type of extendedLocation.""" + + CUSTOM_LOCATION = "CustomLocation" + + +class ForwardProxyConvention(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """The convention used to determine the url of the request made.""" + + NO_PROXY = "NoProxy" + STANDARD = "Standard" + CUSTOM = "Custom" + + +class IngressClientCertificateMode(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Client certificate mode for mTLS authentication. Ignore indicates server drops client + certificate on forwarding. Accept indicates server forwards client certificate but does not + require a client certificate. Require indicates server requires a client certificate. + """ + + IGNORE = "ignore" + ACCEPT = "accept" + REQUIRE = "require" + + +class IngressTransportMethod(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Ingress transport protocol.""" + + AUTO = "auto" + HTTP = "http" + HTTP2 = "http2" + TCP = "tcp" + + +class JobExecutionRunningState(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Current running State of the job.""" + + RUNNING = "Running" + PROCESSING = "Processing" + STOPPED = "Stopped" + DEGRADED = "Degraded" + FAILED = "Failed" + UNKNOWN = "Unknown" + SUCCEEDED = "Succeeded" + + +class JobProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Provisioning state of the Container Apps Job.""" + + IN_PROGRESS = "InProgress" + SUCCEEDED = "Succeeded" + FAILED = "Failed" + CANCELED = "Canceled" + DELETING = "Deleting" + + +class LogLevel(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default + is info. + """ + + INFO = "info" + DEBUG = "debug" + WARN = "warn" + ERROR = "error" + + +class ManagedCertificateDomainControlValidation(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Selected type of domain control validation for managed certificates.""" + + CNAME = "CNAME" + HTTP = "HTTP" + TXT = "TXT" + + +class ManagedServiceIdentityType(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Type of managed service identity (where both SystemAssigned and UserAssigned types are + allowed). + """ + + NONE = "None" + SYSTEM_ASSIGNED = "SystemAssigned" + USER_ASSIGNED = "UserAssigned" + SYSTEM_ASSIGNED_USER_ASSIGNED = "SystemAssigned,UserAssigned" + + +class RevisionHealthState(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Current health State of the revision.""" + + HEALTHY = "Healthy" + UNHEALTHY = "Unhealthy" + NONE = "None" + + +class RevisionProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Current provisioning State of the revision.""" + + PROVISIONING = "Provisioning" + PROVISIONED = "Provisioned" + FAILED = "Failed" + DEPROVISIONING = "Deprovisioning" + DEPROVISIONED = "Deprovisioned" + + +class Scheme(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Scheme to use for connecting to the host. Defaults to HTTP.""" + + HTTP = "HTTP" + HTTPS = "HTTPS" + + +class SourceControlOperationState(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Current provisioning State of the operation.""" + + IN_PROGRESS = "InProgress" + SUCCEEDED = "Succeeded" + FAILED = "Failed" + CANCELED = "Canceled" + + +class StorageType(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Storage type for the volume. If not provided, use EmptyDir.""" + + AZURE_FILE = "AzureFile" + EMPTY_DIR = "EmptyDir" + SECRET = "Secret" + + +class TriggerType(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Trigger type of the job.""" + + SCHEDULED = "Scheduled" + EVENT = "Event" + MANUAL = "Manual" + + +class Type(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """The type of probe.""" + + LIVENESS = "Liveness" + READINESS = "Readiness" + STARTUP = "Startup" + + +class UnauthenticatedClientActionV2(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """The action to take when an unauthenticated client attempts to access the app.""" + + REDIRECT_TO_LOGIN_PAGE = "RedirectToLoginPage" + ALLOW_ANONYMOUS = "AllowAnonymous" + RETURN401 = "Return401" + RETURN403 = "Return403" diff --git a/src/containerapp/azext_containerapp/_sdk_models.py b/src/containerapp/azext_containerapp/_sdk_models.py index 9b6c9b297b1..f5ed7067aed 100644 --- a/src/containerapp/azext_containerapp/_sdk_models.py +++ b/src/containerapp/azext_containerapp/_sdk_models.py @@ -1,165 +1,248 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - # coding=utf-8 +# pylint: disable=too-many-lines # -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. # Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -# pylint: disable=line-too-long, super-with-arguments, too-many-instance-attributes -from msrest.serialization import Model -from msrest.exceptions import HttpOperationError +import datetime +import sys +from typing import Any, Dict, List, Optional, Union + +import msrest.serialization as _serialization +import azext_containerapp as _models + +if sys.version_info >= (3, 9): + from collections.abc import MutableMapping +else: + from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports +if sys.version_info >= (3, 8): + from typing import Literal # pylint: disable=no-name-in-module, ungrouped-imports +else: + from typing_extensions import Literal # type: ignore # pylint: disable=ungrouped-imports + +JSON = MutableMapping[str, Any] # pylint: disable=unsubscriptable-object -class AllowedAudiencesValidation(Model): +class AllowedAudiencesValidation(_serialization.Model): """The configuration settings of the Allowed Audiences validation flow. - :param allowed_audiences: The configuration settings of the allowed list - of audiences from which to validate the JWT token. - :type allowed_audiences: list[str] + :ivar allowed_audiences: The configuration settings of the allowed list of audiences from which + to validate the JWT token. + :vartype allowed_audiences: list[str] """ _attribute_map = { - 'allowed_audiences': {'key': 'allowedAudiences', 'type': '[str]'}, + "allowed_audiences": {"key": "allowedAudiences", "type": "[str]"}, } - def __init__(self, **kwargs): - super(AllowedAudiencesValidation, self).__init__(**kwargs) - self.allowed_audiences = kwargs.get('allowed_audiences', None) + def __init__(self, *, allowed_audiences: Optional[List[str]] = None, **kwargs: Any) -> None: + """ + :keyword allowed_audiences: The configuration settings of the allowed list of audiences from + which to validate the JWT token. + :paramtype allowed_audiences: list[str] + """ + super().__init__(**kwargs) + self.allowed_audiences = allowed_audiences -class Apple(Model): - """The configuration settings of the Apple provider. +class AllowedPrincipals(_serialization.Model): + """The configuration settings of the Azure Active Directory allowed principals. - :param state: Disabled if the Apple provider should not be - enabled despite the set registration; otherwise, Enabled. - Possible values include: 'Enabled', 'Disabled' - :type state: str or ~commondefinitions.models.IdentityProviderState - :param registration: The configuration settings of the Apple registration. - :type registration: ~commondefinitions.models.AppleRegistration - :param login: The configuration settings of the login flow. - :type login: ~commondefinitions.models.LoginScopes + :ivar groups: The list of the allowed groups. + :vartype groups: list[str] + :ivar identities: The list of the allowed identities. + :vartype identities: list[str] """ _attribute_map = { - 'state': {'key': 'state', 'type': 'str'}, - 'registration': {'key': 'registration', 'type': 'AppleRegistration'}, - 'login': {'key': 'login', 'type': 'LoginScopes'}, + "groups": {"key": "groups", "type": "[str]"}, + "identities": {"key": "identities", "type": "[str]"}, } - def __init__(self, **kwargs): - super(Apple, self).__init__(**kwargs) - self.state = kwargs.get('state', None) - self.registration = kwargs.get('registration', None) - self.login = kwargs.get('login', None) + def __init__( + self, *, groups: Optional[List[str]] = None, identities: Optional[List[str]] = None, **kwargs: Any + ) -> None: + """ + :keyword groups: The list of the allowed groups. + :paramtype groups: list[str] + :keyword identities: The list of the allowed identities. + :paramtype identities: list[str] + """ + super().__init__(**kwargs) + self.groups = groups + self.identities = identities + + +class Apple(_serialization.Model): + """The configuration settings of the Apple provider. + :ivar enabled: :code:`false` if the Apple provider should not be enabled despite + the set registration; otherwise, :code:`true`. + :vartype enabled: bool + :ivar registration: The configuration settings of the Apple registration. + :vartype registration: ~azure.mgmt.appcontainers.models.AppleRegistration + :ivar login: The configuration settings of the login flow. + :vartype login: ~azure.mgmt.appcontainers.models.LoginScopes + """ -class AppleRegistration(Model): + _attribute_map = { + "enabled": {"key": "enabled", "type": "bool"}, + "registration": {"key": "registration", "type": "AppleRegistration"}, + "login": {"key": "login", "type": "LoginScopes"}, + } + + def __init__( + self, + *, + enabled: Optional[bool] = None, + registration: Optional["_models.AppleRegistration"] = None, + login: Optional["_models.LoginScopes"] = None, + **kwargs: Any + ) -> None: + """ + :keyword enabled: :code:`false` if the Apple provider should not be enabled + despite the set registration; otherwise, :code:`true`. + :paramtype enabled: bool + :keyword registration: The configuration settings of the Apple registration. + :paramtype registration: ~azure.mgmt.appcontainers.models.AppleRegistration + :keyword login: The configuration settings of the login flow. + :paramtype login: ~azure.mgmt.appcontainers.models.LoginScopes + """ + super().__init__(**kwargs) + self.enabled = enabled + self.registration = registration + self.login = login + + +class AppleRegistration(_serialization.Model): """The configuration settings of the registration for the Apple provider. - :param client_id: The Client ID of the app used for login. - :type client_id: str - :param client_secret_ref_name: The app secret ref name that contains the - client secret. - :type client_secret_ref_name: str + :ivar client_id: The Client ID of the app used for login. + :vartype client_id: str + :ivar client_secret_setting_name: The app setting name that contains the client secret. + :vartype client_secret_setting_name: str """ _attribute_map = { - 'client_id': {'key': 'clientId', 'type': 'str'}, - 'client_secret_ref_name': {'key': 'clientSecretRefName', 'type': 'str'}, + "client_id": {"key": "clientId", "type": "str"}, + "client_secret_setting_name": {"key": "clientSecretSettingName", "type": "str"}, } - def __init__(self, **kwargs): - super(AppleRegistration, self).__init__(**kwargs) - self.client_id = kwargs.get('client_id', None) - self.client_secret_ref_name = kwargs.get('client_secret_ref_name', None) + def __init__( + self, *, client_id: Optional[str] = None, client_secret_setting_name: Optional[str] = None, **kwargs: Any + ) -> None: + """ + :keyword client_id: The Client ID of the app used for login. + :paramtype client_id: str + :keyword client_secret_setting_name: The app setting name that contains the client secret. + :paramtype client_secret_setting_name: str + """ + super().__init__(**kwargs) + self.client_id = client_id + self.client_secret_setting_name = client_secret_setting_name -class AppLogsConfiguration(Model): +class AppLogsConfiguration(_serialization.Model): """Configuration of application logs. - :param destination: Logs destination - :type destination: str - :param log_analytics_configuration: Log Analytics configuration - :type log_analytics_configuration: - ~commondefinitions.models.LogAnalyticsConfiguration + :ivar destination: Logs destination. + :vartype destination: str + :ivar log_analytics_configuration: Log Analytics configuration. + :vartype log_analytics_configuration: + ~azure.mgmt.appcontainers.models.LogAnalyticsConfiguration """ _attribute_map = { - 'destination': {'key': 'destination', 'type': 'str'}, - 'log_analytics_configuration': {'key': 'logAnalyticsConfiguration', 'type': 'LogAnalyticsConfiguration'}, - } - - def __init__(self, **kwargs): - super(AppLogsConfiguration, self).__init__(**kwargs) - self.destination = kwargs.get('destination', None) - self.log_analytics_configuration = kwargs.get('log_analytics_configuration', None) - - -class AppRegistration(Model): - """The configuration settings of the app registration for providers that have - app ids and app secrets. - - :param app_id: The App ID of the app used for login. - :type app_id: str - :param app_secret_ref_name: The app secret ref name that contains the app - secret. - :type app_secret_ref_name: str + "destination": {"key": "destination", "type": "str"}, + "log_analytics_configuration": {"key": "logAnalyticsConfiguration", "type": "LogAnalyticsConfiguration"}, + } + + def __init__( + self, + *, + destination: Optional[str] = None, + log_analytics_configuration: Optional["_models.LogAnalyticsConfiguration"] = None, + **kwargs: Any + ) -> None: + """ + :keyword destination: Logs destination. + :paramtype destination: str + :keyword log_analytics_configuration: Log Analytics configuration. + :paramtype log_analytics_configuration: + ~azure.mgmt.appcontainers.models.LogAnalyticsConfiguration + """ + super().__init__(**kwargs) + self.destination = destination + self.log_analytics_configuration = log_analytics_configuration + + +class AppRegistration(_serialization.Model): + """The configuration settings of the app registration for providers that have app ids and app + secrets. + + :ivar app_id: The App ID of the app used for login. + :vartype app_id: str + :ivar app_secret_setting_name: The app setting name that contains the app secret. + :vartype app_secret_setting_name: str """ _attribute_map = { - 'app_id': {'key': 'appId', 'type': 'str'}, - 'app_secret_ref_name': {'key': 'appSecretRefName', 'type': 'str'}, + "app_id": {"key": "appId", "type": "str"}, + "app_secret_setting_name": {"key": "appSecretSettingName", "type": "str"}, } - def __init__(self, **kwargs): - super(AppRegistration, self).__init__(**kwargs) - self.app_id = kwargs.get('app_id', None) - self.app_secret_ref_name = kwargs.get('app_secret_ref_name', None) + def __init__( + self, *, app_id: Optional[str] = None, app_secret_setting_name: Optional[str] = None, **kwargs: Any + ) -> None: + """ + :keyword app_id: The App ID of the app used for login. + :paramtype app_id: str + :keyword app_secret_setting_name: The app setting name that contains the app secret. + :paramtype app_secret_setting_name: str + """ + super().__init__(**kwargs) + self.app_id = app_id + self.app_secret_setting_name = app_secret_setting_name -class Resource(Model): - """Resource. +class Resource(_serialization.Model): + """Common fields that are returned in the response for all Azure Resource Manager resources. - Common fields that are returned in the response for all Azure Resource - Manager resources. - - Variables are only populated by the server, and will be ignored when - sending a request. + Variables are only populated by the server, and will be ignored when sending a request. :ivar id: Fully qualified resource ID for the resource. Ex - - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str - :ivar name: The name of the resource + :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. E.g. - "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str - :ivar system_data: Azure Resource Manager metadata containing createdBy - and modifiedBy information. - :vartype system_data: ~commondefinitions.models.SystemData + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.appcontainers.models.SystemData """ _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'system_data': {'readonly': True}, + "id": {"readonly": True}, + "name": {"readonly": True}, + "type": {"readonly": True}, + "system_data": {"readonly": True}, } _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'system_data': {'key': 'systemData', 'type': 'SystemData'}, + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "system_data": {"key": "systemData", "type": "SystemData"}, } - def __init__(self, **kwargs): - super(Resource, self).__init__(**kwargs) + def __init__(self, **kwargs: Any) -> None: + """ """ + super().__init__(**kwargs) self.id = None self.name = None self.type = None @@ -167,609 +250,1151 @@ def __init__(self, **kwargs): class ProxyResource(Resource): - """Proxy Resource. - - The resource model definition for a Azure Resource Manager proxy resource. - It will not have tags and a location. + """The resource model definition for a Azure Resource Manager proxy resource. It will not have + tags and a location. - Variables are only populated by the server, and will be ignored when - sending a request. + Variables are only populated by the server, and will be ignored when sending a request. :ivar id: Fully qualified resource ID for the resource. Ex - - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str - :ivar name: The name of the resource + :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. E.g. - "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str - :ivar system_data: Azure Resource Manager metadata containing createdBy - and modifiedBy information. - :vartype system_data: ~commondefinitions.models.SystemData + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.appcontainers.models.SystemData """ _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'system_data': {'readonly': True}, + "id": {"readonly": True}, + "name": {"readonly": True}, + "type": {"readonly": True}, + "system_data": {"readonly": True}, } _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'system_data': {'key': 'systemData', 'type': 'SystemData'}, + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "system_data": {"key": "systemData", "type": "SystemData"}, } - # def __init__(self, **kwargs): - # super(ProxyResource, self).__init__(**kwargs) + def __init__(self, **kwargs: Any) -> None: + """ """ + super().__init__(**kwargs) class AuthConfig(ProxyResource): - """Configuration settings for the Azure ContainerApp Authentication / - Authorization feature. + """Configuration settings for the Azure ContainerApp Service Authentication / Authorization + feature. - Variables are only populated by the server, and will be ignored when - sending a request. + Variables are only populated by the server, and will be ignored when sending a request. :ivar id: Fully qualified resource ID for the resource. Ex - - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str - :ivar name: The name of the resource + :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. E.g. - "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str - :ivar system_data: Azure Resource Manager metadata containing createdBy - and modifiedBy information. - :vartype system_data: ~commondefinitions.models.SystemData - :param state: Enabled if the Authentication / Authorization - feature is enabled for the current app; otherwise, Disabled. - Possible values include: 'Enabled', 'Disabled' - :type state: str or ~commondefinitions.models.EasyAuthState - :param global_validation: The configuration settings that determines the - validation flow of users using ContainerApp Authentication/Authorization. - :type global_validation: ~commondefinitions.models.GlobalValidation - :param identity_providers: The configuration settings of each of the - identity providers used to configure ContainerApp + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.appcontainers.models.SystemData + :ivar platform: The configuration settings of the platform of ContainerApp Service Authentication/Authorization. - :type identity_providers: ~commondefinitions.models.IdentityProviders - :param login: The configuration settings of the login flow of users using - ContainerApp Authentication/Authorization. - :type login: ~commondefinitions.models.Login - :param http_settings: The configuration settings of the HTTP requests for - authentication and authorization requests made against ContainerApp + :vartype platform: ~azure.mgmt.appcontainers.models.AuthPlatform + :ivar global_validation: The configuration settings that determines the validation flow of + users using Service Authentication/Authorization. + :vartype global_validation: ~azure.mgmt.appcontainers.models.GlobalValidation + :ivar identity_providers: The configuration settings of each of the identity providers used to + configure ContainerApp Service Authentication/Authorization. + :vartype identity_providers: ~azure.mgmt.appcontainers.models.IdentityProviders + :ivar login: The configuration settings of the login flow of users using ContainerApp Service Authentication/Authorization. - :type http_settings: ~commondefinitions.models.HttpSettings + :vartype login: ~azure.mgmt.appcontainers.models.Login + :ivar http_settings: The configuration settings of the HTTP requests for authentication and + authorization requests made against ContainerApp Service Authentication/Authorization. + :vartype http_settings: ~azure.mgmt.appcontainers.models.HttpSettings """ _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'system_data': {'readonly': True}, + "id": {"readonly": True}, + "name": {"readonly": True}, + "type": {"readonly": True}, + "system_data": {"readonly": True}, } _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'system_data': {'key': 'systemData', 'type': 'SystemData'}, - 'state': {'key': 'properties.state', 'type': 'str'}, - 'global_validation': {'key': 'properties.globalValidation', 'type': 'GlobalValidation'}, - 'identity_providers': {'key': 'properties.identityProviders', 'type': 'IdentityProviders'}, - 'login': {'key': 'properties.login', 'type': 'Login'}, - 'http_settings': {'key': 'properties.httpSettings', 'type': 'HttpSettings'}, - } - - def __init__(self, **kwargs): - super(AuthConfig, self).__init__(**kwargs) - self.state = kwargs.get('state', None) - self.global_validation = kwargs.get('global_validation', None) - self.identity_providers = kwargs.get('identity_providers', None) - self.login = kwargs.get('login', None) - self.http_settings = kwargs.get('http_settings', None) - - -class AuthConfigCollection(Model): + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "system_data": {"key": "systemData", "type": "SystemData"}, + "platform": {"key": "properties.platform", "type": "AuthPlatform"}, + "global_validation": {"key": "properties.globalValidation", "type": "GlobalValidation"}, + "identity_providers": {"key": "properties.identityProviders", "type": "IdentityProviders"}, + "login": {"key": "properties.login", "type": "Login"}, + "http_settings": {"key": "properties.httpSettings", "type": "HttpSettings"}, + } + + def __init__( + self, + *, + platform: Optional["_models.AuthPlatform"] = None, + global_validation: Optional["_models.GlobalValidation"] = None, + identity_providers: Optional["_models.IdentityProviders"] = None, + login: Optional["_models.Login"] = None, + http_settings: Optional["_models.HttpSettings"] = None, + **kwargs: Any + ) -> None: + """ + :keyword platform: The configuration settings of the platform of ContainerApp Service + Authentication/Authorization. + :paramtype platform: ~azure.mgmt.appcontainers.models.AuthPlatform + :keyword global_validation: The configuration settings that determines the validation flow of + users using Service Authentication/Authorization. + :paramtype global_validation: ~azure.mgmt.appcontainers.models.GlobalValidation + :keyword identity_providers: The configuration settings of each of the identity providers used + to configure ContainerApp Service Authentication/Authorization. + :paramtype identity_providers: ~azure.mgmt.appcontainers.models.IdentityProviders + :keyword login: The configuration settings of the login flow of users using ContainerApp + Service Authentication/Authorization. + :paramtype login: ~azure.mgmt.appcontainers.models.Login + :keyword http_settings: The configuration settings of the HTTP requests for authentication and + authorization requests made against ContainerApp Service Authentication/Authorization. + :paramtype http_settings: ~azure.mgmt.appcontainers.models.HttpSettings + """ + super().__init__(**kwargs) + self.platform = platform + self.global_validation = global_validation + self.identity_providers = identity_providers + self.login = login + self.http_settings = http_settings + + +class AuthConfigCollection(_serialization.Model): """AuthConfig collection ARM resource. - Variables are only populated by the server, and will be ignored when - sending a request. + Variables are only populated by the server, and will be ignored when sending a request. All required parameters must be populated in order to send to Azure. - :param value: Required. Collection of resources. - :type value: list[~commondefinitions.models.AuthConfig] + :ivar value: Collection of resources. Required. + :vartype value: list[~azure.mgmt.appcontainers.models.AuthConfig] :ivar next_link: Link to next page of resources. :vartype next_link: str """ _validation = { - 'value': {'required': True}, - 'next_link': {'readonly': True}, + "value": {"required": True}, + "next_link": {"readonly": True}, } _attribute_map = { - 'value': {'key': 'value', 'type': '[AuthConfig]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, + "value": {"key": "value", "type": "[AuthConfig]"}, + "next_link": {"key": "nextLink", "type": "str"}, } - def __init__(self, **kwargs): - super(AuthConfigCollection, self).__init__(**kwargs) - self.value = kwargs.get('value', None) + def __init__(self, *, value: List["_models.AuthConfig"], **kwargs: Any) -> None: + """ + :keyword value: Collection of resources. Required. + :paramtype value: list[~azure.mgmt.appcontainers.models.AuthConfig] + """ + super().__init__(**kwargs) + self.value = value self.next_link = None -class AvailableOperations(Model): +class AuthPlatform(_serialization.Model): + """The configuration settings of the platform of ContainerApp Service + Authentication/Authorization. + + :ivar enabled: :code:`true` if the Authentication / Authorization feature is + enabled for the current app; otherwise, :code:`false`. + :vartype enabled: bool + :ivar runtime_version: The RuntimeVersion of the Authentication / Authorization feature in use + for the current app. + The setting in this value can control the behavior of certain features in the Authentication / + Authorization module. + :vartype runtime_version: str + """ + + _attribute_map = { + "enabled": {"key": "enabled", "type": "bool"}, + "runtime_version": {"key": "runtimeVersion", "type": "str"}, + } + + def __init__(self, *, enabled: Optional[bool] = None, runtime_version: Optional[str] = None, **kwargs: Any) -> None: + """ + :keyword enabled: :code:`true` if the Authentication / Authorization feature is + enabled for the current app; otherwise, :code:`false`. + :paramtype enabled: bool + :keyword runtime_version: The RuntimeVersion of the Authentication / Authorization feature in + use for the current app. + The setting in this value can control the behavior of certain features in the Authentication / + Authorization module. + :paramtype runtime_version: str + """ + super().__init__(**kwargs) + self.enabled = enabled + self.runtime_version = runtime_version + + +class AvailableOperations(_serialization.Model): """Available operations of the service. - :param value: Collection of available operation details - :type value: list[~commondefinitions.models.OperationDetail] - :param next_link: URL client should use to fetch the next page (per server - side paging). + :ivar value: Collection of available operation details. + :vartype value: list[~azure.mgmt.appcontainers.models.OperationDetail] + :ivar next_link: URL client should use to fetch the next page (per server side paging). It's null for now, added for future use. - :type next_link: str + :vartype next_link: str """ _attribute_map = { - 'value': {'key': 'value', 'type': '[OperationDetail]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, + "value": {"key": "value", "type": "[OperationDetail]"}, + "next_link": {"key": "nextLink", "type": "str"}, } - def __init__(self, **kwargs): - super(AvailableOperations, self).__init__(**kwargs) - self.value = kwargs.get('value', None) - self.next_link = kwargs.get('next_link', None) + def __init__( + self, *, value: Optional[List["_models.OperationDetail"]] = None, next_link: Optional[str] = None, **kwargs: Any + ) -> None: + """ + :keyword value: Collection of available operation details. + :paramtype value: list[~azure.mgmt.appcontainers.models.OperationDetail] + :keyword next_link: URL client should use to fetch the next page (per server side paging). + It's null for now, added for future use. + :paramtype next_link: str + """ + super().__init__(**kwargs) + self.value = value + self.next_link = next_link -class AzureActiveDirectory(Model): - """The configuration settings of the Azure Active directory provider. +class AvailableWorkloadProfile(ProxyResource): + """A workload profile with specific hardware configure to run container apps. + + Variables are only populated by the server, and will be ignored when sending a request. - :param state: Disabled if the Azure Active Directory provider - should not be enabled despite the set registration; otherwise, - Enabled. Possible values include: 'Enabled', 'Disabled' - :type state: str or ~commondefinitions.models.IdentityProviderState - :param registration: The configuration settings of the Azure Active - Directory app registration. - :type registration: - ~commondefinitions.models.AzureActiveDirectoryRegistration - :param login: The configuration settings of the Azure Active Directory - login flow. - :type login: ~commondefinitions.models.AzureActiveDirectoryLogin - :param validation: The configuration settings of the Azure Active - Directory token validation flow. - :type validation: ~commondefinitions.models.AzureActiveDirectoryValidation + :ivar id: Fully qualified resource ID for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". + :vartype type: str + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.appcontainers.models.SystemData + :ivar location: Region of the workload profile. + :vartype location: str + :ivar properties: Revision resource specific properties. + :vartype properties: ~azure.mgmt.appcontainers.models.AvailableWorkloadProfileProperties """ - _attribute_map = { - 'state': {'key': 'state', 'type': 'str'}, - 'registration': {'key': 'registration', 'type': 'AzureActiveDirectoryRegistration'}, - 'login': {'key': 'login', 'type': 'AzureActiveDirectoryLogin'}, - 'validation': {'key': 'validation', 'type': 'AzureActiveDirectoryValidation'}, + _validation = { + "id": {"readonly": True}, + "name": {"readonly": True}, + "type": {"readonly": True}, + "system_data": {"readonly": True}, } - def __init__(self, **kwargs): - super(AzureActiveDirectory, self).__init__(**kwargs) - self.state = kwargs.get('state', None) - self.registration = kwargs.get('registration', None) - self.login = kwargs.get('login', None) - self.validation = kwargs.get('validation', None) + _attribute_map = { + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "system_data": {"key": "systemData", "type": "SystemData"}, + "location": {"key": "location", "type": "str"}, + "properties": {"key": "properties", "type": "AvailableWorkloadProfileProperties"}, + } + + def __init__( + self, + *, + location: Optional[str] = None, + properties: Optional["_models.AvailableWorkloadProfileProperties"] = None, + **kwargs: Any + ) -> None: + """ + :keyword location: Region of the workload profile. + :paramtype location: str + :keyword properties: Revision resource specific properties. + :paramtype properties: ~azure.mgmt.appcontainers.models.AvailableWorkloadProfileProperties + """ + super().__init__(**kwargs) + self.location = location + self.properties = properties + + +class AvailableWorkloadProfileProperties(_serialization.Model): + """Revision resource specific properties. + + :ivar category: Used to categorize workload profiles. + :vartype category: str + :ivar applicability: indicates whether the profile is default for the location. Known values + are: "LocationDefault" and "Custom". + :vartype applicability: str or ~azure.mgmt.appcontainers.models.Applicability + :ivar cores: Number of cores in CPU. + :vartype cores: int + :ivar memory_gi_b: Memory in GiB. + :vartype memory_gi_b: int + :ivar display_name: The everyday name of the workload profile. + :vartype display_name: str + """ + _attribute_map = { + "category": {"key": "category", "type": "str"}, + "applicability": {"key": "applicability", "type": "str"}, + "cores": {"key": "cores", "type": "int"}, + "memory_gi_b": {"key": "memoryGiB", "type": "int"}, + "display_name": {"key": "displayName", "type": "str"}, + } + + def __init__( + self, + *, + category: Optional[str] = None, + applicability: Optional[Union[str, "_models.Applicability"]] = None, + cores: Optional[int] = None, + memory_gi_b: Optional[int] = None, + display_name: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword category: Used to categorize workload profiles. + :paramtype category: str + :keyword applicability: indicates whether the profile is default for the location. Known values + are: "LocationDefault" and "Custom". + :paramtype applicability: str or ~azure.mgmt.appcontainers.models.Applicability + :keyword cores: Number of cores in CPU. + :paramtype cores: int + :keyword memory_gi_b: Memory in GiB. + :paramtype memory_gi_b: int + :keyword display_name: The everyday name of the workload profile. + :paramtype display_name: str + """ + super().__init__(**kwargs) + self.category = category + self.applicability = applicability + self.cores = cores + self.memory_gi_b = memory_gi_b + self.display_name = display_name + + +class AvailableWorkloadProfilesCollection(_serialization.Model): + """Collection of available workload profiles in the location. + + Variables are only populated by the server, and will be ignored when sending a request. -class AzureActiveDirectoryLogin(Model): - """The configuration settings of the Azure Active Directory login flow. + All required parameters must be populated in order to send to Azure. - :param login_parameters: Login parameters to send to the OpenID Connect - authorization endpoint when - a user logs in. Each parameter must be in the form "key=value". - :type login_parameters: list[str] - :param disable_www_authenticate: true if the www-authenticate - provider should be omitted from the request; otherwise, - false. Possible values include: 'True', 'False' - :type disable_www_authenticate: str or - ~commondefinitions.models.DisableWwwAuthenticateMode + :ivar value: Collection of workload profiles. Required. + :vartype value: list[~azure.mgmt.appcontainers.models.AvailableWorkloadProfile] + :ivar next_link: Link to next page of resources. + :vartype next_link: str """ + _validation = { + "value": {"required": True}, + "next_link": {"readonly": True}, + } + _attribute_map = { - 'login_parameters': {'key': 'loginParameters', 'type': '[str]'}, - 'disable_www_authenticate': {'key': 'disableWwwAuthenticate', 'type': 'str'}, + "value": {"key": "value", "type": "[AvailableWorkloadProfile]"}, + "next_link": {"key": "nextLink", "type": "str"}, } - def __init__(self, **kwargs): - super(AzureActiveDirectoryLogin, self).__init__(**kwargs) - self.login_parameters = kwargs.get('login_parameters', None) - self.disable_www_authenticate = kwargs.get('disable_www_authenticate', None) + def __init__(self, *, value: List["_models.AvailableWorkloadProfile"], **kwargs: Any) -> None: + """ + :keyword value: Collection of workload profiles. Required. + :paramtype value: list[~azure.mgmt.appcontainers.models.AvailableWorkloadProfile] + """ + super().__init__(**kwargs) + self.value = value + self.next_link = None + + +class AzureActiveDirectory(_serialization.Model): + """The configuration settings of the Azure Active directory provider. + + :ivar enabled: :code:`false` if the Azure Active Directory provider should not be + enabled despite the set registration; otherwise, :code:`true`. + :vartype enabled: bool + :ivar registration: The configuration settings of the Azure Active Directory app registration. + :vartype registration: ~azure.mgmt.appcontainers.models.AzureActiveDirectoryRegistration + :ivar login: The configuration settings of the Azure Active Directory login flow. + :vartype login: ~azure.mgmt.appcontainers.models.AzureActiveDirectoryLogin + :ivar validation: The configuration settings of the Azure Active Directory token validation + flow. + :vartype validation: ~azure.mgmt.appcontainers.models.AzureActiveDirectoryValidation + :ivar is_auto_provisioned: Gets a value indicating whether the Azure AD configuration was + auto-provisioned using 1st party tooling. + This is an internal flag primarily intended to support the Azure Management Portal. Users + should not + read or write to this property. + :vartype is_auto_provisioned: bool + """ + + _attribute_map = { + "enabled": {"key": "enabled", "type": "bool"}, + "registration": {"key": "registration", "type": "AzureActiveDirectoryRegistration"}, + "login": {"key": "login", "type": "AzureActiveDirectoryLogin"}, + "validation": {"key": "validation", "type": "AzureActiveDirectoryValidation"}, + "is_auto_provisioned": {"key": "isAutoProvisioned", "type": "bool"}, + } + + def __init__( + self, + *, + enabled: Optional[bool] = None, + registration: Optional["_models.AzureActiveDirectoryRegistration"] = None, + login: Optional["_models.AzureActiveDirectoryLogin"] = None, + validation: Optional["_models.AzureActiveDirectoryValidation"] = None, + is_auto_provisioned: Optional[bool] = None, + **kwargs: Any + ) -> None: + """ + :keyword enabled: :code:`false` if the Azure Active Directory provider should not + be enabled despite the set registration; otherwise, :code:`true`. + :paramtype enabled: bool + :keyword registration: The configuration settings of the Azure Active Directory app + registration. + :paramtype registration: ~azure.mgmt.appcontainers.models.AzureActiveDirectoryRegistration + :keyword login: The configuration settings of the Azure Active Directory login flow. + :paramtype login: ~azure.mgmt.appcontainers.models.AzureActiveDirectoryLogin + :keyword validation: The configuration settings of the Azure Active Directory token validation + flow. + :paramtype validation: ~azure.mgmt.appcontainers.models.AzureActiveDirectoryValidation + :keyword is_auto_provisioned: Gets a value indicating whether the Azure AD configuration was + auto-provisioned using 1st party tooling. + This is an internal flag primarily intended to support the Azure Management Portal. Users + should not + read or write to this property. + :paramtype is_auto_provisioned: bool + """ + super().__init__(**kwargs) + self.enabled = enabled + self.registration = registration + self.login = login + self.validation = validation + self.is_auto_provisioned = is_auto_provisioned + + +class AzureActiveDirectoryLogin(_serialization.Model): + """The configuration settings of the Azure Active Directory login flow. + :ivar login_parameters: Login parameters to send to the OpenID Connect authorization endpoint + when + a user logs in. Each parameter must be in the form "key=value". + :vartype login_parameters: list[str] + :ivar disable_www_authenticate: :code:`true` if the www-authenticate provider + should be omitted from the request; otherwise, :code:`false`. + :vartype disable_www_authenticate: bool + """ -class AzureActiveDirectoryRegistration(Model): + _attribute_map = { + "login_parameters": {"key": "loginParameters", "type": "[str]"}, + "disable_www_authenticate": {"key": "disableWWWAuthenticate", "type": "bool"}, + } + + def __init__( + self, + *, + login_parameters: Optional[List[str]] = None, + disable_www_authenticate: Optional[bool] = None, + **kwargs: Any + ) -> None: + """ + :keyword login_parameters: Login parameters to send to the OpenID Connect authorization + endpoint when + a user logs in. Each parameter must be in the form "key=value". + :paramtype login_parameters: list[str] + :keyword disable_www_authenticate: :code:`true` if the www-authenticate provider + should be omitted from the request; otherwise, :code:`false`. + :paramtype disable_www_authenticate: bool + """ + super().__init__(**kwargs) + self.login_parameters = login_parameters + self.disable_www_authenticate = disable_www_authenticate + + +class AzureActiveDirectoryRegistration(_serialization.Model): """The configuration settings of the Azure Active Directory app registration. - :param open_id_issuer: The OpenID Connect Issuer URI that represents the - entity which issues access tokens for this application. - When using Azure Active Directory, this value is the URI of the directory - tenant, e.g. https://login.microsoftonline.com/v2.0/{tenant-guid}/. + :ivar open_id_issuer: The OpenID Connect Issuer URI that represents the entity which issues + access tokens for this application. + When using Azure Active Directory, this value is the URI of the directory tenant, e.g. + https://login.microsoftonline.com/v2.0/{tenant-guid}/. This URI is a case-sensitive identifier for the token issuer. More information on OpenID Connect Discovery: - http://openid.net/specs/openid-connect-discovery-1_0.html - :type open_id_issuer: str - :param client_id: The Client ID of this relying party application, known - as the client_id. - This setting is required for enabling OpenID Connection authentication - with Azure Active Directory or + http://openid.net/specs/openid-connect-discovery-1_0.html. + :vartype open_id_issuer: str + :ivar client_id: The Client ID of this relying party application, known as the client_id. + This setting is required for enabling OpenID Connection authentication with Azure Active + Directory or other 3rd party OpenID Connect providers. - More information on OpenID Connect: - http://openid.net/specs/openid-connect-core-1_0.html - :type client_id: str - :param client_secret_ref_name: The app secret ref name that contains the - client secret of the relying party application. - :type client_secret_ref_name: str - :param client_secret_certificate_thumbprint: An alternative to the client - secret, that is the thumbprint of a certificate used for signing purposes. - This property acts as + More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html. + :vartype client_id: str + :ivar client_secret_setting_name: The app setting name that contains the client secret of the + relying party application. + :vartype client_secret_setting_name: str + :ivar client_secret_certificate_thumbprint: An alternative to the client secret, that is the + thumbprint of a certificate used for signing purposes. This property acts as a replacement for the Client Secret. It is also optional. - :type client_secret_certificate_thumbprint: str - :param client_secret_certificate_subject_alternative_name: An alternative - to the client secret thumbprint, that is the subject alternative name of a - certificate used for signing purposes. This property acts as - a replacement for the Client Secret Certificate Thumbprint. It is also - optional. - :type client_secret_certificate_subject_alternative_name: str - :param client_secret_certificate_issuer: An alternative to the client - secret thumbprint, that is the issuer of a certificate used for signing - purposes. This property acts as - a replacement for the Client Secret Certificate Thumbprint. It is also - optional. - :type client_secret_certificate_issuer: str - """ - - _attribute_map = { - 'open_id_issuer': {'key': 'openIdIssuer', 'type': 'str'}, - 'client_id': {'key': 'clientId', 'type': 'str'}, - 'client_secret_ref_name': {'key': 'clientSecretRefName', 'type': 'str'}, - 'client_secret_certificate_thumbprint': {'key': 'clientSecretCertificateThumbprint', 'type': 'str'}, - 'client_secret_certificate_subject_alternative_name': {'key': 'clientSecretCertificateSubjectAlternativeName', 'type': 'str'}, - 'client_secret_certificate_issuer': {'key': 'clientSecretCertificateIssuer', 'type': 'str'}, - } - - def __init__(self, **kwargs): - super(AzureActiveDirectoryRegistration, self).__init__(**kwargs) - self.open_id_issuer = kwargs.get('open_id_issuer', None) - self.client_id = kwargs.get('client_id', None) - self.client_secret_ref_name = kwargs.get('client_secret_ref_name', None) - self.client_secret_certificate_thumbprint = kwargs.get('client_secret_certificate_thumbprint', None) - self.client_secret_certificate_subject_alternative_name = kwargs.get('client_secret_certificate_subject_alternative_name', None) - self.client_secret_certificate_issuer = kwargs.get('client_secret_certificate_issuer', None) - - -class AzureActiveDirectoryValidation(Model): - """The configuration settings of the Azure Active Directory token validation - flow. - - :param allowed_audiences: The list of audiences that can make successful + :vartype client_secret_certificate_thumbprint: str + :ivar client_secret_certificate_subject_alternative_name: An alternative to the client secret + thumbprint, that is the subject alternative name of a certificate used for signing purposes. + This property acts as + a replacement for the Client Secret Certificate Thumbprint. It is also optional. + :vartype client_secret_certificate_subject_alternative_name: str + :ivar client_secret_certificate_issuer: An alternative to the client secret thumbprint, that is + the issuer of a certificate used for signing purposes. This property acts as + a replacement for the Client Secret Certificate Thumbprint. It is also optional. + :vartype client_secret_certificate_issuer: str + """ + + _attribute_map = { + "open_id_issuer": {"key": "openIdIssuer", "type": "str"}, + "client_id": {"key": "clientId", "type": "str"}, + "client_secret_setting_name": {"key": "clientSecretSettingName", "type": "str"}, + "client_secret_certificate_thumbprint": {"key": "clientSecretCertificateThumbprint", "type": "str"}, + "client_secret_certificate_subject_alternative_name": { + "key": "clientSecretCertificateSubjectAlternativeName", + "type": "str", + }, + "client_secret_certificate_issuer": {"key": "clientSecretCertificateIssuer", "type": "str"}, + } + + def __init__( + self, + *, + open_id_issuer: Optional[str] = None, + client_id: Optional[str] = None, + client_secret_setting_name: Optional[str] = None, + client_secret_certificate_thumbprint: Optional[str] = None, + client_secret_certificate_subject_alternative_name: Optional[str] = None, + client_secret_certificate_issuer: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword open_id_issuer: The OpenID Connect Issuer URI that represents the entity which issues + access tokens for this application. + When using Azure Active Directory, this value is the URI of the directory tenant, e.g. + https://login.microsoftonline.com/v2.0/{tenant-guid}/. + This URI is a case-sensitive identifier for the token issuer. + More information on OpenID Connect Discovery: + http://openid.net/specs/openid-connect-discovery-1_0.html. + :paramtype open_id_issuer: str + :keyword client_id: The Client ID of this relying party application, known as the client_id. + This setting is required for enabling OpenID Connection authentication with Azure Active + Directory or + other 3rd party OpenID Connect providers. + More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html. + :paramtype client_id: str + :keyword client_secret_setting_name: The app setting name that contains the client secret of + the relying party application. + :paramtype client_secret_setting_name: str + :keyword client_secret_certificate_thumbprint: An alternative to the client secret, that is the + thumbprint of a certificate used for signing purposes. This property acts as + a replacement for the Client Secret. It is also optional. + :paramtype client_secret_certificate_thumbprint: str + :keyword client_secret_certificate_subject_alternative_name: An alternative to the client + secret thumbprint, that is the subject alternative name of a certificate used for signing + purposes. This property acts as + a replacement for the Client Secret Certificate Thumbprint. It is also optional. + :paramtype client_secret_certificate_subject_alternative_name: str + :keyword client_secret_certificate_issuer: An alternative to the client secret thumbprint, that + is the issuer of a certificate used for signing purposes. This property acts as + a replacement for the Client Secret Certificate Thumbprint. It is also optional. + :paramtype client_secret_certificate_issuer: str + """ + super().__init__(**kwargs) + self.open_id_issuer = open_id_issuer + self.client_id = client_id + self.client_secret_setting_name = client_secret_setting_name + self.client_secret_certificate_thumbprint = client_secret_certificate_thumbprint + self.client_secret_certificate_subject_alternative_name = client_secret_certificate_subject_alternative_name + self.client_secret_certificate_issuer = client_secret_certificate_issuer + + +class AzureActiveDirectoryValidation(_serialization.Model): + """The configuration settings of the Azure Active Directory token validation flow. + + :ivar jwt_claim_checks: The configuration settings of the checks that should be made while + validating the JWT Claims. + :vartype jwt_claim_checks: ~azure.mgmt.appcontainers.models.JwtClaimChecks + :ivar allowed_audiences: The list of audiences that can make successful authentication/authorization requests. - :type allowed_audiences: list[str] + :vartype allowed_audiences: list[str] + :ivar default_authorization_policy: The configuration settings of the default authorization + policy. + :vartype default_authorization_policy: + ~azure.mgmt.appcontainers.models.DefaultAuthorizationPolicy """ _attribute_map = { - 'allowed_audiences': {'key': 'allowedAudiences', 'type': '[str]'}, - } + "jwt_claim_checks": {"key": "jwtClaimChecks", "type": "JwtClaimChecks"}, + "allowed_audiences": {"key": "allowedAudiences", "type": "[str]"}, + "default_authorization_policy": {"key": "defaultAuthorizationPolicy", "type": "DefaultAuthorizationPolicy"}, + } + + def __init__( + self, + *, + jwt_claim_checks: Optional["_models.JwtClaimChecks"] = None, + allowed_audiences: Optional[List[str]] = None, + default_authorization_policy: Optional["_models.DefaultAuthorizationPolicy"] = None, + **kwargs: Any + ) -> None: + """ + :keyword jwt_claim_checks: The configuration settings of the checks that should be made while + validating the JWT Claims. + :paramtype jwt_claim_checks: ~azure.mgmt.appcontainers.models.JwtClaimChecks + :keyword allowed_audiences: The list of audiences that can make successful + authentication/authorization requests. + :paramtype allowed_audiences: list[str] + :keyword default_authorization_policy: The configuration settings of the default authorization + policy. + :paramtype default_authorization_policy: + ~azure.mgmt.appcontainers.models.DefaultAuthorizationPolicy + """ + super().__init__(**kwargs) + self.jwt_claim_checks = jwt_claim_checks + self.allowed_audiences = allowed_audiences + self.default_authorization_policy = default_authorization_policy + + +class AzureCredentials(_serialization.Model): + """Container App credentials. + + :ivar client_id: Client Id. + :vartype client_id: str + :ivar client_secret: Client Secret. + :vartype client_secret: str + :ivar tenant_id: Tenant Id. + :vartype tenant_id: str + :ivar subscription_id: Subscription Id. + :vartype subscription_id: str + """ - def __init__(self, **kwargs): - super(AzureActiveDirectoryValidation, self).__init__(**kwargs) - self.allowed_audiences = kwargs.get('allowed_audiences', None) + _attribute_map = { + "client_id": {"key": "clientId", "type": "str"}, + "client_secret": {"key": "clientSecret", "type": "str"}, + "tenant_id": {"key": "tenantId", "type": "str"}, + "subscription_id": {"key": "subscriptionId", "type": "str"}, + } + + def __init__( + self, + *, + client_id: Optional[str] = None, + client_secret: Optional[str] = None, + tenant_id: Optional[str] = None, + subscription_id: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword client_id: Client Id. + :paramtype client_id: str + :keyword client_secret: Client Secret. + :paramtype client_secret: str + :keyword tenant_id: Tenant Id. + :paramtype tenant_id: str + :keyword subscription_id: Subscription Id. + :paramtype subscription_id: str + """ + super().__init__(**kwargs) + self.client_id = client_id + self.client_secret = client_secret + self.tenant_id = tenant_id + self.subscription_id = subscription_id + + +class AzureFileProperties(_serialization.Model): + """Azure File Properties. + :ivar account_name: Storage account name for azure file. + :vartype account_name: str + :ivar account_key: Storage account key for azure file. + :vartype account_key: str + :ivar access_mode: Access mode for storage. Known values are: "ReadOnly" and "ReadWrite". + :vartype access_mode: str or ~azure.mgmt.appcontainers.models.AccessMode + :ivar share_name: Azure file share name. + :vartype share_name: str + """ -class AzureCredentials(Model): - """Container App credentials. + _attribute_map = { + "account_name": {"key": "accountName", "type": "str"}, + "account_key": {"key": "accountKey", "type": "str"}, + "access_mode": {"key": "accessMode", "type": "str"}, + "share_name": {"key": "shareName", "type": "str"}, + } + + def __init__( + self, + *, + account_name: Optional[str] = None, + account_key: Optional[str] = None, + access_mode: Optional[Union[str, "_models.AccessMode"]] = None, + share_name: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword account_name: Storage account name for azure file. + :paramtype account_name: str + :keyword account_key: Storage account key for azure file. + :paramtype account_key: str + :keyword access_mode: Access mode for storage. Known values are: "ReadOnly" and "ReadWrite". + :paramtype access_mode: str or ~azure.mgmt.appcontainers.models.AccessMode + :keyword share_name: Azure file share name. + :paramtype share_name: str + """ + super().__init__(**kwargs) + self.account_name = account_name + self.account_key = account_key + self.access_mode = access_mode + self.share_name = share_name + + +class AzureStaticWebApps(_serialization.Model): + """The configuration settings of the Azure Static Web Apps provider. + + :ivar enabled: :code:`false` if the Azure Static Web Apps provider should not be + enabled despite the set registration; otherwise, :code:`true`. + :vartype enabled: bool + :ivar registration: The configuration settings of the Azure Static Web Apps registration. + :vartype registration: ~azure.mgmt.appcontainers.models.AzureStaticWebAppsRegistration + """ - :param client_id: Client Id. - :type client_id: str - :param client_secret: Client Secret. - :type client_secret: str - :param tenant_id: Tenant Id. - :type tenant_id: str - :param subscription_id: Subscription Id. - :type subscription_id: str + _attribute_map = { + "enabled": {"key": "enabled", "type": "bool"}, + "registration": {"key": "registration", "type": "AzureStaticWebAppsRegistration"}, + } + + def __init__( + self, + *, + enabled: Optional[bool] = None, + registration: Optional["_models.AzureStaticWebAppsRegistration"] = None, + **kwargs: Any + ) -> None: + """ + :keyword enabled: :code:`false` if the Azure Static Web Apps provider should not + be enabled despite the set registration; otherwise, :code:`true`. + :paramtype enabled: bool + :keyword registration: The configuration settings of the Azure Static Web Apps registration. + :paramtype registration: ~azure.mgmt.appcontainers.models.AzureStaticWebAppsRegistration + """ + super().__init__(**kwargs) + self.enabled = enabled + self.registration = registration + + +class AzureStaticWebAppsRegistration(_serialization.Model): + """The configuration settings of the registration for the Azure Static Web Apps provider. + + :ivar client_id: The Client ID of the app used for login. + :vartype client_id: str """ _attribute_map = { - 'client_id': {'key': 'clientId', 'type': 'str'}, - 'client_secret': {'key': 'clientSecret', 'type': 'str'}, - 'tenant_id': {'key': 'tenantId', 'type': 'str'}, - 'subscription_id': {'key': 'subscriptionId', 'type': 'str'}, + "client_id": {"key": "clientId", "type": "str"}, } - def __init__(self, **kwargs): - super(AzureCredentials, self).__init__(**kwargs) - self.client_id = kwargs.get('client_id', None) - self.client_secret = kwargs.get('client_secret', None) - self.tenant_id = kwargs.get('tenant_id', None) - self.subscription_id = kwargs.get('subscription_id', None) + def __init__(self, *, client_id: Optional[str] = None, **kwargs: Any) -> None: + """ + :keyword client_id: The Client ID of the app used for login. + :paramtype client_id: str + """ + super().__init__(**kwargs) + self.client_id = client_id -class AzureEntityResource(Resource): - """Entity Resource. +class BaseContainer(_serialization.Model): + """Container App base container definition. - The resource model definition for an Azure Resource Manager resource with - an etag. + :ivar image: Container image tag. + :vartype image: str + :ivar name: Custom container name. + :vartype name: str + :ivar command: Container start command. + :vartype command: list[str] + :ivar args: Container start command arguments. + :vartype args: list[str] + :ivar env: Container environment variables. + :vartype env: list[~azure.mgmt.appcontainers.models.EnvironmentVar] + :ivar resources: Container resource requirements. + :vartype resources: ~azure.mgmt.appcontainers.models.ContainerResources + :ivar volume_mounts: Container volume mounts. + :vartype volume_mounts: list[~azure.mgmt.appcontainers.models.VolumeMount] + """ - Variables are only populated by the server, and will be ignored when - sending a request. + _attribute_map = { + "image": {"key": "image", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "command": {"key": "command", "type": "[str]"}, + "args": {"key": "args", "type": "[str]"}, + "env": {"key": "env", "type": "[EnvironmentVar]"}, + "resources": {"key": "resources", "type": "ContainerResources"}, + "volume_mounts": {"key": "volumeMounts", "type": "[VolumeMount]"}, + } + + def __init__( + self, + *, + image: Optional[str] = None, + name: Optional[str] = None, + command: Optional[List[str]] = None, + args: Optional[List[str]] = None, + env: Optional[List["_models.EnvironmentVar"]] = None, + resources: Optional["_models.ContainerResources"] = None, + volume_mounts: Optional[List["_models.VolumeMount"]] = None, + **kwargs: Any + ) -> None: + """ + :keyword image: Container image tag. + :paramtype image: str + :keyword name: Custom container name. + :paramtype name: str + :keyword command: Container start command. + :paramtype command: list[str] + :keyword args: Container start command arguments. + :paramtype args: list[str] + :keyword env: Container environment variables. + :paramtype env: list[~azure.mgmt.appcontainers.models.EnvironmentVar] + :keyword resources: Container resource requirements. + :paramtype resources: ~azure.mgmt.appcontainers.models.ContainerResources + :keyword volume_mounts: Container volume mounts. + :paramtype volume_mounts: list[~azure.mgmt.appcontainers.models.VolumeMount] + """ + super().__init__(**kwargs) + self.image = image + self.name = name + self.command = command + self.args = args + self.env = env + self.resources = resources + self.volume_mounts = volume_mounts + + +class BillingMeter(ProxyResource): + """Billing meter. + + Variables are only populated by the server, and will be ignored when sending a request. :ivar id: Fully qualified resource ID for the resource. Ex - - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str - :ivar name: The name of the resource + :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. E.g. - "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str - :ivar system_data: Azure Resource Manager metadata containing createdBy - and modifiedBy information. - :vartype system_data: ~commondefinitions.models.SystemData - :ivar etag: Resource Etag. - :vartype etag: str + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.appcontainers.models.SystemData + :ivar location: Region for the billing meter. + :vartype location: str + :ivar properties: Revision resource specific properties. + :vartype properties: ~azure.mgmt.appcontainers.models.BillingMeterProperties """ _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'system_data': {'readonly': True}, - 'etag': {'readonly': True}, + "id": {"readonly": True}, + "name": {"readonly": True}, + "type": {"readonly": True}, + "system_data": {"readonly": True}, } _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'system_data': {'key': 'systemData', 'type': 'SystemData'}, - 'etag': {'key': 'etag', 'type': 'str'}, - } - - def __init__(self, **kwargs): - super(AzureEntityResource, self).__init__(**kwargs) - self.etag = None + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "system_data": {"key": "systemData", "type": "SystemData"}, + "location": {"key": "location", "type": "str"}, + "properties": {"key": "properties", "type": "BillingMeterProperties"}, + } + + def __init__( + self, + *, + location: Optional[str] = None, + properties: Optional["_models.BillingMeterProperties"] = None, + **kwargs: Any + ) -> None: + """ + :keyword location: Region for the billing meter. + :paramtype location: str + :keyword properties: Revision resource specific properties. + :paramtype properties: ~azure.mgmt.appcontainers.models.BillingMeterProperties + """ + super().__init__(**kwargs) + self.location = location + self.properties = properties + + +class BillingMeterCollection(_serialization.Model): + """Collection of billing meters. + All required parameters must be populated in order to send to Azure. -class AzureFileProperties(Model): - """Azure File Properties. - - :param account_name: Storage account name for azure file. - :type account_name: str - :param account_key: Storage account key for azure file. - :type account_key: str - :param access_mode: Access mode for storage. Possible values include: - 'ReadOnly', 'ReadWrite' - :type access_mode: str or ~commondefinitions.models.AccessMode - :param share_name: Azure file share name. - :type share_name: str + :ivar value: Collection of billing meters. Required. + :vartype value: list[~azure.mgmt.appcontainers.models.BillingMeter] """ - _attribute_map = { - 'account_name': {'key': 'accountName', 'type': 'str'}, - 'account_key': {'key': 'accountKey', 'type': 'str'}, - 'access_mode': {'key': 'accessMode', 'type': 'str'}, - 'share_name': {'key': 'shareName', 'type': 'str'}, + _validation = { + "value": {"required": True}, } - def __init__(self, **kwargs): - super(AzureFileProperties, self).__init__(**kwargs) - self.account_name = kwargs.get('account_name', None) - self.account_key = kwargs.get('account_key', None) - self.access_mode = kwargs.get('access_mode', None) - self.share_name = kwargs.get('share_name', None) - - -class AzureStaticWebApp(Model): - """The configuration settings of the Azure Static Web Apps provider. - - :param state: Disabled if the Azure Static Web Apps provider - should not be enabled despite the set registration; otherwise, - Enabled. Possible values include: 'Enabled', 'Disabled' - :type state: str or ~commondefinitions.models.IdentityProviderState - :param registration: The configuration settings of the Azure Static Web - Apps registration. - :type registration: - ~commondefinitions.models.AzureStaticWebAppRegistration - """ - _attribute_map = { - 'state': {'key': 'state', 'type': 'str'}, - 'registration': {'key': 'registration', 'type': 'AzureStaticWebAppRegistration'}, + "value": {"key": "value", "type": "[BillingMeter]"}, } - def __init__(self, **kwargs): - super(AzureStaticWebApp, self).__init__(**kwargs) - self.state = kwargs.get('state', None) - self.registration = kwargs.get('registration', None) + def __init__(self, *, value: List["_models.BillingMeter"], **kwargs: Any) -> None: + """ + :keyword value: Collection of billing meters. Required. + :paramtype value: list[~azure.mgmt.appcontainers.models.BillingMeter] + """ + super().__init__(**kwargs) + self.value = value -class AzureStaticWebAppRegistration(Model): - """The configuration settings of the registration for the Azure Static Web - Apps provider. +class BillingMeterProperties(_serialization.Model): + """Revision resource specific properties. - :param client_id: The Client ID of the app used for login. - :type client_id: str + :ivar category: Used to categorize billing meters. + :vartype category: str + :ivar meter_type: Billing meter type. + :vartype meter_type: str + :ivar display_name: The everyday name of the billing meter. + :vartype display_name: str """ _attribute_map = { - 'client_id': {'key': 'clientId', 'type': 'str'}, - } - - def __init__(self, **kwargs): - super(AzureStaticWebAppRegistration, self).__init__(**kwargs) - self.client_id = kwargs.get('client_id', None) + "category": {"key": "category", "type": "str"}, + "meter_type": {"key": "meterType", "type": "str"}, + "display_name": {"key": "displayName", "type": "str"}, + } + + def __init__( + self, + *, + category: Optional[str] = None, + meter_type: Optional[str] = None, + display_name: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword category: Used to categorize billing meters. + :paramtype category: str + :keyword meter_type: Billing meter type. + :paramtype meter_type: str + :keyword display_name: The everyday name of the billing meter. + :paramtype display_name: str + """ + super().__init__(**kwargs) + self.category = category + self.meter_type = meter_type + self.display_name = display_name class TrackedResource(Resource): - """Tracked Resource. - - The resource model definition for an Azure Resource Manager tracked top - level resource which has 'tags' and a 'location'. + """The resource model definition for an Azure Resource Manager tracked top level resource which + has 'tags' and a 'location'. - Variables are only populated by the server, and will be ignored when - sending a request. + Variables are only populated by the server, and will be ignored when sending a request. All required parameters must be populated in order to send to Azure. :ivar id: Fully qualified resource ID for the resource. Ex - - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str - :ivar name: The name of the resource + :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. E.g. - "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str - :ivar system_data: Azure Resource Manager metadata containing createdBy - and modifiedBy information. - :vartype system_data: ~commondefinitions.models.SystemData - :param tags: Resource tags. - :type tags: dict[str, str] - :param location: Required. The geo-location where the resource lives - :type location: str + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.appcontainers.models.SystemData + :ivar tags: Resource tags. + :vartype tags: dict[str, str] + :ivar location: The geo-location where the resource lives. Required. + :vartype location: str """ _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'system_data': {'readonly': True}, - 'location': {'required': True}, + "id": {"readonly": True}, + "name": {"readonly": True}, + "type": {"readonly": True}, + "system_data": {"readonly": True}, + "location": {"required": True}, } _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'system_data': {'key': 'systemData', 'type': 'SystemData'}, - 'tags': {'key': 'tags', 'type': '{str}'}, - 'location': {'key': 'location', 'type': 'str'}, - } - - def __init__(self, **kwargs): - super(TrackedResource, self).__init__(**kwargs) - self.tags = kwargs.get('tags', None) - self.location = kwargs.get('location', None) + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "system_data": {"key": "systemData", "type": "SystemData"}, + "tags": {"key": "tags", "type": "{str}"}, + "location": {"key": "location", "type": "str"}, + } + + def __init__(self, *, location: str, tags: Optional[Dict[str, str]] = None, **kwargs: Any) -> None: + """ + :keyword tags: Resource tags. + :paramtype tags: dict[str, str] + :keyword location: The geo-location where the resource lives. Required. + :paramtype location: str + """ + super().__init__(**kwargs) + self.tags = tags + self.location = location class Certificate(TrackedResource): - """Certificate used for Custom Domain bindings of Container Apps in a Managed - Environment. + """Certificate used for Custom Domain bindings of Container Apps in a Managed Environment. - Variables are only populated by the server, and will be ignored when - sending a request. + Variables are only populated by the server, and will be ignored when sending a request. All required parameters must be populated in order to send to Azure. :ivar id: Fully qualified resource ID for the resource. Ex - - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str - :ivar name: The name of the resource + :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. E.g. - "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str - :ivar system_data: Azure Resource Manager metadata containing createdBy - and modifiedBy information. - :vartype system_data: ~commondefinitions.models.SystemData - :param tags: Resource tags. - :type tags: dict[str, str] - :param location: Required. The geo-location where the resource lives - :type location: str - :param properties: Certificate resource specific properties - :type properties: ~commondefinitions.models.CertificateProperties + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.appcontainers.models.SystemData + :ivar tags: Resource tags. + :vartype tags: dict[str, str] + :ivar location: The geo-location where the resource lives. Required. + :vartype location: str + :ivar properties: Certificate resource specific properties. + :vartype properties: ~azure.mgmt.appcontainers.models.CertificateProperties """ _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'system_data': {'readonly': True}, - 'location': {'required': True}, + "id": {"readonly": True}, + "name": {"readonly": True}, + "type": {"readonly": True}, + "system_data": {"readonly": True}, + "location": {"required": True}, } _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'system_data': {'key': 'systemData', 'type': 'SystemData'}, - 'tags': {'key': 'tags', 'type': '{str}'}, - 'location': {'key': 'location', 'type': 'str'}, - 'properties': {'key': 'properties', 'type': 'CertificateProperties'}, - } - - def __init__(self, **kwargs): - super(Certificate, self).__init__(**kwargs) - self.properties = kwargs.get('properties', None) - - -class CertificateCollection(Model): + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "system_data": {"key": "systemData", "type": "SystemData"}, + "tags": {"key": "tags", "type": "{str}"}, + "location": {"key": "location", "type": "str"}, + "properties": {"key": "properties", "type": "CertificateProperties"}, + } + + def __init__( + self, + *, + location: str, + tags: Optional[Dict[str, str]] = None, + properties: Optional["_models.CertificateProperties"] = None, + **kwargs: Any + ) -> None: + """ + :keyword tags: Resource tags. + :paramtype tags: dict[str, str] + :keyword location: The geo-location where the resource lives. Required. + :paramtype location: str + :keyword properties: Certificate resource specific properties. + :paramtype properties: ~azure.mgmt.appcontainers.models.CertificateProperties + """ + super().__init__(tags=tags, location=location, **kwargs) + self.properties = properties + + +class CertificateCollection(_serialization.Model): """Collection of Certificates. - Variables are only populated by the server, and will be ignored when - sending a request. + Variables are only populated by the server, and will be ignored when sending a request. All required parameters must be populated in order to send to Azure. - :param value: Required. Collection of resources. - :type value: list[~commondefinitions.models.Certificate] + :ivar value: Collection of resources. Required. + :vartype value: list[~azure.mgmt.appcontainers.models.Certificate] :ivar next_link: Link to next page of resources. :vartype next_link: str """ _validation = { - 'value': {'required': True}, - 'next_link': {'readonly': True}, + "value": {"required": True}, + "next_link": {"readonly": True}, } _attribute_map = { - 'value': {'key': 'value', 'type': '[Certificate]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, + "value": {"key": "value", "type": "[Certificate]"}, + "next_link": {"key": "nextLink", "type": "str"}, } - def __init__(self, **kwargs): - super(CertificateCollection, self).__init__(**kwargs) - self.value = kwargs.get('value', None) + def __init__(self, *, value: List["_models.Certificate"], **kwargs: Any) -> None: + """ + :keyword value: Collection of resources. Required. + :paramtype value: list[~azure.mgmt.appcontainers.models.Certificate] + """ + super().__init__(**kwargs) + self.value = value self.next_link = None -class CertificatePatch(Model): +class CertificatePatch(_serialization.Model): """A certificate to update. - :param tags: Application-specific metadata in the form of key-value pairs. - :type tags: dict[str, str] + :ivar tags: Application-specific metadata in the form of key-value pairs. + :vartype tags: dict[str, str] """ _attribute_map = { - 'tags': {'key': 'tags', 'type': '{str}'}, + "tags": {"key": "tags", "type": "{str}"}, } - def __init__(self, **kwargs): - super(CertificatePatch, self).__init__(**kwargs) - self.tags = kwargs.get('tags', None) + def __init__(self, *, tags: Optional[Dict[str, str]] = None, **kwargs: Any) -> None: + """ + :keyword tags: Application-specific metadata in the form of key-value pairs. + :paramtype tags: dict[str, str] + """ + super().__init__(**kwargs) + self.tags = tags -class CertificateProperties(Model): +class CertificateProperties(_serialization.Model): # pylint: disable=too-many-instance-attributes """Certificate resource specific properties. - Variables are only populated by the server, and will be ignored when - sending a request. + Variables are only populated by the server, and will be ignored when sending a request. - :param password: Certificate password. - :type password: str + :ivar provisioning_state: Provisioning state of the certificate. Known values are: "Succeeded", + "Failed", "Canceled", "DeleteFailed", and "Pending". + :vartype provisioning_state: str or + ~azure.mgmt.appcontainers.models.CertificateProvisioningState + :ivar password: Certificate password. + :vartype password: str :ivar subject_name: Subject name of the certificate. :vartype subject_name: str - :param value: PFX or PEM blob - :type value: bytearray + :ivar subject_alternative_names: Subject alternative names the certificate applies to. + :vartype subject_alternative_names: list[str] + :ivar value: PFX or PEM blob. + :vartype value: bytes :ivar issuer: Certificate issuer. :vartype issuer: str :ivar issue_date: Certificate issue Date. - :vartype issue_date: datetime + :vartype issue_date: ~datetime.datetime :ivar expiration_date: Certificate expiration date. - :vartype expiration_date: datetime + :vartype expiration_date: ~datetime.datetime :ivar thumbprint: Certificate thumbprint. :vartype thumbprint: str :ivar valid: Is the certificate valid?. @@ -779,32 +1404,44 @@ class CertificateProperties(Model): """ _validation = { - 'subject_name': {'readonly': True}, - 'issuer': {'readonly': True}, - 'issue_date': {'readonly': True}, - 'expiration_date': {'readonly': True}, - 'thumbprint': {'readonly': True}, - 'valid': {'readonly': True}, - 'public_key_hash': {'readonly': True}, + "provisioning_state": {"readonly": True}, + "subject_name": {"readonly": True}, + "subject_alternative_names": {"readonly": True}, + "issuer": {"readonly": True}, + "issue_date": {"readonly": True}, + "expiration_date": {"readonly": True}, + "thumbprint": {"readonly": True}, + "valid": {"readonly": True}, + "public_key_hash": {"readonly": True}, } _attribute_map = { - 'password': {'key': 'password', 'type': 'str'}, - 'subject_name': {'key': 'subjectName', 'type': 'str'}, - 'value': {'key': 'value', 'type': 'bytearray'}, - 'issuer': {'key': 'issuer', 'type': 'str'}, - 'issue_date': {'key': 'issueDate', 'type': 'iso-8601'}, - 'expiration_date': {'key': 'expirationDate', 'type': 'iso-8601'}, - 'thumbprint': {'key': 'thumbprint', 'type': 'str'}, - 'valid': {'key': 'valid', 'type': 'bool'}, - 'public_key_hash': {'key': 'publicKeyHash', 'type': 'str'}, - } - - def __init__(self, **kwargs): - super(CertificateProperties, self).__init__(**kwargs) - self.password = kwargs.get('password', None) + "provisioning_state": {"key": "provisioningState", "type": "str"}, + "password": {"key": "password", "type": "str"}, + "subject_name": {"key": "subjectName", "type": "str"}, + "subject_alternative_names": {"key": "subjectAlternativeNames", "type": "[str]"}, + "value": {"key": "value", "type": "bytearray"}, + "issuer": {"key": "issuer", "type": "str"}, + "issue_date": {"key": "issueDate", "type": "iso-8601"}, + "expiration_date": {"key": "expirationDate", "type": "iso-8601"}, + "thumbprint": {"key": "thumbprint", "type": "str"}, + "valid": {"key": "valid", "type": "bool"}, + "public_key_hash": {"key": "publicKeyHash", "type": "str"}, + } + + def __init__(self, *, password: Optional[str] = None, value: Optional[bytes] = None, **kwargs: Any) -> None: + """ + :keyword password: Certificate password. + :paramtype password: str + :keyword value: PFX or PEM blob. + :paramtype value: bytes + """ + super().__init__(**kwargs) + self.provisioning_state = None + self.password = password self.subject_name = None - self.value = kwargs.get('value', None) + self.subject_alternative_names = None + self.value = value self.issuer = None self.issue_date = None self.expiration_date = None @@ -813,2148 +1450,5573 @@ def __init__(self, **kwargs): self.public_key_hash = None -class ClientRegistration(Model): - """The configuration settings of the app registration for providers that have - client ids and client secrets. +class CheckNameAvailabilityRequest(_serialization.Model): + """The check availability request body. + + :ivar name: The name of the resource for which availability needs to be checked. + :vartype name: str + :ivar type: The resource type. + :vartype type: str + """ + + _attribute_map = { + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + } + + def __init__(self, *, name: Optional[str] = None, type: Optional[str] = None, **kwargs: Any) -> None: + """ + :keyword name: The name of the resource for which availability needs to be checked. + :paramtype name: str + :keyword type: The resource type. + :paramtype type: str + """ + super().__init__(**kwargs) + self.name = name + self.type = type + + +class CheckNameAvailabilityResponse(_serialization.Model): + """The check availability result. + + :ivar name_available: Indicates if the resource name is available. + :vartype name_available: bool + :ivar reason: The reason why the given name is not available. Known values are: "Invalid" and + "AlreadyExists". + :vartype reason: str or ~azure.mgmt.appcontainers.models.CheckNameAvailabilityReason + :ivar message: Detailed reason why the given name is available. + :vartype message: str + """ + + _attribute_map = { + "name_available": {"key": "nameAvailable", "type": "bool"}, + "reason": {"key": "reason", "type": "str"}, + "message": {"key": "message", "type": "str"}, + } + + def __init__( + self, + *, + name_available: Optional[bool] = None, + reason: Optional[Union[str, "_models.CheckNameAvailabilityReason"]] = None, + message: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword name_available: Indicates if the resource name is available. + :paramtype name_available: bool + :keyword reason: The reason why the given name is not available. Known values are: "Invalid" + and "AlreadyExists". + :paramtype reason: str or ~azure.mgmt.appcontainers.models.CheckNameAvailabilityReason + :keyword message: Detailed reason why the given name is available. + :paramtype message: str + """ + super().__init__(**kwargs) + self.name_available = name_available + self.reason = reason + self.message = message + + +class ClientRegistration(_serialization.Model): + """The configuration settings of the app registration for providers that have client ids and + client secrets. + + :ivar client_id: The Client ID of the app used for login. + :vartype client_id: str + :ivar client_secret_setting_name: The app setting name that contains the client secret. + :vartype client_secret_setting_name: str + """ + + _attribute_map = { + "client_id": {"key": "clientId", "type": "str"}, + "client_secret_setting_name": {"key": "clientSecretSettingName", "type": "str"}, + } + + def __init__( + self, *, client_id: Optional[str] = None, client_secret_setting_name: Optional[str] = None, **kwargs: Any + ) -> None: + """ + :keyword client_id: The Client ID of the app used for login. + :paramtype client_id: str + :keyword client_secret_setting_name: The app setting name that contains the client secret. + :paramtype client_secret_setting_name: str + """ + super().__init__(**kwargs) + self.client_id = client_id + self.client_secret_setting_name = client_secret_setting_name + + +class Configuration(_serialization.Model): + """Non versioned Container App configuration properties that define the mutable settings of a + Container app. + + :ivar secrets: Collection of secrets used by a Container app. + :vartype secrets: list[~azure.mgmt.appcontainers.models.Secret] + :ivar active_revisions_mode: ActiveRevisionsMode controls how active revisions are handled for + the Container app: + + + .. raw:: html + + Multiple: multiple revisions can be active.Single: Only one + revision can be active at a time. Revision weights can not be used in this mode. If no value if + provided, this is the default.. Known values are: "Multiple" and "Single". + :vartype active_revisions_mode: str or ~azure.mgmt.appcontainers.models.ActiveRevisionsMode + :ivar ingress: Ingress configurations. + :vartype ingress: ~azure.mgmt.appcontainers.models.Ingress + :ivar registries: Collection of private container registry credentials for containers used by + the Container app. + :vartype registries: list[~azure.mgmt.appcontainers.models.RegistryCredentials] + :ivar dapr: Dapr configuration for the Container App. + :vartype dapr: ~azure.mgmt.appcontainers.models.Dapr + :ivar max_inactive_revisions: Optional. Max inactive revisions a Container App can have. + :vartype max_inactive_revisions: int + """ + + _attribute_map = { + "secrets": {"key": "secrets", "type": "[Secret]"}, + "active_revisions_mode": {"key": "activeRevisionsMode", "type": "str"}, + "ingress": {"key": "ingress", "type": "Ingress"}, + "registries": {"key": "registries", "type": "[RegistryCredentials]"}, + "dapr": {"key": "dapr", "type": "Dapr"}, + "max_inactive_revisions": {"key": "maxInactiveRevisions", "type": "int"}, + } + + def __init__( + self, + *, + secrets: Optional[List["_models.Secret"]] = None, + active_revisions_mode: Union[str, "_models.ActiveRevisionsMode"] = "Single", + ingress: Optional["_models.Ingress"] = None, + registries: Optional[List["_models.RegistryCredentials"]] = None, + dapr: Optional["_models.Dapr"] = None, + max_inactive_revisions: Optional[int] = None, + **kwargs: Any + ) -> None: + """ + :keyword secrets: Collection of secrets used by a Container app. + :paramtype secrets: list[~azure.mgmt.appcontainers.models.Secret] + :keyword active_revisions_mode: ActiveRevisionsMode controls how active revisions are handled + for the Container app: + + + .. raw:: html + + Multiple: multiple revisions can be active.Single: Only one + revision can be active at a time. Revision weights can not be used in this mode. If no value if + provided, this is the default.. Known values are: "Multiple" and "Single". + :paramtype active_revisions_mode: str or ~azure.mgmt.appcontainers.models.ActiveRevisionsMode + :keyword ingress: Ingress configurations. + :paramtype ingress: ~azure.mgmt.appcontainers.models.Ingress + :keyword registries: Collection of private container registry credentials for containers used + by the Container app. + :paramtype registries: list[~azure.mgmt.appcontainers.models.RegistryCredentials] + :keyword dapr: Dapr configuration for the Container App. + :paramtype dapr: ~azure.mgmt.appcontainers.models.Dapr + :keyword max_inactive_revisions: Optional. Max inactive revisions a Container App can have. + :paramtype max_inactive_revisions: int + """ + super().__init__(**kwargs) + self.secrets = secrets + self.active_revisions_mode = active_revisions_mode + self.ingress = ingress + self.registries = registries + self.dapr = dapr + self.max_inactive_revisions = max_inactive_revisions + + +class ConnectedEnvironment(TrackedResource): # pylint: disable=too-many-instance-attributes + """An environment for Kubernetes cluster specialized for web workloads by Azure App Service. + + Variables are only populated by the server, and will be ignored when sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Fully qualified resource ID for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". + :vartype type: str + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.appcontainers.models.SystemData + :ivar tags: Resource tags. + :vartype tags: dict[str, str] + :ivar location: The geo-location where the resource lives. Required. + :vartype location: str + :ivar extended_location: The complex type of the extended location. + :vartype extended_location: ~azure.mgmt.appcontainers.models.ExtendedLocation + :ivar provisioning_state: Provisioning state of the Kubernetes Environment. Known values are: + "Succeeded", "Failed", "Canceled", "Waiting", "InitializationInProgress", + "InfrastructureSetupInProgress", "InfrastructureSetupComplete", and "ScheduledForDelete". + :vartype provisioning_state: str or + ~azure.mgmt.appcontainers.models.ConnectedEnvironmentProvisioningState + :ivar deployment_errors: Any errors that occurred during deployment or deployment validation. + :vartype deployment_errors: str + :ivar default_domain: Default Domain Name for the cluster. + :vartype default_domain: str + :ivar static_ip: Static IP of the connectedEnvironment. + :vartype static_ip: str + :ivar dapr_ai_connection_string: Application Insights connection string used by Dapr to export + Service to Service communication telemetry. + :vartype dapr_ai_connection_string: str + :ivar custom_domain_configuration: Custom domain configuration for the environment. + :vartype custom_domain_configuration: + ~azure.mgmt.appcontainers.models.CustomDomainConfiguration + """ + + _validation = { + "id": {"readonly": True}, + "name": {"readonly": True}, + "type": {"readonly": True}, + "system_data": {"readonly": True}, + "location": {"required": True}, + "provisioning_state": {"readonly": True}, + "deployment_errors": {"readonly": True}, + "default_domain": {"readonly": True}, + } + + _attribute_map = { + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "system_data": {"key": "systemData", "type": "SystemData"}, + "tags": {"key": "tags", "type": "{str}"}, + "location": {"key": "location", "type": "str"}, + "extended_location": {"key": "extendedLocation", "type": "ExtendedLocation"}, + "provisioning_state": {"key": "properties.provisioningState", "type": "str"}, + "deployment_errors": {"key": "properties.deploymentErrors", "type": "str"}, + "default_domain": {"key": "properties.defaultDomain", "type": "str"}, + "static_ip": {"key": "properties.staticIp", "type": "str"}, + "dapr_ai_connection_string": {"key": "properties.daprAIConnectionString", "type": "str"}, + "custom_domain_configuration": { + "key": "properties.customDomainConfiguration", + "type": "CustomDomainConfiguration", + }, + } + + def __init__( + self, + *, + location: str, + tags: Optional[Dict[str, str]] = None, + extended_location: Optional["_models.ExtendedLocation"] = None, + static_ip: Optional[str] = None, + dapr_ai_connection_string: Optional[str] = None, + custom_domain_configuration: Optional["_models.CustomDomainConfiguration"] = None, + **kwargs: Any + ) -> None: + """ + :keyword tags: Resource tags. + :paramtype tags: dict[str, str] + :keyword location: The geo-location where the resource lives. Required. + :paramtype location: str + :keyword extended_location: The complex type of the extended location. + :paramtype extended_location: ~azure.mgmt.appcontainers.models.ExtendedLocation + :keyword static_ip: Static IP of the connectedEnvironment. + :paramtype static_ip: str + :keyword dapr_ai_connection_string: Application Insights connection string used by Dapr to + export Service to Service communication telemetry. + :paramtype dapr_ai_connection_string: str + :keyword custom_domain_configuration: Custom domain configuration for the environment. + :paramtype custom_domain_configuration: + ~azure.mgmt.appcontainers.models.CustomDomainConfiguration + """ + super().__init__(tags=tags, location=location, **kwargs) + self.extended_location = extended_location + self.provisioning_state = None + self.deployment_errors = None + self.default_domain = None + self.static_ip = static_ip + self.dapr_ai_connection_string = dapr_ai_connection_string + self.custom_domain_configuration = custom_domain_configuration + + +class ConnectedEnvironmentCollection(_serialization.Model): + """Collection of connectedEnvironments. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar value: Collection of resources. + :vartype value: list[~azure.mgmt.appcontainers.models.ConnectedEnvironment] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + "next_link": {"readonly": True}, + } + + _attribute_map = { + "value": {"key": "value", "type": "[ConnectedEnvironment]"}, + "next_link": {"key": "nextLink", "type": "str"}, + } + + def __init__(self, *, value: Optional[List["_models.ConnectedEnvironment"]] = None, **kwargs: Any) -> None: + """ + :keyword value: Collection of resources. + :paramtype value: list[~azure.mgmt.appcontainers.models.ConnectedEnvironment] + """ + super().__init__(**kwargs) + self.value = value + self.next_link = None + + +class ConnectedEnvironmentStorage(ProxyResource): + """Storage resource for connectedEnvironment. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Fully qualified resource ID for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". + :vartype type: str + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.appcontainers.models.SystemData + :ivar properties: Storage properties. + :vartype properties: ~azure.mgmt.appcontainers.models.ConnectedEnvironmentStorageProperties + """ + + _validation = { + "id": {"readonly": True}, + "name": {"readonly": True}, + "type": {"readonly": True}, + "system_data": {"readonly": True}, + } + + _attribute_map = { + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "system_data": {"key": "systemData", "type": "SystemData"}, + "properties": {"key": "properties", "type": "ConnectedEnvironmentStorageProperties"}, + } + + def __init__( + self, *, properties: Optional["_models.ConnectedEnvironmentStorageProperties"] = None, **kwargs: Any + ) -> None: + """ + :keyword properties: Storage properties. + :paramtype properties: ~azure.mgmt.appcontainers.models.ConnectedEnvironmentStorageProperties + """ + super().__init__(**kwargs) + self.properties = properties + - :param client_id: The Client ID of the app used for login. - :type client_id: str - :param client_secret_ref_name: The app secret ref name that contains the - client secret. - :type client_secret_ref_name: str +class ConnectedEnvironmentStorageProperties(_serialization.Model): + """Storage properties. + + :ivar azure_file: Azure file properties. + :vartype azure_file: ~azure.mgmt.appcontainers.models.AzureFileProperties """ _attribute_map = { - 'client_id': {'key': 'clientId', 'type': 'str'}, - 'client_secret_ref_name': {'key': 'clientSecretRefName', 'type': 'str'}, + "azure_file": {"key": "azureFile", "type": "AzureFileProperties"}, } - def __init__(self, **kwargs): - super(ClientRegistration, self).__init__(**kwargs) - self.client_id = kwargs.get('client_id', None) - self.client_secret_ref_name = kwargs.get('client_secret_ref_name', None) + def __init__(self, *, azure_file: Optional["_models.AzureFileProperties"] = None, **kwargs: Any) -> None: + """ + :keyword azure_file: Azure file properties. + :paramtype azure_file: ~azure.mgmt.appcontainers.models.AzureFileProperties + """ + super().__init__(**kwargs) + self.azure_file = azure_file -class Configuration(Model): - """Non versioned Container App configuration properties that define the - mutable settings of a Container app. +class ConnectedEnvironmentStoragesCollection(_serialization.Model): + """Collection of Storage for Environments. + + All required parameters must be populated in order to send to Azure. - :param secrets: Collection of secrets used by a Container app - :type secrets: list[~commondefinitions.models.Secret] - :param active_revisions_mode: ActiveRevisionsMode controls how active - revisions are handled for the Container app: - Multiple: multiple revisions can be active. If no value if - provided, this is the defaultSingle: Only one revision can be - active at a time. Revision weights can not be used in this - mode. Possible values include: 'multiple', 'single' - :type active_revisions_mode: str or - ~commondefinitions.models.ActiveRevisionsMode - :param ingress: Ingress configurations. - :type ingress: ~commondefinitions.models.Ingress - :param dapr: Dapr configuration for the Container App. - :type dapr: ~commondefinitions.models.Dapr - :param registries: Collection of private container registry credentials - for containers used by the Container app - :type registries: list[~commondefinitions.models.RegistryCredentials] + :ivar value: Collection of storage resources. Required. + :vartype value: list[~azure.mgmt.appcontainers.models.ConnectedEnvironmentStorage] """ + _validation = { + "value": {"required": True}, + } + _attribute_map = { - 'secrets': {'key': 'secrets', 'type': '[Secret]'}, - 'active_revisions_mode': {'key': 'activeRevisionsMode', 'type': 'str'}, - 'ingress': {'key': 'ingress', 'type': 'Ingress'}, - 'dapr': {'key': 'dapr', 'type': 'Dapr'}, - 'registries': {'key': 'registries', 'type': '[RegistryCredentials]'}, - 'max_inactive_revisions': {'key': 'maxInactiveRevisions', 'type': 'int'}, + "value": {"key": "value", "type": "[ConnectedEnvironmentStorage]"}, } - def __init__(self, **kwargs): - super(Configuration, self).__init__(**kwargs) - self.secrets = kwargs.get('secrets', None) - self.active_revisions_mode = kwargs.get('active_revisions_mode', None) - self.ingress = kwargs.get('ingress', None) - self.dapr = kwargs.get('dapr', None) - self.registries = kwargs.get('registries', None) - self.max_inactive_revisions = kwargs.get('max_inactive_revisions', None) + def __init__(self, *, value: List["_models.ConnectedEnvironmentStorage"], **kwargs: Any) -> None: + """ + :keyword value: Collection of storage resources. Required. + :paramtype value: list[~azure.mgmt.appcontainers.models.ConnectedEnvironmentStorage] + """ + super().__init__(**kwargs) + self.value = value -class Container(Model): +class Container(BaseContainer): """Container App container definition. - :param image: Container image tag. - :type image: str - :param name: Custom container name. - :type name: str - :param command: Container start command. - :type command: list[str] - :param args: Container start command arguments. - :type args: list[str] - :param env: Container environment variables. - :type env: list[~commondefinitions.models.EnvironmentVar] - :param resources: Container resource requirements. - :type resources: ~commondefinitions.models.ContainerResources - :param probes: List of probes for the container. - :type probes: list[~commondefinitions.models.ContainerAppProbe] - :param volume_mounts: Container volume mounts. - :type volume_mounts: list[~commondefinitions.models.VolumeMount] - """ - - _attribute_map = { - 'image': {'key': 'image', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'command': {'key': 'command', 'type': '[str]'}, - 'args': {'key': 'args', 'type': '[str]'}, - 'env': {'key': 'env', 'type': '[EnvironmentVar]'}, - 'resources': {'key': 'resources', 'type': 'ContainerResources'}, - 'probes': {'key': 'probes', 'type': '[ContainerAppProbe]'}, - 'volume_mounts': {'key': 'volumeMounts', 'type': '[VolumeMount]'}, - } - - def __init__(self, **kwargs): - super(Container, self).__init__(**kwargs) - self.image = kwargs.get('image', None) - self.name = kwargs.get('name', None) - self.command = kwargs.get('command', None) - self.args = kwargs.get('args', None) - self.env = kwargs.get('env', None) - self.resources = kwargs.get('resources', None) - self.probes = kwargs.get('probes', None) - self.volume_mounts = kwargs.get('volume_mounts', None) - - -class ContainerApp(TrackedResource): + :ivar image: Container image tag. + :vartype image: str + :ivar name: Custom container name. + :vartype name: str + :ivar command: Container start command. + :vartype command: list[str] + :ivar args: Container start command arguments. + :vartype args: list[str] + :ivar env: Container environment variables. + :vartype env: list[~azure.mgmt.appcontainers.models.EnvironmentVar] + :ivar resources: Container resource requirements. + :vartype resources: ~azure.mgmt.appcontainers.models.ContainerResources + :ivar volume_mounts: Container volume mounts. + :vartype volume_mounts: list[~azure.mgmt.appcontainers.models.VolumeMount] + :ivar probes: List of probes for the container. + :vartype probes: list[~azure.mgmt.appcontainers.models.ContainerAppProbe] + """ + + _attribute_map = { + "image": {"key": "image", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "command": {"key": "command", "type": "[str]"}, + "args": {"key": "args", "type": "[str]"}, + "env": {"key": "env", "type": "[EnvironmentVar]"}, + "resources": {"key": "resources", "type": "ContainerResources"}, + "volume_mounts": {"key": "volumeMounts", "type": "[VolumeMount]"}, + "probes": {"key": "probes", "type": "[ContainerAppProbe]"}, + } + + def __init__( + self, + *, + image: Optional[str] = None, + name: Optional[str] = None, + command: Optional[List[str]] = None, + args: Optional[List[str]] = None, + env: Optional[List["_models.EnvironmentVar"]] = None, + resources: Optional["_models.ContainerResources"] = None, + volume_mounts: Optional[List["_models.VolumeMount"]] = None, + probes: Optional[List["_models.ContainerAppProbe"]] = None, + **kwargs: Any + ) -> None: + """ + :keyword image: Container image tag. + :paramtype image: str + :keyword name: Custom container name. + :paramtype name: str + :keyword command: Container start command. + :paramtype command: list[str] + :keyword args: Container start command arguments. + :paramtype args: list[str] + :keyword env: Container environment variables. + :paramtype env: list[~azure.mgmt.appcontainers.models.EnvironmentVar] + :keyword resources: Container resource requirements. + :paramtype resources: ~azure.mgmt.appcontainers.models.ContainerResources + :keyword volume_mounts: Container volume mounts. + :paramtype volume_mounts: list[~azure.mgmt.appcontainers.models.VolumeMount] + :keyword probes: List of probes for the container. + :paramtype probes: list[~azure.mgmt.appcontainers.models.ContainerAppProbe] + """ + super().__init__( + image=image, + name=name, + command=command, + args=args, + env=env, + resources=resources, + volume_mounts=volume_mounts, + **kwargs + ) + self.probes = probes + + +class ContainerApp(TrackedResource): # pylint: disable=too-many-instance-attributes """Container App. - Variables are only populated by the server, and will be ignored when - sending a request. + Variables are only populated by the server, and will be ignored when sending a request. All required parameters must be populated in order to send to Azure. :ivar id: Fully qualified resource ID for the resource. Ex - - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str - :ivar name: The name of the resource + :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. E.g. - "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str - :ivar system_data: Azure Resource Manager metadata containing createdBy - and modifiedBy information. - :vartype system_data: ~commondefinitions.models.SystemData - :param tags: Resource tags. - :type tags: dict[str, str] - :param location: Required. The geo-location where the resource lives - :type location: str - :param identity: managed identities for the Container App to interact with - other Azure services without maintaining any secrets or credentials in - code. - :type identity: ~commondefinitions.models.ManagedServiceIdentity - :ivar provisioning_state: Provisioning state of the Container App. - Possible values include: 'InProgress', 'Succeeded', 'Failed', 'Canceled' + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.appcontainers.models.SystemData + :ivar tags: Resource tags. + :vartype tags: dict[str, str] + :ivar location: The geo-location where the resource lives. Required. + :vartype location: str + :ivar extended_location: The complex type of the extended location. + :vartype extended_location: ~azure.mgmt.appcontainers.models.ExtendedLocation + :ivar identity: managed identities for the Container App to interact with other Azure services + without maintaining any secrets or credentials in code. + :vartype identity: ~azure.mgmt.appcontainers.models.ManagedServiceIdentity + :ivar managed_by: The fully qualified resource ID of the resource that manages this resource. + Indicates if this resource is managed by another Azure resource. If this is present, complete + mode deployment will not delete the resource if it is removed from the template since it is + managed by another resource. + :vartype managed_by: str + :ivar provisioning_state: Provisioning state of the Container App. Known values are: + "InProgress", "Succeeded", "Failed", "Canceled", and "Deleting". :vartype provisioning_state: str or - ~commondefinitions.models.ContainerAppProvisioningState - :param managed_environment_id: Resource ID of the Container App's - environment. - :type managed_environment_id: str - :param workload_profile_name: Name of the workload profile used - :type workload_profile_name: str - :ivar latest_revision_name: Name of the latest revision of the Container - App. + ~azure.mgmt.appcontainers.models.ContainerAppProvisioningState + :ivar managed_environment_id: Deprecated. Resource ID of the Container App's environment. + :vartype managed_environment_id: str + :ivar environment_id: Resource ID of environment. + :vartype environment_id: str + :ivar workload_profile_name: Workload profile name to pin for container app execution. + :vartype workload_profile_name: str + :ivar latest_revision_name: Name of the latest revision of the Container App. :vartype latest_revision_name: str - :ivar latest_revision_fqdn: Fully Qualified Domain Name of the latest - revision of the Container App. + :ivar latest_ready_revision_name: Name of the latest ready revision of the Container App. + :vartype latest_ready_revision_name: str + :ivar latest_revision_fqdn: Fully Qualified Domain Name of the latest revision of the Container + App. :vartype latest_revision_fqdn: str - :ivar custom_domain_verification_id: Id used to verify domain name - ownership + :ivar custom_domain_verification_id: Id used to verify domain name ownership. :vartype custom_domain_verification_id: str - :param configuration: Non versioned Container App configuration - properties. - :type configuration: ~commondefinitions.models.Configuration - :param template: Container App versioned application definition. - :type template: ~commondefinitions.models.Template + :ivar configuration: Non versioned Container App configuration properties. + :vartype configuration: ~azure.mgmt.appcontainers.models.Configuration + :ivar template: Container App versioned application definition. + :vartype template: ~azure.mgmt.appcontainers.models.Template :ivar outbound_ip_addresses: Outbound IP Addresses for container app. :vartype outbound_ip_addresses: list[str] + :ivar event_stream_endpoint: The endpoint of the eventstream of the container app. + :vartype event_stream_endpoint: str """ _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'system_data': {'readonly': True}, - 'location': {'required': True}, - 'provisioning_state': {'readonly': True}, - 'latest_revision_name': {'readonly': True}, - 'latest_revision_fqdn': {'readonly': True}, - 'custom_domain_verification_id': {'readonly': True}, - 'outbound_ip_addresses': {'readonly': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'system_data': {'key': 'systemData', 'type': 'SystemData'}, - 'tags': {'key': 'tags', 'type': '{str}'}, - 'location': {'key': 'location', 'type': 'str'}, - 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, - 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, - 'environment_id': {'key': 'properties.environmentId', 'type': 'str'}, - 'workload_profile_name': {'key': 'properties.workloadProfileName', 'type': 'str'}, - 'latest_revision_name': {'key': 'properties.latestRevisionName', 'type': 'str'}, - 'latest_revision_fqdn': {'key': 'properties.latestRevisionFqdn', 'type': 'str'}, - 'custom_domain_verification_id': {'key': 'properties.customDomainVerificationId', 'type': 'str'}, - 'configuration': {'key': 'properties.configuration', 'type': 'Configuration'}, - 'template': {'key': 'properties.template', 'type': 'Template'}, - 'outbound_ip_addresses': {'key': 'properties.outboundIPAddresses', 'type': '[str]'}, - } - - def __init__(self, **kwargs): - super(ContainerApp, self).__init__(**kwargs) - self.identity = kwargs.get('identity', None) + "id": {"readonly": True}, + "name": {"readonly": True}, + "type": {"readonly": True}, + "system_data": {"readonly": True}, + "location": {"required": True}, + "provisioning_state": {"readonly": True}, + "latest_revision_name": {"readonly": True}, + "latest_ready_revision_name": {"readonly": True}, + "latest_revision_fqdn": {"readonly": True}, + "custom_domain_verification_id": {"readonly": True}, + "outbound_ip_addresses": {"readonly": True}, + "event_stream_endpoint": {"readonly": True}, + } + + _attribute_map = { + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "system_data": {"key": "systemData", "type": "SystemData"}, + "tags": {"key": "tags", "type": "{str}"}, + "location": {"key": "location", "type": "str"}, + "extended_location": {"key": "extendedLocation", "type": "ExtendedLocation"}, + "identity": {"key": "identity", "type": "ManagedServiceIdentity"}, + "managed_by": {"key": "managedBy", "type": "str"}, + "provisioning_state": {"key": "properties.provisioningState", "type": "str"}, + "managed_environment_id": {"key": "properties.managedEnvironmentId", "type": "str"}, + "environment_id": {"key": "properties.environmentId", "type": "str"}, + "workload_profile_name": {"key": "properties.workloadProfileName", "type": "str"}, + "latest_revision_name": {"key": "properties.latestRevisionName", "type": "str"}, + "latest_ready_revision_name": {"key": "properties.latestReadyRevisionName", "type": "str"}, + "latest_revision_fqdn": {"key": "properties.latestRevisionFqdn", "type": "str"}, + "custom_domain_verification_id": {"key": "properties.customDomainVerificationId", "type": "str"}, + "configuration": {"key": "properties.configuration", "type": "Configuration"}, + "template": {"key": "properties.template", "type": "Template"}, + "outbound_ip_addresses": {"key": "properties.outboundIpAddresses", "type": "[str]"}, + "event_stream_endpoint": {"key": "properties.eventStreamEndpoint", "type": "str"}, + } + + def __init__( + self, + *, + location: str, + tags: Optional[Dict[str, str]] = None, + extended_location: Optional["_models.ExtendedLocation"] = None, + identity: Optional["_models.ManagedServiceIdentity"] = None, + managed_by: Optional[str] = None, + managed_environment_id: Optional[str] = None, + environment_id: Optional[str] = None, + workload_profile_name: Optional[str] = None, + configuration: Optional["_models.Configuration"] = None, + template: Optional["_models.Template"] = None, + **kwargs: Any + ) -> None: + """ + :keyword tags: Resource tags. + :paramtype tags: dict[str, str] + :keyword location: The geo-location where the resource lives. Required. + :paramtype location: str + :keyword extended_location: The complex type of the extended location. + :paramtype extended_location: ~azure.mgmt.appcontainers.models.ExtendedLocation + :keyword identity: managed identities for the Container App to interact with other Azure + services without maintaining any secrets or credentials in code. + :paramtype identity: ~azure.mgmt.appcontainers.models.ManagedServiceIdentity + :keyword managed_by: The fully qualified resource ID of the resource that manages this + resource. Indicates if this resource is managed by another Azure resource. If this is present, + complete mode deployment will not delete the resource if it is removed from the template since + it is managed by another resource. + :paramtype managed_by: str + :keyword managed_environment_id: Deprecated. Resource ID of the Container App's environment. + :paramtype managed_environment_id: str + :keyword environment_id: Resource ID of environment. + :paramtype environment_id: str + :keyword workload_profile_name: Workload profile name to pin for container app execution. + :paramtype workload_profile_name: str + :keyword configuration: Non versioned Container App configuration properties. + :paramtype configuration: ~azure.mgmt.appcontainers.models.Configuration + :keyword template: Container App versioned application definition. + :paramtype template: ~azure.mgmt.appcontainers.models.Template + """ + super().__init__(tags=tags, location=location, **kwargs) + self.extended_location = extended_location + self.identity = identity + self.managed_by = managed_by self.provisioning_state = None - self.environment_id = kwargs.get('environment_id', None) - self.workload_profile_name = kwargs.get('workload_profile_name', None) + self.managed_environment_id = managed_environment_id + self.environment_id = environment_id + self.workload_profile_name = workload_profile_name self.latest_revision_name = None + self.latest_ready_revision_name = None self.latest_revision_fqdn = None self.custom_domain_verification_id = None - self.configuration = kwargs.get('configuration', None) - self.template = kwargs.get('template', None) + self.configuration = configuration + self.template = template self.outbound_ip_addresses = None + self.event_stream_endpoint = None + + +class ContainerAppAuthToken(TrackedResource): + """Container App Auth Token. + + Variables are only populated by the server, and will be ignored when sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Fully qualified resource ID for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". + :vartype type: str + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.appcontainers.models.SystemData + :ivar tags: Resource tags. + :vartype tags: dict[str, str] + :ivar location: The geo-location where the resource lives. Required. + :vartype location: str + :ivar token: Auth token value. + :vartype token: str + :ivar expires: Token expiration date. + :vartype expires: ~datetime.datetime + """ + _validation = { + "id": {"readonly": True}, + "name": {"readonly": True}, + "type": {"readonly": True}, + "system_data": {"readonly": True}, + "location": {"required": True}, + "token": {"readonly": True}, + "expires": {"readonly": True}, + } -class ContainerAppCollection(Model): + _attribute_map = { + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "system_data": {"key": "systemData", "type": "SystemData"}, + "tags": {"key": "tags", "type": "{str}"}, + "location": {"key": "location", "type": "str"}, + "token": {"key": "properties.token", "type": "str"}, + "expires": {"key": "properties.expires", "type": "iso-8601"}, + } + + def __init__(self, *, location: str, tags: Optional[Dict[str, str]] = None, **kwargs: Any) -> None: + """ + :keyword tags: Resource tags. + :paramtype tags: dict[str, str] + :keyword location: The geo-location where the resource lives. Required. + :paramtype location: str + """ + super().__init__(tags=tags, location=location, **kwargs) + self.token = None + self.expires = None + + +class ContainerAppCollection(_serialization.Model): """Container App collection ARM resource. - Variables are only populated by the server, and will be ignored when - sending a request. + Variables are only populated by the server, and will be ignored when sending a request. All required parameters must be populated in order to send to Azure. - :param value: Required. Collection of resources. - :type value: list[~commondefinitions.models.ContainerApp] + :ivar value: Collection of resources. Required. + :vartype value: list[~azure.mgmt.appcontainers.models.ContainerApp] :ivar next_link: Link to next page of resources. :vartype next_link: str """ _validation = { - 'value': {'required': True}, - 'next_link': {'readonly': True}, + "value": {"required": True}, + "next_link": {"readonly": True}, } _attribute_map = { - 'value': {'key': 'value', 'type': '[ContainerApp]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, + "value": {"key": "value", "type": "[ContainerApp]"}, + "next_link": {"key": "nextLink", "type": "str"}, } - def __init__(self, **kwargs): - super(ContainerAppCollection, self).__init__(**kwargs) - self.value = kwargs.get('value', None) + def __init__(self, *, value: List["_models.ContainerApp"], **kwargs: Any) -> None: + """ + :keyword value: Collection of resources. Required. + :paramtype value: list[~azure.mgmt.appcontainers.models.ContainerApp] + """ + super().__init__(**kwargs) + self.value = value self.next_link = None -class ContainerAppPatch(Model): - """Container App Patch. - - :param tags: Application-specific metadata in the form of key-value pairs. - :type tags: dict[str, str] - """ - - _attribute_map = { - 'tags': {'key': 'tags', 'type': '{str}'}, - } - - def __init__(self, **kwargs): - super(ContainerAppPatch, self).__init__(**kwargs) - self.tags = kwargs.get('tags', None) - - -class ContainerAppProbe(Model): - """Probe describes a health check to be performed against a container to - determine whether it is alive or ready to receive traffic. - - :param failure_threshold: Minimum consecutive failures for the probe to be - considered failed after having succeeded. Defaults to 3. Minimum value is - 1. Maximum value is 10. - :type failure_threshold: int - :param http_get: HTTPGet specifies the http request to perform. - :type http_get: ~commondefinitions.models.ContainerAppProbeHttpGet - :param initial_delay_seconds: Number of seconds after the container has - started before liveness probes are initiated. Minimum value is 1. Maximum - value is 60. - :type initial_delay_seconds: int - :param period_seconds: How often (in seconds) to perform the probe. - Default to 10 seconds. Minimum value is 1. Maximum value is 240. - :type period_seconds: int - :param success_threshold: Minimum consecutive successes for the probe to - be considered successful after having failed. Defaults to 1. Must be 1 for - liveness and startup. Minimum value is 1. Maximum value is 10. - :type success_threshold: int - :param tcp_socket: TCPSocket specifies an action involving a TCP port. TCP - hooks not yet supported. - :type tcp_socket: ~commondefinitions.models.ContainerAppProbeTcpSocket - :param termination_grace_period_seconds: Optional duration in seconds the - pod needs to terminate gracefully upon probe failure. The grace period is - the duration in seconds after the processes running in the pod are sent a - termination signal and the time when the processes are forcibly halted - with a kill signal. Set this value longer than the expected cleanup time - for your process. If this value is nil, the pod's - terminationGracePeriodSeconds will be used. Otherwise, this value - overrides the value provided by the pod spec. Value must be non-negative - integer. The value zero indicates stop immediately via the kill signal (no - opportunity to shut down). This is an alpha field and requires enabling - ProbeTerminationGracePeriod feature gate. Maximum value is 3600 seconds (1 - hour) - :type termination_grace_period_seconds: long - :param timeout_seconds: Number of seconds after which the probe times out. - Defaults to 1 second. Minimum value is 1. Maximum value is 240. - :type timeout_seconds: int - :param type: The type of probe. Possible values include: 'liveness', - 'readiness', 'startup' - :type type: str or ~commondefinitions.models.Type - """ - - _attribute_map = { - 'failure_threshold': {'key': 'failureThreshold', 'type': 'int'}, - 'http_get': {'key': 'httpGet', 'type': 'ContainerAppProbeHttpGet'}, - 'initial_delay_seconds': {'key': 'initialDelaySeconds', 'type': 'int'}, - 'period_seconds': {'key': 'periodSeconds', 'type': 'int'}, - 'success_threshold': {'key': 'successThreshold', 'type': 'int'}, - 'tcp_socket': {'key': 'tcpSocket', 'type': 'ContainerAppProbeTcpSocket'}, - 'termination_grace_period_seconds': {'key': 'terminationGracePeriodSeconds', 'type': 'long'}, - 'timeout_seconds': {'key': 'timeoutSeconds', 'type': 'int'}, - 'type': {'key': 'type', 'type': 'str'}, - } - - def __init__(self, **kwargs): - super(ContainerAppProbe, self).__init__(**kwargs) - self.failure_threshold = kwargs.get('failure_threshold', None) - self.http_get = kwargs.get('http_get', None) - self.initial_delay_seconds = kwargs.get('initial_delay_seconds', None) - self.period_seconds = kwargs.get('period_seconds', None) - self.success_threshold = kwargs.get('success_threshold', None) - self.tcp_socket = kwargs.get('tcp_socket', None) - self.termination_grace_period_seconds = kwargs.get('termination_grace_period_seconds', None) - self.timeout_seconds = kwargs.get('timeout_seconds', None) - self.type = kwargs.get('type', None) - - -class ContainerAppProbeHttpGet(Model): - """HTTPGet specifies the http request to perform. +class ContainerAppJobExecutions(_serialization.Model): + """Container App executions collection ARM resource. + + Variables are only populated by the server, and will be ignored when sending a request. All required parameters must be populated in order to send to Azure. - :param host: Host name to connect to, defaults to the pod IP. You probably - want to set "Host" in httpHeaders instead. - :type host: str - :param http_headers: Custom headers to set in the request. HTTP allows - repeated headers. - :type http_headers: - list[~commondefinitions.models.ContainerAppProbeHttpGetHttpHeadersItem] - :param path: Path to access on the HTTP server. - :type path: str - :param port: Required. Name or number of the port to access on the - container. Number must be in the range 1 to 65535. Name must be an - IANA_SVC_NAME. - :type port: int - :param scheme: Scheme to use for connecting to the host. Defaults to HTTP. - :type scheme: str + :ivar value: Collection of resources. Required. + :vartype value: list[~azure.mgmt.appcontainers.models.JobExecution] + :ivar next_link: Link to next page of resources. + :vartype next_link: str """ _validation = { - 'port': {'required': True}, + "value": {"required": True}, + "next_link": {"readonly": True}, } _attribute_map = { - 'host': {'key': 'host', 'type': 'str'}, - 'http_headers': {'key': 'httpHeaders', 'type': '[ContainerAppProbeHttpGetHttpHeadersItem]'}, - 'path': {'key': 'path', 'type': 'str'}, - 'port': {'key': 'port', 'type': 'int'}, - 'scheme': {'key': 'scheme', 'type': 'str'}, + "value": {"key": "value", "type": "[JobExecution]"}, + "next_link": {"key": "nextLink", "type": "str"}, } - def __init__(self, **kwargs): - super(ContainerAppProbeHttpGet, self).__init__(**kwargs) - self.host = kwargs.get('host', None) - self.http_headers = kwargs.get('http_headers', None) - self.path = kwargs.get('path', None) - self.port = kwargs.get('port', None) - self.scheme = kwargs.get('scheme', None) + def __init__(self, *, value: List["_models.JobExecution"], **kwargs: Any) -> None: + """ + :keyword value: Collection of resources. Required. + :paramtype value: list[~azure.mgmt.appcontainers.models.JobExecution] + """ + super().__init__(**kwargs) + self.value = value + self.next_link = None + + +class ContainerAppProbe(_serialization.Model): + """Probe describes a health check to be performed against a container to determine whether it is + alive or ready to receive traffic. + + :ivar failure_threshold: Minimum consecutive failures for the probe to be considered failed + after having succeeded. Defaults to 3. Minimum value is 1. Maximum value is 10. + :vartype failure_threshold: int + :ivar http_get: HTTPGet specifies the http request to perform. + :vartype http_get: ~azure.mgmt.appcontainers.models.ContainerAppProbeHttpGet + :ivar initial_delay_seconds: Number of seconds after the container has started before liveness + probes are initiated. Minimum value is 1. Maximum value is 60. + :vartype initial_delay_seconds: int + :ivar period_seconds: How often (in seconds) to perform the probe. Default to 10 seconds. + Minimum value is 1. Maximum value is 240. + :vartype period_seconds: int + :ivar success_threshold: Minimum consecutive successes for the probe to be considered + successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum + value is 1. Maximum value is 10. + :vartype success_threshold: int + :ivar tcp_socket: TCPSocket specifies an action involving a TCP port. TCP hooks not yet + supported. + :vartype tcp_socket: ~azure.mgmt.appcontainers.models.ContainerAppProbeTcpSocket + :ivar termination_grace_period_seconds: Optional duration in seconds the pod needs to terminate + gracefully upon probe failure. The grace period is the duration in seconds after the processes + running in the pod are sent a termination signal and the time when the processes are forcibly + halted with a kill signal. Set this value longer than the expected cleanup time for your + process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, + this value overrides the value provided by the pod spec. Value must be non-negative integer. + The value zero indicates stop immediately via the kill signal (no opportunity to shut down). + This is an alpha field and requires enabling ProbeTerminationGracePeriod feature gate. Maximum + value is 3600 seconds (1 hour). + :vartype termination_grace_period_seconds: int + :ivar timeout_seconds: Number of seconds after which the probe times out. Defaults to 1 second. + Minimum value is 1. Maximum value is 240. + :vartype timeout_seconds: int + :ivar type: The type of probe. Known values are: "Liveness", "Readiness", and "Startup". + :vartype type: str or ~azure.mgmt.appcontainers.models.Type + """ + + _attribute_map = { + "failure_threshold": {"key": "failureThreshold", "type": "int"}, + "http_get": {"key": "httpGet", "type": "ContainerAppProbeHttpGet"}, + "initial_delay_seconds": {"key": "initialDelaySeconds", "type": "int"}, + "period_seconds": {"key": "periodSeconds", "type": "int"}, + "success_threshold": {"key": "successThreshold", "type": "int"}, + "tcp_socket": {"key": "tcpSocket", "type": "ContainerAppProbeTcpSocket"}, + "termination_grace_period_seconds": {"key": "terminationGracePeriodSeconds", "type": "int"}, + "timeout_seconds": {"key": "timeoutSeconds", "type": "int"}, + "type": {"key": "type", "type": "str"}, + } + + def __init__( + self, + *, + failure_threshold: Optional[int] = None, + http_get: Optional["_models.ContainerAppProbeHttpGet"] = None, + initial_delay_seconds: Optional[int] = None, + period_seconds: Optional[int] = None, + success_threshold: Optional[int] = None, + tcp_socket: Optional["_models.ContainerAppProbeTcpSocket"] = None, + termination_grace_period_seconds: Optional[int] = None, + timeout_seconds: Optional[int] = None, + type: Optional[Union[str, "_models.Type"]] = None, + **kwargs: Any + ) -> None: + """ + :keyword failure_threshold: Minimum consecutive failures for the probe to be considered failed + after having succeeded. Defaults to 3. Minimum value is 1. Maximum value is 10. + :paramtype failure_threshold: int + :keyword http_get: HTTPGet specifies the http request to perform. + :paramtype http_get: ~azure.mgmt.appcontainers.models.ContainerAppProbeHttpGet + :keyword initial_delay_seconds: Number of seconds after the container has started before + liveness probes are initiated. Minimum value is 1. Maximum value is 60. + :paramtype initial_delay_seconds: int + :keyword period_seconds: How often (in seconds) to perform the probe. Default to 10 seconds. + Minimum value is 1. Maximum value is 240. + :paramtype period_seconds: int + :keyword success_threshold: Minimum consecutive successes for the probe to be considered + successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum + value is 1. Maximum value is 10. + :paramtype success_threshold: int + :keyword tcp_socket: TCPSocket specifies an action involving a TCP port. TCP hooks not yet + supported. + :paramtype tcp_socket: ~azure.mgmt.appcontainers.models.ContainerAppProbeTcpSocket + :keyword termination_grace_period_seconds: Optional duration in seconds the pod needs to + terminate gracefully upon probe failure. The grace period is the duration in seconds after the + processes running in the pod are sent a termination signal and the time when the processes are + forcibly halted with a kill signal. Set this value longer than the expected cleanup time for + your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. + Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative + integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut + down). This is an alpha field and requires enabling ProbeTerminationGracePeriod feature gate. + Maximum value is 3600 seconds (1 hour). + :paramtype termination_grace_period_seconds: int + :keyword timeout_seconds: Number of seconds after which the probe times out. Defaults to 1 + second. Minimum value is 1. Maximum value is 240. + :paramtype timeout_seconds: int + :keyword type: The type of probe. Known values are: "Liveness", "Readiness", and "Startup". + :paramtype type: str or ~azure.mgmt.appcontainers.models.Type + """ + super().__init__(**kwargs) + self.failure_threshold = failure_threshold + self.http_get = http_get + self.initial_delay_seconds = initial_delay_seconds + self.period_seconds = period_seconds + self.success_threshold = success_threshold + self.tcp_socket = tcp_socket + self.termination_grace_period_seconds = termination_grace_period_seconds + self.timeout_seconds = timeout_seconds + self.type = type + + +class ContainerAppProbeHttpGet(_serialization.Model): + """HTTPGet specifies the http request to perform. + + All required parameters must be populated in order to send to Azure. + :ivar host: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in + httpHeaders instead. + :vartype host: str + :ivar http_headers: Custom headers to set in the request. HTTP allows repeated headers. + :vartype http_headers: + list[~azure.mgmt.appcontainers.models.ContainerAppProbeHttpGetHttpHeadersItem] + :ivar path: Path to access on the HTTP server. + :vartype path: str + :ivar port: Name or number of the port to access on the container. Number must be in the range + 1 to 65535. Name must be an IANA_SVC_NAME. Required. + :vartype port: int + :ivar scheme: Scheme to use for connecting to the host. Defaults to HTTP. Known values are: + "HTTP" and "HTTPS". + :vartype scheme: str or ~azure.mgmt.appcontainers.models.Scheme + """ + + _validation = { + "port": {"required": True}, + } -class ContainerAppProbeHttpGetHttpHeadersItem(Model): + _attribute_map = { + "host": {"key": "host", "type": "str"}, + "http_headers": {"key": "httpHeaders", "type": "[ContainerAppProbeHttpGetHttpHeadersItem]"}, + "path": {"key": "path", "type": "str"}, + "port": {"key": "port", "type": "int"}, + "scheme": {"key": "scheme", "type": "str"}, + } + + def __init__( + self, + *, + port: int, + host: Optional[str] = None, + http_headers: Optional[List["_models.ContainerAppProbeHttpGetHttpHeadersItem"]] = None, + path: Optional[str] = None, + scheme: Optional[Union[str, "_models.Scheme"]] = None, + **kwargs: Any + ) -> None: + """ + :keyword host: Host name to connect to, defaults to the pod IP. You probably want to set "Host" + in httpHeaders instead. + :paramtype host: str + :keyword http_headers: Custom headers to set in the request. HTTP allows repeated headers. + :paramtype http_headers: + list[~azure.mgmt.appcontainers.models.ContainerAppProbeHttpGetHttpHeadersItem] + :keyword path: Path to access on the HTTP server. + :paramtype path: str + :keyword port: Name or number of the port to access on the container. Number must be in the + range 1 to 65535. Name must be an IANA_SVC_NAME. Required. + :paramtype port: int + :keyword scheme: Scheme to use for connecting to the host. Defaults to HTTP. Known values are: + "HTTP" and "HTTPS". + :paramtype scheme: str or ~azure.mgmt.appcontainers.models.Scheme + """ + super().__init__(**kwargs) + self.host = host + self.http_headers = http_headers + self.path = path + self.port = port + self.scheme = scheme + + +class ContainerAppProbeHttpGetHttpHeadersItem(_serialization.Model): """HTTPHeader describes a custom header to be used in HTTP probes. All required parameters must be populated in order to send to Azure. - :param name: Required. The header field name - :type name: str - :param value: Required. The header field value - :type value: str + :ivar name: The header field name. Required. + :vartype name: str + :ivar value: The header field value. Required. + :vartype value: str """ _validation = { - 'name': {'required': True}, - 'value': {'required': True}, + "name": {"required": True}, + "value": {"required": True}, } _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'value': {'key': 'value', 'type': 'str'}, + "name": {"key": "name", "type": "str"}, + "value": {"key": "value", "type": "str"}, } - def __init__(self, **kwargs): - super(ContainerAppProbeHttpGetHttpHeadersItem, self).__init__(**kwargs) - self.name = kwargs.get('name', None) - self.value = kwargs.get('value', None) + def __init__(self, *, name: str, value: str, **kwargs: Any) -> None: + """ + :keyword name: The header field name. Required. + :paramtype name: str + :keyword value: The header field value. Required. + :paramtype value: str + """ + super().__init__(**kwargs) + self.name = name + self.value = value -class ContainerAppProbeTcpSocket(Model): - """TCPSocket specifies an action involving a TCP port. TCP hooks not yet - supported. +class ContainerAppProbeTcpSocket(_serialization.Model): + """TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported. All required parameters must be populated in order to send to Azure. - :param host: Optional: Host name to connect to, defaults to the pod IP. - :type host: str - :param port: Required. Number or name of the port to access on the - container. Number must be in the range 1 to 65535. Name must be an - IANA_SVC_NAME. - :type port: int + :ivar host: Optional: Host name to connect to, defaults to the pod IP. + :vartype host: str + :ivar port: Number or name of the port to access on the container. Number must be in the range + 1 to 65535. Name must be an IANA_SVC_NAME. Required. + :vartype port: int """ _validation = { - 'port': {'required': True}, + "port": {"required": True}, } _attribute_map = { - 'host': {'key': 'host', 'type': 'str'}, - 'port': {'key': 'port', 'type': 'int'}, + "host": {"key": "host", "type": "str"}, + "port": {"key": "port", "type": "int"}, } - def __init__(self, **kwargs): - super(ContainerAppProbeTcpSocket, self).__init__(**kwargs) - self.host = kwargs.get('host', None) - self.port = kwargs.get('port', None) + def __init__(self, *, port: int, host: Optional[str] = None, **kwargs: Any) -> None: + """ + :keyword host: Optional: Host name to connect to, defaults to the pod IP. + :paramtype host: str + :keyword port: Number or name of the port to access on the container. Number must be in the + range 1 to 65535. Name must be an IANA_SVC_NAME. Required. + :paramtype port: int + """ + super().__init__(**kwargs) + self.host = host + self.port = port -class ContainerAppSecret(Model): +class ContainerAppSecret(_serialization.Model): """Container App Secret. - Variables are only populated by the server, and will be ignored when - sending a request. + Variables are only populated by the server, and will be ignored when sending a request. :ivar name: Secret Name. :vartype name: str :ivar value: Secret Value. :vartype value: str + :ivar identity: Resource ID of a managed identity to authenticate with Azure Key Vault, or + System to use a system-assigned identity. + :vartype identity: str + :ivar key_vault_url: Azure Key Vault URL pointing to the secret referenced by the container + app. + :vartype key_vault_url: str """ _validation = { - 'name': {'readonly': True}, - 'value': {'readonly': True}, + "name": {"readonly": True}, + "value": {"readonly": True}, + "identity": {"readonly": True}, + "key_vault_url": {"readonly": True}, } _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'value': {'key': 'value', 'type': 'str'}, + "name": {"key": "name", "type": "str"}, + "value": {"key": "value", "type": "str"}, + "identity": {"key": "identity", "type": "str"}, + "key_vault_url": {"key": "keyVaultUrl", "type": "str"}, } - def __init__(self, **kwargs): - super(ContainerAppSecret, self).__init__(**kwargs) + def __init__(self, **kwargs: Any) -> None: + """ """ + super().__init__(**kwargs) self.name = None self.value = None + self.identity = None + self.key_vault_url = None -class ContainerResources(Model): +class ContainerResources(_serialization.Model): """Container App container resource requirements. - Variables are only populated by the server, and will be ignored when - sending a request. + Variables are only populated by the server, and will be ignored when sending a request. - :param cpu: Required CPU in cores, e.g. 0.5 - :type cpu: float - :param memory: Required memory, e.g. "250Mb" - :type memory: str - :ivar ephemeral_storage: Ephemeral Storage, e.g. "1Gi" + :ivar cpu: Required CPU in cores, e.g. 0.5. + :vartype cpu: float + :ivar memory: Required memory, e.g. "250Mb". + :vartype memory: str + :ivar ephemeral_storage: Ephemeral Storage, e.g. "1Gi". :vartype ephemeral_storage: str """ _validation = { - 'ephemeral_storage': {'readonly': True}, + "ephemeral_storage": {"readonly": True}, } _attribute_map = { - 'cpu': {'key': 'cpu', 'type': 'float'}, - 'memory': {'key': 'memory', 'type': 'str'}, - 'ephemeral_storage': {'key': 'ephemeralStorage', 'type': 'str'}, - } - - def __init__(self, **kwargs): - super(ContainerResources, self).__init__(**kwargs) - self.cpu = kwargs.get('cpu', None) - self.memory = kwargs.get('memory', None) + "cpu": {"key": "cpu", "type": "float"}, + "memory": {"key": "memory", "type": "str"}, + "ephemeral_storage": {"key": "ephemeralStorage", "type": "str"}, + } + + def __init__(self, *, cpu: Optional[float] = None, memory: Optional[str] = None, **kwargs: Any) -> None: + """ + :keyword cpu: Required CPU in cores, e.g. 0.5. + :paramtype cpu: float + :keyword memory: Required memory, e.g. "250Mb". + :paramtype memory: str + """ + super().__init__(**kwargs) + self.cpu = cpu + self.memory = memory self.ephemeral_storage = None -class CustomDomain(Model): - """Custom Domain of a Container App. +class CookieExpiration(_serialization.Model): + """The configuration settings of the session cookie's expiration. - :param name: Hostname. - :type name: str - :param binding_type: Custom Domain binding type. Possible values include: - 'Disabled', 'SniEnabled' - :type binding_type: str or ~commondefinitions.models.BindingType - :param certificate_id: Resource Id of the Certificate to be bound to this - hostname. Must exist in the Managed Environment. - :type certificate_id: str + :ivar convention: The convention used when determining the session cookie's expiration. Known + values are: "FixedTime" and "IdentityProviderDerived". + :vartype convention: str or ~azure.mgmt.appcontainers.models.CookieExpirationConvention + :ivar time_to_expiration: The time after the request is made when the session cookie should + expire. + :vartype time_to_expiration: str """ _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'binding_type': {'key': 'bindingType', 'type': 'str'}, - 'certificate_id': {'key': 'certificateId', 'type': 'str'}, - } - - def __init__(self, **kwargs): - super(CustomDomain, self).__init__(**kwargs) - self.name = kwargs.get('name', None) - self.binding_type = kwargs.get('binding_type', None) - self.certificate_id = kwargs.get('certificate_id', None) - - -class IPSecurityRestrictions(Model): - """IP Restrictions of a Container App. + "convention": {"key": "convention", "type": "str"}, + "time_to_expiration": {"key": "timeToExpiration", "type": "str"}, + } + + def __init__( + self, + *, + convention: Optional[Union[str, "_models.CookieExpirationConvention"]] = None, + time_to_expiration: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword convention: The convention used when determining the session cookie's expiration. + Known values are: "FixedTime" and "IdentityProviderDerived". + :paramtype convention: str or ~azure.mgmt.appcontainers.models.CookieExpirationConvention + :keyword time_to_expiration: The time after the request is made when the session cookie should + expire. + :paramtype time_to_expiration: str + """ + super().__init__(**kwargs) + self.convention = convention + self.time_to_expiration = time_to_expiration + + +class CorsPolicy(_serialization.Model): + """Cross-Origin-Resource-Sharing policy. - :param name: ipAddressRange - :type name: str - :param name: action - :type name: str - :param name: name - :type name: str - :param name: description - :type name: str + All required parameters must be populated in order to send to Azure. + :ivar allowed_origins: Specifies the content for the access-control-allow-origins header. + Required. + :vartype allowed_origins: list[str] + :ivar allowed_methods: Specifies the content for the access-control-allow-methods header. + :vartype allowed_methods: list[str] + :ivar allowed_headers: Specifies the content for the access-control-allow-headers header. + :vartype allowed_headers: list[str] + :ivar expose_headers: Specifies the content for the access-control-expose-headers header. + :vartype expose_headers: list[str] + :ivar max_age: Specifies the content for the access-control-max-age header. + :vartype max_age: int + :ivar allow_credentials: Specifies whether the resource allows credentials. + :vartype allow_credentials: bool """ - _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'ipAddressRange': {'key': 'ipAddressRange', 'type': 'str'}, - 'action': {'key': 'action', 'type': 'str'}, - 'description': {'key': 'description', 'type': 'str'}, + _validation = { + "allowed_origins": {"required": True}, } - def __init__(self, **kwargs): - super(IPSecurityRestrictions, self).__init__(**kwargs) - self.name = kwargs.get('name', None) - self.ipAddressRange = kwargs.get('ipAddressRange', None) - self.action = kwargs.get('action', None) - self.description = kwargs.get('description', None) - - -class StickySessions(Model): - """Sticky Sessions of a Container App. + _attribute_map = { + "allowed_origins": {"key": "allowedOrigins", "type": "[str]"}, + "allowed_methods": {"key": "allowedMethods", "type": "[str]"}, + "allowed_headers": {"key": "allowedHeaders", "type": "[str]"}, + "expose_headers": {"key": "exposeHeaders", "type": "[str]"}, + "max_age": {"key": "maxAge", "type": "int"}, + "allow_credentials": {"key": "allowCredentials", "type": "bool"}, + } + + def __init__( + self, + *, + allowed_origins: List[str], + allowed_methods: Optional[List[str]] = None, + allowed_headers: Optional[List[str]] = None, + expose_headers: Optional[List[str]] = None, + max_age: Optional[int] = None, + allow_credentials: Optional[bool] = None, + **kwargs: Any + ) -> None: + """ + :keyword allowed_origins: Specifies the content for the access-control-allow-origins header. + Required. + :paramtype allowed_origins: list[str] + :keyword allowed_methods: Specifies the content for the access-control-allow-methods header. + :paramtype allowed_methods: list[str] + :keyword allowed_headers: Specifies the content for the access-control-allow-headers header. + :paramtype allowed_headers: list[str] + :keyword expose_headers: Specifies the content for the access-control-expose-headers header. + :paramtype expose_headers: list[str] + :keyword max_age: Specifies the content for the access-control-max-age header. + :paramtype max_age: int + :keyword allow_credentials: Specifies whether the resource allows credentials. + :paramtype allow_credentials: bool + """ + super().__init__(**kwargs) + self.allowed_origins = allowed_origins + self.allowed_methods = allowed_methods + self.allowed_headers = allowed_headers + self.expose_headers = expose_headers + self.max_age = max_age + self.allow_credentials = allow_credentials + + +class CustomDomain(_serialization.Model): + """Custom Domain of a Container App. - :param name: affinity - :type name: str + All required parameters must be populated in order to send to Azure. + :ivar name: Hostname. Required. + :vartype name: str + :ivar binding_type: Custom Domain binding type. Known values are: "Disabled" and "SniEnabled". + :vartype binding_type: str or ~azure.mgmt.appcontainers.models.BindingType + :ivar certificate_id: Resource Id of the Certificate to be bound to this hostname. Must exist + in the Managed Environment. + :vartype certificate_id: str """ - _attribute_map = { - 'affinity': {'key': 'affinity', 'type': 'str'}, + _validation = { + "name": {"required": True}, } - def __init__(self, **kwargs): - super(StickySessions, self).__init__(**kwargs) - self.affinity = kwargs.get('affinity', None) - - -class CustomHostnameAnalysisResult(ProxyResource): + _attribute_map = { + "name": {"key": "name", "type": "str"}, + "binding_type": {"key": "bindingType", "type": "str"}, + "certificate_id": {"key": "certificateId", "type": "str"}, + } + + def __init__( + self, + *, + name: str, + binding_type: Optional[Union[str, "_models.BindingType"]] = None, + certificate_id: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword name: Hostname. Required. + :paramtype name: str + :keyword binding_type: Custom Domain binding type. Known values are: "Disabled" and + "SniEnabled". + :paramtype binding_type: str or ~azure.mgmt.appcontainers.models.BindingType + :keyword certificate_id: Resource Id of the Certificate to be bound to this hostname. Must + exist in the Managed Environment. + :paramtype certificate_id: str + """ + super().__init__(**kwargs) + self.name = name + self.binding_type = binding_type + self.certificate_id = certificate_id + + +class CustomDomainConfiguration(_serialization.Model): + """Configuration properties for apps environment custom domain. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar custom_domain_verification_id: Id used to verify domain name ownership. + :vartype custom_domain_verification_id: str + :ivar dns_suffix: Dns suffix for the environment domain. + :vartype dns_suffix: str + :ivar certificate_value: PFX or PEM blob. + :vartype certificate_value: bytes + :ivar certificate_password: Certificate password. + :vartype certificate_password: str + :ivar expiration_date: Certificate expiration date. + :vartype expiration_date: ~datetime.datetime + :ivar thumbprint: Certificate thumbprint. + :vartype thumbprint: str + :ivar subject_name: Subject name of the certificate. + :vartype subject_name: str + """ + + _validation = { + "custom_domain_verification_id": {"readonly": True}, + "expiration_date": {"readonly": True}, + "thumbprint": {"readonly": True}, + "subject_name": {"readonly": True}, + } + + _attribute_map = { + "custom_domain_verification_id": {"key": "customDomainVerificationId", "type": "str"}, + "dns_suffix": {"key": "dnsSuffix", "type": "str"}, + "certificate_value": {"key": "certificateValue", "type": "bytearray"}, + "certificate_password": {"key": "certificatePassword", "type": "str"}, + "expiration_date": {"key": "expirationDate", "type": "iso-8601"}, + "thumbprint": {"key": "thumbprint", "type": "str"}, + "subject_name": {"key": "subjectName", "type": "str"}, + } + + def __init__( + self, + *, + dns_suffix: Optional[str] = None, + certificate_value: Optional[bytes] = None, + certificate_password: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword dns_suffix: Dns suffix for the environment domain. + :paramtype dns_suffix: str + :keyword certificate_value: PFX or PEM blob. + :paramtype certificate_value: bytes + :keyword certificate_password: Certificate password. + :paramtype certificate_password: str + """ + super().__init__(**kwargs) + self.custom_domain_verification_id = None + self.dns_suffix = dns_suffix + self.certificate_value = certificate_value + self.certificate_password = certificate_password + self.expiration_date = None + self.thumbprint = None + self.subject_name = None + + +class CustomHostnameAnalysisResult(_serialization.Model): # pylint: disable=too-many-instance-attributes """Custom domain analysis. - Variables are only populated by the server, and will be ignored when - sending a request. + Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource ID for the resource. Ex - - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} - :vartype id: str - :ivar name: The name of the resource - :vartype name: str - :ivar type: The type of the resource. E.g. - "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" - :vartype type: str - :ivar system_data: Azure Resource Manager metadata containing createdBy - and modifiedBy information. - :vartype system_data: ~commondefinitions.models.SystemData - :ivar host_name: Host name that was analyzed + :ivar host_name: Host name that was analyzed. :vartype host_name: str - :ivar is_hostname_already_verified: true if hostname is - already verified; otherwise, false. + :ivar is_hostname_already_verified: :code:`true` if hostname is already verified; + otherwise, :code:`false`. :vartype is_hostname_already_verified: bool - :ivar custom_domain_verification_test: DNS verification test result. - Possible values include: 'Passed', 'Failed', 'Skipped' + :ivar custom_domain_verification_test: DNS verification test result. Known values are: + "Passed", "Failed", and "Skipped". :vartype custom_domain_verification_test: str or - ~commondefinitions.models.DnsVerificationTestResult - :ivar custom_domain_verification_failure_info: Raw failure information if - DNS verification fails. + ~azure.mgmt.appcontainers.models.DnsVerificationTestResult + :ivar custom_domain_verification_failure_info: Raw failure information if DNS verification + fails. :vartype custom_domain_verification_failure_info: - ~commondefinitions.models.DefaultErrorResponse - :ivar has_conflict_on_managed_environment: true if there is a - conflict on the Container App's managed environment; otherwise, - false. + ~azure.mgmt.appcontainers.models.CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo + :ivar has_conflict_on_managed_environment: :code:`true` if there is a conflict on + the Container App's managed environment; otherwise, :code:`false`. :vartype has_conflict_on_managed_environment: bool - :ivar conflicting_container_app_resource_id: Name of the conflicting - Container App on the Managed Environment if it's within the same - subscription. + :ivar conflict_with_environment_custom_domain: :code:`true` if there is a conflict + on the Container App's managed environment level custom domain; otherwise, + :code:`false`. + :vartype conflict_with_environment_custom_domain: bool + :ivar conflicting_container_app_resource_id: Name of the conflicting Container App on the + Managed Environment if it's within the same subscription. :vartype conflicting_container_app_resource_id: str - :param c_name_records: CName records visible for this hostname. - :type c_name_records: list[str] - :param txt_records: TXT records visible for this hostname. - :type txt_records: list[str] - :param a_records: A records visible for this hostname. - :type a_records: list[str] - :param alternate_cname_records: Alternate CName records visible for this - hostname. - :type alternate_cname_records: list[str] - :param alternate_txt_records: Alternate TXT records visible for this - hostname. - :type alternate_txt_records: list[str] - """ - - _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'system_data': {'readonly': True}, - 'host_name': {'readonly': True}, - 'is_hostname_already_verified': {'readonly': True}, - 'custom_domain_verification_test': {'readonly': True}, - 'custom_domain_verification_failure_info': {'readonly': True}, - 'has_conflict_on_managed_environment': {'readonly': True}, - 'conflicting_container_app_resource_id': {'readonly': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'system_data': {'key': 'systemData', 'type': 'SystemData'}, - 'host_name': {'key': 'properties.hostName', 'type': 'str'}, - 'is_hostname_already_verified': {'key': 'properties.isHostnameAlreadyVerified', 'type': 'bool'}, - 'custom_domain_verification_test': {'key': 'properties.customDomainVerificationTest', 'type': 'DnsVerificationTestResult'}, - 'custom_domain_verification_failure_info': {'key': 'properties.customDomainVerificationFailureInfo', 'type': 'DefaultErrorResponse'}, - 'has_conflict_on_managed_environment': {'key': 'properties.hasConflictOnManagedEnvironment', 'type': 'bool'}, - 'conflicting_container_app_resource_id': {'key': 'properties.conflictingContainerAppResourceId', 'type': 'str'}, - 'c_name_records': {'key': 'properties.cNameRecords', 'type': '[str]'}, - 'txt_records': {'key': 'properties.txtRecords', 'type': '[str]'}, - 'a_records': {'key': 'properties.aRecords', 'type': '[str]'}, - 'alternate_cname_records': {'key': 'properties.alternateCNameRecords', 'type': '[str]'}, - 'alternate_txt_records': {'key': 'properties.alternateTxtRecords', 'type': '[str]'}, - } - - def __init__(self, **kwargs): - super(CustomHostnameAnalysisResult, self).__init__(**kwargs) + :ivar c_name_records: CName records visible for this hostname. + :vartype c_name_records: list[str] + :ivar txt_records: TXT records visible for this hostname. + :vartype txt_records: list[str] + :ivar a_records: A records visible for this hostname. + :vartype a_records: list[str] + :ivar alternate_c_name_records: Alternate CName records visible for this hostname. + :vartype alternate_c_name_records: list[str] + :ivar alternate_txt_records: Alternate TXT records visible for this hostname. + :vartype alternate_txt_records: list[str] + """ + + _validation = { + "host_name": {"readonly": True}, + "is_hostname_already_verified": {"readonly": True}, + "custom_domain_verification_test": {"readonly": True}, + "custom_domain_verification_failure_info": {"readonly": True}, + "has_conflict_on_managed_environment": {"readonly": True}, + "conflict_with_environment_custom_domain": {"readonly": True}, + "conflicting_container_app_resource_id": {"readonly": True}, + } + + _attribute_map = { + "host_name": {"key": "hostName", "type": "str"}, + "is_hostname_already_verified": {"key": "isHostnameAlreadyVerified", "type": "bool"}, + "custom_domain_verification_test": {"key": "customDomainVerificationTest", "type": "str"}, + "custom_domain_verification_failure_info": { + "key": "customDomainVerificationFailureInfo", + "type": "CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo", + }, + "has_conflict_on_managed_environment": {"key": "hasConflictOnManagedEnvironment", "type": "bool"}, + "conflict_with_environment_custom_domain": {"key": "conflictWithEnvironmentCustomDomain", "type": "bool"}, + "conflicting_container_app_resource_id": {"key": "conflictingContainerAppResourceId", "type": "str"}, + "c_name_records": {"key": "cNameRecords", "type": "[str]"}, + "txt_records": {"key": "txtRecords", "type": "[str]"}, + "a_records": {"key": "aRecords", "type": "[str]"}, + "alternate_c_name_records": {"key": "alternateCNameRecords", "type": "[str]"}, + "alternate_txt_records": {"key": "alternateTxtRecords", "type": "[str]"}, + } + + def __init__( + self, + *, + c_name_records: Optional[List[str]] = None, + txt_records: Optional[List[str]] = None, + a_records: Optional[List[str]] = None, + alternate_c_name_records: Optional[List[str]] = None, + alternate_txt_records: Optional[List[str]] = None, + **kwargs: Any + ) -> None: + """ + :keyword c_name_records: CName records visible for this hostname. + :paramtype c_name_records: list[str] + :keyword txt_records: TXT records visible for this hostname. + :paramtype txt_records: list[str] + :keyword a_records: A records visible for this hostname. + :paramtype a_records: list[str] + :keyword alternate_c_name_records: Alternate CName records visible for this hostname. + :paramtype alternate_c_name_records: list[str] + :keyword alternate_txt_records: Alternate TXT records visible for this hostname. + :paramtype alternate_txt_records: list[str] + """ + super().__init__(**kwargs) self.host_name = None self.is_hostname_already_verified = None self.custom_domain_verification_test = None self.custom_domain_verification_failure_info = None self.has_conflict_on_managed_environment = None + self.conflict_with_environment_custom_domain = None self.conflicting_container_app_resource_id = None - self.c_name_records = kwargs.get('c_name_records', None) - self.txt_records = kwargs.get('txt_records', None) - self.a_records = kwargs.get('a_records', None) - self.alternate_cname_records = kwargs.get('alternate_cname_records', None) - self.alternate_txt_records = kwargs.get('alternate_txt_records', None) + self.c_name_records = c_name_records + self.txt_records = txt_records + self.a_records = a_records + self.alternate_c_name_records = alternate_c_name_records + self.alternate_txt_records = alternate_txt_records -class CustomOpenIdConnectProvider(Model): - """The configuration settings of the custom Open ID Connect provider. +class CustomHostnameAnalysisResultCustomDomainVerificationFailureInfo(_serialization.Model): + """Raw failure information if DNS verification fails. - :param state: Disabled if the custom Open ID Connect provider - should not be enabled despite the set registration; otherwise, - Enabled. Possible values include: 'Enabled', 'Disabled' - :type state: str or ~commondefinitions.models.IdentityProviderState - :param registration: The configuration settings of the app registration - for the custom Open ID Connect provider. - :type registration: ~commondefinitions.models.OpenIdConnectRegistration - :param login: The configuration settings of the login flow of the custom - Open ID Connect provider. - :type login: ~commondefinitions.models.OpenIdConnectLogin + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar code: Standardized string to programmatically identify the error. + :vartype code: str + :ivar message: Detailed error description and debugging information. + :vartype message: str + :ivar target: Detailed error description and debugging information. + :vartype target: str + :ivar details: Details or the error. + :vartype details: + list[~azure.mgmt.appcontainers.models.CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem] """ - _attribute_map = { - 'state': {'key': 'state', 'type': 'str'}, - 'registration': {'key': 'registration', 'type': 'OpenIdConnectRegistration'}, - 'login': {'key': 'login', 'type': 'OpenIdConnectLogin'}, + _validation = { + "code": {"readonly": True}, + "message": {"readonly": True}, + "target": {"readonly": True}, } - def __init__(self, **kwargs): - super(CustomOpenIdConnectProvider, self).__init__(**kwargs) - self.state = kwargs.get('state', None) - self.registration = kwargs.get('registration', None) - self.login = kwargs.get('login', None) + _attribute_map = { + "code": {"key": "code", "type": "str"}, + "message": {"key": "message", "type": "str"}, + "target": {"key": "target", "type": "str"}, + "details": { + "key": "details", + "type": "[CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem]", + }, + } + + def __init__( + self, + *, + details: Optional[ + List["_models.CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem"] + ] = None, + **kwargs: Any + ) -> None: + """ + :keyword details: Details or the error. + :paramtype details: + list[~azure.mgmt.appcontainers.models.CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem] + """ + super().__init__(**kwargs) + self.code = None + self.message = None + self.target = None + self.details = details -class CustomScaleRule(Model): - """Container App container Custom scaling rule. +class CustomHostnameAnalysisResultCustomDomainVerificationFailureInfoDetailsItem(_serialization.Model): + """Detailed errors. - :param type: Type of the custom scale rule - eg: azure-servicebus, redis etc. - :type type: str - :param metadata: Metadata properties to describe custom scale rule. - :type metadata: dict[str, str] - :param auth: Authentication secrets for the custom scale rule. - :type auth: list[~commondefinitions.models.ScaleRuleAuth] + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar code: Standardized string to programmatically identify the error. + :vartype code: str + :ivar message: Detailed error description and debugging information. + :vartype message: str + :ivar target: Detailed error description and debugging information. + :vartype target: str """ + _validation = { + "code": {"readonly": True}, + "message": {"readonly": True}, + "target": {"readonly": True}, + } + _attribute_map = { - 'type': {'key': 'type', 'type': 'str'}, - 'metadata': {'key': 'metadata', 'type': '{str}'}, - 'auth': {'key': 'auth', 'type': '[ScaleRuleAuth]'}, + "code": {"key": "code", "type": "str"}, + "message": {"key": "message", "type": "str"}, + "target": {"key": "target", "type": "str"}, } - def __init__(self, **kwargs): - super(CustomScaleRule, self).__init__(**kwargs) - self.type = kwargs.get('type', None) - self.metadata = kwargs.get('metadata', None) - self.auth = kwargs.get('auth', None) + def __init__(self, **kwargs: Any) -> None: + """ """ + super().__init__(**kwargs) + self.code = None + self.message = None + self.target = None -class Dapr(Model): +class CustomOpenIdConnectProvider(_serialization.Model): + """The configuration settings of the custom Open ID Connect provider. + + :ivar enabled: :code:`false` if the custom Open ID provider provider should not be + enabled; otherwise, :code:`true`. + :vartype enabled: bool + :ivar registration: The configuration settings of the app registration for the custom Open ID + Connect provider. + :vartype registration: ~azure.mgmt.appcontainers.models.OpenIdConnectRegistration + :ivar login: The configuration settings of the login flow of the custom Open ID Connect + provider. + :vartype login: ~azure.mgmt.appcontainers.models.OpenIdConnectLogin + """ + + _attribute_map = { + "enabled": {"key": "enabled", "type": "bool"}, + "registration": {"key": "registration", "type": "OpenIdConnectRegistration"}, + "login": {"key": "login", "type": "OpenIdConnectLogin"}, + } + + def __init__( + self, + *, + enabled: Optional[bool] = None, + registration: Optional["_models.OpenIdConnectRegistration"] = None, + login: Optional["_models.OpenIdConnectLogin"] = None, + **kwargs: Any + ) -> None: + """ + :keyword enabled: :code:`false` if the custom Open ID provider provider should not + be enabled; otherwise, :code:`true`. + :paramtype enabled: bool + :keyword registration: The configuration settings of the app registration for the custom Open + ID Connect provider. + :paramtype registration: ~azure.mgmt.appcontainers.models.OpenIdConnectRegistration + :keyword login: The configuration settings of the login flow of the custom Open ID Connect + provider. + :paramtype login: ~azure.mgmt.appcontainers.models.OpenIdConnectLogin + """ + super().__init__(**kwargs) + self.enabled = enabled + self.registration = registration + self.login = login + + +class CustomScaleRule(_serialization.Model): + """Container App container Custom scaling rule. + + :ivar type: Type of the custom scale rule + eg: azure-servicebus, redis etc. + :vartype type: str + :ivar metadata: Metadata properties to describe custom scale rule. + :vartype metadata: dict[str, str] + :ivar auth: Authentication secrets for the custom scale rule. + :vartype auth: list[~azure.mgmt.appcontainers.models.ScaleRuleAuth] + """ + + _attribute_map = { + "type": {"key": "type", "type": "str"}, + "metadata": {"key": "metadata", "type": "{str}"}, + "auth": {"key": "auth", "type": "[ScaleRuleAuth]"}, + } + + def __init__( + self, + *, + type: Optional[str] = None, + metadata: Optional[Dict[str, str]] = None, + auth: Optional[List["_models.ScaleRuleAuth"]] = None, + **kwargs: Any + ) -> None: + """ + :keyword type: Type of the custom scale rule + eg: azure-servicebus, redis etc. + :paramtype type: str + :keyword metadata: Metadata properties to describe custom scale rule. + :paramtype metadata: dict[str, str] + :keyword auth: Authentication secrets for the custom scale rule. + :paramtype auth: list[~azure.mgmt.appcontainers.models.ScaleRuleAuth] + """ + super().__init__(**kwargs) + self.type = type + self.metadata = metadata + self.auth = auth + + +class Dapr(_serialization.Model): """Container App Dapr configuration. - :param enabled: Boolean indicating if the Dapr side car is enabled - :type enabled: bool - :param app_id: Dapr application identifier - :type app_id: str - :param app_protocol: Tells Dapr which protocol your application is using. - Valid options are http and grpc. Default is http. Possible values include: - 'http', 'grpc' - :type app_protocol: str or ~commondefinitions.models.AppProtocol - :param app_port: Tells Dapr which port your application is listening on - :type app_port: int - """ - - _attribute_map = { - 'enabled': {'key': 'enabled', 'type': 'bool'}, - 'app_id': {'key': 'appId', 'type': 'str'}, - 'app_protocol': {'key': 'appProtocol', 'type': 'str'}, - 'app_port': {'key': 'appPort', 'type': 'int'}, - 'http_read_buffer_size': {'key': 'httpReadBufferSize', 'type': 'int'}, - 'http_max_request_size': {'key': 'httpMaxRequestSize', 'type': 'int'}, - 'log_level': {'key': 'logLevel', 'type': 'str'}, - 'enable_api_logging': {'key': 'enableApiLogging', 'type': 'bool'}, - } - - def __init__(self, **kwargs): - super(Dapr, self).__init__(**kwargs) - self.enabled = kwargs.get('enabled', None) - self.app_id = kwargs.get('app_id', None) - self.app_protocol = kwargs.get('app_protocol', None) - self.app_port = kwargs.get('app_port', None) - self.http_read_buffer_size = kwargs.get('http_read_buffer_size', None) - self.http_max_request_size = kwargs.get('http_max_request_size', None) - self.log_level = kwargs.get('log_level', None) - self.enable_api_logging = kwargs.get('enable_api_logging', None) - - -class DaprComponent(ProxyResource): + :ivar enabled: Boolean indicating if the Dapr side car is enabled. + :vartype enabled: bool + :ivar app_id: Dapr application identifier. + :vartype app_id: str + :ivar app_protocol: Tells Dapr which protocol your application is using. Valid options are http + and grpc. Default is http. Known values are: "http" and "grpc". + :vartype app_protocol: str or ~azure.mgmt.appcontainers.models.AppProtocol + :ivar app_port: Tells Dapr which port your application is listening on. + :vartype app_port: int + :ivar http_read_buffer_size: Dapr max size of http header read buffer in KB to handle when + sending multi-KB headers. Default is 65KB. + :vartype http_read_buffer_size: int + :ivar http_max_request_size: Increasing max size of request body http and grpc servers + parameter in MB to handle uploading of big files. Default is 4 MB. + :vartype http_max_request_size: int + :ivar log_level: Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, + error. Default is info. Known values are: "info", "debug", "warn", and "error". + :vartype log_level: str or ~azure.mgmt.appcontainers.models.LogLevel + :ivar enable_api_logging: Enables API logging for the Dapr sidecar. + :vartype enable_api_logging: bool + """ + + _attribute_map = { + "enabled": {"key": "enabled", "type": "bool"}, + "app_id": {"key": "appId", "type": "str"}, + "app_protocol": {"key": "appProtocol", "type": "str"}, + "app_port": {"key": "appPort", "type": "int"}, + "http_read_buffer_size": {"key": "httpReadBufferSize", "type": "int"}, + "http_max_request_size": {"key": "httpMaxRequestSize", "type": "int"}, + "log_level": {"key": "logLevel", "type": "str"}, + "enable_api_logging": {"key": "enableApiLogging", "type": "bool"}, + } + + def __init__( + self, + *, + enabled: bool = False, + app_id: Optional[str] = None, + app_protocol: Union[str, "_models.AppProtocol"] = "http", + app_port: Optional[int] = None, + http_read_buffer_size: Optional[int] = None, + http_max_request_size: Optional[int] = None, + log_level: Optional[Union[str, "_models.LogLevel"]] = None, + enable_api_logging: Optional[bool] = None, + **kwargs: Any + ) -> None: + """ + :keyword enabled: Boolean indicating if the Dapr side car is enabled. + :paramtype enabled: bool + :keyword app_id: Dapr application identifier. + :paramtype app_id: str + :keyword app_protocol: Tells Dapr which protocol your application is using. Valid options are + http and grpc. Default is http. Known values are: "http" and "grpc". + :paramtype app_protocol: str or ~azure.mgmt.appcontainers.models.AppProtocol + :keyword app_port: Tells Dapr which port your application is listening on. + :paramtype app_port: int + :keyword http_read_buffer_size: Dapr max size of http header read buffer in KB to handle when + sending multi-KB headers. Default is 65KB. + :paramtype http_read_buffer_size: int + :keyword http_max_request_size: Increasing max size of request body http and grpc servers + parameter in MB to handle uploading of big files. Default is 4 MB. + :paramtype http_max_request_size: int + :keyword log_level: Sets the log level for the Dapr sidecar. Allowed values are debug, info, + warn, error. Default is info. Known values are: "info", "debug", "warn", and "error". + :paramtype log_level: str or ~azure.mgmt.appcontainers.models.LogLevel + :keyword enable_api_logging: Enables API logging for the Dapr sidecar. + :paramtype enable_api_logging: bool + """ + super().__init__(**kwargs) + self.enabled = enabled + self.app_id = app_id + self.app_protocol = app_protocol + self.app_port = app_port + self.http_read_buffer_size = http_read_buffer_size + self.http_max_request_size = http_max_request_size + self.log_level = log_level + self.enable_api_logging = enable_api_logging + + +class DaprComponent(ProxyResource): # pylint: disable=too-many-instance-attributes """Dapr Component. - Variables are only populated by the server, and will be ignored when - sending a request. + Variables are only populated by the server, and will be ignored when sending a request. :ivar id: Fully qualified resource ID for the resource. Ex - - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str - :ivar name: The name of the resource + :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. E.g. - "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str - :ivar system_data: Azure Resource Manager metadata containing createdBy - and modifiedBy information. - :vartype system_data: ~commondefinitions.models.SystemData - :param component_type: Component type - :type component_type: str - :param version: Component version - :type version: str - :param ignore_errors: Boolean describing if the component errors are - ignores - :type ignore_errors: bool - :param init_timeout: Initialization timeout - :type init_timeout: str - :param secrets: Collection of secrets used by a Dapr component - :type secrets: list[~commondefinitions.models.Secret] - :param metadata: Component metadata - :type metadata: list[~commondefinitions.models.DaprMetadata] - :param scopes: Names of container apps that can use this Dapr component - :type scopes: list[str] - """ - - _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'system_data': {'readonly': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'system_data': {'key': 'systemData', 'type': 'SystemData'}, - 'component_type': {'key': 'properties.componentType', 'type': 'str'}, - 'version': {'key': 'properties.version', 'type': 'str'}, - 'ignore_errors': {'key': 'properties.ignoreErrors', 'type': 'bool'}, - 'init_timeout': {'key': 'properties.initTimeout', 'type': 'str'}, - 'secrets': {'key': 'properties.secrets', 'type': '[Secret]'}, - 'metadata': {'key': 'properties.metadata', 'type': '[DaprMetadata]'}, - 'scopes': {'key': 'properties.scopes', 'type': '[str]'}, - } - - def __init__(self, **kwargs): - super(DaprComponent, self).__init__(**kwargs) - self.component_type = kwargs.get('component_type', None) - self.version = kwargs.get('version', None) - self.ignore_errors = kwargs.get('ignore_errors', None) - self.init_timeout = kwargs.get('init_timeout', None) - self.secrets = kwargs.get('secrets', None) - self.metadata = kwargs.get('metadata', None) - self.scopes = kwargs.get('scopes', None) - - -class DaprComponentsCollection(Model): + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.appcontainers.models.SystemData + :ivar component_type: Component type. + :vartype component_type: str + :ivar version: Component version. + :vartype version: str + :ivar ignore_errors: Boolean describing if the component errors are ignores. + :vartype ignore_errors: bool + :ivar init_timeout: Initialization timeout. + :vartype init_timeout: str + :ivar secrets: Collection of secrets used by a Dapr component. + :vartype secrets: list[~azure.mgmt.appcontainers.models.Secret] + :ivar secret_store_component: Name of a Dapr component to retrieve component secrets from. + :vartype secret_store_component: str + :ivar metadata: Component metadata. + :vartype metadata: list[~azure.mgmt.appcontainers.models.DaprMetadata] + :ivar scopes: Names of container apps that can use this Dapr component. + :vartype scopes: list[str] + """ + + _validation = { + "id": {"readonly": True}, + "name": {"readonly": True}, + "type": {"readonly": True}, + "system_data": {"readonly": True}, + } + + _attribute_map = { + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "system_data": {"key": "systemData", "type": "SystemData"}, + "component_type": {"key": "properties.componentType", "type": "str"}, + "version": {"key": "properties.version", "type": "str"}, + "ignore_errors": {"key": "properties.ignoreErrors", "type": "bool"}, + "init_timeout": {"key": "properties.initTimeout", "type": "str"}, + "secrets": {"key": "properties.secrets", "type": "[Secret]"}, + "secret_store_component": {"key": "properties.secretStoreComponent", "type": "str"}, + "metadata": {"key": "properties.metadata", "type": "[DaprMetadata]"}, + "scopes": {"key": "properties.scopes", "type": "[str]"}, + } + + def __init__( + self, + *, + component_type: Optional[str] = None, + version: Optional[str] = None, + ignore_errors: bool = False, + init_timeout: Optional[str] = None, + secrets: Optional[List["_models.Secret"]] = None, + secret_store_component: Optional[str] = None, + metadata: Optional[List["_models.DaprMetadata"]] = None, + scopes: Optional[List[str]] = None, + **kwargs: Any + ) -> None: + """ + :keyword component_type: Component type. + :paramtype component_type: str + :keyword version: Component version. + :paramtype version: str + :keyword ignore_errors: Boolean describing if the component errors are ignores. + :paramtype ignore_errors: bool + :keyword init_timeout: Initialization timeout. + :paramtype init_timeout: str + :keyword secrets: Collection of secrets used by a Dapr component. + :paramtype secrets: list[~azure.mgmt.appcontainers.models.Secret] + :keyword secret_store_component: Name of a Dapr component to retrieve component secrets from. + :paramtype secret_store_component: str + :keyword metadata: Component metadata. + :paramtype metadata: list[~azure.mgmt.appcontainers.models.DaprMetadata] + :keyword scopes: Names of container apps that can use this Dapr component. + :paramtype scopes: list[str] + """ + super().__init__(**kwargs) + self.component_type = component_type + self.version = version + self.ignore_errors = ignore_errors + self.init_timeout = init_timeout + self.secrets = secrets + self.secret_store_component = secret_store_component + self.metadata = metadata + self.scopes = scopes + + +class DaprComponentsCollection(_serialization.Model): """Dapr Components ARM resource. - Variables are only populated by the server, and will be ignored when - sending a request. + Variables are only populated by the server, and will be ignored when sending a request. All required parameters must be populated in order to send to Azure. - :param value: Required. Collection of resources. - :type value: list[~commondefinitions.models.DaprComponent] + :ivar value: Collection of resources. Required. + :vartype value: list[~azure.mgmt.appcontainers.models.DaprComponent] :ivar next_link: Link to next page of resources. :vartype next_link: str """ _validation = { - 'value': {'required': True}, - 'next_link': {'readonly': True}, + "value": {"required": True}, + "next_link": {"readonly": True}, } _attribute_map = { - 'value': {'key': 'value', 'type': '[DaprComponent]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, + "value": {"key": "value", "type": "[DaprComponent]"}, + "next_link": {"key": "nextLink", "type": "str"}, } - def __init__(self, **kwargs): - super(DaprComponentsCollection, self).__init__(**kwargs) - self.value = kwargs.get('value', None) + def __init__(self, *, value: List["_models.DaprComponent"], **kwargs: Any) -> None: + """ + :keyword value: Collection of resources. Required. + :paramtype value: list[~azure.mgmt.appcontainers.models.DaprComponent] + """ + super().__init__(**kwargs) + self.value = value self.next_link = None -class DaprMetadata(Model): +class DaprConfiguration(_serialization.Model): + """Configuration properties Dapr component. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar version: The version of Dapr. + :vartype version: str + """ + + _validation = { + "version": {"readonly": True}, + } + + _attribute_map = { + "version": {"key": "version", "type": "str"}, + } + + def __init__(self, **kwargs: Any) -> None: + """ """ + super().__init__(**kwargs) + self.version = None + + +class DaprMetadata(_serialization.Model): """Dapr component metadata. - :param name: Metadata property name. - :type name: str - :param value: Metadata property value. - :type value: str - :param secret_ref: Name of the Dapr Component secret from which to pull - the metadata property value. - :type secret_ref: str + :ivar name: Metadata property name. + :vartype name: str + :ivar value: Metadata property value. + :vartype value: str + :ivar secret_ref: Name of the Dapr Component secret from which to pull the metadata property + value. + :vartype secret_ref: str """ _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'value': {'key': 'value', 'type': 'str'}, - 'secret_ref': {'key': 'secretRef', 'type': 'str'}, + "name": {"key": "name", "type": "str"}, + "value": {"key": "value", "type": "str"}, + "secret_ref": {"key": "secretRef", "type": "str"}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + value: Optional[str] = None, + secret_ref: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword name: Metadata property name. + :paramtype name: str + :keyword value: Metadata property value. + :paramtype value: str + :keyword secret_ref: Name of the Dapr Component secret from which to pull the metadata property + value. + :paramtype secret_ref: str + """ + super().__init__(**kwargs) + self.name = name + self.value = value + self.secret_ref = secret_ref + + +class DaprSecret(_serialization.Model): + """Dapr component Secret for ListSecrets Action. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar name: Secret Name. + :vartype name: str + :ivar value: Secret Value. + :vartype value: str + """ + + _validation = { + "name": {"readonly": True}, + "value": {"readonly": True}, + } + + _attribute_map = { + "name": {"key": "name", "type": "str"}, + "value": {"key": "value", "type": "str"}, + } + + def __init__(self, **kwargs: Any) -> None: + """ """ + super().__init__(**kwargs) + self.name = None + self.value = None + + +class DaprSecretsCollection(_serialization.Model): + """Dapr component Secrets Collection for ListSecrets Action. + + All required parameters must be populated in order to send to Azure. + + :ivar value: Collection of secrets used by a Dapr component. Required. + :vartype value: list[~azure.mgmt.appcontainers.models.DaprSecret] + """ + + _validation = { + "value": {"required": True}, + } + + _attribute_map = { + "value": {"key": "value", "type": "[DaprSecret]"}, } - def __init__(self, **kwargs): - super(DaprMetadata, self).__init__(**kwargs) - self.name = kwargs.get('name', None) - self.value = kwargs.get('value', None) - self.secret_ref = kwargs.get('secret_ref', None) + def __init__(self, *, value: List["_models.DaprSecret"], **kwargs: Any) -> None: + """ + :keyword value: Collection of secrets used by a Dapr component. Required. + :paramtype value: list[~azure.mgmt.appcontainers.models.DaprSecret] + """ + super().__init__(**kwargs) + self.value = value + +class DefaultAuthorizationPolicy(_serialization.Model): + """The configuration settings of the Azure Active Directory default authorization policy. + + :ivar allowed_principals: The configuration settings of the Azure Active Directory allowed + principals. + :vartype allowed_principals: ~azure.mgmt.appcontainers.models.AllowedPrincipals + :ivar allowed_applications: The configuration settings of the Azure Active Directory allowed + applications. + :vartype allowed_applications: list[str] + """ -class DefaultErrorResponse(Model): + _attribute_map = { + "allowed_principals": {"key": "allowedPrincipals", "type": "AllowedPrincipals"}, + "allowed_applications": {"key": "allowedApplications", "type": "[str]"}, + } + + def __init__( + self, + *, + allowed_principals: Optional["_models.AllowedPrincipals"] = None, + allowed_applications: Optional[List[str]] = None, + **kwargs: Any + ) -> None: + """ + :keyword allowed_principals: The configuration settings of the Azure Active Directory allowed + principals. + :paramtype allowed_principals: ~azure.mgmt.appcontainers.models.AllowedPrincipals + :keyword allowed_applications: The configuration settings of the Azure Active Directory allowed + applications. + :paramtype allowed_applications: list[str] + """ + super().__init__(**kwargs) + self.allowed_principals = allowed_principals + self.allowed_applications = allowed_applications + + +class DefaultErrorResponse(_serialization.Model): """App Service error response. - Variables are only populated by the server, and will be ignored when - sending a request. + Variables are only populated by the server, and will be ignored when sending a request. :ivar error: Error model. - :vartype error: ~commondefinitions.models.DefaultErrorResponseError + :vartype error: ~azure.mgmt.appcontainers.models.DefaultErrorResponseError + """ + + _validation = { + "error": {"readonly": True}, + } + + _attribute_map = { + "error": {"key": "error", "type": "DefaultErrorResponseError"}, + } + + def __init__(self, **kwargs: Any) -> None: + """ """ + super().__init__(**kwargs) + self.error = None + + +class DefaultErrorResponseError(_serialization.Model): + """Error model. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar code: Standardized string to programmatically identify the error. + :vartype code: str + :ivar message: Detailed error description and debugging information. + :vartype message: str + :ivar target: Detailed error description and debugging information. + :vartype target: str + :ivar details: Details or the error. + :vartype details: list[~azure.mgmt.appcontainers.models.DefaultErrorResponseErrorDetailsItem] + :ivar innererror: More information to debug error. + :vartype innererror: str + """ + + _validation = { + "code": {"readonly": True}, + "message": {"readonly": True}, + "target": {"readonly": True}, + "innererror": {"readonly": True}, + } + + _attribute_map = { + "code": {"key": "code", "type": "str"}, + "message": {"key": "message", "type": "str"}, + "target": {"key": "target", "type": "str"}, + "details": {"key": "details", "type": "[DefaultErrorResponseErrorDetailsItem]"}, + "innererror": {"key": "innererror", "type": "str"}, + } + + def __init__( + self, *, details: Optional[List["_models.DefaultErrorResponseErrorDetailsItem"]] = None, **kwargs: Any + ) -> None: + """ + :keyword details: Details or the error. + :paramtype details: list[~azure.mgmt.appcontainers.models.DefaultErrorResponseErrorDetailsItem] + """ + super().__init__(**kwargs) + self.code = None + self.message = None + self.target = None + self.details = details + self.innererror = None + + +class DefaultErrorResponseErrorDetailsItem(_serialization.Model): + """Detailed errors. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar code: Standardized string to programmatically identify the error. + :vartype code: str + :ivar message: Detailed error description and debugging information. + :vartype message: str + :ivar target: Detailed error description and debugging information. + :vartype target: str + """ + + _validation = { + "code": {"readonly": True}, + "message": {"readonly": True}, + "target": {"readonly": True}, + } + + _attribute_map = { + "code": {"key": "code", "type": "str"}, + "message": {"key": "message", "type": "str"}, + "target": {"key": "target", "type": "str"}, + } + + def __init__(self, **kwargs: Any) -> None: + """ """ + super().__init__(**kwargs) + self.code = None + self.message = None + self.target = None + + +class DiagnosticDataProviderMetadata(_serialization.Model): + """Details of a diagnostics data provider. + + :ivar provider_name: Name of data provider. + :vartype provider_name: str + :ivar property_bag: Collection of properties. + :vartype property_bag: + list[~azure.mgmt.appcontainers.models.DiagnosticDataProviderMetadataPropertyBagItem] + """ + + _attribute_map = { + "provider_name": {"key": "providerName", "type": "str"}, + "property_bag": {"key": "propertyBag", "type": "[DiagnosticDataProviderMetadataPropertyBagItem]"}, + } + + def __init__( + self, + *, + provider_name: Optional[str] = None, + property_bag: Optional[List["_models.DiagnosticDataProviderMetadataPropertyBagItem"]] = None, + **kwargs: Any + ) -> None: + """ + :keyword provider_name: Name of data provider. + :paramtype provider_name: str + :keyword property_bag: Collection of properties. + :paramtype property_bag: + list[~azure.mgmt.appcontainers.models.DiagnosticDataProviderMetadataPropertyBagItem] + """ + super().__init__(**kwargs) + self.provider_name = provider_name + self.property_bag = property_bag + + +class DiagnosticDataProviderMetadataPropertyBagItem(_serialization.Model): + """Property details. + + :ivar name: Property name. + :vartype name: str + :ivar value: Property value. + :vartype value: str + """ + + _attribute_map = { + "name": {"key": "name", "type": "str"}, + "value": {"key": "value", "type": "str"}, + } + + def __init__(self, *, name: Optional[str] = None, value: Optional[str] = None, **kwargs: Any) -> None: + """ + :keyword name: Property name. + :paramtype name: str + :keyword value: Property value. + :paramtype value: str + """ + super().__init__(**kwargs) + self.name = name + self.value = value + + +class DiagnosticDataTableResponseColumn(_serialization.Model): + """Diagnostics data column. + + :ivar column_name: Column name. + :vartype column_name: str + :ivar data_type: Data type of the column. + :vartype data_type: str + :ivar column_type: Column type. + :vartype column_type: str + """ + + _attribute_map = { + "column_name": {"key": "columnName", "type": "str"}, + "data_type": {"key": "dataType", "type": "str"}, + "column_type": {"key": "columnType", "type": "str"}, + } + + def __init__( + self, + *, + column_name: Optional[str] = None, + data_type: Optional[str] = None, + column_type: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword column_name: Column name. + :paramtype column_name: str + :keyword data_type: Data type of the column. + :paramtype data_type: str + :keyword column_type: Column type. + :paramtype column_type: str + """ + super().__init__(**kwargs) + self.column_name = column_name + self.data_type = data_type + self.column_type = column_type + + +class DiagnosticDataTableResponseObject(_serialization.Model): + """Diagnostics data table. + + :ivar table_name: Table name. + :vartype table_name: str + :ivar columns: Columns in the table. + :vartype columns: list[~azure.mgmt.appcontainers.models.DiagnosticDataTableResponseColumn] + :ivar rows: Rows in the table. + :vartype rows: list[JSON] + """ + + _attribute_map = { + "table_name": {"key": "tableName", "type": "str"}, + "columns": {"key": "columns", "type": "[DiagnosticDataTableResponseColumn]"}, + "rows": {"key": "rows", "type": "[object]"}, + } + + def __init__( + self, + *, + table_name: Optional[str] = None, + columns: Optional[List["_models.DiagnosticDataTableResponseColumn"]] = None, + rows: Optional[List[JSON]] = None, + **kwargs: Any + ) -> None: + """ + :keyword table_name: Table name. + :paramtype table_name: str + :keyword columns: Columns in the table. + :paramtype columns: list[~azure.mgmt.appcontainers.models.DiagnosticDataTableResponseColumn] + :keyword rows: Rows in the table. + :paramtype rows: list[JSON] + """ + super().__init__(**kwargs) + self.table_name = table_name + self.columns = columns + self.rows = rows + + +class DiagnosticRendering(_serialization.Model): + """Rendering details of a diagnostics table. + + :ivar type: Rendering type. + :vartype type: int + :ivar title: Title of the table. + :vartype title: str + :ivar description: Description of the table. + :vartype description: str + :ivar is_visible: Flag if the table should be rendered. + :vartype is_visible: bool + """ + + _attribute_map = { + "type": {"key": "type", "type": "int"}, + "title": {"key": "title", "type": "str"}, + "description": {"key": "description", "type": "str"}, + "is_visible": {"key": "isVisible", "type": "bool"}, + } + + def __init__( + self, + *, + type: Optional[int] = None, + title: Optional[str] = None, + description: Optional[str] = None, + is_visible: Optional[bool] = None, + **kwargs: Any + ) -> None: + """ + :keyword type: Rendering type. + :paramtype type: int + :keyword title: Title of the table. + :paramtype title: str + :keyword description: Description of the table. + :paramtype description: str + :keyword is_visible: Flag if the table should be rendered. + :paramtype is_visible: bool + """ + super().__init__(**kwargs) + self.type = type + self.title = title + self.description = description + self.is_visible = is_visible + + +class Diagnostics(ProxyResource): + """Diagnostics data for a resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Fully qualified resource ID for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". + :vartype type: str + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.appcontainers.models.SystemData + :ivar properties: Diagnostics resource specific properties. + :vartype properties: ~azure.mgmt.appcontainers.models.DiagnosticsProperties + """ + + _validation = { + "id": {"readonly": True}, + "name": {"readonly": True}, + "type": {"readonly": True}, + "system_data": {"readonly": True}, + } + + _attribute_map = { + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "system_data": {"key": "systemData", "type": "SystemData"}, + "properties": {"key": "properties", "type": "DiagnosticsProperties"}, + } + + def __init__(self, *, properties: Optional["_models.DiagnosticsProperties"] = None, **kwargs: Any) -> None: + """ + :keyword properties: Diagnostics resource specific properties. + :paramtype properties: ~azure.mgmt.appcontainers.models.DiagnosticsProperties + """ + super().__init__(**kwargs) + self.properties = properties + + +class DiagnosticsCollection(_serialization.Model): + """Diagnostics data collection for a resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar value: Collection of diagnostic data. Required. + :vartype value: list[~azure.mgmt.appcontainers.models.Diagnostics] + :ivar next_link: Link to next page of resources. + :vartype next_link: str + """ + + _validation = { + "value": {"required": True}, + "next_link": {"readonly": True}, + } + + _attribute_map = { + "value": {"key": "value", "type": "[Diagnostics]"}, + "next_link": {"key": "nextLink", "type": "str"}, + } + + def __init__(self, *, value: List["_models.Diagnostics"], **kwargs: Any) -> None: + """ + :keyword value: Collection of diagnostic data. Required. + :paramtype value: list[~azure.mgmt.appcontainers.models.Diagnostics] + """ + super().__init__(**kwargs) + self.value = value + self.next_link = None + + +class DiagnosticsDataApiResponse(_serialization.Model): + """Diagnostics data returned from a detector. + + :ivar table: Table response. + :vartype table: ~azure.mgmt.appcontainers.models.DiagnosticDataTableResponseObject + :ivar rendering_properties: Details of the table response. + :vartype rendering_properties: ~azure.mgmt.appcontainers.models.DiagnosticRendering + """ + + _attribute_map = { + "table": {"key": "table", "type": "DiagnosticDataTableResponseObject"}, + "rendering_properties": {"key": "renderingProperties", "type": "DiagnosticRendering"}, + } + + def __init__( + self, + *, + table: Optional["_models.DiagnosticDataTableResponseObject"] = None, + rendering_properties: Optional["_models.DiagnosticRendering"] = None, + **kwargs: Any + ) -> None: + """ + :keyword table: Table response. + :paramtype table: ~azure.mgmt.appcontainers.models.DiagnosticDataTableResponseObject + :keyword rendering_properties: Details of the table response. + :paramtype rendering_properties: ~azure.mgmt.appcontainers.models.DiagnosticRendering + """ + super().__init__(**kwargs) + self.table = table + self.rendering_properties = rendering_properties + + +class DiagnosticsDefinition(_serialization.Model): + """Metadata of the diagnostics response. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Unique detector name. + :vartype id: str + :ivar name: Display Name of the detector. + :vartype name: str + :ivar description: Details of the diagnostics info. + :vartype description: str + :ivar author: Authors' names of the detector. + :vartype author: str + :ivar category: Category of the detector. + :vartype category: str + :ivar support_topic_list: List of support topics. + :vartype support_topic_list: list[~azure.mgmt.appcontainers.models.DiagnosticSupportTopic] + :ivar analysis_types: List of analysis types. + :vartype analysis_types: list[str] + :ivar type: Authors' names of the detector. + :vartype type: str + :ivar score: Authors' names of the detector. + :vartype score: float + """ + + _validation = { + "id": {"readonly": True}, + "name": {"readonly": True}, + "description": {"readonly": True}, + "author": {"readonly": True}, + "category": {"readonly": True}, + "type": {"readonly": True}, + "score": {"readonly": True}, + } + + _attribute_map = { + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "description": {"key": "description", "type": "str"}, + "author": {"key": "author", "type": "str"}, + "category": {"key": "category", "type": "str"}, + "support_topic_list": {"key": "supportTopicList", "type": "[DiagnosticSupportTopic]"}, + "analysis_types": {"key": "analysisTypes", "type": "[str]"}, + "type": {"key": "type", "type": "str"}, + "score": {"key": "score", "type": "float"}, + } + + def __init__( + self, + *, + support_topic_list: Optional[List["_models.DiagnosticSupportTopic"]] = None, + analysis_types: Optional[List[str]] = None, + **kwargs: Any + ) -> None: + """ + :keyword support_topic_list: List of support topics. + :paramtype support_topic_list: list[~azure.mgmt.appcontainers.models.DiagnosticSupportTopic] + :keyword analysis_types: List of analysis types. + :paramtype analysis_types: list[str] + """ + super().__init__(**kwargs) + self.id = None + self.name = None + self.description = None + self.author = None + self.category = None + self.support_topic_list = support_topic_list + self.analysis_types = analysis_types + self.type = None + self.score = None + + +class DiagnosticsProperties(_serialization.Model): + """Diagnostics resource specific properties. + + :ivar metadata: Metadata of the diagnostics response. + :vartype metadata: ~azure.mgmt.appcontainers.models.DiagnosticsDefinition + :ivar dataset: Set of data collections associated with the response. + :vartype dataset: list[~azure.mgmt.appcontainers.models.DiagnosticsDataApiResponse] + :ivar status: Status of the diagnostics response. + :vartype status: ~azure.mgmt.appcontainers.models.DiagnosticsStatus + :ivar data_provider_metadata: List of data providers' metadata. + :vartype data_provider_metadata: + ~azure.mgmt.appcontainers.models.DiagnosticDataProviderMetadata + """ + + _attribute_map = { + "metadata": {"key": "metadata", "type": "DiagnosticsDefinition"}, + "dataset": {"key": "dataset", "type": "[DiagnosticsDataApiResponse]"}, + "status": {"key": "status", "type": "DiagnosticsStatus"}, + "data_provider_metadata": {"key": "dataProviderMetadata", "type": "DiagnosticDataProviderMetadata"}, + } + + def __init__( + self, + *, + metadata: Optional["_models.DiagnosticsDefinition"] = None, + dataset: Optional[List["_models.DiagnosticsDataApiResponse"]] = None, + status: Optional["_models.DiagnosticsStatus"] = None, + data_provider_metadata: Optional["_models.DiagnosticDataProviderMetadata"] = None, + **kwargs: Any + ) -> None: + """ + :keyword metadata: Metadata of the diagnostics response. + :paramtype metadata: ~azure.mgmt.appcontainers.models.DiagnosticsDefinition + :keyword dataset: Set of data collections associated with the response. + :paramtype dataset: list[~azure.mgmt.appcontainers.models.DiagnosticsDataApiResponse] + :keyword status: Status of the diagnostics response. + :paramtype status: ~azure.mgmt.appcontainers.models.DiagnosticsStatus + :keyword data_provider_metadata: List of data providers' metadata. + :paramtype data_provider_metadata: + ~azure.mgmt.appcontainers.models.DiagnosticDataProviderMetadata + """ + super().__init__(**kwargs) + self.metadata = metadata + self.dataset = dataset + self.status = status + self.data_provider_metadata = data_provider_metadata + + +class DiagnosticsStatus(_serialization.Model): + """Rendering details of a diagnostics table. + + :ivar message: Diagnostic message. + :vartype message: str + :ivar status_id: Status. + :vartype status_id: int + """ + + _attribute_map = { + "message": {"key": "message", "type": "str"}, + "status_id": {"key": "statusId", "type": "int"}, + } + + def __init__(self, *, message: Optional[str] = None, status_id: Optional[int] = None, **kwargs: Any) -> None: + """ + :keyword message: Diagnostic message. + :paramtype message: str + :keyword status_id: Status. + :paramtype status_id: int + """ + super().__init__(**kwargs) + self.message = message + self.status_id = status_id + + +class DiagnosticSupportTopic(_serialization.Model): + """Support topic information. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Unique topic identifier. + :vartype id: str + :ivar pes_id: PES identifier. + :vartype pes_id: str + """ + + _validation = { + "id": {"readonly": True}, + "pes_id": {"readonly": True}, + } + + _attribute_map = { + "id": {"key": "id", "type": "str"}, + "pes_id": {"key": "pesId", "type": "str"}, + } + + def __init__(self, **kwargs: Any) -> None: + """ """ + super().__init__(**kwargs) + self.id = None + self.pes_id = None + + +class EnvironmentAuthToken(TrackedResource): + """Environment Auth Token. + + Variables are only populated by the server, and will be ignored when sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Fully qualified resource ID for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". + :vartype type: str + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.appcontainers.models.SystemData + :ivar tags: Resource tags. + :vartype tags: dict[str, str] + :ivar location: The geo-location where the resource lives. Required. + :vartype location: str + :ivar token: Auth token value. + :vartype token: str + :ivar expires: Token expiration date. + :vartype expires: ~datetime.datetime + """ + + _validation = { + "id": {"readonly": True}, + "name": {"readonly": True}, + "type": {"readonly": True}, + "system_data": {"readonly": True}, + "location": {"required": True}, + "token": {"readonly": True}, + "expires": {"readonly": True}, + } + + _attribute_map = { + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "system_data": {"key": "systemData", "type": "SystemData"}, + "tags": {"key": "tags", "type": "{str}"}, + "location": {"key": "location", "type": "str"}, + "token": {"key": "properties.token", "type": "str"}, + "expires": {"key": "properties.expires", "type": "iso-8601"}, + } + + def __init__(self, *, location: str, tags: Optional[Dict[str, str]] = None, **kwargs: Any) -> None: + """ + :keyword tags: Resource tags. + :paramtype tags: dict[str, str] + :keyword location: The geo-location where the resource lives. Required. + :paramtype location: str + """ + super().__init__(tags=tags, location=location, **kwargs) + self.token = None + self.expires = None + + +class EnvironmentVar(_serialization.Model): + """Container App container environment variable. + + :ivar name: Environment variable name. + :vartype name: str + :ivar value: Non-secret environment variable value. + :vartype value: str + :ivar secret_ref: Name of the Container App secret from which to pull the environment variable + value. + :vartype secret_ref: str + """ + + _attribute_map = { + "name": {"key": "name", "type": "str"}, + "value": {"key": "value", "type": "str"}, + "secret_ref": {"key": "secretRef", "type": "str"}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + value: Optional[str] = None, + secret_ref: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword name: Environment variable name. + :paramtype name: str + :keyword value: Non-secret environment variable value. + :paramtype value: str + :keyword secret_ref: Name of the Container App secret from which to pull the environment + variable value. + :paramtype secret_ref: str + """ + super().__init__(**kwargs) + self.name = name + self.value = value + self.secret_ref = secret_ref + + +class ErrorAdditionalInfo(_serialization.Model): + """The resource management error additional info. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar type: The additional info type. + :vartype type: str + :ivar info: The additional info. + :vartype info: JSON + """ + + _validation = { + "type": {"readonly": True}, + "info": {"readonly": True}, + } + + _attribute_map = { + "type": {"key": "type", "type": "str"}, + "info": {"key": "info", "type": "object"}, + } + + def __init__(self, **kwargs: Any) -> None: + """ """ + super().__init__(**kwargs) + self.type = None + self.info = None + + +class ErrorDetail(_serialization.Model): + """The error detail. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar code: The error code. + :vartype code: str + :ivar message: The error message. + :vartype message: str + :ivar target: The error target. + :vartype target: str + :ivar details: The error details. + :vartype details: list[~azure.mgmt.appcontainers.models.ErrorDetail] + :ivar additional_info: The error additional info. + :vartype additional_info: list[~azure.mgmt.appcontainers.models.ErrorAdditionalInfo] + """ + + _validation = { + "code": {"readonly": True}, + "message": {"readonly": True}, + "target": {"readonly": True}, + "details": {"readonly": True}, + "additional_info": {"readonly": True}, + } + + _attribute_map = { + "code": {"key": "code", "type": "str"}, + "message": {"key": "message", "type": "str"}, + "target": {"key": "target", "type": "str"}, + "details": {"key": "details", "type": "[ErrorDetail]"}, + "additional_info": {"key": "additionalInfo", "type": "[ErrorAdditionalInfo]"}, + } + + def __init__(self, **kwargs: Any) -> None: + """ """ + super().__init__(**kwargs) + self.code = None + self.message = None + self.target = None + self.details = None + self.additional_info = None + + +class ErrorResponse(_serialization.Model): + """Common error response for all Azure Resource Manager APIs to return error details for failed + operations. (This also follows the OData error response format.). + + :ivar error: The error object. + :vartype error: ~azure.mgmt.appcontainers.models.ErrorDetail + """ + + _attribute_map = { + "error": {"key": "error", "type": "ErrorDetail"}, + } + + def __init__(self, *, error: Optional["_models.ErrorDetail"] = None, **kwargs: Any) -> None: + """ + :keyword error: The error object. + :paramtype error: ~azure.mgmt.appcontainers.models.ErrorDetail + """ + super().__init__(**kwargs) + self.error = error + + +class ExtendedLocation(_serialization.Model): + """The complex type of the extended location. + + :ivar name: The name of the extended location. + :vartype name: str + :ivar type: The type of the extended location. "CustomLocation" + :vartype type: str or ~azure.mgmt.appcontainers.models.ExtendedLocationTypes + """ + + _attribute_map = { + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + type: Optional[Union[str, "_models.ExtendedLocationTypes"]] = None, + **kwargs: Any + ) -> None: + """ + :keyword name: The name of the extended location. + :paramtype name: str + :keyword type: The type of the extended location. "CustomLocation" + :paramtype type: str or ~azure.mgmt.appcontainers.models.ExtendedLocationTypes + """ + super().__init__(**kwargs) + self.name = name + self.type = type + + +class Facebook(_serialization.Model): + """The configuration settings of the Facebook provider. + + :ivar enabled: :code:`false` if the Facebook provider should not be enabled + despite the set registration; otherwise, :code:`true`. + :vartype enabled: bool + :ivar registration: The configuration settings of the app registration for the Facebook + provider. + :vartype registration: ~azure.mgmt.appcontainers.models.AppRegistration + :ivar graph_api_version: The version of the Facebook api to be used while logging in. + :vartype graph_api_version: str + :ivar login: The configuration settings of the login flow. + :vartype login: ~azure.mgmt.appcontainers.models.LoginScopes + """ + + _attribute_map = { + "enabled": {"key": "enabled", "type": "bool"}, + "registration": {"key": "registration", "type": "AppRegistration"}, + "graph_api_version": {"key": "graphApiVersion", "type": "str"}, + "login": {"key": "login", "type": "LoginScopes"}, + } + + def __init__( + self, + *, + enabled: Optional[bool] = None, + registration: Optional["_models.AppRegistration"] = None, + graph_api_version: Optional[str] = None, + login: Optional["_models.LoginScopes"] = None, + **kwargs: Any + ) -> None: + """ + :keyword enabled: :code:`false` if the Facebook provider should not be enabled + despite the set registration; otherwise, :code:`true`. + :paramtype enabled: bool + :keyword registration: The configuration settings of the app registration for the Facebook + provider. + :paramtype registration: ~azure.mgmt.appcontainers.models.AppRegistration + :keyword graph_api_version: The version of the Facebook api to be used while logging in. + :paramtype graph_api_version: str + :keyword login: The configuration settings of the login flow. + :paramtype login: ~azure.mgmt.appcontainers.models.LoginScopes + """ + super().__init__(**kwargs) + self.enabled = enabled + self.registration = registration + self.graph_api_version = graph_api_version + self.login = login + + +class ForwardProxy(_serialization.Model): + """The configuration settings of a forward proxy used to make the requests. + + :ivar convention: The convention used to determine the url of the request made. Known values + are: "NoProxy", "Standard", and "Custom". + :vartype convention: str or ~azure.mgmt.appcontainers.models.ForwardProxyConvention + :ivar custom_host_header_name: The name of the header containing the host of the request. + :vartype custom_host_header_name: str + :ivar custom_proto_header_name: The name of the header containing the scheme of the request. + :vartype custom_proto_header_name: str + """ + + _attribute_map = { + "convention": {"key": "convention", "type": "str"}, + "custom_host_header_name": {"key": "customHostHeaderName", "type": "str"}, + "custom_proto_header_name": {"key": "customProtoHeaderName", "type": "str"}, + } + + def __init__( + self, + *, + convention: Optional[Union[str, "_models.ForwardProxyConvention"]] = None, + custom_host_header_name: Optional[str] = None, + custom_proto_header_name: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword convention: The convention used to determine the url of the request made. Known values + are: "NoProxy", "Standard", and "Custom". + :paramtype convention: str or ~azure.mgmt.appcontainers.models.ForwardProxyConvention + :keyword custom_host_header_name: The name of the header containing the host of the request. + :paramtype custom_host_header_name: str + :keyword custom_proto_header_name: The name of the header containing the scheme of the request. + :paramtype custom_proto_header_name: str + """ + super().__init__(**kwargs) + self.convention = convention + self.custom_host_header_name = custom_host_header_name + self.custom_proto_header_name = custom_proto_header_name + + +class GitHub(_serialization.Model): + """The configuration settings of the GitHub provider. + + :ivar enabled: :code:`false` if the GitHub provider should not be enabled despite + the set registration; otherwise, :code:`true`. + :vartype enabled: bool + :ivar registration: The configuration settings of the app registration for the GitHub provider. + :vartype registration: ~azure.mgmt.appcontainers.models.ClientRegistration + :ivar login: The configuration settings of the login flow. + :vartype login: ~azure.mgmt.appcontainers.models.LoginScopes + """ + + _attribute_map = { + "enabled": {"key": "enabled", "type": "bool"}, + "registration": {"key": "registration", "type": "ClientRegistration"}, + "login": {"key": "login", "type": "LoginScopes"}, + } + + def __init__( + self, + *, + enabled: Optional[bool] = None, + registration: Optional["_models.ClientRegistration"] = None, + login: Optional["_models.LoginScopes"] = None, + **kwargs: Any + ) -> None: + """ + :keyword enabled: :code:`false` if the GitHub provider should not be enabled + despite the set registration; otherwise, :code:`true`. + :paramtype enabled: bool + :keyword registration: The configuration settings of the app registration for the GitHub + provider. + :paramtype registration: ~azure.mgmt.appcontainers.models.ClientRegistration + :keyword login: The configuration settings of the login flow. + :paramtype login: ~azure.mgmt.appcontainers.models.LoginScopes + """ + super().__init__(**kwargs) + self.enabled = enabled + self.registration = registration + self.login = login + + +class GithubActionConfiguration(_serialization.Model): + """Configuration properties that define the mutable settings of a Container App SourceControl. + + :ivar registry_info: Registry configurations. + :vartype registry_info: ~azure.mgmt.appcontainers.models.RegistryInfo + :ivar azure_credentials: AzureCredentials configurations. + :vartype azure_credentials: ~azure.mgmt.appcontainers.models.AzureCredentials + :ivar context_path: Context path. + :vartype context_path: str + :ivar image: Image name. + :vartype image: str + :ivar publish_type: Code or Image. + :vartype publish_type: str + :ivar os: Operation system. + :vartype os: str + :ivar runtime_stack: Runtime stack. + :vartype runtime_stack: str + :ivar runtime_version: Runtime version. + :vartype runtime_version: str + """ + + _attribute_map = { + "registry_info": {"key": "registryInfo", "type": "RegistryInfo"}, + "azure_credentials": {"key": "azureCredentials", "type": "AzureCredentials"}, + "context_path": {"key": "contextPath", "type": "str"}, + "image": {"key": "image", "type": "str"}, + "publish_type": {"key": "publishType", "type": "str"}, + "os": {"key": "os", "type": "str"}, + "runtime_stack": {"key": "runtimeStack", "type": "str"}, + "runtime_version": {"key": "runtimeVersion", "type": "str"}, + } + + def __init__( + self, + *, + registry_info: Optional["_models.RegistryInfo"] = None, + azure_credentials: Optional["_models.AzureCredentials"] = None, + context_path: Optional[str] = None, + image: Optional[str] = None, + publish_type: Optional[str] = None, + os: Optional[str] = None, + runtime_stack: Optional[str] = None, + runtime_version: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword registry_info: Registry configurations. + :paramtype registry_info: ~azure.mgmt.appcontainers.models.RegistryInfo + :keyword azure_credentials: AzureCredentials configurations. + :paramtype azure_credentials: ~azure.mgmt.appcontainers.models.AzureCredentials + :keyword context_path: Context path. + :paramtype context_path: str + :keyword image: Image name. + :paramtype image: str + :keyword publish_type: Code or Image. + :paramtype publish_type: str + :keyword os: Operation system. + :paramtype os: str + :keyword runtime_stack: Runtime stack. + :paramtype runtime_stack: str + :keyword runtime_version: Runtime version. + :paramtype runtime_version: str + """ + super().__init__(**kwargs) + self.registry_info = registry_info + self.azure_credentials = azure_credentials + self.context_path = context_path + self.image = image + self.publish_type = publish_type + self.os = os + self.runtime_stack = runtime_stack + self.runtime_version = runtime_version + + +class GlobalValidation(_serialization.Model): + """The configuration settings that determines the validation flow of users using ContainerApp + Service Authentication/Authorization. + + :ivar unauthenticated_client_action: The action to take when an unauthenticated client attempts + to access the app. Known values are: "RedirectToLoginPage", "AllowAnonymous", "Return401", and + "Return403". + :vartype unauthenticated_client_action: str or + ~azure.mgmt.appcontainers.models.UnauthenticatedClientActionV2 + :ivar redirect_to_provider: The default authentication provider to use when multiple providers + are configured. + This setting is only needed if multiple providers are configured and the unauthenticated + client + action is set to "RedirectToLoginPage". + :vartype redirect_to_provider: str + :ivar excluded_paths: The paths for which unauthenticated flow would not be redirected to the + login page. + :vartype excluded_paths: list[str] + """ + + _attribute_map = { + "unauthenticated_client_action": {"key": "unauthenticatedClientAction", "type": "str"}, + "redirect_to_provider": {"key": "redirectToProvider", "type": "str"}, + "excluded_paths": {"key": "excludedPaths", "type": "[str]"}, + } + + def __init__( + self, + *, + unauthenticated_client_action: Optional[Union[str, "_models.UnauthenticatedClientActionV2"]] = None, + redirect_to_provider: Optional[str] = None, + excluded_paths: Optional[List[str]] = None, + **kwargs: Any + ) -> None: + """ + :keyword unauthenticated_client_action: The action to take when an unauthenticated client + attempts to access the app. Known values are: "RedirectToLoginPage", "AllowAnonymous", + "Return401", and "Return403". + :paramtype unauthenticated_client_action: str or + ~azure.mgmt.appcontainers.models.UnauthenticatedClientActionV2 + :keyword redirect_to_provider: The default authentication provider to use when multiple + providers are configured. + This setting is only needed if multiple providers are configured and the unauthenticated + client + action is set to "RedirectToLoginPage". + :paramtype redirect_to_provider: str + :keyword excluded_paths: The paths for which unauthenticated flow would not be redirected to + the login page. + :paramtype excluded_paths: list[str] + """ + super().__init__(**kwargs) + self.unauthenticated_client_action = unauthenticated_client_action + self.redirect_to_provider = redirect_to_provider + self.excluded_paths = excluded_paths + + +class Google(_serialization.Model): + """The configuration settings of the Google provider. + + :ivar enabled: :code:`false` if the Google provider should not be enabled despite + the set registration; otherwise, :code:`true`. + :vartype enabled: bool + :ivar registration: The configuration settings of the app registration for the Google provider. + :vartype registration: ~azure.mgmt.appcontainers.models.ClientRegistration + :ivar login: The configuration settings of the login flow. + :vartype login: ~azure.mgmt.appcontainers.models.LoginScopes + :ivar validation: The configuration settings of the Azure Active Directory token validation + flow. + :vartype validation: ~azure.mgmt.appcontainers.models.AllowedAudiencesValidation + """ + + _attribute_map = { + "enabled": {"key": "enabled", "type": "bool"}, + "registration": {"key": "registration", "type": "ClientRegistration"}, + "login": {"key": "login", "type": "LoginScopes"}, + "validation": {"key": "validation", "type": "AllowedAudiencesValidation"}, + } + + def __init__( + self, + *, + enabled: Optional[bool] = None, + registration: Optional["_models.ClientRegistration"] = None, + login: Optional["_models.LoginScopes"] = None, + validation: Optional["_models.AllowedAudiencesValidation"] = None, + **kwargs: Any + ) -> None: + """ + :keyword enabled: :code:`false` if the Google provider should not be enabled + despite the set registration; otherwise, :code:`true`. + :paramtype enabled: bool + :keyword registration: The configuration settings of the app registration for the Google + provider. + :paramtype registration: ~azure.mgmt.appcontainers.models.ClientRegistration + :keyword login: The configuration settings of the login flow. + :paramtype login: ~azure.mgmt.appcontainers.models.LoginScopes + :keyword validation: The configuration settings of the Azure Active Directory token validation + flow. + :paramtype validation: ~azure.mgmt.appcontainers.models.AllowedAudiencesValidation + """ + super().__init__(**kwargs) + self.enabled = enabled + self.registration = registration + self.login = login + self.validation = validation + + +class HttpScaleRule(_serialization.Model): + """Container App container Http scaling rule. + + :ivar metadata: Metadata properties to describe http scale rule. + :vartype metadata: dict[str, str] + :ivar auth: Authentication secrets for the custom scale rule. + :vartype auth: list[~azure.mgmt.appcontainers.models.ScaleRuleAuth] + """ + + _attribute_map = { + "metadata": {"key": "metadata", "type": "{str}"}, + "auth": {"key": "auth", "type": "[ScaleRuleAuth]"}, + } + + def __init__( + self, + *, + metadata: Optional[Dict[str, str]] = None, + auth: Optional[List["_models.ScaleRuleAuth"]] = None, + **kwargs: Any + ) -> None: + """ + :keyword metadata: Metadata properties to describe http scale rule. + :paramtype metadata: dict[str, str] + :keyword auth: Authentication secrets for the custom scale rule. + :paramtype auth: list[~azure.mgmt.appcontainers.models.ScaleRuleAuth] + """ + super().__init__(**kwargs) + self.metadata = metadata + self.auth = auth + + +class HttpSettings(_serialization.Model): + """The configuration settings of the HTTP requests for authentication and authorization requests + made against ContainerApp Service Authentication/Authorization. + + :ivar require_https: :code:`false` if the authentication/authorization responses + not having the HTTPS scheme are permissible; otherwise, :code:`true`. + :vartype require_https: bool + :ivar routes: The configuration settings of the paths HTTP requests. + :vartype routes: ~azure.mgmt.appcontainers.models.HttpSettingsRoutes + :ivar forward_proxy: The configuration settings of a forward proxy used to make the requests. + :vartype forward_proxy: ~azure.mgmt.appcontainers.models.ForwardProxy + """ + + _attribute_map = { + "require_https": {"key": "requireHttps", "type": "bool"}, + "routes": {"key": "routes", "type": "HttpSettingsRoutes"}, + "forward_proxy": {"key": "forwardProxy", "type": "ForwardProxy"}, + } + + def __init__( + self, + *, + require_https: Optional[bool] = None, + routes: Optional["_models.HttpSettingsRoutes"] = None, + forward_proxy: Optional["_models.ForwardProxy"] = None, + **kwargs: Any + ) -> None: + """ + :keyword require_https: :code:`false` if the authentication/authorization + responses not having the HTTPS scheme are permissible; otherwise, :code:`true`. + :paramtype require_https: bool + :keyword routes: The configuration settings of the paths HTTP requests. + :paramtype routes: ~azure.mgmt.appcontainers.models.HttpSettingsRoutes + :keyword forward_proxy: The configuration settings of a forward proxy used to make the + requests. + :paramtype forward_proxy: ~azure.mgmt.appcontainers.models.ForwardProxy + """ + super().__init__(**kwargs) + self.require_https = require_https + self.routes = routes + self.forward_proxy = forward_proxy + + +class HttpSettingsRoutes(_serialization.Model): + """The configuration settings of the paths HTTP requests. + + :ivar api_prefix: The prefix that should precede all the authentication/authorization paths. + :vartype api_prefix: str + """ + + _attribute_map = { + "api_prefix": {"key": "apiPrefix", "type": "str"}, + } + + def __init__(self, *, api_prefix: Optional[str] = None, **kwargs: Any) -> None: + """ + :keyword api_prefix: The prefix that should precede all the authentication/authorization paths. + :paramtype api_prefix: str + """ + super().__init__(**kwargs) + self.api_prefix = api_prefix + + +class IdentityProviders(_serialization.Model): + """The configuration settings of each of the identity providers used to configure ContainerApp + Service Authentication/Authorization. + + :ivar azure_active_directory: The configuration settings of the Azure Active directory + provider. + :vartype azure_active_directory: ~azure.mgmt.appcontainers.models.AzureActiveDirectory + :ivar facebook: The configuration settings of the Facebook provider. + :vartype facebook: ~azure.mgmt.appcontainers.models.Facebook + :ivar git_hub: The configuration settings of the GitHub provider. + :vartype git_hub: ~azure.mgmt.appcontainers.models.GitHub + :ivar google: The configuration settings of the Google provider. + :vartype google: ~azure.mgmt.appcontainers.models.Google + :ivar twitter: The configuration settings of the Twitter provider. + :vartype twitter: ~azure.mgmt.appcontainers.models.Twitter + :ivar apple: The configuration settings of the Apple provider. + :vartype apple: ~azure.mgmt.appcontainers.models.Apple + :ivar azure_static_web_apps: The configuration settings of the Azure Static Web Apps provider. + :vartype azure_static_web_apps: ~azure.mgmt.appcontainers.models.AzureStaticWebApps + :ivar custom_open_id_connect_providers: The map of the name of the alias of each custom Open ID + Connect provider to the + configuration settings of the custom Open ID Connect provider. + :vartype custom_open_id_connect_providers: dict[str, + ~azure.mgmt.appcontainers.models.CustomOpenIdConnectProvider] + """ + + _attribute_map = { + "azure_active_directory": {"key": "azureActiveDirectory", "type": "AzureActiveDirectory"}, + "facebook": {"key": "facebook", "type": "Facebook"}, + "git_hub": {"key": "gitHub", "type": "GitHub"}, + "google": {"key": "google", "type": "Google"}, + "twitter": {"key": "twitter", "type": "Twitter"}, + "apple": {"key": "apple", "type": "Apple"}, + "azure_static_web_apps": {"key": "azureStaticWebApps", "type": "AzureStaticWebApps"}, + "custom_open_id_connect_providers": { + "key": "customOpenIdConnectProviders", + "type": "{CustomOpenIdConnectProvider}", + }, + } + + def __init__( + self, + *, + azure_active_directory: Optional["_models.AzureActiveDirectory"] = None, + facebook: Optional["_models.Facebook"] = None, + git_hub: Optional["_models.GitHub"] = None, + google: Optional["_models.Google"] = None, + twitter: Optional["_models.Twitter"] = None, + apple: Optional["_models.Apple"] = None, + azure_static_web_apps: Optional["_models.AzureStaticWebApps"] = None, + custom_open_id_connect_providers: Optional[Dict[str, "_models.CustomOpenIdConnectProvider"]] = None, + **kwargs: Any + ) -> None: + """ + :keyword azure_active_directory: The configuration settings of the Azure Active directory + provider. + :paramtype azure_active_directory: ~azure.mgmt.appcontainers.models.AzureActiveDirectory + :keyword facebook: The configuration settings of the Facebook provider. + :paramtype facebook: ~azure.mgmt.appcontainers.models.Facebook + :keyword git_hub: The configuration settings of the GitHub provider. + :paramtype git_hub: ~azure.mgmt.appcontainers.models.GitHub + :keyword google: The configuration settings of the Google provider. + :paramtype google: ~azure.mgmt.appcontainers.models.Google + :keyword twitter: The configuration settings of the Twitter provider. + :paramtype twitter: ~azure.mgmt.appcontainers.models.Twitter + :keyword apple: The configuration settings of the Apple provider. + :paramtype apple: ~azure.mgmt.appcontainers.models.Apple + :keyword azure_static_web_apps: The configuration settings of the Azure Static Web Apps + provider. + :paramtype azure_static_web_apps: ~azure.mgmt.appcontainers.models.AzureStaticWebApps + :keyword custom_open_id_connect_providers: The map of the name of the alias of each custom Open + ID Connect provider to the + configuration settings of the custom Open ID Connect provider. + :paramtype custom_open_id_connect_providers: dict[str, + ~azure.mgmt.appcontainers.models.CustomOpenIdConnectProvider] + """ + super().__init__(**kwargs) + self.azure_active_directory = azure_active_directory + self.facebook = facebook + self.git_hub = git_hub + self.google = google + self.twitter = twitter + self.apple = apple + self.azure_static_web_apps = azure_static_web_apps + self.custom_open_id_connect_providers = custom_open_id_connect_providers + + +class Ingress(_serialization.Model): # pylint: disable=too-many-instance-attributes + """Container App Ingress configuration. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar fqdn: Hostname. + :vartype fqdn: str + :ivar external: Bool indicating if app exposes an external http endpoint. + :vartype external: bool + :ivar target_port: Target Port in containers for traffic from ingress. + :vartype target_port: int + :ivar exposed_port: Exposed Port in containers for TCP traffic from ingress. + :vartype exposed_port: int + :ivar transport: Ingress transport protocol. Known values are: "auto", "http", "http2", and + "tcp". + :vartype transport: str or ~azure.mgmt.appcontainers.models.IngressTransportMethod + :ivar traffic: Traffic weights for app's revisions. + :vartype traffic: list[~azure.mgmt.appcontainers.models.TrafficWeight] + :ivar custom_domains: custom domain bindings for Container Apps' hostnames. + :vartype custom_domains: list[~azure.mgmt.appcontainers.models.CustomDomain] + :ivar allow_insecure: Bool indicating if HTTP connections to is allowed. If set to false HTTP + connections are automatically redirected to HTTPS connections. + :vartype allow_insecure: bool + :ivar ip_security_restrictions: Rules to restrict incoming IP address. + :vartype ip_security_restrictions: + list[~azure.mgmt.appcontainers.models.IpSecurityRestrictionRule] + :ivar sticky_sessions: Sticky Sessions for Single Revision Mode. + :vartype sticky_sessions: ~azure.mgmt.appcontainers.models.IngressStickySessions + :ivar client_certificate_mode: Client certificate mode for mTLS authentication. Ignore + indicates server drops client certificate on forwarding. Accept indicates server forwards + client certificate but does not require a client certificate. Require indicates server requires + a client certificate. Known values are: "ignore", "accept", and "require". + :vartype client_certificate_mode: str or + ~azure.mgmt.appcontainers.models.IngressClientCertificateMode + :ivar cors_policy: CORS policy for container app. + :vartype cors_policy: ~azure.mgmt.appcontainers.models.CorsPolicy + """ + + _validation = { + "fqdn": {"readonly": True}, + } + + _attribute_map = { + "fqdn": {"key": "fqdn", "type": "str"}, + "external": {"key": "external", "type": "bool"}, + "target_port": {"key": "targetPort", "type": "int"}, + "exposed_port": {"key": "exposedPort", "type": "int"}, + "transport": {"key": "transport", "type": "str"}, + "traffic": {"key": "traffic", "type": "[TrafficWeight]"}, + "custom_domains": {"key": "customDomains", "type": "[CustomDomain]"}, + "allow_insecure": {"key": "allowInsecure", "type": "bool"}, + "ip_security_restrictions": {"key": "ipSecurityRestrictions", "type": "[IpSecurityRestrictionRule]"}, + "sticky_sessions": {"key": "stickySessions", "type": "IngressStickySessions"}, + "client_certificate_mode": {"key": "clientCertificateMode", "type": "str"}, + "cors_policy": {"key": "corsPolicy", "type": "CorsPolicy"}, + } + + def __init__( + self, + *, + external: bool = False, + target_port: Optional[int] = None, + exposed_port: Optional[int] = None, + transport: Union[str, "_models.IngressTransportMethod"] = "auto", + traffic: Optional[List["_models.TrafficWeight"]] = None, + custom_domains: Optional[List["_models.CustomDomain"]] = None, + allow_insecure: bool = False, + ip_security_restrictions: Optional[List["_models.IpSecurityRestrictionRule"]] = None, + sticky_sessions: Optional["_models.IngressStickySessions"] = None, + client_certificate_mode: Optional[Union[str, "_models.IngressClientCertificateMode"]] = None, + cors_policy: Optional["_models.CorsPolicy"] = None, + **kwargs: Any + ) -> None: + """ + :keyword external: Bool indicating if app exposes an external http endpoint. + :paramtype external: bool + :keyword target_port: Target Port in containers for traffic from ingress. + :paramtype target_port: int + :keyword exposed_port: Exposed Port in containers for TCP traffic from ingress. + :paramtype exposed_port: int + :keyword transport: Ingress transport protocol. Known values are: "auto", "http", "http2", and + "tcp". + :paramtype transport: str or ~azure.mgmt.appcontainers.models.IngressTransportMethod + :keyword traffic: Traffic weights for app's revisions. + :paramtype traffic: list[~azure.mgmt.appcontainers.models.TrafficWeight] + :keyword custom_domains: custom domain bindings for Container Apps' hostnames. + :paramtype custom_domains: list[~azure.mgmt.appcontainers.models.CustomDomain] + :keyword allow_insecure: Bool indicating if HTTP connections to is allowed. If set to false + HTTP connections are automatically redirected to HTTPS connections. + :paramtype allow_insecure: bool + :keyword ip_security_restrictions: Rules to restrict incoming IP address. + :paramtype ip_security_restrictions: + list[~azure.mgmt.appcontainers.models.IpSecurityRestrictionRule] + :keyword sticky_sessions: Sticky Sessions for Single Revision Mode. + :paramtype sticky_sessions: ~azure.mgmt.appcontainers.models.IngressStickySessions + :keyword client_certificate_mode: Client certificate mode for mTLS authentication. Ignore + indicates server drops client certificate on forwarding. Accept indicates server forwards + client certificate but does not require a client certificate. Require indicates server requires + a client certificate. Known values are: "ignore", "accept", and "require". + :paramtype client_certificate_mode: str or + ~azure.mgmt.appcontainers.models.IngressClientCertificateMode + :keyword cors_policy: CORS policy for container app. + :paramtype cors_policy: ~azure.mgmt.appcontainers.models.CorsPolicy + """ + super().__init__(**kwargs) + self.fqdn = None + self.external = external + self.target_port = target_port + self.exposed_port = exposed_port + self.transport = transport + self.traffic = traffic + self.custom_domains = custom_domains + self.allow_insecure = allow_insecure + self.ip_security_restrictions = ip_security_restrictions + self.sticky_sessions = sticky_sessions + self.client_certificate_mode = client_certificate_mode + self.cors_policy = cors_policy + + +class IngressStickySessions(_serialization.Model): + """Sticky Sessions for Single Revision Mode. + + :ivar affinity: Sticky Session Affinity. Known values are: "sticky" and "none". + :vartype affinity: str or ~azure.mgmt.appcontainers.models.Affinity + """ + + _attribute_map = { + "affinity": {"key": "affinity", "type": "str"}, + } + + def __init__(self, *, affinity: Optional[Union[str, "_models.Affinity"]] = None, **kwargs: Any) -> None: + """ + :keyword affinity: Sticky Session Affinity. Known values are: "sticky" and "none". + :paramtype affinity: str or ~azure.mgmt.appcontainers.models.Affinity + """ + super().__init__(**kwargs) + self.affinity = affinity + + +class InitContainer(BaseContainer): + """Container App init container definition. + + :ivar image: Container image tag. + :vartype image: str + :ivar name: Custom container name. + :vartype name: str + :ivar command: Container start command. + :vartype command: list[str] + :ivar args: Container start command arguments. + :vartype args: list[str] + :ivar env: Container environment variables. + :vartype env: list[~azure.mgmt.appcontainers.models.EnvironmentVar] + :ivar resources: Container resource requirements. + :vartype resources: ~azure.mgmt.appcontainers.models.ContainerResources + :ivar volume_mounts: Container volume mounts. + :vartype volume_mounts: list[~azure.mgmt.appcontainers.models.VolumeMount] + """ + + _attribute_map = { + "image": {"key": "image", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "command": {"key": "command", "type": "[str]"}, + "args": {"key": "args", "type": "[str]"}, + "env": {"key": "env", "type": "[EnvironmentVar]"}, + "resources": {"key": "resources", "type": "ContainerResources"}, + "volume_mounts": {"key": "volumeMounts", "type": "[VolumeMount]"}, + } + + def __init__( + self, + *, + image: Optional[str] = None, + name: Optional[str] = None, + command: Optional[List[str]] = None, + args: Optional[List[str]] = None, + env: Optional[List["_models.EnvironmentVar"]] = None, + resources: Optional["_models.ContainerResources"] = None, + volume_mounts: Optional[List["_models.VolumeMount"]] = None, + **kwargs: Any + ) -> None: + """ + :keyword image: Container image tag. + :paramtype image: str + :keyword name: Custom container name. + :paramtype name: str + :keyword command: Container start command. + :paramtype command: list[str] + :keyword args: Container start command arguments. + :paramtype args: list[str] + :keyword env: Container environment variables. + :paramtype env: list[~azure.mgmt.appcontainers.models.EnvironmentVar] + :keyword resources: Container resource requirements. + :paramtype resources: ~azure.mgmt.appcontainers.models.ContainerResources + :keyword volume_mounts: Container volume mounts. + :paramtype volume_mounts: list[~azure.mgmt.appcontainers.models.VolumeMount] + """ + super().__init__( + image=image, + name=name, + command=command, + args=args, + env=env, + resources=resources, + volume_mounts=volume_mounts, + **kwargs + ) + + +class IpSecurityRestrictionRule(_serialization.Model): + """Rule to restrict incoming IP address. + + All required parameters must be populated in order to send to Azure. + + :ivar name: Name for the IP restriction rule. Required. + :vartype name: str + :ivar description: Describe the IP restriction rule that is being sent to the container-app. + This is an optional field. + :vartype description: str + :ivar ip_address_range: CIDR notation to match incoming IP address. Required. + :vartype ip_address_range: str + :ivar action: Allow or Deny rules to determine for incoming IP. Note: Rules can only consist of + ALL Allow or ALL Deny. Required. Known values are: "Allow" and "Deny". + :vartype action: str or ~azure.mgmt.appcontainers.models.Action + """ + + _validation = { + "name": {"required": True}, + "ip_address_range": {"required": True}, + "action": {"required": True}, + } + + _attribute_map = { + "name": {"key": "name", "type": "str"}, + "description": {"key": "description", "type": "str"}, + "ip_address_range": {"key": "ipAddressRange", "type": "str"}, + "action": {"key": "action", "type": "str"}, + } + + def __init__( + self, + *, + name: str, + ip_address_range: str, + action: Union[str, "_models.Action"], + description: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword name: Name for the IP restriction rule. Required. + :paramtype name: str + :keyword description: Describe the IP restriction rule that is being sent to the container-app. + This is an optional field. + :paramtype description: str + :keyword ip_address_range: CIDR notation to match incoming IP address. Required. + :paramtype ip_address_range: str + :keyword action: Allow or Deny rules to determine for incoming IP. Note: Rules can only consist + of ALL Allow or ALL Deny. Required. Known values are: "Allow" and "Deny". + :paramtype action: str or ~azure.mgmt.appcontainers.models.Action + """ + super().__init__(**kwargs) + self.name = name + self.description = description + self.ip_address_range = ip_address_range + self.action = action + + +class Job(TrackedResource): # pylint: disable=too-many-instance-attributes + """Container App Job. + + Variables are only populated by the server, and will be ignored when sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Fully qualified resource ID for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". + :vartype type: str + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.appcontainers.models.SystemData + :ivar tags: Resource tags. + :vartype tags: dict[str, str] + :ivar location: The geo-location where the resource lives. Required. + :vartype location: str + :ivar identity: Managed identities needed by a container app job to interact with other Azure + services to not maintain any secrets or credentials in code. + :vartype identity: ~azure.mgmt.appcontainers.models.ManagedServiceIdentity + :ivar provisioning_state: Provisioning state of the Container Apps Job. Known values are: + "InProgress", "Succeeded", "Failed", "Canceled", and "Deleting". + :vartype provisioning_state: str or ~azure.mgmt.appcontainers.models.JobProvisioningState + :ivar environment_id: Resource ID of environment. + :vartype environment_id: str + :ivar workload_profile_name: Workload profile name to pin for container apps job execution. + :vartype workload_profile_name: str + :ivar configuration: Container Apps Job configuration properties. + :vartype configuration: ~azure.mgmt.appcontainers.models.JobConfiguration + :ivar template: Container Apps job definition. + :vartype template: ~azure.mgmt.appcontainers.models.JobTemplate + :ivar outbound_ip_addresses: Outbound IP Addresses of a container apps job. + :vartype outbound_ip_addresses: list[str] + :ivar event_stream_endpoint: The endpoint of the eventstream of the container apps job. + :vartype event_stream_endpoint: str + """ + + _validation = { + "id": {"readonly": True}, + "name": {"readonly": True}, + "type": {"readonly": True}, + "system_data": {"readonly": True}, + "location": {"required": True}, + "provisioning_state": {"readonly": True}, + "outbound_ip_addresses": {"readonly": True}, + "event_stream_endpoint": {"readonly": True}, + } + + _attribute_map = { + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "system_data": {"key": "systemData", "type": "SystemData"}, + "tags": {"key": "tags", "type": "{str}"}, + "location": {"key": "location", "type": "str"}, + "identity": {"key": "identity", "type": "ManagedServiceIdentity"}, + "provisioning_state": {"key": "properties.provisioningState", "type": "str"}, + "environment_id": {"key": "properties.environmentId", "type": "str"}, + "workload_profile_name": {"key": "properties.workloadProfileName", "type": "str"}, + "configuration": {"key": "properties.configuration", "type": "JobConfiguration"}, + "template": {"key": "properties.template", "type": "JobTemplate"}, + "outbound_ip_addresses": {"key": "properties.outboundIpAddresses", "type": "[str]"}, + "event_stream_endpoint": {"key": "properties.eventStreamEndpoint", "type": "str"}, + } + + def __init__( + self, + *, + location: str, + tags: Optional[Dict[str, str]] = None, + identity: Optional["_models.ManagedServiceIdentity"] = None, + environment_id: Optional[str] = None, + workload_profile_name: Optional[str] = None, + configuration: Optional["_models.JobConfiguration"] = None, + template: Optional["_models.JobTemplate"] = None, + **kwargs: Any + ) -> None: + """ + :keyword tags: Resource tags. + :paramtype tags: dict[str, str] + :keyword location: The geo-location where the resource lives. Required. + :paramtype location: str + :keyword identity: Managed identities needed by a container app job to interact with other + Azure services to not maintain any secrets or credentials in code. + :paramtype identity: ~azure.mgmt.appcontainers.models.ManagedServiceIdentity + :keyword environment_id: Resource ID of environment. + :paramtype environment_id: str + :keyword workload_profile_name: Workload profile name to pin for container apps job execution. + :paramtype workload_profile_name: str + :keyword configuration: Container Apps Job configuration properties. + :paramtype configuration: ~azure.mgmt.appcontainers.models.JobConfiguration + :keyword template: Container Apps job definition. + :paramtype template: ~azure.mgmt.appcontainers.models.JobTemplate + """ + super().__init__(tags=tags, location=location, **kwargs) + self.identity = identity + self.provisioning_state = None + self.environment_id = environment_id + self.workload_profile_name = workload_profile_name + self.configuration = configuration + self.template = template + self.outbound_ip_addresses = None + self.event_stream_endpoint = None + + +class JobConfiguration(_serialization.Model): + """Non versioned Container Apps Job configuration properties. + + All required parameters must be populated in order to send to Azure. + + :ivar secrets: Collection of secrets used by a Container Apps Job. + :vartype secrets: list[~azure.mgmt.appcontainers.models.Secret] + :ivar trigger_type: Trigger type of the job. Known values are: "Scheduled", "Event", and + "Manual". + :vartype trigger_type: str or ~azure.mgmt.appcontainers.models.TriggerType + :ivar replica_timeout: Maximum number of seconds a replica is allowed to run. Required. + :vartype replica_timeout: int + :ivar replica_retry_limit: Maximum number of retries before failing the job. + :vartype replica_retry_limit: int + :ivar manual_trigger_config: Manual trigger configuration for a single execution job. + Properties replicaCompletionCount and parallelism would be set to 1 by default. + :vartype manual_trigger_config: + ~azure.mgmt.appcontainers.models.JobConfigurationManualTriggerConfig + :ivar schedule_trigger_config: Cron formatted repeating trigger schedule ("\ * * * * *") for + cronjobs. Properties completions and parallelism would be set to 1 by default. + :vartype schedule_trigger_config: + ~azure.mgmt.appcontainers.models.JobConfigurationScheduleTriggerConfig + :ivar registries: Collection of private container registry credentials used by a Container apps + job. + :vartype registries: list[~azure.mgmt.appcontainers.models.RegistryCredentials] + """ + + _validation = { + "trigger_type": {"required": True}, + "replica_timeout": {"required": True}, + } + + _attribute_map = { + "secrets": {"key": "secrets", "type": "[Secret]"}, + "trigger_type": {"key": "triggerType", "type": "str"}, + "replica_timeout": {"key": "replicaTimeout", "type": "int"}, + "replica_retry_limit": {"key": "replicaRetryLimit", "type": "int"}, + "manual_trigger_config": {"key": "manualTriggerConfig", "type": "JobConfigurationManualTriggerConfig"}, + "schedule_trigger_config": {"key": "scheduleTriggerConfig", "type": "JobConfigurationScheduleTriggerConfig"}, + "registries": {"key": "registries", "type": "[RegistryCredentials]"}, + } + + def __init__( + self, + *, + trigger_type: Union[str, "_models.TriggerType"] = "Manual", + replica_timeout: int, + secrets: Optional[List["_models.Secret"]] = None, + replica_retry_limit: Optional[int] = None, + manual_trigger_config: Optional["_models.JobConfigurationManualTriggerConfig"] = None, + schedule_trigger_config: Optional["_models.JobConfigurationScheduleTriggerConfig"] = None, + registries: Optional[List["_models.RegistryCredentials"]] = None, + **kwargs: Any + ) -> None: + """ + :keyword secrets: Collection of secrets used by a Container Apps Job. + :paramtype secrets: list[~azure.mgmt.appcontainers.models.Secret] + :keyword trigger_type: Trigger type of the job. Known values are: "Scheduled", "Event", and + "Manual". + :paramtype trigger_type: str or ~azure.mgmt.appcontainers.models.TriggerType + :keyword replica_timeout: Maximum number of seconds a replica is allowed to run. Required. + :paramtype replica_timeout: int + :keyword replica_retry_limit: Maximum number of retries before failing the job. + :paramtype replica_retry_limit: int + :keyword manual_trigger_config: Manual trigger configuration for a single execution job. + Properties replicaCompletionCount and parallelism would be set to 1 by default. + :paramtype manual_trigger_config: + ~azure.mgmt.appcontainers.models.JobConfigurationManualTriggerConfig + :keyword schedule_trigger_config: Cron formatted repeating trigger schedule ("\ * * * * *") for + cronjobs. Properties completions and parallelism would be set to 1 by default. + :paramtype schedule_trigger_config: + ~azure.mgmt.appcontainers.models.JobConfigurationScheduleTriggerConfig + :keyword registries: Collection of private container registry credentials used by a Container + apps job. + :paramtype registries: list[~azure.mgmt.appcontainers.models.RegistryCredentials] + """ + super().__init__(**kwargs) + self.secrets = secrets + self.trigger_type = trigger_type + self.replica_timeout = replica_timeout + self.replica_retry_limit = replica_retry_limit + self.manual_trigger_config = manual_trigger_config + self.schedule_trigger_config = schedule_trigger_config + self.registries = registries + + +class JobConfigurationManualTriggerConfig(_serialization.Model): + """Manual trigger configuration for a single execution job. Properties replicaCompletionCount and + parallelism would be set to 1 by default. + + :ivar replica_completion_count: Minimum number of successful replica completions before overall + job completion. + :vartype replica_completion_count: int + :ivar parallelism: Number of parallel replicas of a job that can run at a given time. + :vartype parallelism: int + """ + + _attribute_map = { + "replica_completion_count": {"key": "replicaCompletionCount", "type": "int"}, + "parallelism": {"key": "parallelism", "type": "int"}, + } + + def __init__( + self, *, replica_completion_count: Optional[int] = None, parallelism: Optional[int] = None, **kwargs: Any + ) -> None: + """ + :keyword replica_completion_count: Minimum number of successful replica completions before + overall job completion. + :paramtype replica_completion_count: int + :keyword parallelism: Number of parallel replicas of a job that can run at a given time. + :paramtype parallelism: int + """ + super().__init__(**kwargs) + self.replica_completion_count = replica_completion_count + self.parallelism = parallelism + + +class JobConfigurationScheduleTriggerConfig(_serialization.Model): + """Cron formatted repeating trigger schedule ("\ * * * * *") for cronjobs. Properties completions + and parallelism would be set to 1 by default. + + All required parameters must be populated in order to send to Azure. + + :ivar replica_completion_count: Minimum number of successful replica completions before overall + job completion. + :vartype replica_completion_count: int + :ivar cron_expression: Cron formatted repeating schedule ("\ * * * * *") of a Cron Job. + Required. + :vartype cron_expression: str + :ivar parallelism: Number of parallel replicas of a job that can run at a given time. + :vartype parallelism: int + """ + + _validation = { + "cron_expression": {"required": True}, + } + + _attribute_map = { + "replica_completion_count": {"key": "replicaCompletionCount", "type": "int"}, + "cron_expression": {"key": "cronExpression", "type": "str"}, + "parallelism": {"key": "parallelism", "type": "int"}, + } + + def __init__( + self, + *, + cron_expression: str, + replica_completion_count: Optional[int] = None, + parallelism: Optional[int] = None, + **kwargs: Any + ) -> None: + """ + :keyword replica_completion_count: Minimum number of successful replica completions before + overall job completion. + :paramtype replica_completion_count: int + :keyword cron_expression: Cron formatted repeating schedule ("\ * * * * *") of a Cron Job. + Required. + :paramtype cron_expression: str + :keyword parallelism: Number of parallel replicas of a job that can run at a given time. + :paramtype parallelism: int + """ + super().__init__(**kwargs) + self.replica_completion_count = replica_completion_count + self.cron_expression = cron_expression + self.parallelism = parallelism + + +class JobExecution(_serialization.Model): + """Container Apps Jobs execution. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar name: Job execution Name. + :vartype name: str + :ivar id: Job execution Id. + :vartype id: str + :ivar type: Job Type. + :vartype type: str + :ivar status: Current running State of the job. Known values are: "Running", "Processing", + "Stopped", "Degraded", "Failed", "Unknown", and "Succeeded". + :vartype status: str or ~azure.mgmt.appcontainers.models.JobExecutionRunningState + :ivar start_time: Job execution start time. + :vartype start_time: ~datetime.datetime + :ivar end_time: Job execution start time. + :vartype end_time: ~datetime.datetime + :ivar template: Job's execution container. + :vartype template: ~azure.mgmt.appcontainers.models.JobExecutionTemplate + """ + + _validation = { + "status": {"readonly": True}, + } + + _attribute_map = { + "name": {"key": "name", "type": "str"}, + "id": {"key": "id", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "status": {"key": "status", "type": "str"}, + "start_time": {"key": "startTime", "type": "iso-8601"}, + "end_time": {"key": "endTime", "type": "iso-8601"}, + "template": {"key": "template", "type": "JobExecutionTemplate"}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + id: Optional[str] = None, # pylint: disable=redefined-builtin + type: Optional[str] = None, + start_time: Optional[datetime.datetime] = None, + end_time: Optional[datetime.datetime] = None, + template: Optional["_models.JobExecutionTemplate"] = None, + **kwargs: Any + ) -> None: + """ + :keyword name: Job execution Name. + :paramtype name: str + :keyword id: Job execution Id. + :paramtype id: str + :keyword type: Job Type. + :paramtype type: str + :keyword start_time: Job execution start time. + :paramtype start_time: ~datetime.datetime + :keyword end_time: Job execution start time. + :paramtype end_time: ~datetime.datetime + :keyword template: Job's execution container. + :paramtype template: ~azure.mgmt.appcontainers.models.JobExecutionTemplate + """ + super().__init__(**kwargs) + self.name = name + self.id = id + self.type = type + self.status = None + self.start_time = start_time + self.end_time = end_time + self.template = template + + +class JobExecutionBase(_serialization.Model): + """Container App's Job execution name. + + :ivar name: Job execution name. + :vartype name: str + :ivar id: Job execution Id. + :vartype id: str + """ + + _attribute_map = { + "name": {"key": "name", "type": "str"}, + "id": {"key": "id", "type": "str"}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + id: Optional[str] = None, # pylint: disable=redefined-builtin + **kwargs: Any + ) -> None: + """ + :keyword name: Job execution name. + :paramtype name: str + :keyword id: Job execution Id. + :paramtype id: str + """ + super().__init__(**kwargs) + self.name = name + self.id = id + + +class JobExecutionContainer(_serialization.Model): + """Container Apps Jobs execution container definition. + + :ivar image: Container image tag. + :vartype image: str + :ivar name: Custom container name. + :vartype name: str + :ivar command: Container start command. + :vartype command: list[str] + :ivar args: Container start command arguments. + :vartype args: list[str] + :ivar env: Container environment variables. + :vartype env: list[~azure.mgmt.appcontainers.models.EnvironmentVar] + :ivar resources: Container resource requirements. + :vartype resources: ~azure.mgmt.appcontainers.models.ContainerResources + """ + + _attribute_map = { + "image": {"key": "image", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "command": {"key": "command", "type": "[str]"}, + "args": {"key": "args", "type": "[str]"}, + "env": {"key": "env", "type": "[EnvironmentVar]"}, + "resources": {"key": "resources", "type": "ContainerResources"}, + } + + def __init__( + self, + *, + image: Optional[str] = None, + name: Optional[str] = None, + command: Optional[List[str]] = None, + args: Optional[List[str]] = None, + env: Optional[List["_models.EnvironmentVar"]] = None, + resources: Optional["_models.ContainerResources"] = None, + **kwargs: Any + ) -> None: + """ + :keyword image: Container image tag. + :paramtype image: str + :keyword name: Custom container name. + :paramtype name: str + :keyword command: Container start command. + :paramtype command: list[str] + :keyword args: Container start command arguments. + :paramtype args: list[str] + :keyword env: Container environment variables. + :paramtype env: list[~azure.mgmt.appcontainers.models.EnvironmentVar] + :keyword resources: Container resource requirements. + :paramtype resources: ~azure.mgmt.appcontainers.models.ContainerResources + """ + super().__init__(**kwargs) + self.image = image + self.name = name + self.command = command + self.args = args + self.env = env + self.resources = resources + + +class JobExecutionNamesCollection(_serialization.Model): + """Container App executions names list. + + All required parameters must be populated in order to send to Azure. + + :ivar value: Collection of resources. Required. + :vartype value: list[~azure.mgmt.appcontainers.models.JobExecutionBase] """ _validation = { - 'error': {'readonly': True}, + "value": {"required": True}, } _attribute_map = { - 'error': {'key': 'error', 'type': 'DefaultErrorResponseError'}, + "value": {"key": "value", "type": "[JobExecutionBase]"}, } - def __init__(self, **kwargs): - super(DefaultErrorResponse, self).__init__(**kwargs) - self.error = None + def __init__(self, *, value: List["_models.JobExecutionBase"], **kwargs: Any) -> None: + """ + :keyword value: Collection of resources. Required. + :paramtype value: list[~azure.mgmt.appcontainers.models.JobExecutionBase] + """ + super().__init__(**kwargs) + self.value = value -class DefaultErrorResponseException(HttpOperationError): - """Server responsed with exception of type: 'DefaultErrorResponse'. +class JobExecutionTemplate(_serialization.Model): + """Job's execution template, containing container configuration for a job's execution. - :param deserialize: A deserializer - :param response: Server response to be deserialized. + :ivar containers: List of container definitions for the Container Apps Job. + :vartype containers: list[~azure.mgmt.appcontainers.models.JobExecutionContainer] + :ivar init_containers: List of specialized containers that run before job containers. + :vartype init_containers: list[~azure.mgmt.appcontainers.models.JobExecutionContainer] """ - def __init__(self, deserialize, response, *args): - - super(DefaultErrorResponseException, self).__init__(deserialize, response, 'DefaultErrorResponse', *args) + _attribute_map = { + "containers": {"key": "containers", "type": "[JobExecutionContainer]"}, + "init_containers": {"key": "initContainers", "type": "[JobExecutionContainer]"}, + } + + def __init__( + self, + *, + containers: Optional[List["_models.JobExecutionContainer"]] = None, + init_containers: Optional[List["_models.JobExecutionContainer"]] = None, + **kwargs: Any + ) -> None: + """ + :keyword containers: List of container definitions for the Container Apps Job. + :paramtype containers: list[~azure.mgmt.appcontainers.models.JobExecutionContainer] + :keyword init_containers: List of specialized containers that run before job containers. + :paramtype init_containers: list[~azure.mgmt.appcontainers.models.JobExecutionContainer] + """ + super().__init__(**kwargs) + self.containers = containers + self.init_containers = init_containers + + +class JobPatchProperties(_serialization.Model): + """Container Apps Job resource specific properties. + + :ivar identity: Managed identities needed by a container app job to interact with other Azure + services to not maintain any secrets or credentials in code. + :vartype identity: ~azure.mgmt.appcontainers.models.ManagedServiceIdentity + :ivar tags: Resource tags. + :vartype tags: dict[str, str] + :ivar properties: + :vartype properties: ~azure.mgmt.appcontainers.models.JobPatchPropertiesProperties + """ + _attribute_map = { + "identity": {"key": "identity", "type": "ManagedServiceIdentity"}, + "tags": {"key": "tags", "type": "{str}"}, + "properties": {"key": "properties", "type": "JobPatchPropertiesProperties"}, + } + + def __init__( + self, + *, + identity: Optional["_models.ManagedServiceIdentity"] = None, + tags: Optional[Dict[str, str]] = None, + properties: Optional["_models.JobPatchPropertiesProperties"] = None, + **kwargs: Any + ) -> None: + """ + :keyword identity: Managed identities needed by a container app job to interact with other + Azure services to not maintain any secrets or credentials in code. + :paramtype identity: ~azure.mgmt.appcontainers.models.ManagedServiceIdentity + :keyword tags: Resource tags. + :paramtype tags: dict[str, str] + :keyword properties: + :paramtype properties: ~azure.mgmt.appcontainers.models.JobPatchPropertiesProperties + """ + super().__init__(**kwargs) + self.identity = identity + self.tags = tags + self.properties = properties + + +class JobPatchPropertiesProperties(_serialization.Model): + """JobPatchPropertiesProperties. + + :ivar environment_id: Resource ID of environment. + :vartype environment_id: str + :ivar configuration: Container Apps Job configuration properties. + :vartype configuration: ~azure.mgmt.appcontainers.models.JobConfiguration + :ivar template: Container Apps job definition. + :vartype template: ~azure.mgmt.appcontainers.models.JobTemplate + :ivar outbound_ip_addresses: Outbound IP Addresses of a container apps job. + :vartype outbound_ip_addresses: list[str] + :ivar event_stream_endpoint: The endpoint of the eventstream of the container apps job. + :vartype event_stream_endpoint: str + """ -class DefaultErrorResponseError(Model): - """Error model. + _attribute_map = { + "environment_id": {"key": "environmentId", "type": "str"}, + "configuration": {"key": "configuration", "type": "JobConfiguration"}, + "template": {"key": "template", "type": "JobTemplate"}, + "outbound_ip_addresses": {"key": "outboundIpAddresses", "type": "[str]"}, + "event_stream_endpoint": {"key": "eventStreamEndpoint", "type": "str"}, + } + + def __init__( + self, + *, + environment_id: Optional[str] = None, + configuration: Optional["_models.JobConfiguration"] = None, + template: Optional["_models.JobTemplate"] = None, + outbound_ip_addresses: Optional[List[str]] = None, + event_stream_endpoint: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword environment_id: Resource ID of environment. + :paramtype environment_id: str + :keyword configuration: Container Apps Job configuration properties. + :paramtype configuration: ~azure.mgmt.appcontainers.models.JobConfiguration + :keyword template: Container Apps job definition. + :paramtype template: ~azure.mgmt.appcontainers.models.JobTemplate + :keyword outbound_ip_addresses: Outbound IP Addresses of a container apps job. + :paramtype outbound_ip_addresses: list[str] + :keyword event_stream_endpoint: The endpoint of the eventstream of the container apps job. + :paramtype event_stream_endpoint: str + """ + super().__init__(**kwargs) + self.environment_id = environment_id + self.configuration = configuration + self.template = template + self.outbound_ip_addresses = outbound_ip_addresses + self.event_stream_endpoint = event_stream_endpoint + + +class JobsCollection(_serialization.Model): + """Container Apps Jobs collection ARM resource. + + Variables are only populated by the server, and will be ignored when sending a request. - Variables are only populated by the server, and will be ignored when - sending a request. + All required parameters must be populated in order to send to Azure. - :ivar code: Standardized string to programmatically identify the error. - :vartype code: str - :ivar message: Detailed error description and debugging information. - :vartype message: str - :ivar target: Detailed error description and debugging information. - :vartype target: str - :param details: Details or the error - :type details: - list[~commondefinitions.models.DefaultErrorResponseErrorDetailsItem] - :ivar innererror: More information to debug error. - :vartype innererror: str + :ivar value: Collection of resources. Required. + :vartype value: list[~azure.mgmt.appcontainers.models.Job] + :ivar next_link: Link to next page of resources. + :vartype next_link: str """ _validation = { - 'code': {'readonly': True}, - 'message': {'readonly': True}, - 'target': {'readonly': True}, - 'innererror': {'readonly': True}, + "value": {"required": True}, + "next_link": {"readonly": True}, } _attribute_map = { - 'code': {'key': 'code', 'type': 'str'}, - 'message': {'key': 'message', 'type': 'str'}, - 'target': {'key': 'target', 'type': 'str'}, - 'details': {'key': 'details', 'type': '[DefaultErrorResponseErrorDetailsItem]'}, - 'innererror': {'key': 'innererror', 'type': 'str'}, + "value": {"key": "value", "type": "[Job]"}, + "next_link": {"key": "nextLink", "type": "str"}, } - def __init__(self, **kwargs): - super(DefaultErrorResponseError, self).__init__(**kwargs) - self.code = None - self.message = None - self.target = None - self.details = kwargs.get('details', None) - self.innererror = None + def __init__(self, *, value: List["_models.Job"], **kwargs: Any) -> None: + """ + :keyword value: Collection of resources. Required. + :paramtype value: list[~azure.mgmt.appcontainers.models.Job] + """ + super().__init__(**kwargs) + self.value = value + self.next_link = None -class DefaultErrorResponseErrorDetailsItem(Model): - """Detailed errors. +class JobSecretsCollection(_serialization.Model): + """Container Apps Job Secrets Collection ARM resource. - Variables are only populated by the server, and will be ignored when - sending a request. + All required parameters must be populated in order to send to Azure. - :ivar code: Standardized string to programmatically identify the error. - :vartype code: str - :ivar message: Detailed error description and debugging information. - :vartype message: str - :ivar target: Detailed error description and debugging information. - :vartype target: str + :ivar value: Collection of resources. Required. + :vartype value: list[~azure.mgmt.appcontainers.models.Secret] """ _validation = { - 'code': {'readonly': True}, - 'message': {'readonly': True}, - 'target': {'readonly': True}, + "value": {"required": True}, } _attribute_map = { - 'code': {'key': 'code', 'type': 'str'}, - 'message': {'key': 'message', 'type': 'str'}, - 'target': {'key': 'target', 'type': 'str'}, + "value": {"key": "value", "type": "[Secret]"}, } - def __init__(self, **kwargs): - super(DefaultErrorResponseErrorDetailsItem, self).__init__(**kwargs) - self.code = None - self.message = None - self.target = None + def __init__(self, *, value: List["_models.Secret"], **kwargs: Any) -> None: + """ + :keyword value: Collection of resources. Required. + :paramtype value: list[~azure.mgmt.appcontainers.models.Secret] + """ + super().__init__(**kwargs) + self.value = value -class EnvironmentVar(Model): - """Container App container environment variable. +class JobTemplate(_serialization.Model): + """Container Apps Job versioned application definition. Defines the desired state of an immutable + revision. Any changes to this section Will result in a new revision being created. - :param name: Environment variable name. - :type name: str - :param value: Non-secret environment variable value. - :type value: str - :param secret_ref: Name of the Container App secret from which to pull the - environment variable value. - :type secret_ref: str + :ivar init_containers: List of specialized containers that run before app containers. + :vartype init_containers: list[~azure.mgmt.appcontainers.models.InitContainer] + :ivar containers: List of container definitions for the Container App. + :vartype containers: list[~azure.mgmt.appcontainers.models.Container] + :ivar volumes: List of volume definitions for the Container App. + :vartype volumes: list[~azure.mgmt.appcontainers.models.Volume] """ _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'value': {'key': 'value', 'type': 'str'}, - 'secret_ref': {'key': 'secretRef', 'type': 'str'}, - } - - def __init__(self, **kwargs): - super(EnvironmentVar, self).__init__(**kwargs) - self.name = kwargs.get('name', None) - self.value = kwargs.get('value', None) - self.secret_ref = kwargs.get('secret_ref', None) - - -class Facebook(Model): - """The configuration settings of the Facebook provider. - - :param state: Disabled if the Facebook provider should not be - enabled despite the set registration; otherwise, Enabled. - Possible values include: 'Enabled', 'Disabled' - :type state: str or ~commondefinitions.models.IdentityProviderState - :param registration: The configuration settings of the app registration - for the Facebook provider. - :type registration: ~commondefinitions.models.AppRegistration - :param graph_api_version: The version of the Facebook api to be used while - logging in. - :type graph_api_version: str - :param login: The configuration settings of the login flow. - :type login: ~commondefinitions.models.LoginScopes + "init_containers": {"key": "initContainers", "type": "[InitContainer]"}, + "containers": {"key": "containers", "type": "[Container]"}, + "volumes": {"key": "volumes", "type": "[Volume]"}, + } + + def __init__( + self, + *, + init_containers: Optional[List["_models.InitContainer"]] = None, + containers: Optional[List["_models.Container"]] = None, + volumes: Optional[List["_models.Volume"]] = None, + **kwargs: Any + ) -> None: + """ + :keyword init_containers: List of specialized containers that run before app containers. + :paramtype init_containers: list[~azure.mgmt.appcontainers.models.InitContainer] + :keyword containers: List of container definitions for the Container App. + :paramtype containers: list[~azure.mgmt.appcontainers.models.Container] + :keyword volumes: List of volume definitions for the Container App. + :paramtype volumes: list[~azure.mgmt.appcontainers.models.Volume] + """ + super().__init__(**kwargs) + self.init_containers = init_containers + self.containers = containers + self.volumes = volumes + + +class JwtClaimChecks(_serialization.Model): + """The configuration settings of the checks that should be made while validating the JWT Claims. + + :ivar allowed_groups: The list of the allowed groups. + :vartype allowed_groups: list[str] + :ivar allowed_client_applications: The list of the allowed client applications. + :vartype allowed_client_applications: list[str] """ _attribute_map = { - 'state': {'key': 'state', 'type': 'str'}, - 'registration': {'key': 'registration', 'type': 'AppRegistration'}, - 'graph_api_version': {'key': 'graphApiVersion', 'type': 'str'}, - 'login': {'key': 'login', 'type': 'LoginScopes'}, - } - - def __init__(self, **kwargs): - super(Facebook, self).__init__(**kwargs) - self.state = kwargs.get('state', None) - self.registration = kwargs.get('registration', None) - self.graph_api_version = kwargs.get('graph_api_version', None) - self.login = kwargs.get('login', None) - - -class GitHub(Model): - """The configuration settings of the GitHub provider. - - :param state: Disabled if the GitHub provider should not be - enabled despite the set registration; otherwise, Enabled. - Possible values include: 'Enabled', 'Disabled' - :type state: str or ~commondefinitions.models.IdentityProviderState - :param registration: The configuration settings of the app registration - for the GitHub provider. - :type registration: ~commondefinitions.models.ClientRegistration - :param login: The configuration settings of the login flow. - :type login: ~commondefinitions.models.LoginScopes - """ - - _attribute_map = { - 'state': {'key': 'state', 'type': 'str'}, - 'registration': {'key': 'registration', 'type': 'ClientRegistration'}, - 'login': {'key': 'login', 'type': 'LoginScopes'}, - } - - def __init__(self, **kwargs): - super(GitHub, self).__init__(**kwargs) - self.state = kwargs.get('state', None) - self.registration = kwargs.get('registration', None) - self.login = kwargs.get('login', None) - - -class GithubActionConfiguration(Model): - """Configuration properties that define the mutable settings of a Container - App SourceControl. - - :param registry_info: Registry configurations. - :type registry_info: ~commondefinitions.models.RegistryInfo - :param azure_credentials: AzureCredentials configurations. - :type azure_credentials: ~commondefinitions.models.AzureCredentials - :param dockerfile_path: Docker file path - :type dockerfile_path: str - :param publish_type: Code or Image - :type publish_type: str - :param os: Operation system - :type os: str - :param runtime_stack: Runtime stack - :type runtime_stack: str - :param runtime_version: Runtime Version - :type runtime_version: str - """ - - _attribute_map = { - 'registry_info': {'key': 'registryInfo', 'type': 'RegistryInfo'}, - 'azure_credentials': {'key': 'azureCredentials', 'type': 'AzureCredentials'}, - 'dockerfile_path': {'key': 'dockerfilePath', 'type': 'str'}, - 'publish_type': {'key': 'publishType', 'type': 'str'}, - 'os': {'key': 'os', 'type': 'str'}, - 'runtime_stack': {'key': 'runtimeStack', 'type': 'str'}, - 'runtime_version': {'key': 'runtimeVersion', 'type': 'str'}, - } - - def __init__(self, **kwargs): - super(GithubActionConfiguration, self).__init__(**kwargs) - self.registry_info = kwargs.get('registry_info', None) - self.azure_credentials = kwargs.get('azure_credentials', None) - self.dockerfile_path = kwargs.get('dockerfile_path', None) - self.publish_type = kwargs.get('publish_type', None) - self.os = kwargs.get('os', None) - self.runtime_stack = kwargs.get('runtime_stack', None) - self.runtime_version = kwargs.get('runtime_version', None) - - -class GlobalValidation(Model): - """The configuration settings that determines the validation flow of users - using ContainerApp Authentication/Authorization. - - :param unauthenticated_client_action: The action to take when an - unauthenticated client attempts to access the app. Possible values - include: 'RedirectToLoginPage', 'AllowAnonymous', 'Return401', 'Return403' - :type unauthenticated_client_action: str or - ~commondefinitions.models.UnauthenticatedClientAction - :param redirect_to_provider: The default authentication provider to use - when multiple providers are configured. - This setting is only needed if multiple providers are configured and the - unauthenticated client - action is set to "RedirectToLoginPage". - :type redirect_to_provider: str + "allowed_groups": {"key": "allowedGroups", "type": "[str]"}, + "allowed_client_applications": {"key": "allowedClientApplications", "type": "[str]"}, + } + + def __init__( + self, + *, + allowed_groups: Optional[List[str]] = None, + allowed_client_applications: Optional[List[str]] = None, + **kwargs: Any + ) -> None: + """ + :keyword allowed_groups: The list of the allowed groups. + :paramtype allowed_groups: list[str] + :keyword allowed_client_applications: The list of the allowed client applications. + :paramtype allowed_client_applications: list[str] + """ + super().__init__(**kwargs) + self.allowed_groups = allowed_groups + self.allowed_client_applications = allowed_client_applications + + +class KedaConfiguration(_serialization.Model): + """Configuration properties Keda component. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar version: The version of Keda. + :vartype version: str """ - _attribute_map = { - 'unauthenticated_client_action': {'key': 'unauthenticatedClientAction', 'type': 'str'}, - 'redirect_to_provider': {'key': 'redirectToProvider', 'type': 'str'}, + _validation = { + "version": {"readonly": True}, } - def __init__(self, **kwargs): - super(GlobalValidation, self).__init__(**kwargs) - self.unauthenticated_client_action = kwargs.get('unauthenticated_client_action', None) - self.redirect_to_provider = kwargs.get('redirect_to_provider', None) - - -class Google(Model): - """The configuration settings of the Google provider. - - :param state: Disabled if the Google provider should not be - enabled despite the set registration; otherwise, Enabled. - Possible values include: 'Enabled', 'Disabled' - :type state: str or ~commondefinitions.models.IdentityProviderState - :param registration: The configuration settings of the app registration - for the Google provider. - :type registration: ~commondefinitions.models.ClientRegistration - :param login: The configuration settings of the login flow. - :type login: ~commondefinitions.models.LoginScopes - :param validation: The configuration settings of the Azure Active - Directory token validation flow. - :type validation: ~commondefinitions.models.AllowedAudiencesValidation - """ - _attribute_map = { - 'state': {'key': 'state', 'type': 'str'}, - 'registration': {'key': 'registration', 'type': 'ClientRegistration'}, - 'login': {'key': 'login', 'type': 'LoginScopes'}, - 'validation': {'key': 'validation', 'type': 'AllowedAudiencesValidation'}, + "version": {"key": "version", "type": "str"}, } - def __init__(self, **kwargs): - super(Google, self).__init__(**kwargs) - self.state = kwargs.get('state', None) - self.registration = kwargs.get('registration', None) - self.login = kwargs.get('login', None) - self.validation = kwargs.get('validation', None) + def __init__(self, **kwargs: Any) -> None: + """ """ + super().__init__(**kwargs) + self.version = None -class HttpScaleRule(Model): - """Container App container Custom scaling rule. +class LogAnalyticsConfiguration(_serialization.Model): + """Log analytics configuration. - :param metadata: Metadata properties to describe http scale rule. - :type metadata: dict[str, str] - :param auth: Authentication secrets for the custom scale rule. - :type auth: list[~commondefinitions.models.ScaleRuleAuth] + :ivar customer_id: Log analytics customer id. + :vartype customer_id: str + :ivar shared_key: Log analytics customer key. + :vartype shared_key: str """ _attribute_map = { - 'metadata': {'key': 'metadata', 'type': '{str}'}, - 'auth': {'key': 'auth', 'type': '[ScaleRuleAuth]'}, + "customer_id": {"key": "customerId", "type": "str"}, + "shared_key": {"key": "sharedKey", "type": "str"}, } - def __init__(self, **kwargs): - super(HttpScaleRule, self).__init__(**kwargs) - self.metadata = kwargs.get('metadata', None) - self.auth = kwargs.get('auth', None) + def __init__(self, *, customer_id: Optional[str] = None, shared_key: Optional[str] = None, **kwargs: Any) -> None: + """ + :keyword customer_id: Log analytics customer id. + :paramtype customer_id: str + :keyword shared_key: Log analytics customer key. + :paramtype shared_key: str + """ + super().__init__(**kwargs) + self.customer_id = customer_id + self.shared_key = shared_key -class HttpSettings(Model): - """The configuration settings of the HTTP requests for authentication and - authorization requests made against ContainerApp +class Login(_serialization.Model): + """The configuration settings of the login flow of users using ContainerApp Service Authentication/Authorization. - :param require_https: false if the - authentication/authorization responses not having the HTTPS scheme are - permissible; otherwise, true. Possible values include: - 'True', 'False' - :type require_https: str or ~commondefinitions.models.RequireHttpsMode - :param route: The configuration settings of the paths HTTP requests. - :type route: ~commondefinitions.models.HttpSettingsRoute + :ivar routes: The routes that specify the endpoints used for login and logout requests. + :vartype routes: ~azure.mgmt.appcontainers.models.LoginRoutes + :ivar preserve_url_fragments_for_logins: :code:`true` if the fragments from the + request are preserved after the login request is made; otherwise, :code:`false`. + :vartype preserve_url_fragments_for_logins: bool + :ivar allowed_external_redirect_urls: External URLs that can be redirected to as part of + logging in or logging out of the app. Note that the query string part of the URL is ignored. + This is an advanced setting typically only needed by Windows Store application backends. + Note that URLs within the current domain are always implicitly allowed. + :vartype allowed_external_redirect_urls: list[str] + :ivar cookie_expiration: The configuration settings of the session cookie's expiration. + :vartype cookie_expiration: ~azure.mgmt.appcontainers.models.CookieExpiration + :ivar nonce: The configuration settings of the nonce used in the login flow. + :vartype nonce: ~azure.mgmt.appcontainers.models.Nonce + """ + + _attribute_map = { + "routes": {"key": "routes", "type": "LoginRoutes"}, + "preserve_url_fragments_for_logins": {"key": "preserveUrlFragmentsForLogins", "type": "bool"}, + "allowed_external_redirect_urls": {"key": "allowedExternalRedirectUrls", "type": "[str]"}, + "cookie_expiration": {"key": "cookieExpiration", "type": "CookieExpiration"}, + "nonce": {"key": "nonce", "type": "Nonce"}, + } + + def __init__( + self, + *, + routes: Optional["_models.LoginRoutes"] = None, + preserve_url_fragments_for_logins: Optional[bool] = None, + allowed_external_redirect_urls: Optional[List[str]] = None, + cookie_expiration: Optional["_models.CookieExpiration"] = None, + nonce: Optional["_models.Nonce"] = None, + **kwargs: Any + ) -> None: + """ + :keyword routes: The routes that specify the endpoints used for login and logout requests. + :paramtype routes: ~azure.mgmt.appcontainers.models.LoginRoutes + :keyword preserve_url_fragments_for_logins: :code:`true` if the fragments from the + request are preserved after the login request is made; otherwise, :code:`false`. + :paramtype preserve_url_fragments_for_logins: bool + :keyword allowed_external_redirect_urls: External URLs that can be redirected to as part of + logging in or logging out of the app. Note that the query string part of the URL is ignored. + This is an advanced setting typically only needed by Windows Store application backends. + Note that URLs within the current domain are always implicitly allowed. + :paramtype allowed_external_redirect_urls: list[str] + :keyword cookie_expiration: The configuration settings of the session cookie's expiration. + :paramtype cookie_expiration: ~azure.mgmt.appcontainers.models.CookieExpiration + :keyword nonce: The configuration settings of the nonce used in the login flow. + :paramtype nonce: ~azure.mgmt.appcontainers.models.Nonce + """ + super().__init__(**kwargs) + self.routes = routes + self.preserve_url_fragments_for_logins = preserve_url_fragments_for_logins + self.allowed_external_redirect_urls = allowed_external_redirect_urls + self.cookie_expiration = cookie_expiration + self.nonce = nonce + + +class LoginRoutes(_serialization.Model): + """The routes that specify the endpoints used for login and logout requests. + + :ivar logout_endpoint: The endpoint at which a logout request should be made. + :vartype logout_endpoint: str """ _attribute_map = { - 'require_https': {'key': 'requireHttps', 'type': 'str'}, - 'route': {'key': 'route', 'type': 'HttpSettingsRoute'}, + "logout_endpoint": {"key": "logoutEndpoint", "type": "str"}, } - def __init__(self, **kwargs): - super(HttpSettings, self).__init__(**kwargs) - self.require_https = kwargs.get('require_https', None) - self.route = kwargs.get('route', None) + def __init__(self, *, logout_endpoint: Optional[str] = None, **kwargs: Any) -> None: + """ + :keyword logout_endpoint: The endpoint at which a logout request should be made. + :paramtype logout_endpoint: str + """ + super().__init__(**kwargs) + self.logout_endpoint = logout_endpoint -class HttpSettingsRoute(Model): - """The configuration settings of the paths HTTP requests. +class LoginScopes(_serialization.Model): + """The configuration settings of the login flow, including the scopes that should be requested. - :param api_prefix: The prefix that should precede all the - authentication/authorization paths. - :type api_prefix: str - """ - - _attribute_map = { - 'api_prefix': {'key': 'apiPrefix', 'type': 'str'}, - } - - def __init__(self, **kwargs): - super(HttpSettingsRoute, self).__init__(**kwargs) - self.api_prefix = kwargs.get('api_prefix', None) - - -class IdentityProviders(Model): - """The configuration settings of each of the identity providers used to - configure ContainerApp Authentication/Authorization. - - :param azure_active_directory: The configuration settings of the Azure - Active directory provider. - :type azure_active_directory: - ~commondefinitions.models.AzureActiveDirectory - :param facebook: The configuration settings of the Facebook provider. - :type facebook: ~commondefinitions.models.Facebook - :param git_hub: The configuration settings of the GitHub provider. - :type git_hub: ~commondefinitions.models.GitHub - :param google: The configuration settings of the Google provider. - :type google: ~commondefinitions.models.Google - :param legacy_microsoft_account: The configuration settings of the legacy - Microsoft Account provider. - :type legacy_microsoft_account: - ~commondefinitions.models.LegacyMicrosoftAccount - :param twitter: The configuration settings of the Twitter provider. - :type twitter: ~commondefinitions.models.Twitter - :param apple: The configuration settings of the Apple provider. - :type apple: ~commondefinitions.models.Apple - :param azure_static_web_app: The configuration settings of the Azure - Static Web Apps provider. - :type azure_static_web_app: ~commondefinitions.models.AzureStaticWebApp - :param custom_open_id_connect_providers: The map of the name of the alias - of each custom Open ID Connect provider to the - configuration settings of the custom Open ID Connect provider. - :type custom_open_id_connect_providers: dict[str, - ~commondefinitions.models.CustomOpenIdConnectProvider] + :ivar scopes: A list of the scopes that should be requested while authenticating. + :vartype scopes: list[str] """ _attribute_map = { - 'azure_active_directory': {'key': 'azureActiveDirectory', 'type': 'AzureActiveDirectory'}, - 'facebook': {'key': 'facebook', 'type': 'Facebook'}, - 'git_hub': {'key': 'gitHub', 'type': 'GitHub'}, - 'google': {'key': 'google', 'type': 'Google'}, - 'legacy_microsoft_account': {'key': 'legacyMicrosoftAccount', 'type': 'LegacyMicrosoftAccount'}, - 'twitter': {'key': 'twitter', 'type': 'Twitter'}, - 'apple': {'key': 'apple', 'type': 'Apple'}, - 'azure_static_web_app': {'key': 'azureStaticWebApp', 'type': 'AzureStaticWebApp'}, - 'custom_open_id_connect_providers': {'key': 'customOpenIdConnectProviders', 'type': '{CustomOpenIdConnectProvider}'}, + "scopes": {"key": "scopes", "type": "[str]"}, } - def __init__(self, **kwargs): - super(IdentityProviders, self).__init__(**kwargs) - self.azure_active_directory = kwargs.get('azure_active_directory', None) - self.facebook = kwargs.get('facebook', None) - self.git_hub = kwargs.get('git_hub', None) - self.google = kwargs.get('google', None) - self.legacy_microsoft_account = kwargs.get('legacy_microsoft_account', None) - self.twitter = kwargs.get('twitter', None) - self.apple = kwargs.get('apple', None) - self.azure_static_web_app = kwargs.get('azure_static_web_app', None) - self.custom_open_id_connect_providers = kwargs.get('custom_open_id_connect_providers', None) + def __init__(self, *, scopes: Optional[List[str]] = None, **kwargs: Any) -> None: + """ + :keyword scopes: A list of the scopes that should be requested while authenticating. + :paramtype scopes: list[str] + """ + super().__init__(**kwargs) + self.scopes = scopes -class Ingress(Model): - """Container App Ingress configuration. +class ManagedCertificate(TrackedResource): + """Managed certificates used for Custom Domain bindings of Container Apps in a Managed + Environment. - Variables are only populated by the server, and will be ignored when - sending a request. + Variables are only populated by the server, and will be ignored when sending a request. - :ivar fqdn: Hostname. - :vartype fqdn: str - :param external: Bool indicating if app exposes an external http endpoint. - Default value: False . - :type external: bool - :param target_port: Target Port in containers for traffic from ingress - :type target_port: int - :param transport: Ingress transport protocol. Possible values include: - 'auto', 'http', 'http2' - :type transport: str or ~commondefinitions.models.IngressTransportMethod - :param traffic: Traffic weights for app's revisions - :type traffic: list[~commondefinitions.models.TrafficWeight] - :param custom_domains: custom domain bindings for Container Apps' - hostnames. - :type custom_domains: list[~commondefinitions.models.CustomDomain] - :param allow_insecure: Bool indicating if HTTP connections to is allowed. - If set to false HTTP connections are automatically redirected to HTTPS - connections - :type allow_insecure: bool - :type sticky_sessions: sticky session affinity for Container App. Possible values include: - 'none', 'Sticky' - """ - - _validation = { - 'fqdn': {'readonly': True}, - } - - _attribute_map = { - 'fqdn': {'key': 'fqdn', 'type': 'str'}, - 'external': {'key': 'external', 'type': 'bool'}, - 'target_port': {'key': 'targetPort', 'type': 'int'}, - 'exposed_port': {'key': 'exposedPort', 'type': 'int'}, - 'transport': {'key': 'transport', 'type': 'str'}, - 'traffic': {'key': 'traffic', 'type': '[TrafficWeight]'}, - 'custom_domains': {'key': 'customDomains', 'type': '[CustomDomain]'}, - 'allow_insecure': {'key': 'allowInsecure', 'type': 'bool'}, - 'ip_security_restrictions': {'key': 'ipSecurityRestrictions', 'type': '[IPSecurityRestrictions]'}, - 'client_certificate_mode': {'key': 'clientCertificateMode', 'type': 'str'}, - 'cors_policy': {'key': 'corsPolicy', 'type': 'CorsPolicy'}, - 'sticky_sessions': {'key': 'stickySessions', 'type': 'StickySessions'}, - } - - def __init__(self, **kwargs): - super(Ingress, self).__init__(**kwargs) - self.fqdn = None - self.external = kwargs.get('external', False) - self.exposedPort = kwargs.get('exposed_port', None) - self.target_port = kwargs.get('target_port', None) - self.transport = kwargs.get('transport', None) - self.traffic = kwargs.get('traffic', None) - self.custom_domains = kwargs.get('custom_domains', None) - self.allow_insecure = kwargs.get('allow_insecure', None) - self.ipSecurityRestrictions = kwargs.get('ip_security_restrictions', None) - self.clientCertificateMode = kwargs.get('client_certificate_mode', None) - self.corsPolicy = kwargs.get('cors_policy', None) - self.stickySessions = kwargs.get('sticky_sessions', None) - - -class LegacyMicrosoftAccount(Model): - """The configuration settings of the legacy Microsoft Account provider. - - :param state: Disabled if the legacy Microsoft Account - provider should not be enabled despite the set registration; otherwise, - Enabled. Possible values include: 'Enabled', 'Disabled' - :type state: str or ~commondefinitions.models.IdentityProviderState - :param registration: The configuration settings of the app registration - for the legacy Microsoft Account provider. - :type registration: ~commondefinitions.models.ClientRegistration - :param login: The configuration settings of the login flow. - :type login: ~commondefinitions.models.LoginScopes - :param validation: The configuration settings of the legacy Microsoft - Account provider token validation flow. - :type validation: ~commondefinitions.models.AllowedAudiencesValidation - """ - - _attribute_map = { - 'state': {'key': 'state', 'type': 'str'}, - 'registration': {'key': 'registration', 'type': 'ClientRegistration'}, - 'login': {'key': 'login', 'type': 'LoginScopes'}, - 'validation': {'key': 'validation', 'type': 'AllowedAudiencesValidation'}, - } - - def __init__(self, **kwargs): - super(LegacyMicrosoftAccount, self).__init__(**kwargs) - self.state = kwargs.get('state', None) - self.registration = kwargs.get('registration', None) - self.login = kwargs.get('login', None) - self.validation = kwargs.get('validation', None) - - -class LogAnalyticsConfiguration(Model): - """Log analytics configuration. + All required parameters must be populated in order to send to Azure. - :param customer_id: Log analytics customer id - :type customer_id: str - :param shared_key: Log analytics customer key - :type shared_key: str + :ivar id: Fully qualified resource ID for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". + :vartype type: str + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.appcontainers.models.SystemData + :ivar tags: Resource tags. + :vartype tags: dict[str, str] + :ivar location: The geo-location where the resource lives. Required. + :vartype location: str + :ivar properties: Certificate resource specific properties. + :vartype properties: ~azure.mgmt.appcontainers.models.ManagedCertificateProperties """ - _attribute_map = { - 'customer_id': {'key': 'customerId', 'type': 'str'}, - 'shared_key': {'key': 'sharedKey', 'type': 'str'}, + _validation = { + "id": {"readonly": True}, + "name": {"readonly": True}, + "type": {"readonly": True}, + "system_data": {"readonly": True}, + "location": {"required": True}, } - def __init__(self, **kwargs): - super(LogAnalyticsConfiguration, self).__init__(**kwargs) - self.customer_id = kwargs.get('customer_id', None) - self.shared_key = kwargs.get('shared_key', None) - + _attribute_map = { + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "system_data": {"key": "systemData", "type": "SystemData"}, + "tags": {"key": "tags", "type": "{str}"}, + "location": {"key": "location", "type": "str"}, + "properties": {"key": "properties", "type": "ManagedCertificateProperties"}, + } + + def __init__( + self, + *, + location: str, + tags: Optional[Dict[str, str]] = None, + properties: Optional["_models.ManagedCertificateProperties"] = None, + **kwargs: Any + ) -> None: + """ + :keyword tags: Resource tags. + :paramtype tags: dict[str, str] + :keyword location: The geo-location where the resource lives. Required. + :paramtype location: str + :keyword properties: Certificate resource specific properties. + :paramtype properties: ~azure.mgmt.appcontainers.models.ManagedCertificateProperties + """ + super().__init__(tags=tags, location=location, **kwargs) + self.properties = properties + + +class ManagedCertificateCollection(_serialization.Model): + """Collection of Managed Certificates. + + Variables are only populated by the server, and will be ignored when sending a request. -class Login(Model): - """The configuration settings of the login flow of users using ContainerApp - Authentication/Authorization. + All required parameters must be populated in order to send to Azure. - :param route: The route that specify the endpoint used for login and - logout requests. - :type route: ~commondefinitions.models.LoginRoute - :param preserve_url_fragments_for_logins: True if the - fragments from the request are preserved after the login request is made; - otherwise, False. Possible values include: 'True', 'False' - :type preserve_url_fragments_for_logins: str or - ~commondefinitions.models.PreserveUrlFragmentsForLoginsMode - :param allowed_external_redirect_urls: External URLs that can be - redirected to as part of logging in or logging out of the app. Note that - the query string part of the URL is ignored. - This is an advanced setting typically only needed by Windows Store - application backends. - Note that URLs within the current domain are always implicitly allowed. - :type allowed_external_redirect_urls: list[str] + :ivar value: Collection of resources. Required. + :vartype value: list[~azure.mgmt.appcontainers.models.ManagedCertificate] + :ivar next_link: Link to next page of resources. + :vartype next_link: str """ + _validation = { + "value": {"required": True}, + "next_link": {"readonly": True}, + } + _attribute_map = { - 'route': {'key': 'route', 'type': 'LoginRoute'}, - 'preserve_url_fragments_for_logins': {'key': 'preserveUrlFragmentsForLogins', 'type': 'str'}, - 'allowed_external_redirect_urls': {'key': 'allowedExternalRedirectUrls', 'type': '[str]'}, + "value": {"key": "value", "type": "[ManagedCertificate]"}, + "next_link": {"key": "nextLink", "type": "str"}, } - def __init__(self, **kwargs): - super(Login, self).__init__(**kwargs) - self.route = kwargs.get('route', None) - self.preserve_url_fragments_for_logins = kwargs.get('preserve_url_fragments_for_logins', None) - self.allowed_external_redirect_urls = kwargs.get('allowed_external_redirect_urls', None) + def __init__(self, *, value: List["_models.ManagedCertificate"], **kwargs: Any) -> None: + """ + :keyword value: Collection of resources. Required. + :paramtype value: list[~azure.mgmt.appcontainers.models.ManagedCertificate] + """ + super().__init__(**kwargs) + self.value = value + self.next_link = None -class LoginRoute(Model): - """The route that specify the endpoint used for login and logout requests. +class ManagedCertificatePatch(_serialization.Model): + """A managed certificate to update. - :param logout_endpoint: The endpoint at which a logout request should be - made. - :type logout_endpoint: str + :ivar tags: Application-specific metadata in the form of key-value pairs. + :vartype tags: dict[str, str] """ _attribute_map = { - 'logout_endpoint': {'key': 'logoutEndpoint', 'type': 'str'}, + "tags": {"key": "tags", "type": "{str}"}, } - def __init__(self, **kwargs): - super(LoginRoute, self).__init__(**kwargs) - self.logout_endpoint = kwargs.get('logout_endpoint', None) + def __init__(self, *, tags: Optional[Dict[str, str]] = None, **kwargs: Any) -> None: + """ + :keyword tags: Application-specific metadata in the form of key-value pairs. + :paramtype tags: dict[str, str] + """ + super().__init__(**kwargs) + self.tags = tags -class LoginScopes(Model): - """The configuration settings of the login flow, including the scopes that - should be requested. +class ManagedCertificateProperties(_serialization.Model): + """Certificate resource specific properties. + + Variables are only populated by the server, and will be ignored when sending a request. - :param scopes: A list of the scopes that should be requested while - authenticating. - :type scopes: list[str] + :ivar provisioning_state: Provisioning state of the certificate. Known values are: "Succeeded", + "Failed", "Canceled", "DeleteFailed", and "Pending". + :vartype provisioning_state: str or + ~azure.mgmt.appcontainers.models.CertificateProvisioningState + :ivar subject_name: Subject name of the certificate. + :vartype subject_name: str + :ivar error: Any error occurred during the certificate provision. + :vartype error: str + :ivar domain_control_validation: Selected type of domain control validation for managed + certificates. Known values are: "CNAME", "HTTP", and "TXT". + :vartype domain_control_validation: str or + ~azure.mgmt.appcontainers.models.ManagedCertificateDomainControlValidation + :ivar validation_token: A TXT token used for DNS TXT domain control validation when issuing + this type of managed certificates. + :vartype validation_token: str """ - _attribute_map = { - 'scopes': {'key': 'scopes', 'type': '[str]'}, + _validation = { + "provisioning_state": {"readonly": True}, + "error": {"readonly": True}, + "validation_token": {"readonly": True}, } - def __init__(self, **kwargs): - super(LoginScopes, self).__init__(**kwargs) - self.scopes = kwargs.get('scopes', None) + _attribute_map = { + "provisioning_state": {"key": "provisioningState", "type": "str"}, + "subject_name": {"key": "subjectName", "type": "str"}, + "error": {"key": "error", "type": "str"}, + "domain_control_validation": {"key": "domainControlValidation", "type": "str"}, + "validation_token": {"key": "validationToken", "type": "str"}, + } + + def __init__( + self, + *, + subject_name: Optional[str] = None, + domain_control_validation: Optional[Union[str, "_models.ManagedCertificateDomainControlValidation"]] = None, + **kwargs: Any + ) -> None: + """ + :keyword subject_name: Subject name of the certificate. + :paramtype subject_name: str + :keyword domain_control_validation: Selected type of domain control validation for managed + certificates. Known values are: "CNAME", "HTTP", and "TXT". + :paramtype domain_control_validation: str or + ~azure.mgmt.appcontainers.models.ManagedCertificateDomainControlValidation + """ + super().__init__(**kwargs) + self.provisioning_state = None + self.subject_name = subject_name + self.error = None + self.domain_control_validation = domain_control_validation + self.validation_token = None -class ManagedEnvironment(TrackedResource): +class ManagedEnvironment(TrackedResource): # pylint: disable=too-many-instance-attributes """An environment for hosting container apps. - Variables are only populated by the server, and will be ignored when - sending a request. + Variables are only populated by the server, and will be ignored when sending a request. All required parameters must be populated in order to send to Azure. :ivar id: Fully qualified resource ID for the resource. Ex - - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str - :ivar name: The name of the resource + :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. E.g. - "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str - :ivar system_data: Azure Resource Manager metadata containing createdBy - and modifiedBy information. - :vartype system_data: ~commondefinitions.models.SystemData - :param tags: Resource tags. - :type tags: dict[str, str] - :param location: Required. The geo-location where the resource lives - :type location: str - :ivar provisioning_state: Provisioning state of the Environment. Possible - values include: 'Succeeded', 'Failed', 'Canceled', 'Waiting', - 'InitializationInProgress', 'InfrastructureSetupInProgress', - 'InfrastructureSetupComplete', 'ScheduledForDelete', 'UpgradeRequested', - 'UpgradeFailed' + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.appcontainers.models.SystemData + :ivar tags: Resource tags. + :vartype tags: dict[str, str] + :ivar location: The geo-location where the resource lives. Required. + :vartype location: str + :ivar kind: Kind of the Environment. + :vartype kind: str + :ivar provisioning_state: Provisioning state of the Environment. Known values are: "Succeeded", + "Failed", "Canceled", "Waiting", "InitializationInProgress", "InfrastructureSetupInProgress", + "InfrastructureSetupComplete", "ScheduledForDelete", "UpgradeRequested", and "UpgradeFailed". :vartype provisioning_state: str or - ~commondefinitions.models.EnvironmentProvisioningState - :param dapr_ai_instrumentation_key: Azure Monitor instrumentation key used - by Dapr to export Service to Service communication telemetry - :type dapr_ai_instrumentation_key: str - :param vnet_configuration: Vnet configuration for the environment - :type vnet_configuration: ~commondefinitions.models.VnetConfiguration - :ivar deployment_errors: Any errors that occurred during deployment or - deployment validation + ~azure.mgmt.appcontainers.models.EnvironmentProvisioningState + :ivar dapr_ai_instrumentation_key: Azure Monitor instrumentation key used by Dapr to export + Service to Service communication telemetry. + :vartype dapr_ai_instrumentation_key: str + :ivar dapr_ai_connection_string: Application Insights connection string used by Dapr to export + Service to Service communication telemetry. + :vartype dapr_ai_connection_string: str + :ivar vnet_configuration: Vnet configuration for the environment. + :vartype vnet_configuration: ~azure.mgmt.appcontainers.models.VnetConfiguration + :ivar deployment_errors: Any errors that occurred during deployment or deployment validation. :vartype deployment_errors: str - :ivar default_domain: Default Domain Name for the cluster + :ivar default_domain: Default Domain Name for the cluster. :vartype default_domain: str - :ivar static_ip: Static IP of the Environment + :ivar static_ip: Static IP of the Environment. :vartype static_ip: str - :param app_logs_configuration: Cluster configuration which enables the log - daemon to export + :ivar app_logs_configuration: Cluster configuration which enables the log daemon to export app logs to a destination. Currently only "log-analytics" is - supported - :type app_logs_configuration: - ~commondefinitions.models.AppLogsConfiguration + supported. + :vartype app_logs_configuration: ~azure.mgmt.appcontainers.models.AppLogsConfiguration + :ivar zone_redundant: Whether or not this Managed Environment is zone-redundant. + :vartype zone_redundant: bool + :ivar custom_domain_configuration: Custom domain configuration for the environment. + :vartype custom_domain_configuration: + ~azure.mgmt.appcontainers.models.CustomDomainConfiguration + :ivar event_stream_endpoint: The endpoint of the eventstream of the Environment. + :vartype event_stream_endpoint: str + :ivar workload_profiles: Workload profiles configured for the Managed Environment. + :vartype workload_profiles: list[~azure.mgmt.appcontainers.models.WorkloadProfile] + :ivar keda_configuration: The configuration of Keda component. + :vartype keda_configuration: ~azure.mgmt.appcontainers.models.KedaConfiguration + :ivar dapr_configuration: The configuration of Dapr component. + :vartype dapr_configuration: ~azure.mgmt.appcontainers.models.DaprConfiguration + :ivar infrastructure_resource_group: Name of the platform-managed resource group created for + the Managed Environment to host infrastructure resources. If a subnet ID is provided, this + resource group will be created in the same subscription as the subnet. + :vartype infrastructure_resource_group: str """ _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'system_data': {'readonly': True}, - 'location': {'required': True}, - 'provisioning_state': {'readonly': True}, - 'deployment_errors': {'readonly': True}, - 'default_domain': {'readonly': True}, - 'static_ip': {'readonly': True}, + "id": {"readonly": True}, + "name": {"readonly": True}, + "type": {"readonly": True}, + "system_data": {"readonly": True}, + "location": {"required": True}, + "provisioning_state": {"readonly": True}, + "deployment_errors": {"readonly": True}, + "default_domain": {"readonly": True}, + "static_ip": {"readonly": True}, + "event_stream_endpoint": {"readonly": True}, } _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'system_data': {'key': 'systemData', 'type': 'SystemData'}, - 'tags': {'key': 'tags', 'type': '{str}'}, - 'location': {'key': 'location', 'type': 'str'}, - 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, - 'dapr_ai_instrumentation_key': {'key': 'properties.daprAIInstrumentationKey', 'type': 'str'}, - 'vnet_configuration': {'key': 'properties.vnetConfiguration', 'type': 'VnetConfiguration'}, - 'deployment_errors': {'key': 'properties.deploymentErrors', 'type': 'str'}, - 'default_domain': {'key': 'properties.defaultDomain', 'type': 'str'}, - 'static_ip': {'key': 'properties.staticIp', 'type': 'str'}, - 'app_logs_configuration': {'key': 'properties.appLogsConfiguration', 'type': 'AppLogsConfiguration'}, - } - - def __init__(self, **kwargs): - super(ManagedEnvironment, self).__init__(**kwargs) + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "system_data": {"key": "systemData", "type": "SystemData"}, + "tags": {"key": "tags", "type": "{str}"}, + "location": {"key": "location", "type": "str"}, + "kind": {"key": "kind", "type": "str"}, + "provisioning_state": {"key": "properties.provisioningState", "type": "str"}, + "dapr_ai_instrumentation_key": {"key": "properties.daprAIInstrumentationKey", "type": "str"}, + "dapr_ai_connection_string": {"key": "properties.daprAIConnectionString", "type": "str"}, + "vnet_configuration": {"key": "properties.vnetConfiguration", "type": "VnetConfiguration"}, + "deployment_errors": {"key": "properties.deploymentErrors", "type": "str"}, + "default_domain": {"key": "properties.defaultDomain", "type": "str"}, + "static_ip": {"key": "properties.staticIp", "type": "str"}, + "app_logs_configuration": {"key": "properties.appLogsConfiguration", "type": "AppLogsConfiguration"}, + "zone_redundant": {"key": "properties.zoneRedundant", "type": "bool"}, + "custom_domain_configuration": { + "key": "properties.customDomainConfiguration", + "type": "CustomDomainConfiguration", + }, + "event_stream_endpoint": {"key": "properties.eventStreamEndpoint", "type": "str"}, + "workload_profiles": {"key": "properties.workloadProfiles", "type": "[WorkloadProfile]"}, + "keda_configuration": {"key": "properties.kedaConfiguration", "type": "KedaConfiguration"}, + "dapr_configuration": {"key": "properties.daprConfiguration", "type": "DaprConfiguration"}, + "infrastructure_resource_group": {"key": "properties.infrastructureResourceGroup", "type": "str"}, + } + + def __init__( + self, + *, + location: str, + tags: Optional[Dict[str, str]] = None, + kind: Optional[str] = None, + dapr_ai_instrumentation_key: Optional[str] = None, + dapr_ai_connection_string: Optional[str] = None, + vnet_configuration: Optional["_models.VnetConfiguration"] = None, + app_logs_configuration: Optional["_models.AppLogsConfiguration"] = None, + zone_redundant: Optional[bool] = None, + custom_domain_configuration: Optional["_models.CustomDomainConfiguration"] = None, + workload_profiles: Optional[List["_models.WorkloadProfile"]] = None, + keda_configuration: Optional["_models.KedaConfiguration"] = None, + dapr_configuration: Optional["_models.DaprConfiguration"] = None, + infrastructure_resource_group: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword tags: Resource tags. + :paramtype tags: dict[str, str] + :keyword location: The geo-location where the resource lives. Required. + :paramtype location: str + :keyword kind: Kind of the Environment. + :paramtype kind: str + :keyword dapr_ai_instrumentation_key: Azure Monitor instrumentation key used by Dapr to export + Service to Service communication telemetry. + :paramtype dapr_ai_instrumentation_key: str + :keyword dapr_ai_connection_string: Application Insights connection string used by Dapr to + export Service to Service communication telemetry. + :paramtype dapr_ai_connection_string: str + :keyword vnet_configuration: Vnet configuration for the environment. + :paramtype vnet_configuration: ~azure.mgmt.appcontainers.models.VnetConfiguration + :keyword app_logs_configuration: Cluster configuration which enables the log daemon to export + app logs to a destination. Currently only "log-analytics" is + supported. + :paramtype app_logs_configuration: ~azure.mgmt.appcontainers.models.AppLogsConfiguration + :keyword zone_redundant: Whether or not this Managed Environment is zone-redundant. + :paramtype zone_redundant: bool + :keyword custom_domain_configuration: Custom domain configuration for the environment. + :paramtype custom_domain_configuration: + ~azure.mgmt.appcontainers.models.CustomDomainConfiguration + :keyword workload_profiles: Workload profiles configured for the Managed Environment. + :paramtype workload_profiles: list[~azure.mgmt.appcontainers.models.WorkloadProfile] + :keyword keda_configuration: The configuration of Keda component. + :paramtype keda_configuration: ~azure.mgmt.appcontainers.models.KedaConfiguration + :keyword dapr_configuration: The configuration of Dapr component. + :paramtype dapr_configuration: ~azure.mgmt.appcontainers.models.DaprConfiguration + :keyword infrastructure_resource_group: Name of the platform-managed resource group created for + the Managed Environment to host infrastructure resources. If a subnet ID is provided, this + resource group will be created in the same subscription as the subnet. + :paramtype infrastructure_resource_group: str + """ + super().__init__(tags=tags, location=location, **kwargs) + self.kind = kind self.provisioning_state = None - self.dapr_ai_instrumentation_key = kwargs.get('dapr_ai_instrumentation_key', None) - self.vnet_configuration = kwargs.get('vnet_configuration', None) + self.dapr_ai_instrumentation_key = dapr_ai_instrumentation_key + self.dapr_ai_connection_string = dapr_ai_connection_string + self.vnet_configuration = vnet_configuration self.deployment_errors = None self.default_domain = None self.static_ip = None - self.app_logs_configuration = kwargs.get('app_logs_configuration', None) - - -class ManagedEnvironmentPatch(Model): - """An environment for hosting container apps. - - :param tags: Application-specific metadata in the form of key-value pairs. - :type tags: dict[str, str] - """ - - _attribute_map = { - 'tags': {'key': 'tags', 'type': '{str}'}, - } + self.app_logs_configuration = app_logs_configuration + self.zone_redundant = zone_redundant + self.custom_domain_configuration = custom_domain_configuration + self.event_stream_endpoint = None + self.workload_profiles = workload_profiles + self.keda_configuration = keda_configuration + self.dapr_configuration = dapr_configuration + self.infrastructure_resource_group = infrastructure_resource_group - def __init__(self, **kwargs): - super(ManagedEnvironmentPatch, self).__init__(**kwargs) - self.tags = kwargs.get('tags', None) - -class ManagedEnvironmentsCollection(Model): +class ManagedEnvironmentsCollection(_serialization.Model): """Collection of Environments. - Variables are only populated by the server, and will be ignored when - sending a request. + Variables are only populated by the server, and will be ignored when sending a request. All required parameters must be populated in order to send to Azure. - :param value: Required. Collection of resources. - :type value: list[~commondefinitions.models.ManagedEnvironment] + :ivar value: Collection of resources. Required. + :vartype value: list[~azure.mgmt.appcontainers.models.ManagedEnvironment] :ivar next_link: Link to next page of resources. :vartype next_link: str """ _validation = { - 'value': {'required': True}, - 'next_link': {'readonly': True}, + "value": {"required": True}, + "next_link": {"readonly": True}, } _attribute_map = { - 'value': {'key': 'value', 'type': '[ManagedEnvironment]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, + "value": {"key": "value", "type": "[ManagedEnvironment]"}, + "next_link": {"key": "nextLink", "type": "str"}, } - def __init__(self, **kwargs): - super(ManagedEnvironmentsCollection, self).__init__(**kwargs) - self.value = kwargs.get('value', None) + def __init__(self, *, value: List["_models.ManagedEnvironment"], **kwargs: Any) -> None: + """ + :keyword value: Collection of resources. Required. + :paramtype value: list[~azure.mgmt.appcontainers.models.ManagedEnvironment] + """ + super().__init__(**kwargs) + self.value = value self.next_link = None class ManagedEnvironmentStorage(ProxyResource): """Storage resource for managedEnvironment. - Variables are only populated by the server, and will be ignored when - sending a request. + Variables are only populated by the server, and will be ignored when sending a request. :ivar id: Fully qualified resource ID for the resource. Ex - - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str - :ivar name: The name of the resource + :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. E.g. - "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str - :ivar system_data: Azure Resource Manager metadata containing createdBy - and modifiedBy information. - :vartype system_data: ~commondefinitions.models.SystemData - :param properties: Storage properties - :type properties: - ~commondefinitions.models.ManagedEnvironmentStorageProperties + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.appcontainers.models.SystemData + :ivar properties: Storage properties. + :vartype properties: ~azure.mgmt.appcontainers.models.ManagedEnvironmentStorageProperties """ _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'system_data': {'readonly': True}, + "id": {"readonly": True}, + "name": {"readonly": True}, + "type": {"readonly": True}, + "system_data": {"readonly": True}, } _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'system_data': {'key': 'systemData', 'type': 'SystemData'}, - 'properties': {'key': 'properties', 'type': 'ManagedEnvironmentStorageProperties'}, + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "system_data": {"key": "systemData", "type": "SystemData"}, + "properties": {"key": "properties", "type": "ManagedEnvironmentStorageProperties"}, } - def __init__(self, **kwargs): - super(ManagedEnvironmentStorage, self).__init__(**kwargs) - self.properties = kwargs.get('properties', None) + def __init__( + self, *, properties: Optional["_models.ManagedEnvironmentStorageProperties"] = None, **kwargs: Any + ) -> None: + """ + :keyword properties: Storage properties. + :paramtype properties: ~azure.mgmt.appcontainers.models.ManagedEnvironmentStorageProperties + """ + super().__init__(**kwargs) + self.properties = properties -class ManagedEnvironmentStorageProperties(Model): +class ManagedEnvironmentStorageProperties(_serialization.Model): """Storage properties. - :param azure_file: Azure file properties - :type azure_file: ~commondefinitions.models.AzureFileProperties + :ivar azure_file: Azure file properties. + :vartype azure_file: ~azure.mgmt.appcontainers.models.AzureFileProperties """ _attribute_map = { - 'azure_file': {'key': 'azureFile', 'type': 'AzureFileProperties'}, + "azure_file": {"key": "azureFile", "type": "AzureFileProperties"}, } - def __init__(self, **kwargs): - super(ManagedEnvironmentStorageProperties, self).__init__(**kwargs) - self.azure_file = kwargs.get('azure_file', None) + def __init__(self, *, azure_file: Optional["_models.AzureFileProperties"] = None, **kwargs: Any) -> None: + """ + :keyword azure_file: Azure file properties. + :paramtype azure_file: ~azure.mgmt.appcontainers.models.AzureFileProperties + """ + super().__init__(**kwargs) + self.azure_file = azure_file -class ManagedEnvironmentStoragesCollection(Model): +class ManagedEnvironmentStoragesCollection(_serialization.Model): """Collection of Storage for Environments. All required parameters must be populated in order to send to Azure. - :param value: Required. Collection of storage resources. - :type value: list[~commondefinitions.models.ManagedEnvironmentStorage] + :ivar value: Collection of storage resources. Required. + :vartype value: list[~azure.mgmt.appcontainers.models.ManagedEnvironmentStorage] """ _validation = { - 'value': {'required': True}, + "value": {"required": True}, } _attribute_map = { - 'value': {'key': 'value', 'type': '[ManagedEnvironmentStorage]'}, + "value": {"key": "value", "type": "[ManagedEnvironmentStorage]"}, } - def __init__(self, **kwargs): - super(ManagedEnvironmentStoragesCollection, self).__init__(**kwargs) - self.value = kwargs.get('value', None) + def __init__(self, *, value: List["_models.ManagedEnvironmentStorage"], **kwargs: Any) -> None: + """ + :keyword value: Collection of storage resources. Required. + :paramtype value: list[~azure.mgmt.appcontainers.models.ManagedEnvironmentStorage] + """ + super().__init__(**kwargs) + self.value = value -class ManagedServiceIdentity(Model): +class ManagedServiceIdentity(_serialization.Model): """Managed service identity (system assigned and/or user assigned identities). - Variables are only populated by the server, and will be ignored when - sending a request. + Variables are only populated by the server, and will be ignored when sending a request. All required parameters must be populated in order to send to Azure. - :ivar principal_id: The service principal ID of the system assigned - identity. This property will only be provided for a system assigned - identity. + :ivar principal_id: The service principal ID of the system assigned identity. This property + will only be provided for a system assigned identity. :vartype principal_id: str - :ivar tenant_id: The tenant ID of the system assigned identity. This - property will only be provided for a system assigned identity. + :ivar tenant_id: The tenant ID of the system assigned identity. This property will only be + provided for a system assigned identity. :vartype tenant_id: str - :param type: Required. Possible values include: 'None', 'SystemAssigned', - 'UserAssigned', 'SystemAssigned,UserAssigned' - :type type: str or ~commondefinitions.models.ManagedServiceIdentityType - :param user_assigned_identities: - :type user_assigned_identities: dict[str, - ~commondefinitions.models.UserAssignedIdentity] + :ivar type: Type of managed service identity (where both SystemAssigned and UserAssigned types + are allowed). Required. Known values are: "None", "SystemAssigned", "UserAssigned", and + "SystemAssigned,UserAssigned". + :vartype type: str or ~azure.mgmt.appcontainers.models.ManagedServiceIdentityType + :ivar user_assigned_identities: The set of user assigned identities associated with the + resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: + '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. + The dictionary values can be empty objects ({}) in requests. + :vartype user_assigned_identities: dict[str, + ~azure.mgmt.appcontainers.models.UserAssignedIdentity] """ _validation = { - 'principal_id': {'readonly': True}, - 'tenant_id': {'readonly': True}, - 'type': {'required': True}, + "principal_id": {"readonly": True}, + "tenant_id": {"readonly": True}, + "type": {"required": True}, } _attribute_map = { - 'principal_id': {'key': 'principalId', 'type': 'str'}, - 'tenant_id': {'key': 'tenantId', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'user_assigned_identities': {'key': 'userAssignedIdentities', 'type': '{UserAssignedIdentity}'}, - } - - def __init__(self, **kwargs): - super(ManagedServiceIdentity, self).__init__(**kwargs) + "principal_id": {"key": "principalId", "type": "str"}, + "tenant_id": {"key": "tenantId", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "user_assigned_identities": {"key": "userAssignedIdentities", "type": "{UserAssignedIdentity}"}, + } + + def __init__( + self, + *, + type: Union[str, "_models.ManagedServiceIdentityType"], + user_assigned_identities: Optional[Dict[str, "_models.UserAssignedIdentity"]] = None, + **kwargs: Any + ) -> None: + """ + :keyword type: Type of managed service identity (where both SystemAssigned and UserAssigned + types are allowed). Required. Known values are: "None", "SystemAssigned", "UserAssigned", and + "SystemAssigned,UserAssigned". + :paramtype type: str or ~azure.mgmt.appcontainers.models.ManagedServiceIdentityType + :keyword user_assigned_identities: The set of user assigned identities associated with the + resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: + '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. + The dictionary values can be empty objects ({}) in requests. + :paramtype user_assigned_identities: dict[str, + ~azure.mgmt.appcontainers.models.UserAssignedIdentity] + """ + super().__init__(**kwargs) self.principal_id = None self.tenant_id = None - self.type = kwargs.get('type', None) - self.user_assigned_identities = kwargs.get('user_assigned_identities', None) + self.type = type + self.user_assigned_identities = user_assigned_identities -class OpenIdConnectClientCredential(Model): - """The authentication client credentials of the custom Open ID Connect - provider. +class Nonce(_serialization.Model): + """The configuration settings of the nonce used in the login flow. - :param client_secret_ref_name: The app setting that contains the client - secret for the custom Open ID Connect provider. - :type client_secret_ref_name: str + :ivar validate_nonce: :code:`false` if the nonce should not be validated while + completing the login flow; otherwise, :code:`true`. + :vartype validate_nonce: bool + :ivar nonce_expiration_interval: The time after the request is made when the nonce should + expire. + :vartype nonce_expiration_interval: str """ _attribute_map = { - 'client_secret_ref_name': {'key': 'clientSecretRefName', 'type': 'str'}, - } - - def __init__(self, **kwargs): - super(OpenIdConnectClientCredential, self).__init__(**kwargs) - self.client_secret_ref_name = kwargs.get('client_secret_ref_name', None) - - -class OpenIdConnectConfig(Model): - """The configuration settings of the endpoints used for the custom Open ID - Connect provider. - - :param authorization_endpoint: The endpoint to be used to make an - authorization request. - :type authorization_endpoint: str - :param token_endpoint: The endpoint to be used to request a token. - :type token_endpoint: str - :param issuer: The endpoint that issues the token. - :type issuer: str - :param certification_uri: The endpoint that provides the keys necessary to - validate the token. - :type certification_uri: str - :param well_known_open_id_configuration: The endpoint that contains all - the configuration endpoints for the provider. - :type well_known_open_id_configuration: str + "validate_nonce": {"key": "validateNonce", "type": "bool"}, + "nonce_expiration_interval": {"key": "nonceExpirationInterval", "type": "str"}, + } + + def __init__( + self, *, validate_nonce: Optional[bool] = None, nonce_expiration_interval: Optional[str] = None, **kwargs: Any + ) -> None: + """ + :keyword validate_nonce: :code:`false` if the nonce should not be validated while + completing the login flow; otherwise, :code:`true`. + :paramtype validate_nonce: bool + :keyword nonce_expiration_interval: The time after the request is made when the nonce should + expire. + :paramtype nonce_expiration_interval: str + """ + super().__init__(**kwargs) + self.validate_nonce = validate_nonce + self.nonce_expiration_interval = nonce_expiration_interval + + +class OpenIdConnectClientCredential(_serialization.Model): + """The authentication client credentials of the custom Open ID Connect provider. + + :ivar method: The method that should be used to authenticate the user. Default value is + "ClientSecretPost". + :vartype method: str + :ivar client_secret_setting_name: The app setting that contains the client secret for the + custom Open ID Connect provider. + :vartype client_secret_setting_name: str """ _attribute_map = { - 'authorization_endpoint': {'key': 'authorizationEndpoint', 'type': 'str'}, - 'token_endpoint': {'key': 'tokenEndpoint', 'type': 'str'}, - 'issuer': {'key': 'issuer', 'type': 'str'}, - 'certification_uri': {'key': 'certificationUri', 'type': 'str'}, - 'well_known_open_id_configuration': {'key': 'wellKnownOpenIdConfiguration', 'type': 'str'}, - } - - def __init__(self, **kwargs): - super(OpenIdConnectConfig, self).__init__(**kwargs) - self.authorization_endpoint = kwargs.get('authorization_endpoint', None) - self.token_endpoint = kwargs.get('token_endpoint', None) - self.issuer = kwargs.get('issuer', None) - self.certification_uri = kwargs.get('certification_uri', None) - self.well_known_open_id_configuration = kwargs.get('well_known_open_id_configuration', None) - - -class OpenIdConnectLogin(Model): - """The configuration settings of the login flow of the custom Open ID Connect - provider. + "method": {"key": "method", "type": "str"}, + "client_secret_setting_name": {"key": "clientSecretSettingName", "type": "str"}, + } + + def __init__( + self, + *, + method: Optional[Literal["ClientSecretPost"]] = None, + client_secret_setting_name: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword method: The method that should be used to authenticate the user. Default value is + "ClientSecretPost". + :paramtype method: str + :keyword client_secret_setting_name: The app setting that contains the client secret for the + custom Open ID Connect provider. + :paramtype client_secret_setting_name: str + """ + super().__init__(**kwargs) + self.method = method + self.client_secret_setting_name = client_secret_setting_name + + +class OpenIdConnectConfig(_serialization.Model): + """The configuration settings of the endpoints used for the custom Open ID Connect provider. + + :ivar authorization_endpoint: The endpoint to be used to make an authorization request. + :vartype authorization_endpoint: str + :ivar token_endpoint: The endpoint to be used to request a token. + :vartype token_endpoint: str + :ivar issuer: The endpoint that issues the token. + :vartype issuer: str + :ivar certification_uri: The endpoint that provides the keys necessary to validate the token. + :vartype certification_uri: str + :ivar well_known_open_id_configuration: The endpoint that contains all the configuration + endpoints for the provider. + :vartype well_known_open_id_configuration: str + """ - :param name_claim_type: The name of the claim that contains the users - name. - :type name_claim_type: str - :param scopes: A list of the scopes that should be requested while - authenticating. - :type scopes: list[str] + _attribute_map = { + "authorization_endpoint": {"key": "authorizationEndpoint", "type": "str"}, + "token_endpoint": {"key": "tokenEndpoint", "type": "str"}, + "issuer": {"key": "issuer", "type": "str"}, + "certification_uri": {"key": "certificationUri", "type": "str"}, + "well_known_open_id_configuration": {"key": "wellKnownOpenIdConfiguration", "type": "str"}, + } + + def __init__( + self, + *, + authorization_endpoint: Optional[str] = None, + token_endpoint: Optional[str] = None, + issuer: Optional[str] = None, + certification_uri: Optional[str] = None, + well_known_open_id_configuration: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword authorization_endpoint: The endpoint to be used to make an authorization request. + :paramtype authorization_endpoint: str + :keyword token_endpoint: The endpoint to be used to request a token. + :paramtype token_endpoint: str + :keyword issuer: The endpoint that issues the token. + :paramtype issuer: str + :keyword certification_uri: The endpoint that provides the keys necessary to validate the + token. + :paramtype certification_uri: str + :keyword well_known_open_id_configuration: The endpoint that contains all the configuration + endpoints for the provider. + :paramtype well_known_open_id_configuration: str + """ + super().__init__(**kwargs) + self.authorization_endpoint = authorization_endpoint + self.token_endpoint = token_endpoint + self.issuer = issuer + self.certification_uri = certification_uri + self.well_known_open_id_configuration = well_known_open_id_configuration + + +class OpenIdConnectLogin(_serialization.Model): + """The configuration settings of the login flow of the custom Open ID Connect provider. + + :ivar name_claim_type: The name of the claim that contains the users name. + :vartype name_claim_type: str + :ivar scopes: A list of the scopes that should be requested while authenticating. + :vartype scopes: list[str] """ _attribute_map = { - 'name_claim_type': {'key': 'nameClaimType', 'type': 'str'}, - 'scopes': {'key': 'scopes', 'type': '[str]'}, + "name_claim_type": {"key": "nameClaimType", "type": "str"}, + "scopes": {"key": "scopes", "type": "[str]"}, } - def __init__(self, **kwargs): - super(OpenIdConnectLogin, self).__init__(**kwargs) - self.name_claim_type = kwargs.get('name_claim_type', None) - self.scopes = kwargs.get('scopes', None) + def __init__( + self, *, name_claim_type: Optional[str] = None, scopes: Optional[List[str]] = None, **kwargs: Any + ) -> None: + """ + :keyword name_claim_type: The name of the claim that contains the users name. + :paramtype name_claim_type: str + :keyword scopes: A list of the scopes that should be requested while authenticating. + :paramtype scopes: list[str] + """ + super().__init__(**kwargs) + self.name_claim_type = name_claim_type + self.scopes = scopes -class OpenIdConnectRegistration(Model): - """The configuration settings of the app registration for the custom Open ID - Connect provider. +class OpenIdConnectRegistration(_serialization.Model): + """The configuration settings of the app registration for the custom Open ID Connect provider. - :param client_id: The client id of the custom Open ID Connect provider. - :type client_id: str - :param client_credential: The authentication credentials of the custom - Open ID Connect provider. - :type client_credential: - ~commondefinitions.models.OpenIdConnectClientCredential - :param open_id_connect_configuration: The configuration settings of the - endpoints used for the custom Open ID Connect provider. - :type open_id_connect_configuration: - ~commondefinitions.models.OpenIdConnectConfig + :ivar client_id: The client id of the custom Open ID Connect provider. + :vartype client_id: str + :ivar client_credential: The authentication credentials of the custom Open ID Connect provider. + :vartype client_credential: ~azure.mgmt.appcontainers.models.OpenIdConnectClientCredential + :ivar open_id_connect_configuration: The configuration settings of the endpoints used for the + custom Open ID Connect provider. + :vartype open_id_connect_configuration: ~azure.mgmt.appcontainers.models.OpenIdConnectConfig """ _attribute_map = { - 'client_id': {'key': 'clientId', 'type': 'str'}, - 'client_credential': {'key': 'clientCredential', 'type': 'OpenIdConnectClientCredential'}, - 'open_id_connect_configuration': {'key': 'openIdConnectConfiguration', 'type': 'OpenIdConnectConfig'}, - } - - def __init__(self, **kwargs): - super(OpenIdConnectRegistration, self).__init__(**kwargs) - self.client_id = kwargs.get('client_id', None) - self.client_credential = kwargs.get('client_credential', None) - self.open_id_connect_configuration = kwargs.get('open_id_connect_configuration', None) - - -class OperationDetail(Model): + "client_id": {"key": "clientId", "type": "str"}, + "client_credential": {"key": "clientCredential", "type": "OpenIdConnectClientCredential"}, + "open_id_connect_configuration": {"key": "openIdConnectConfiguration", "type": "OpenIdConnectConfig"}, + } + + def __init__( + self, + *, + client_id: Optional[str] = None, + client_credential: Optional["_models.OpenIdConnectClientCredential"] = None, + open_id_connect_configuration: Optional["_models.OpenIdConnectConfig"] = None, + **kwargs: Any + ) -> None: + """ + :keyword client_id: The client id of the custom Open ID Connect provider. + :paramtype client_id: str + :keyword client_credential: The authentication credentials of the custom Open ID Connect + provider. + :paramtype client_credential: ~azure.mgmt.appcontainers.models.OpenIdConnectClientCredential + :keyword open_id_connect_configuration: The configuration settings of the endpoints used for + the custom Open ID Connect provider. + :paramtype open_id_connect_configuration: ~azure.mgmt.appcontainers.models.OpenIdConnectConfig + """ + super().__init__(**kwargs) + self.client_id = client_id + self.client_credential = client_credential + self.open_id_connect_configuration = open_id_connect_configuration + + +class OperationDetail(_serialization.Model): """Operation detail payload. - :param name: Name of the operation - :type name: str - :param is_data_action: Indicates whether the operation is a data action - :type is_data_action: bool - :param display: Display of the operation - :type display: ~commondefinitions.models.OperationDisplay - :param origin: Origin of the operation - :type origin: str + :ivar name: Name of the operation. + :vartype name: str + :ivar is_data_action: Indicates whether the operation is a data action. + :vartype is_data_action: bool + :ivar display: Display of the operation. + :vartype display: ~azure.mgmt.appcontainers.models.OperationDisplay + :ivar origin: Origin of the operation. + :vartype origin: str """ _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'is_data_action': {'key': 'isDataAction', 'type': 'bool'}, - 'display': {'key': 'display', 'type': 'OperationDisplay'}, - 'origin': {'key': 'origin', 'type': 'str'}, - } - - def __init__(self, **kwargs): - super(OperationDetail, self).__init__(**kwargs) - self.name = kwargs.get('name', None) - self.is_data_action = kwargs.get('is_data_action', None) - self.display = kwargs.get('display', None) - self.origin = kwargs.get('origin', None) - - -class OperationDisplay(Model): + "name": {"key": "name", "type": "str"}, + "is_data_action": {"key": "isDataAction", "type": "bool"}, + "display": {"key": "display", "type": "OperationDisplay"}, + "origin": {"key": "origin", "type": "str"}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + is_data_action: Optional[bool] = None, + display: Optional["_models.OperationDisplay"] = None, + origin: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword name: Name of the operation. + :paramtype name: str + :keyword is_data_action: Indicates whether the operation is a data action. + :paramtype is_data_action: bool + :keyword display: Display of the operation. + :paramtype display: ~azure.mgmt.appcontainers.models.OperationDisplay + :keyword origin: Origin of the operation. + :paramtype origin: str + """ + super().__init__(**kwargs) + self.name = name + self.is_data_action = is_data_action + self.display = display + self.origin = origin + + +class OperationDisplay(_serialization.Model): """Operation display payload. - :param provider: Resource provider of the operation - :type provider: str - :param resource: Resource of the operation - :type resource: str - :param operation: Localized friendly name for the operation - :type operation: str - :param description: Localized friendly description for the operation - :type description: str + :ivar provider: Resource provider of the operation. + :vartype provider: str + :ivar resource: Resource of the operation. + :vartype resource: str + :ivar operation: Localized friendly name for the operation. + :vartype operation: str + :ivar description: Localized friendly description for the operation. + :vartype description: str """ _attribute_map = { - 'provider': {'key': 'provider', 'type': 'str'}, - 'resource': {'key': 'resource', 'type': 'str'}, - 'operation': {'key': 'operation', 'type': 'str'}, - 'description': {'key': 'description', 'type': 'str'}, - } - - def __init__(self, **kwargs): - super(OperationDisplay, self).__init__(**kwargs) - self.provider = kwargs.get('provider', None) - self.resource = kwargs.get('resource', None) - self.operation = kwargs.get('operation', None) - self.description = kwargs.get('description', None) - - -class QueueScaleRule(Model): + "provider": {"key": "provider", "type": "str"}, + "resource": {"key": "resource", "type": "str"}, + "operation": {"key": "operation", "type": "str"}, + "description": {"key": "description", "type": "str"}, + } + + def __init__( + self, + *, + provider: Optional[str] = None, + resource: Optional[str] = None, + operation: Optional[str] = None, + description: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword provider: Resource provider of the operation. + :paramtype provider: str + :keyword resource: Resource of the operation. + :paramtype resource: str + :keyword operation: Localized friendly name for the operation. + :paramtype operation: str + :keyword description: Localized friendly description for the operation. + :paramtype description: str + """ + super().__init__(**kwargs) + self.provider = provider + self.resource = resource + self.operation = operation + self.description = description + + +class QueueScaleRule(_serialization.Model): """Container App container Azure Queue based scaling rule. - :param queue_name: Queue name. - :type queue_name: str - :param queue_length: Queue length. - :type queue_length: int - :param auth: Authentication secrets for the queue scale rule. - :type auth: list[~commondefinitions.models.ScaleRuleAuth] + :ivar queue_name: Queue name. + :vartype queue_name: str + :ivar queue_length: Queue length. + :vartype queue_length: int + :ivar auth: Authentication secrets for the queue scale rule. + :vartype auth: list[~azure.mgmt.appcontainers.models.ScaleRuleAuth] """ _attribute_map = { - 'queue_name': {'key': 'queueName', 'type': 'str'}, - 'queue_length': {'key': 'queueLength', 'type': 'int'}, - 'auth': {'key': 'auth', 'type': '[ScaleRuleAuth]'}, - } - - def __init__(self, **kwargs): - super(QueueScaleRule, self).__init__(**kwargs) - self.queue_name = kwargs.get('queue_name', None) - self.queue_length = kwargs.get('queue_length', None) - self.auth = kwargs.get('auth', None) - - -class RegistryCredentials(Model): + "queue_name": {"key": "queueName", "type": "str"}, + "queue_length": {"key": "queueLength", "type": "int"}, + "auth": {"key": "auth", "type": "[ScaleRuleAuth]"}, + } + + def __init__( + self, + *, + queue_name: Optional[str] = None, + queue_length: Optional[int] = None, + auth: Optional[List["_models.ScaleRuleAuth"]] = None, + **kwargs: Any + ) -> None: + """ + :keyword queue_name: Queue name. + :paramtype queue_name: str + :keyword queue_length: Queue length. + :paramtype queue_length: int + :keyword auth: Authentication secrets for the queue scale rule. + :paramtype auth: list[~azure.mgmt.appcontainers.models.ScaleRuleAuth] + """ + super().__init__(**kwargs) + self.queue_name = queue_name + self.queue_length = queue_length + self.auth = auth + + +class RegistryCredentials(_serialization.Model): """Container App Private Registry. - :param server: Container Registry Server - :type server: str - :param username: Container Registry Username - :type username: str - :param password_secret_ref: The name of the Secret that contains the - registry login password - :type password_secret_ref: str + :ivar server: Container Registry Server. + :vartype server: str + :ivar username: Container Registry Username. + :vartype username: str + :ivar password_secret_ref: The name of the Secret that contains the registry login password. + :vartype password_secret_ref: str + :ivar identity: A Managed Identity to use to authenticate with Azure Container Registry. For + user-assigned identities, use the full user-assigned identity Resource ID. For system-assigned + identities, use 'system'. + :vartype identity: str """ _attribute_map = { - 'server': {'key': 'server', 'type': 'str'}, - 'username': {'key': 'username', 'type': 'str'}, - 'password_secret_ref': {'key': 'passwordSecretRef', 'type': 'str'}, - 'identity': {'key': 'identity', 'type': 'str'}, - } - - def __init__(self, **kwargs): - super(RegistryCredentials, self).__init__(**kwargs) - self.server = kwargs.get('server', None) - self.username = kwargs.get('username', None) - self.password_secret_ref = kwargs.get('password_secret_ref', None) - self.identity = kwargs.get('identity', None) - - -class RegistryInfo(Model): + "server": {"key": "server", "type": "str"}, + "username": {"key": "username", "type": "str"}, + "password_secret_ref": {"key": "passwordSecretRef", "type": "str"}, + "identity": {"key": "identity", "type": "str"}, + } + + def __init__( + self, + *, + server: Optional[str] = None, + username: Optional[str] = None, + password_secret_ref: Optional[str] = None, + identity: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword server: Container Registry Server. + :paramtype server: str + :keyword username: Container Registry Username. + :paramtype username: str + :keyword password_secret_ref: The name of the Secret that contains the registry login password. + :paramtype password_secret_ref: str + :keyword identity: A Managed Identity to use to authenticate with Azure Container Registry. For + user-assigned identities, use the full user-assigned identity Resource ID. For system-assigned + identities, use 'system'. + :paramtype identity: str + """ + super().__init__(**kwargs) + self.server = server + self.username = username + self.password_secret_ref = password_secret_ref + self.identity = identity + + +class RegistryInfo(_serialization.Model): """Container App registry information. - :param registry_url: registry server Url. - :type registry_url: str - :param registry_user_name: registry username. - :type registry_user_name: str - :param registry_password: registry secret. - :type registry_password: str + :ivar registry_url: registry server Url. + :vartype registry_url: str + :ivar registry_user_name: registry username. + :vartype registry_user_name: str + :ivar registry_password: registry secret. + :vartype registry_password: str """ _attribute_map = { - 'registry_url': {'key': 'registryUrl', 'type': 'str'}, - 'registry_user_name': {'key': 'registryUserName', 'type': 'str'}, - 'registry_password': {'key': 'registryPassword', 'type': 'str'}, - } - - def __init__(self, **kwargs): - super(RegistryInfo, self).__init__(**kwargs) - self.registry_url = kwargs.get('registry_url', None) - self.registry_user_name = kwargs.get('registry_user_name', None) - self.registry_password = kwargs.get('registry_password', None) + "registry_url": {"key": "registryUrl", "type": "str"}, + "registry_user_name": {"key": "registryUserName", "type": "str"}, + "registry_password": {"key": "registryPassword", "type": "str"}, + } + + def __init__( + self, + *, + registry_url: Optional[str] = None, + registry_user_name: Optional[str] = None, + registry_password: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword registry_url: registry server Url. + :paramtype registry_url: str + :keyword registry_user_name: registry username. + :paramtype registry_user_name: str + :keyword registry_password: registry secret. + :paramtype registry_password: str + """ + super().__init__(**kwargs) + self.registry_url = registry_url + self.registry_user_name = registry_user_name + self.registry_password = registry_password class Replica(ProxyResource): """Container App Revision Replica. - Variables are only populated by the server, and will be ignored when - sending a request. + Variables are only populated by the server, and will be ignored when sending a request. :ivar id: Fully qualified resource ID for the resource. Ex - - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str - :ivar name: The name of the resource + :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. E.g. - "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str - :ivar system_data: Azure Resource Manager metadata containing createdBy - and modifiedBy information. - :vartype system_data: ~commondefinitions.models.SystemData - :ivar created_time: Timestamp describing when the pod was created by - controller - :vartype created_time: datetime - :param containers: The containers collection under a replica. - :type containers: list[~commondefinitions.models.ReplicaContainer] + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.appcontainers.models.SystemData + :ivar created_time: Timestamp describing when the pod was created by controller. + :vartype created_time: ~datetime.datetime + :ivar containers: The containers collection under a replica. + :vartype containers: list[~azure.mgmt.appcontainers.models.ReplicaContainer] """ _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'system_data': {'readonly': True}, - 'created_time': {'readonly': True}, + "id": {"readonly": True}, + "name": {"readonly": True}, + "type": {"readonly": True}, + "system_data": {"readonly": True}, + "created_time": {"readonly": True}, } _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'system_data': {'key': 'systemData', 'type': 'SystemData'}, - 'created_time': {'key': 'properties.createdTime', 'type': 'iso-8601'}, - 'containers': {'key': 'properties.containers', 'type': '[ReplicaContainer]'}, - } - - def __init__(self, **kwargs): - super(Replica, self).__init__(**kwargs) + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "system_data": {"key": "systemData", "type": "SystemData"}, + "created_time": {"key": "properties.createdTime", "type": "iso-8601"}, + "containers": {"key": "properties.containers", "type": "[ReplicaContainer]"}, + } + + def __init__(self, *, containers: Optional[List["_models.ReplicaContainer"]] = None, **kwargs: Any) -> None: + """ + :keyword containers: The containers collection under a replica. + :paramtype containers: list[~azure.mgmt.appcontainers.models.ReplicaContainer] + """ + super().__init__(**kwargs) self.created_time = None - self.containers = kwargs.get('containers', None) + self.containers = containers -class ReplicaCollection(Model): +class ReplicaCollection(_serialization.Model): """Container App Revision Replicas collection ARM resource. All required parameters must be populated in order to send to Azure. - :param value: Required. Collection of resources. - :type value: list[~commondefinitions.models.Replica] + :ivar value: Collection of resources. Required. + :vartype value: list[~azure.mgmt.appcontainers.models.Replica] """ _validation = { - 'value': {'required': True}, + "value": {"required": True}, } _attribute_map = { - 'value': {'key': 'value', 'type': '[Replica]'}, + "value": {"key": "value", "type": "[Replica]"}, } - def __init__(self, **kwargs): - super(ReplicaCollection, self).__init__(**kwargs) - self.value = kwargs.get('value', None) + def __init__(self, *, value: List["_models.Replica"], **kwargs: Any) -> None: + """ + :keyword value: Collection of resources. Required. + :paramtype value: list[~azure.mgmt.appcontainers.models.Replica] + """ + super().__init__(**kwargs) + self.value = value -class ReplicaContainer(Model): +class ReplicaContainer(_serialization.Model): """Container object under Container App Revision Replica. - :param name: The Name of the Container - :type name: str - :param container_id: The Id of the Container - :type container_id: str - :param ready: The container ready status - :type ready: bool - :param started: The container start status - :type started: bool - :param restart_count: The container restart count - :type restart_count: int + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar name: The Name of the Container. + :vartype name: str + :ivar container_id: The Id of the Container. + :vartype container_id: str + :ivar ready: The container ready status. + :vartype ready: bool + :ivar started: The container start status. + :vartype started: bool + :ivar restart_count: The container restart count. + :vartype restart_count: int + :ivar log_stream_endpoint: Log Stream endpoint. + :vartype log_stream_endpoint: str + :ivar exec_endpoint: Container exec endpoint. + :vartype exec_endpoint: str """ - _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'container_id': {'key': 'containerId', 'type': 'str'}, - 'ready': {'key': 'ready', 'type': 'bool'}, - 'started': {'key': 'started', 'type': 'bool'}, - 'restart_count': {'key': 'restartCount', 'type': 'int'}, + _validation = { + "log_stream_endpoint": {"readonly": True}, + "exec_endpoint": {"readonly": True}, } - def __init__(self, **kwargs): - super(ReplicaContainer, self).__init__(**kwargs) - self.name = kwargs.get('name', None) - self.container_id = kwargs.get('container_id', None) - self.ready = kwargs.get('ready', None) - self.started = kwargs.get('started', None) - self.restart_count = kwargs.get('restart_count', None) - - -class Revision(ProxyResource): + _attribute_map = { + "name": {"key": "name", "type": "str"}, + "container_id": {"key": "containerId", "type": "str"}, + "ready": {"key": "ready", "type": "bool"}, + "started": {"key": "started", "type": "bool"}, + "restart_count": {"key": "restartCount", "type": "int"}, + "log_stream_endpoint": {"key": "logStreamEndpoint", "type": "str"}, + "exec_endpoint": {"key": "execEndpoint", "type": "str"}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + container_id: Optional[str] = None, + ready: Optional[bool] = None, + started: Optional[bool] = None, + restart_count: Optional[int] = None, + **kwargs: Any + ) -> None: + """ + :keyword name: The Name of the Container. + :paramtype name: str + :keyword container_id: The Id of the Container. + :paramtype container_id: str + :keyword ready: The container ready status. + :paramtype ready: bool + :keyword started: The container start status. + :paramtype started: bool + :keyword restart_count: The container restart count. + :paramtype restart_count: int + """ + super().__init__(**kwargs) + self.name = name + self.container_id = container_id + self.ready = ready + self.started = started + self.restart_count = restart_count + self.log_stream_endpoint = None + self.exec_endpoint = None + + +class Revision(ProxyResource): # pylint: disable=too-many-instance-attributes """Container App Revision. - Variables are only populated by the server, and will be ignored when - sending a request. + Variables are only populated by the server, and will be ignored when sending a request. :ivar id: Fully qualified resource ID for the resource. Ex - - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str - :ivar name: The name of the resource + :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. E.g. - "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str - :ivar system_data: Azure Resource Manager metadata containing createdBy - and modifiedBy information. - :vartype system_data: ~commondefinitions.models.SystemData + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.appcontainers.models.SystemData :ivar created_time: Timestamp describing when the revision was created - by controller - :vartype created_time: datetime - :ivar fqdn: Fully qualified domain name of the revision + by controller. + :vartype created_time: ~datetime.datetime + :ivar last_active_time: Timestamp describing when the revision was last active. Only meaningful + when revision is inactive. + :vartype last_active_time: ~datetime.datetime + :ivar fqdn: Fully qualified domain name of the revision. :vartype fqdn: str - :ivar template: Container App Revision Template with all possible settings - and the + :ivar template: Container App Revision Template with all possible settings and the defaults if user did not provide them. The defaults are populated - as they were at the creation time - :vartype template: ~commondefinitions.models.Template - :ivar active: Boolean describing if the Revision is Active + as they were at the creation time. + :vartype template: ~azure.mgmt.appcontainers.models.Template + :ivar active: Boolean describing if the Revision is Active. :vartype active: bool - :ivar replicas: Number of pods currently running for this revision + :ivar replicas: Number of pods currently running for this revision. :vartype replicas: int - :ivar traffic_weight: Traffic weight assigned to this revision + :ivar traffic_weight: Traffic weight assigned to this revision. :vartype traffic_weight: int - :ivar provisioning_error: Optional Field - Platform Error Message + :ivar provisioning_error: Optional Field - Platform Error Message. :vartype provisioning_error: str - :ivar health_state: Current health State of the revision. Possible values - include: 'Healthy', 'Unhealthy', 'None' - :vartype health_state: str or - ~commondefinitions.models.RevisionHealthState - :ivar provisioning_state: Current provisioning State of the revision. - Possible values include: 'Provisioning', 'Provisioned', 'Failed', - 'Deprovisioning', 'Deprovisioned' - :vartype provisioning_state: str or - ~commondefinitions.models.RevisionProvisioningState - """ - - _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'system_data': {'readonly': True}, - 'created_time': {'readonly': True}, - 'fqdn': {'readonly': True}, - 'template': {'readonly': True}, - 'active': {'readonly': True}, - 'replicas': {'readonly': True}, - 'traffic_weight': {'readonly': True}, - 'provisioning_error': {'readonly': True}, - 'health_state': {'readonly': True}, - 'provisioning_state': {'readonly': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'system_data': {'key': 'systemData', 'type': 'SystemData'}, - 'created_time': {'key': 'properties.createdTime', 'type': 'iso-8601'}, - 'fqdn': {'key': 'properties.fqdn', 'type': 'str'}, - 'template': {'key': 'properties.template', 'type': 'Template'}, - 'active': {'key': 'properties.active', 'type': 'bool'}, - 'replicas': {'key': 'properties.replicas', 'type': 'int'}, - 'traffic_weight': {'key': 'properties.trafficWeight', 'type': 'int'}, - 'provisioning_error': {'key': 'properties.provisioningError', 'type': 'str'}, - 'health_state': {'key': 'properties.healthState', 'type': 'str'}, - 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, - } - - def __init__(self, **kwargs): - super(Revision, self).__init__(**kwargs) + :ivar health_state: Current health State of the revision. Known values are: "Healthy", + "Unhealthy", and "None". + :vartype health_state: str or ~azure.mgmt.appcontainers.models.RevisionHealthState + :ivar provisioning_state: Current provisioning State of the revision. Known values are: + "Provisioning", "Provisioned", "Failed", "Deprovisioning", and "Deprovisioned". + :vartype provisioning_state: str or ~azure.mgmt.appcontainers.models.RevisionProvisioningState + """ + + _validation = { + "id": {"readonly": True}, + "name": {"readonly": True}, + "type": {"readonly": True}, + "system_data": {"readonly": True}, + "created_time": {"readonly": True}, + "last_active_time": {"readonly": True}, + "fqdn": {"readonly": True}, + "template": {"readonly": True}, + "active": {"readonly": True}, + "replicas": {"readonly": True}, + "traffic_weight": {"readonly": True}, + "provisioning_error": {"readonly": True}, + "health_state": {"readonly": True}, + "provisioning_state": {"readonly": True}, + } + + _attribute_map = { + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "system_data": {"key": "systemData", "type": "SystemData"}, + "created_time": {"key": "properties.createdTime", "type": "iso-8601"}, + "last_active_time": {"key": "properties.lastActiveTime", "type": "iso-8601"}, + "fqdn": {"key": "properties.fqdn", "type": "str"}, + "template": {"key": "properties.template", "type": "Template"}, + "active": {"key": "properties.active", "type": "bool"}, + "replicas": {"key": "properties.replicas", "type": "int"}, + "traffic_weight": {"key": "properties.trafficWeight", "type": "int"}, + "provisioning_error": {"key": "properties.provisioningError", "type": "str"}, + "health_state": {"key": "properties.healthState", "type": "str"}, + "provisioning_state": {"key": "properties.provisioningState", "type": "str"}, + } + + def __init__(self, **kwargs: Any) -> None: + """ """ + super().__init__(**kwargs) self.created_time = None + self.last_active_time = None self.fqdn = None self.template = None self.active = None @@ -2965,401 +7027,651 @@ def __init__(self, **kwargs): self.provisioning_state = None -class RevisionCollection(Model): +class RevisionCollection(_serialization.Model): """Container App Revisions collection ARM resource. - Variables are only populated by the server, and will be ignored when - sending a request. + Variables are only populated by the server, and will be ignored when sending a request. All required parameters must be populated in order to send to Azure. - :param value: Required. Collection of resources. - :type value: list[~commondefinitions.models.Revision] + :ivar value: Collection of resources. Required. + :vartype value: list[~azure.mgmt.appcontainers.models.Revision] :ivar next_link: Link to next page of resources. :vartype next_link: str """ _validation = { - 'value': {'required': True}, - 'next_link': {'readonly': True}, + "value": {"required": True}, + "next_link": {"readonly": True}, } _attribute_map = { - 'value': {'key': 'value', 'type': '[Revision]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, + "value": {"key": "value", "type": "[Revision]"}, + "next_link": {"key": "nextLink", "type": "str"}, } - def __init__(self, **kwargs): - super(RevisionCollection, self).__init__(**kwargs) - self.value = kwargs.get('value', None) + def __init__(self, *, value: List["_models.Revision"], **kwargs: Any) -> None: + """ + :keyword value: Collection of resources. Required. + :paramtype value: list[~azure.mgmt.appcontainers.models.Revision] + """ + super().__init__(**kwargs) + self.value = value self.next_link = None -class Scale(Model): +class Scale(_serialization.Model): """Container App scaling configurations. - :param min_replicas: Optional. Minimum number of container replicas. - :type min_replicas: int - :param max_replicas: Optional. Maximum number of container replicas. - Defaults to 10 if not set. - :type max_replicas: int - :param rules: Scaling rules. - :type rules: list[~commondefinitions.models.ScaleRule] + :ivar min_replicas: Optional. Minimum number of container replicas. + :vartype min_replicas: int + :ivar max_replicas: Optional. Maximum number of container replicas. Defaults to 10 if not set. + :vartype max_replicas: int + :ivar rules: Scaling rules. + :vartype rules: list[~azure.mgmt.appcontainers.models.ScaleRule] """ _attribute_map = { - 'min_replicas': {'key': 'minReplicas', 'type': 'int'}, - 'max_replicas': {'key': 'maxReplicas', 'type': 'int'}, - 'rules': {'key': 'rules', 'type': '[ScaleRule]'}, - } - - def __init__(self, **kwargs): - super(Scale, self).__init__(**kwargs) - self.min_replicas = kwargs.get('min_replicas', None) - self.max_replicas = kwargs.get('max_replicas', None) - self.rules = kwargs.get('rules', None) - - -class ScaleRule(Model): + "min_replicas": {"key": "minReplicas", "type": "int"}, + "max_replicas": {"key": "maxReplicas", "type": "int"}, + "rules": {"key": "rules", "type": "[ScaleRule]"}, + } + + def __init__( + self, + *, + min_replicas: Optional[int] = None, + max_replicas: int = 10, + rules: Optional[List["_models.ScaleRule"]] = None, + **kwargs: Any + ) -> None: + """ + :keyword min_replicas: Optional. Minimum number of container replicas. + :paramtype min_replicas: int + :keyword max_replicas: Optional. Maximum number of container replicas. Defaults to 10 if not + set. + :paramtype max_replicas: int + :keyword rules: Scaling rules. + :paramtype rules: list[~azure.mgmt.appcontainers.models.ScaleRule] + """ + super().__init__(**kwargs) + self.min_replicas = min_replicas + self.max_replicas = max_replicas + self.rules = rules + + +class ScaleRule(_serialization.Model): """Container App container scaling rule. - :param name: Scale Rule Name - :type name: str - :param azure_queue: Azure Queue based scaling. - :type azure_queue: ~commondefinitions.models.QueueScaleRule - :param custom: Custom scale rule. - :type custom: ~commondefinitions.models.CustomScaleRule - :param http: HTTP requests based scaling. - :type http: ~commondefinitions.models.HttpScaleRule + :ivar name: Scale Rule Name. + :vartype name: str + :ivar azure_queue: Azure Queue based scaling. + :vartype azure_queue: ~azure.mgmt.appcontainers.models.QueueScaleRule + :ivar custom: Custom scale rule. + :vartype custom: ~azure.mgmt.appcontainers.models.CustomScaleRule + :ivar http: HTTP requests based scaling. + :vartype http: ~azure.mgmt.appcontainers.models.HttpScaleRule + :ivar tcp: Tcp requests based scaling. + :vartype tcp: ~azure.mgmt.appcontainers.models.TcpScaleRule """ _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'azure_queue': {'key': 'azureQueue', 'type': 'QueueScaleRule'}, - 'custom': {'key': 'custom', 'type': 'CustomScaleRule'}, - 'http': {'key': 'http', 'type': 'HttpScaleRule'}, - } - - def __init__(self, **kwargs): - super(ScaleRule, self).__init__(**kwargs) - self.name = kwargs.get('name', None) - self.azure_queue = kwargs.get('azure_queue', None) - self.custom = kwargs.get('custom', None) - self.http = kwargs.get('http', None) - - -class ScaleRuleAuth(Model): + "name": {"key": "name", "type": "str"}, + "azure_queue": {"key": "azureQueue", "type": "QueueScaleRule"}, + "custom": {"key": "custom", "type": "CustomScaleRule"}, + "http": {"key": "http", "type": "HttpScaleRule"}, + "tcp": {"key": "tcp", "type": "TcpScaleRule"}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + azure_queue: Optional["_models.QueueScaleRule"] = None, + custom: Optional["_models.CustomScaleRule"] = None, + http: Optional["_models.HttpScaleRule"] = None, + tcp: Optional["_models.TcpScaleRule"] = None, + **kwargs: Any + ) -> None: + """ + :keyword name: Scale Rule Name. + :paramtype name: str + :keyword azure_queue: Azure Queue based scaling. + :paramtype azure_queue: ~azure.mgmt.appcontainers.models.QueueScaleRule + :keyword custom: Custom scale rule. + :paramtype custom: ~azure.mgmt.appcontainers.models.CustomScaleRule + :keyword http: HTTP requests based scaling. + :paramtype http: ~azure.mgmt.appcontainers.models.HttpScaleRule + :keyword tcp: Tcp requests based scaling. + :paramtype tcp: ~azure.mgmt.appcontainers.models.TcpScaleRule + """ + super().__init__(**kwargs) + self.name = name + self.azure_queue = azure_queue + self.custom = custom + self.http = http + self.tcp = tcp + + +class ScaleRuleAuth(_serialization.Model): """Auth Secrets for Container App Scale Rule. - :param secret_ref: Name of the Container App secret from which to pull the - auth params. - :type secret_ref: str - :param trigger_parameter: Trigger Parameter that uses the secret - :type trigger_parameter: str + :ivar secret_ref: Name of the Container App secret from which to pull the auth params. + :vartype secret_ref: str + :ivar trigger_parameter: Trigger Parameter that uses the secret. + :vartype trigger_parameter: str """ _attribute_map = { - 'secret_ref': {'key': 'secretRef', 'type': 'str'}, - 'trigger_parameter': {'key': 'triggerParameter', 'type': 'str'}, + "secret_ref": {"key": "secretRef", "type": "str"}, + "trigger_parameter": {"key": "triggerParameter", "type": "str"}, } - def __init__(self, **kwargs): - super(ScaleRuleAuth, self).__init__(**kwargs) - self.secret_ref = kwargs.get('secret_ref', None) - self.trigger_parameter = kwargs.get('trigger_parameter', None) + def __init__( + self, *, secret_ref: Optional[str] = None, trigger_parameter: Optional[str] = None, **kwargs: Any + ) -> None: + """ + :keyword secret_ref: Name of the Container App secret from which to pull the auth params. + :paramtype secret_ref: str + :keyword trigger_parameter: Trigger Parameter that uses the secret. + :paramtype trigger_parameter: str + """ + super().__init__(**kwargs) + self.secret_ref = secret_ref + self.trigger_parameter = trigger_parameter -class Secret(Model): +class Secret(_serialization.Model): """Secret definition. - :param name: Secret Name. - :type name: str - :param value: Secret Value. - :type value: str - :param keyVaultUrl: Secret KeyVaultUrl. - :type keyVaultUrl: str - :param identity: Identity talking to keyVault. - :type identity: str + :ivar name: Secret Name. + :vartype name: str + :ivar value: Secret Value. + :vartype value: str + :ivar identity: Resource ID of a managed identity to authenticate with Azure Key Vault, or + System to use a system-assigned identity. + :vartype identity: str + :ivar key_vault_url: Azure Key Vault URL pointing to the secret referenced by the container + app. + :vartype key_vault_url: str """ _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'value': {'key': 'value', 'type': 'str'}, - 'keyVaultUrl': {'key': 'keyVaultUrl', 'type': 'str'}, - 'identity': {'key': 'identity', 'type': 'str'}, - } - - def __init__(self, **kwargs): - super(Secret, self).__init__(**kwargs) - self.name = kwargs.get('name', None) - self.value = kwargs.get('value', None) - self.keyVaultUrl = kwargs.get('keyVaultUrl', None) - self.identity = kwargs.get('identity', None) - - -class SecretsCollection(Model): + "name": {"key": "name", "type": "str"}, + "value": {"key": "value", "type": "str"}, + "identity": {"key": "identity", "type": "str"}, + "key_vault_url": {"key": "keyVaultUrl", "type": "str"}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + value: Optional[str] = None, + identity: Optional[str] = None, + key_vault_url: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword name: Secret Name. + :paramtype name: str + :keyword value: Secret Value. + :paramtype value: str + :keyword identity: Resource ID of a managed identity to authenticate with Azure Key Vault, or + System to use a system-assigned identity. + :paramtype identity: str + :keyword key_vault_url: Azure Key Vault URL pointing to the secret referenced by the container + app. + :paramtype key_vault_url: str + """ + super().__init__(**kwargs) + self.name = name + self.value = value + self.identity = identity + self.key_vault_url = key_vault_url + + +class SecretsCollection(_serialization.Model): """Container App Secrets Collection ARM resource. All required parameters must be populated in order to send to Azure. - :param value: Required. Collection of resources. - :type value: list[~commondefinitions.models.ContainerAppSecret] + :ivar value: Collection of resources. Required. + :vartype value: list[~azure.mgmt.appcontainers.models.ContainerAppSecret] """ _validation = { - 'value': {'required': True}, + "value": {"required": True}, + } + + _attribute_map = { + "value": {"key": "value", "type": "[ContainerAppSecret]"}, } + def __init__(self, *, value: List["_models.ContainerAppSecret"], **kwargs: Any) -> None: + """ + :keyword value: Collection of resources. Required. + :paramtype value: list[~azure.mgmt.appcontainers.models.ContainerAppSecret] + """ + super().__init__(**kwargs) + self.value = value + + +class SecretVolumeItem(_serialization.Model): + """Secret to be added to volume. + + :ivar secret_ref: Name of the Container App secret from which to pull the secret value. + :vartype secret_ref: str + :ivar path: Path to project secret to. If no path is provided, path defaults to name of secret + listed in secretRef. + :vartype path: str + """ + _attribute_map = { - 'value': {'key': 'value', 'type': '[ContainerAppSecret]'}, + "secret_ref": {"key": "secretRef", "type": "str"}, + "path": {"key": "path", "type": "str"}, } - def __init__(self, **kwargs): - super(SecretsCollection, self).__init__(**kwargs) - self.value = kwargs.get('value', None) + def __init__(self, *, secret_ref: Optional[str] = None, path: Optional[str] = None, **kwargs: Any) -> None: + """ + :keyword secret_ref: Name of the Container App secret from which to pull the secret value. + :paramtype secret_ref: str + :keyword path: Path to project secret to. If no path is provided, path defaults to name of + secret listed in secretRef. + :paramtype path: str + """ + super().__init__(**kwargs) + self.secret_ref = secret_ref + self.path = path class SourceControl(ProxyResource): """Container App SourceControl. - Variables are only populated by the server, and will be ignored when - sending a request. + Variables are only populated by the server, and will be ignored when sending a request. :ivar id: Fully qualified resource ID for the resource. Ex - - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str - :ivar name: The name of the resource + :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. E.g. - "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str - :ivar system_data: Azure Resource Manager metadata containing createdBy - and modifiedBy information. - :vartype system_data: ~commondefinitions.models.SystemData - :ivar operation_state: Current provisioning State of the operation. - Possible values include: 'InProgress', 'Succeeded', 'Failed', 'Canceled' - :vartype operation_state: str or - ~commondefinitions.models.SourceControlOperationState - :param repo_url: The repo url which will be integrated to ContainerApp. - :type repo_url: str - :param branch: The branch which will trigger the auto deployment - :type branch: str - :param github_action_configuration: Container App Revision Template with - all possible settings and the + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.appcontainers.models.SystemData + :ivar operation_state: Current provisioning State of the operation. Known values are: + "InProgress", "Succeeded", "Failed", and "Canceled". + :vartype operation_state: str or ~azure.mgmt.appcontainers.models.SourceControlOperationState + :ivar repo_url: The repo url which will be integrated to ContainerApp. + :vartype repo_url: str + :ivar branch: The branch which will trigger the auto deployment. + :vartype branch: str + :ivar github_action_configuration: Container App Revision Template with all possible settings + and the defaults if user did not provide them. The defaults are populated - as they were at the creation time - :type github_action_configuration: - ~commondefinitions.models.GithubActionConfiguration + as they were at the creation time. + :vartype github_action_configuration: + ~azure.mgmt.appcontainers.models.GithubActionConfiguration """ _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'system_data': {'readonly': True}, - 'operation_state': {'readonly': True}, + "id": {"readonly": True}, + "name": {"readonly": True}, + "type": {"readonly": True}, + "system_data": {"readonly": True}, + "operation_state": {"readonly": True}, } _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'system_data': {'key': 'systemData', 'type': 'SystemData'}, - 'operation_state': {'key': 'properties.operationState', 'type': 'str'}, - 'repo_url': {'key': 'properties.repoUrl', 'type': 'str'}, - 'branch': {'key': 'properties.branch', 'type': 'str'}, - 'github_action_configuration': {'key': 'properties.githubActionConfiguration', 'type': 'GithubActionConfiguration'}, - } - - def __init__(self, **kwargs): - super(SourceControl, self).__init__(**kwargs) + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "system_data": {"key": "systemData", "type": "SystemData"}, + "operation_state": {"key": "properties.operationState", "type": "str"}, + "repo_url": {"key": "properties.repoUrl", "type": "str"}, + "branch": {"key": "properties.branch", "type": "str"}, + "github_action_configuration": { + "key": "properties.githubActionConfiguration", + "type": "GithubActionConfiguration", + }, + } + + def __init__( + self, + *, + repo_url: Optional[str] = None, + branch: Optional[str] = None, + github_action_configuration: Optional["_models.GithubActionConfiguration"] = None, + **kwargs: Any + ) -> None: + """ + :keyword repo_url: The repo url which will be integrated to ContainerApp. + :paramtype repo_url: str + :keyword branch: The branch which will trigger the auto deployment. + :paramtype branch: str + :keyword github_action_configuration: Container App Revision Template with all possible + settings and the + defaults if user did not provide them. The defaults are populated + as they were at the creation time. + :paramtype github_action_configuration: + ~azure.mgmt.appcontainers.models.GithubActionConfiguration + """ + super().__init__(**kwargs) self.operation_state = None - self.repo_url = kwargs.get('repo_url', None) - self.branch = kwargs.get('branch', None) - self.github_action_configuration = kwargs.get('github_action_configuration', None) + self.repo_url = repo_url + self.branch = branch + self.github_action_configuration = github_action_configuration -class SourceControlCollection(Model): +class SourceControlCollection(_serialization.Model): """SourceControl collection ARM resource. - Variables are only populated by the server, and will be ignored when - sending a request. + Variables are only populated by the server, and will be ignored when sending a request. All required parameters must be populated in order to send to Azure. - :param value: Required. Collection of resources. - :type value: list[~commondefinitions.models.SourceControl] + :ivar value: Collection of resources. Required. + :vartype value: list[~azure.mgmt.appcontainers.models.SourceControl] :ivar next_link: Link to next page of resources. :vartype next_link: str """ _validation = { - 'value': {'required': True}, - 'next_link': {'readonly': True}, + "value": {"required": True}, + "next_link": {"readonly": True}, } _attribute_map = { - 'value': {'key': 'value', 'type': '[SourceControl]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, + "value": {"key": "value", "type": "[SourceControl]"}, + "next_link": {"key": "nextLink", "type": "str"}, } - def __init__(self, **kwargs): - super(SourceControlCollection, self).__init__(**kwargs) - self.value = kwargs.get('value', None) + def __init__(self, *, value: List["_models.SourceControl"], **kwargs: Any) -> None: + """ + :keyword value: Collection of resources. Required. + :paramtype value: list[~azure.mgmt.appcontainers.models.SourceControl] + """ + super().__init__(**kwargs) + self.value = value self.next_link = None -class SystemData(Model): +class SystemData(_serialization.Model): """Metadata pertaining to creation and last modification of the resource. - :param created_by: The identity that created the resource. - :type created_by: str - :param created_by_type: The type of identity that created the resource. - Possible values include: 'User', 'Application', 'ManagedIdentity', 'Key' - :type created_by_type: str or ~commondefinitions.models.CreatedByType - :param created_at: The timestamp of resource creation (UTC). - :type created_at: datetime - :param last_modified_by: The identity that last modified the resource. - :type last_modified_by: str - :param last_modified_by_type: The type of identity that last modified the - resource. Possible values include: 'User', 'Application', - 'ManagedIdentity', 'Key' - :type last_modified_by_type: str or - ~commondefinitions.models.CreatedByType - :param last_modified_at: The timestamp of resource last modification (UTC) - :type last_modified_at: datetime - """ - - _attribute_map = { - 'created_by': {'key': 'createdBy', 'type': 'str'}, - 'created_by_type': {'key': 'createdByType', 'type': 'str'}, - 'created_at': {'key': 'createdAt', 'type': 'iso-8601'}, - 'last_modified_by': {'key': 'lastModifiedBy', 'type': 'str'}, - 'last_modified_by_type': {'key': 'lastModifiedByType', 'type': 'str'}, - 'last_modified_at': {'key': 'lastModifiedAt', 'type': 'iso-8601'}, - } - - def __init__(self, **kwargs): - super(SystemData, self).__init__(**kwargs) - self.created_by = kwargs.get('created_by', None) - self.created_by_type = kwargs.get('created_by_type', None) - self.created_at = kwargs.get('created_at', None) - self.last_modified_by = kwargs.get('last_modified_by', None) - self.last_modified_by_type = kwargs.get('last_modified_by_type', None) - self.last_modified_at = kwargs.get('last_modified_at', None) - - -class Template(Model): + :ivar created_by: The identity that created the resource. + :vartype created_by: str + :ivar created_by_type: The type of identity that created the resource. Known values are: + "User", "Application", "ManagedIdentity", and "Key". + :vartype created_by_type: str or ~azure.mgmt.appcontainers.models.CreatedByType + :ivar created_at: The timestamp of resource creation (UTC). + :vartype created_at: ~datetime.datetime + :ivar last_modified_by: The identity that last modified the resource. + :vartype last_modified_by: str + :ivar last_modified_by_type: The type of identity that last modified the resource. Known values + are: "User", "Application", "ManagedIdentity", and "Key". + :vartype last_modified_by_type: str or ~azure.mgmt.appcontainers.models.CreatedByType + :ivar last_modified_at: The timestamp of resource last modification (UTC). + :vartype last_modified_at: ~datetime.datetime + """ + + _attribute_map = { + "created_by": {"key": "createdBy", "type": "str"}, + "created_by_type": {"key": "createdByType", "type": "str"}, + "created_at": {"key": "createdAt", "type": "iso-8601"}, + "last_modified_by": {"key": "lastModifiedBy", "type": "str"}, + "last_modified_by_type": {"key": "lastModifiedByType", "type": "str"}, + "last_modified_at": {"key": "lastModifiedAt", "type": "iso-8601"}, + } + + def __init__( + self, + *, + created_by: Optional[str] = None, + created_by_type: Optional[Union[str, "_models.CreatedByType"]] = None, + created_at: Optional[datetime.datetime] = None, + last_modified_by: Optional[str] = None, + last_modified_by_type: Optional[Union[str, "_models.CreatedByType"]] = None, + last_modified_at: Optional[datetime.datetime] = None, + **kwargs: Any + ) -> None: + """ + :keyword created_by: The identity that created the resource. + :paramtype created_by: str + :keyword created_by_type: The type of identity that created the resource. Known values are: + "User", "Application", "ManagedIdentity", and "Key". + :paramtype created_by_type: str or ~azure.mgmt.appcontainers.models.CreatedByType + :keyword created_at: The timestamp of resource creation (UTC). + :paramtype created_at: ~datetime.datetime + :keyword last_modified_by: The identity that last modified the resource. + :paramtype last_modified_by: str + :keyword last_modified_by_type: The type of identity that last modified the resource. Known + values are: "User", "Application", "ManagedIdentity", and "Key". + :paramtype last_modified_by_type: str or ~azure.mgmt.appcontainers.models.CreatedByType + :keyword last_modified_at: The timestamp of resource last modification (UTC). + :paramtype last_modified_at: ~datetime.datetime + """ + super().__init__(**kwargs) + self.created_by = created_by + self.created_by_type = created_by_type + self.created_at = created_at + self.last_modified_by = last_modified_by + self.last_modified_by_type = last_modified_by_type + self.last_modified_at = last_modified_at + + +class TcpScaleRule(_serialization.Model): + """Container App container Tcp scaling rule. + + :ivar metadata: Metadata properties to describe tcp scale rule. + :vartype metadata: dict[str, str] + :ivar auth: Authentication secrets for the tcp scale rule. + :vartype auth: list[~azure.mgmt.appcontainers.models.ScaleRuleAuth] + """ + + _attribute_map = { + "metadata": {"key": "metadata", "type": "{str}"}, + "auth": {"key": "auth", "type": "[ScaleRuleAuth]"}, + } + + def __init__( + self, + *, + metadata: Optional[Dict[str, str]] = None, + auth: Optional[List["_models.ScaleRuleAuth"]] = None, + **kwargs: Any + ) -> None: + """ + :keyword metadata: Metadata properties to describe tcp scale rule. + :paramtype metadata: dict[str, str] + :keyword auth: Authentication secrets for the tcp scale rule. + :paramtype auth: list[~azure.mgmt.appcontainers.models.ScaleRuleAuth] + """ + super().__init__(**kwargs) + self.metadata = metadata + self.auth = auth + + +class Template(_serialization.Model): """Container App versioned application definition. Defines the desired state of an immutable revision. Any changes to this section Will result in a new revision being created. - :param revision_suffix: User friendly suffix that is appended to the - revision name - :type revision_suffix: str - :param containers: List of container definitions for the Container App. - :type containers: list[~commondefinitions.models.Container] - :param scale: Scaling properties for the Container App. - :type scale: ~commondefinitions.models.Scale - :param volumes: List of volume definitions for the Container App. - :type volumes: list[~commondefinitions.models.Volume] + :ivar revision_suffix: User friendly suffix that is appended to the revision name. + :vartype revision_suffix: str + :ivar init_containers: List of specialized containers that run before app containers. + :vartype init_containers: list[~azure.mgmt.appcontainers.models.InitContainer] + :ivar containers: List of container definitions for the Container App. + :vartype containers: list[~azure.mgmt.appcontainers.models.Container] + :ivar scale: Scaling properties for the Container App. + :vartype scale: ~azure.mgmt.appcontainers.models.Scale + :ivar volumes: List of volume definitions for the Container App. + :vartype volumes: list[~azure.mgmt.appcontainers.models.Volume] """ _attribute_map = { - 'revision_suffix': {'key': 'revisionSuffix', 'type': 'str'}, - 'containers': {'key': 'containers', 'type': '[Container]'}, - 'initContainers': {'key': 'initContainers', 'type': '[Container]'}, - 'scale': {'key': 'scale', 'type': 'Scale'}, - 'volumes': {'key': 'volumes', 'type': '[Volume]'}, - } - - def __init__(self, **kwargs): - super(Template, self).__init__(**kwargs) - self.revision_suffix = kwargs.get('revision_suffix', None) - self.containers = kwargs.get('containers', None) - self.scale = kwargs.get('scale', None) - self.volumes = kwargs.get('volumes', None) - - -class TrafficWeight(Model): + "revision_suffix": {"key": "revisionSuffix", "type": "str"}, + "init_containers": {"key": "initContainers", "type": "[InitContainer]"}, + "containers": {"key": "containers", "type": "[Container]"}, + "scale": {"key": "scale", "type": "Scale"}, + "volumes": {"key": "volumes", "type": "[Volume]"}, + } + + def __init__( + self, + *, + revision_suffix: Optional[str] = None, + init_containers: Optional[List["_models.InitContainer"]] = None, + containers: Optional[List["_models.Container"]] = None, + scale: Optional["_models.Scale"] = None, + volumes: Optional[List["_models.Volume"]] = None, + **kwargs: Any + ) -> None: + """ + :keyword revision_suffix: User friendly suffix that is appended to the revision name. + :paramtype revision_suffix: str + :keyword init_containers: List of specialized containers that run before app containers. + :paramtype init_containers: list[~azure.mgmt.appcontainers.models.InitContainer] + :keyword containers: List of container definitions for the Container App. + :paramtype containers: list[~azure.mgmt.appcontainers.models.Container] + :keyword scale: Scaling properties for the Container App. + :paramtype scale: ~azure.mgmt.appcontainers.models.Scale + :keyword volumes: List of volume definitions for the Container App. + :paramtype volumes: list[~azure.mgmt.appcontainers.models.Volume] + """ + super().__init__(**kwargs) + self.revision_suffix = revision_suffix + self.init_containers = init_containers + self.containers = containers + self.scale = scale + self.volumes = volumes + + +class TrafficWeight(_serialization.Model): """Traffic weight assigned to a revision. - :param revision_name: Name of a revision - :type revision_name: str - :param weight: Traffic weight assigned to a revision - :type weight: int - :param latest_revision: Indicates that the traffic weight belongs to a - latest stable revision. Default value: False . - :type latest_revision: bool + :ivar revision_name: Name of a revision. + :vartype revision_name: str + :ivar weight: Traffic weight assigned to a revision. + :vartype weight: int + :ivar latest_revision: Indicates that the traffic weight belongs to a latest stable revision. + :vartype latest_revision: bool + :ivar label: Associates a traffic label with a revision. + :vartype label: str """ _attribute_map = { - 'revision_name': {'key': 'revisionName', 'type': 'str'}, - 'weight': {'key': 'weight', 'type': 'int'}, - 'latest_revision': {'key': 'latestRevision', 'type': 'bool'}, - } - - def __init__(self, **kwargs): - super(TrafficWeight, self).__init__(**kwargs) - self.revision_name = kwargs.get('revision_name', None) - self.weight = kwargs.get('weight', None) - self.latest_revision = kwargs.get('latest_revision', False) - - -class Twitter(Model): + "revision_name": {"key": "revisionName", "type": "str"}, + "weight": {"key": "weight", "type": "int"}, + "latest_revision": {"key": "latestRevision", "type": "bool"}, + "label": {"key": "label", "type": "str"}, + } + + def __init__( + self, + *, + revision_name: Optional[str] = None, + weight: Optional[int] = None, + latest_revision: bool = False, + label: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword revision_name: Name of a revision. + :paramtype revision_name: str + :keyword weight: Traffic weight assigned to a revision. + :paramtype weight: int + :keyword latest_revision: Indicates that the traffic weight belongs to a latest stable + revision. + :paramtype latest_revision: bool + :keyword label: Associates a traffic label with a revision. + :paramtype label: str + """ + super().__init__(**kwargs) + self.revision_name = revision_name + self.weight = weight + self.latest_revision = latest_revision + self.label = label + + +class Twitter(_serialization.Model): """The configuration settings of the Twitter provider. - :param state: Disabled if the Twitter provider should not be - enabled despite the set registration; otherwise, Enabled. - Possible values include: 'Enabled', 'Disabled' - :type state: str or ~commondefinitions.models.IdentityProviderState - :param registration: The configuration settings of the app registration - for the Twitter provider. - :type registration: ~commondefinitions.models.TwitterRegistration + :ivar enabled: :code:`false` if the Twitter provider should not be enabled despite + the set registration; otherwise, :code:`true`. + :vartype enabled: bool + :ivar registration: The configuration settings of the app registration for the Twitter + provider. + :vartype registration: ~azure.mgmt.appcontainers.models.TwitterRegistration """ _attribute_map = { - 'state': {'key': 'state', 'type': 'str'}, - 'registration': {'key': 'registration', 'type': 'TwitterRegistration'}, - } - - def __init__(self, **kwargs): - super(Twitter, self).__init__(**kwargs) - self.state = kwargs.get('state', None) - self.registration = kwargs.get('registration', None) - - -class TwitterRegistration(Model): - """The configuration settings of the app registration for the Twitter - provider. - - :param consumer_key: The OAuth 1.0a consumer key of the Twitter - application used for sign-in. + "enabled": {"key": "enabled", "type": "bool"}, + "registration": {"key": "registration", "type": "TwitterRegistration"}, + } + + def __init__( + self, + *, + enabled: Optional[bool] = None, + registration: Optional["_models.TwitterRegistration"] = None, + **kwargs: Any + ) -> None: + """ + :keyword enabled: :code:`false` if the Twitter provider should not be enabled + despite the set registration; otherwise, :code:`true`. + :paramtype enabled: bool + :keyword registration: The configuration settings of the app registration for the Twitter + provider. + :paramtype registration: ~azure.mgmt.appcontainers.models.TwitterRegistration + """ + super().__init__(**kwargs) + self.enabled = enabled + self.registration = registration + + +class TwitterRegistration(_serialization.Model): + """The configuration settings of the app registration for the Twitter provider. + + :ivar consumer_key: The OAuth 1.0a consumer key of the Twitter application used for sign-in. This setting is required for enabling Twitter Sign-In. - Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in - :type consumer_key: str - :param consumer_secret_ref_name: The app secret ref name that contains the - OAuth 1.0a consumer secret of the Twitter + Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in. + :vartype consumer_key: str + :ivar consumer_secret_setting_name: The app setting name that contains the OAuth 1.0a consumer + secret of the Twitter application used for sign-in. - :type consumer_secret_ref_name: str + :vartype consumer_secret_setting_name: str """ _attribute_map = { - 'consumer_key': {'key': 'consumerKey', 'type': 'str'}, - 'consumer_secret_ref_name': {'key': 'consumerSecretRefName', 'type': 'str'}, - } - - def __init__(self, **kwargs): - super(TwitterRegistration, self).__init__(**kwargs) - self.consumer_key = kwargs.get('consumer_key', None) - self.consumer_secret_ref_name = kwargs.get('consumer_secret_ref_name', None) - - -class UserAssignedIdentity(Model): + "consumer_key": {"key": "consumerKey", "type": "str"}, + "consumer_secret_setting_name": {"key": "consumerSecretSettingName", "type": "str"}, + } + + def __init__( + self, *, consumer_key: Optional[str] = None, consumer_secret_setting_name: Optional[str] = None, **kwargs: Any + ) -> None: + """ + :keyword consumer_key: The OAuth 1.0a consumer key of the Twitter application used for sign-in. + This setting is required for enabling Twitter Sign-In. + Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in. + :paramtype consumer_key: str + :keyword consumer_secret_setting_name: The app setting name that contains the OAuth 1.0a + consumer secret of the Twitter + application used for sign-in. + :paramtype consumer_secret_setting_name: str + """ + super().__init__(**kwargs) + self.consumer_key = consumer_key + self.consumer_secret_setting_name = consumer_secret_setting_name + + +class UserAssignedIdentity(_serialization.Model): """User assigned identity properties. - Variables are only populated by the server, and will be ignored when - sending a request. + Variables are only populated by the server, and will be ignored when sending a request. :ivar principal_id: The principal ID of the assigned identity. :vartype principal_id: str @@ -3368,154 +7680,331 @@ class UserAssignedIdentity(Model): """ _validation = { - 'principal_id': {'readonly': True}, - 'client_id': {'readonly': True}, + "principal_id": {"readonly": True}, + "client_id": {"readonly": True}, } _attribute_map = { - 'principal_id': {'key': 'principalId', 'type': 'str'}, - 'client_id': {'key': 'clientId', 'type': 'str'}, + "principal_id": {"key": "principalId", "type": "str"}, + "client_id": {"key": "clientId", "type": "str"}, } - def __init__(self, **kwargs): - super(UserAssignedIdentity, self).__init__(**kwargs) + def __init__(self, **kwargs: Any) -> None: + """ """ + super().__init__(**kwargs) self.principal_id = None self.client_id = None -class VnetConfiguration(Model): +class VnetConfiguration(_serialization.Model): """Configuration properties for apps environment to join a Virtual Network. - :param internal: Boolean indicating the environment only has an internal - load balancer. These environments do not have a public static IP resource, - must provide ControlPlaneSubnetResourceId and AppSubnetResourceId if - enabling this property - :type internal: bool - :param infrastructure_subnet_id: Resource ID of a subnet for - infrastructure components. This subnet must be in the same VNET as the - subnet defined in runtimeSubnetId. Must not overlap with any other - provided IP ranges. - :type infrastructure_subnet_id: str - :param runtime_subnet_id: Resource ID of a subnet that Container App - containers are injected into. This subnet must be in the same VNET as the - subnet defined in infrastructureSubnetId. Must not overlap with any other - provided IP ranges. - :type runtime_subnet_id: str - :param docker_bridge_cidr: CIDR notation IP range assigned to the Docker - bridge, network. Must not overlap with any other provided IP ranges. - :type docker_bridge_cidr: str - :param platform_reserved_cidr: IP range in CIDR notation that can be - reserved for environment infrastructure IP addresses. Must not overlap - with any other provided IP ranges. - :type platform_reserved_cidr: str - :param platform_reserved_dns_ip: An IP address from the IP range defined - by platformReservedCidr that will be reserved for the internal DNS server. - :type platform_reserved_dns_ip: str - """ - - _attribute_map = { - 'internal': {'key': 'internal', 'type': 'bool'}, - 'infrastructure_subnet_id': {'key': 'infrastructureSubnetId', 'type': 'str'}, - 'runtime_subnet_id': {'key': 'runtimeSubnetId', 'type': 'str'}, - 'docker_bridge_cidr': {'key': 'dockerBridgeCidr', 'type': 'str'}, - 'platform_reserved_cidr': {'key': 'platformReservedCidr', 'type': 'str'}, - 'platform_reserved_dns_ip': {'key': 'platformReservedDnsIP', 'type': 'str'}, - } - - def __init__(self, **kwargs): - super(VnetConfiguration, self).__init__(**kwargs) - self.internal = kwargs.get('internal', None) - self.infrastructure_subnet_id = kwargs.get('infrastructure_subnet_id', None) - self.runtime_subnet_id = kwargs.get('runtime_subnet_id', None) - self.docker_bridge_cidr = kwargs.get('docker_bridge_cidr', None) - self.platform_reserved_cidr = kwargs.get('platform_reserved_cidr', None) - self.platform_reserved_dns_ip = kwargs.get('platform_reserved_dns_ip', None) - - -class Volume(Model): + :ivar internal: Boolean indicating the environment only has an internal load balancer. These + environments do not have a public static IP resource. They must provide infrastructureSubnetId + if enabling this property. + :vartype internal: bool + :ivar infrastructure_subnet_id: Resource ID of a subnet for infrastructure components. Must not + overlap with any other provided IP ranges. + :vartype infrastructure_subnet_id: str + :ivar docker_bridge_cidr: CIDR notation IP range assigned to the Docker bridge, network. Must + not overlap with any other provided IP ranges. + :vartype docker_bridge_cidr: str + :ivar platform_reserved_cidr: IP range in CIDR notation that can be reserved for environment + infrastructure IP addresses. Must not overlap with any other provided IP ranges. + :vartype platform_reserved_cidr: str + :ivar platform_reserved_dns_ip: An IP address from the IP range defined by platformReservedCidr + that will be reserved for the internal DNS server. + :vartype platform_reserved_dns_ip: str + """ + + _attribute_map = { + "internal": {"key": "internal", "type": "bool"}, + "infrastructure_subnet_id": {"key": "infrastructureSubnetId", "type": "str"}, + "docker_bridge_cidr": {"key": "dockerBridgeCidr", "type": "str"}, + "platform_reserved_cidr": {"key": "platformReservedCidr", "type": "str"}, + "platform_reserved_dns_ip": {"key": "platformReservedDnsIP", "type": "str"}, + } + + def __init__( + self, + *, + internal: Optional[bool] = None, + infrastructure_subnet_id: Optional[str] = None, + docker_bridge_cidr: Optional[str] = None, + platform_reserved_cidr: Optional[str] = None, + platform_reserved_dns_ip: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword internal: Boolean indicating the environment only has an internal load balancer. These + environments do not have a public static IP resource. They must provide infrastructureSubnetId + if enabling this property. + :paramtype internal: bool + :keyword infrastructure_subnet_id: Resource ID of a subnet for infrastructure components. Must + not overlap with any other provided IP ranges. + :paramtype infrastructure_subnet_id: str + :keyword docker_bridge_cidr: CIDR notation IP range assigned to the Docker bridge, network. + Must not overlap with any other provided IP ranges. + :paramtype docker_bridge_cidr: str + :keyword platform_reserved_cidr: IP range in CIDR notation that can be reserved for environment + infrastructure IP addresses. Must not overlap with any other provided IP ranges. + :paramtype platform_reserved_cidr: str + :keyword platform_reserved_dns_ip: An IP address from the IP range defined by + platformReservedCidr that will be reserved for the internal DNS server. + :paramtype platform_reserved_dns_ip: str + """ + super().__init__(**kwargs) + self.internal = internal + self.infrastructure_subnet_id = infrastructure_subnet_id + self.docker_bridge_cidr = docker_bridge_cidr + self.platform_reserved_cidr = platform_reserved_cidr + self.platform_reserved_dns_ip = platform_reserved_dns_ip + + +class Volume(_serialization.Model): """Volume definitions for the Container App. - :param name: Volume name. - :type name: str - :param storage_type: Storage type for the volume. If not provided, use - EmptyDir. Possible values include: 'AzureFile', 'EmptyDir' - :type storage_type: str or ~commondefinitions.models.StorageType - :param storage_name: Name of storage resource. No need to provide for - EmptyDir. - :type storage_name: str + :ivar name: Volume name. + :vartype name: str + :ivar storage_type: Storage type for the volume. If not provided, use EmptyDir. Known values + are: "AzureFile", "EmptyDir", and "Secret". + :vartype storage_type: str or ~azure.mgmt.appcontainers.models.StorageType + :ivar storage_name: Name of storage resource. No need to provide for EmptyDir and Secret. + :vartype storage_name: str + :ivar secrets: List of secrets to be added in volume. If no secrets are provided, all secrets + in collection will be added to volume. + :vartype secrets: list[~azure.mgmt.appcontainers.models.SecretVolumeItem] + """ + + _attribute_map = { + "name": {"key": "name", "type": "str"}, + "storage_type": {"key": "storageType", "type": "str"}, + "storage_name": {"key": "storageName", "type": "str"}, + "secrets": {"key": "secrets", "type": "[SecretVolumeItem]"}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + storage_type: Optional[Union[str, "_models.StorageType"]] = None, + storage_name: Optional[str] = None, + secrets: Optional[List["_models.SecretVolumeItem"]] = None, + **kwargs: Any + ) -> None: + """ + :keyword name: Volume name. + :paramtype name: str + :keyword storage_type: Storage type for the volume. If not provided, use EmptyDir. Known values + are: "AzureFile", "EmptyDir", and "Secret". + :paramtype storage_type: str or ~azure.mgmt.appcontainers.models.StorageType + :keyword storage_name: Name of storage resource. No need to provide for EmptyDir and Secret. + :paramtype storage_name: str + :keyword secrets: List of secrets to be added in volume. If no secrets are provided, all + secrets in collection will be added to volume. + :paramtype secrets: list[~azure.mgmt.appcontainers.models.SecretVolumeItem] + """ + super().__init__(**kwargs) + self.name = name + self.storage_type = storage_type + self.storage_name = storage_name + self.secrets = secrets + + +class VolumeMount(_serialization.Model): + """Volume mount for the Container App. + + :ivar volume_name: This must match the Name of a Volume. + :vartype volume_name: str + :ivar mount_path: Path within the container at which the volume should be mounted.Must not + contain ':'. + :vartype mount_path: str """ _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'storage_type': {'key': 'storageType', 'type': 'str'}, - 'storage_name': {'key': 'storageName', 'type': 'str'}, + "volume_name": {"key": "volumeName", "type": "str"}, + "mount_path": {"key": "mountPath", "type": "str"}, } - def __init__(self, **kwargs): - super(Volume, self).__init__(**kwargs) - self.name = kwargs.get('name', None) - self.storage_type = kwargs.get('storage_type', None) - self.storage_name = kwargs.get('storage_name', None) + def __init__(self, *, volume_name: Optional[str] = None, mount_path: Optional[str] = None, **kwargs: Any) -> None: + """ + :keyword volume_name: This must match the Name of a Volume. + :paramtype volume_name: str + :keyword mount_path: Path within the container at which the volume should be mounted.Must not + contain ':'. + :paramtype mount_path: str + """ + super().__init__(**kwargs) + self.volume_name = volume_name + self.mount_path = mount_path -class VolumeMount(Model): - """Volume mount for the Container App. +class WorkloadProfile(_serialization.Model): + """Workload profile to scope container app execution. + + All required parameters must be populated in order to send to Azure. + + :ivar name: Workload profile type for the workloads to run on. Required. + :vartype name: str + :ivar workload_profile_type: Workload profile type for the workloads to run on. Required. + :vartype workload_profile_type: str + :ivar minimum_count: The minimum capacity. + :vartype minimum_count: int + :ivar maximum_count: The maximum capacity. + :vartype maximum_count: int + """ + + _validation = { + "name": {"required": True}, + "workload_profile_type": {"required": True}, + } - :param volume_name: This must match the Name of a Volume. - :type volume_name: str - :param mount_path: Path within the container at which the volume should be - mounted.Must not contain ':'. - :type mount_path: str + _attribute_map = { + "name": {"key": "name", "type": "str"}, + "workload_profile_type": {"key": "workloadProfileType", "type": "str"}, + "minimum_count": {"key": "minimumCount", "type": "int"}, + "maximum_count": {"key": "maximumCount", "type": "int"}, + } + + def __init__( + self, + *, + name: str, + workload_profile_type: str, + minimum_count: Optional[int] = None, + maximum_count: Optional[int] = None, + **kwargs: Any + ) -> None: + """ + :keyword name: Workload profile type for the workloads to run on. Required. + :paramtype name: str + :keyword workload_profile_type: Workload profile type for the workloads to run on. Required. + :paramtype workload_profile_type: str + :keyword minimum_count: The minimum capacity. + :paramtype minimum_count: int + :keyword maximum_count: The maximum capacity. + :paramtype maximum_count: int + """ + super().__init__(**kwargs) + self.name = name + self.workload_profile_type = workload_profile_type + self.minimum_count = minimum_count + self.maximum_count = maximum_count + + +class WorkloadProfileStates(ProxyResource): + """Collection of all the workload Profile States for a Managed Environment.. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Fully qualified resource ID for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". + :vartype type: str + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.appcontainers.models.SystemData + :ivar properties: Workload Profile resource specific properties. + :vartype properties: ~azure.mgmt.appcontainers.models.WorkloadProfileStatesProperties """ + _validation = { + "id": {"readonly": True}, + "name": {"readonly": True}, + "type": {"readonly": True}, + "system_data": {"readonly": True}, + } + _attribute_map = { - 'volume_name': {'key': 'volumeName', 'type': 'str'}, - 'mount_path': {'key': 'mountPath', 'type': 'str'}, + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "system_data": {"key": "systemData", "type": "SystemData"}, + "properties": {"key": "properties", "type": "WorkloadProfileStatesProperties"}, } - def __init__(self, **kwargs): - super(VolumeMount, self).__init__(**kwargs) - self.volume_name = kwargs.get('volume_name', None) - self.mount_path = kwargs.get('mount_path', None) + def __init__( + self, *, properties: Optional["_models.WorkloadProfileStatesProperties"] = None, **kwargs: Any + ) -> None: + """ + :keyword properties: Workload Profile resource specific properties. + :paramtype properties: ~azure.mgmt.appcontainers.models.WorkloadProfileStatesProperties + """ + super().__init__(**kwargs) + self.properties = properties -class CorsPolicy(Model): - """Cross-Origin-Resource-Sharing policy. +class WorkloadProfileStatesCollection(_serialization.Model): + """Collection of workloadProfileStates. + + Variables are only populated by the server, and will be ignored when sending a request. All required parameters must be populated in order to send to Azure. - :param allowed_origins: allowed origins. Required. - :type allowed_origins: list[str] - :param allowed_methods: allowed HTTP methods. - :type allowed_methods: list[str] - :param allowed_headers: allowed HTTP headers. - :type allowed_headers: list[str] - :param expose_headers: expose HTTP headers. - :type expose_headers: list[str] - :param max_age: max time client can cache the result. - :type max_age: int - :param allow_credentials: allow credential or not. - :type allow_credentials: bool + :ivar value: Collection of resources. Required. + :vartype value: list[~azure.mgmt.appcontainers.models.WorkloadProfileStates] + :ivar next_link: Link to next page of resources. + :vartype next_link: str """ _validation = { - 'allowed_origins': {'required': True}, + "value": {"required": True}, + "next_link": {"readonly": True}, } _attribute_map = { - 'allowed_origins': {'key': 'allowedOrigins', 'type': '[str]'}, - 'allowed_methods': {'key': 'allowedMethods', 'type': '[str]'}, - 'allowed_headers': {'key': 'allowedHeaders', 'type': '[str]'}, - 'expose_headers': {'key': 'exposeHeaders', 'type': '[str]'}, - 'max_age': {'key': 'maxAge', 'type': 'int'}, - 'allow_credentials': {'key': 'allowCredentials', 'type': 'bool'}, + "value": {"key": "value", "type": "[WorkloadProfileStates]"}, + "next_link": {"key": "nextLink", "type": "str"}, } - def __init__(self, **kwargs): - super(CorsPolicy, self).__init__(**kwargs) - self.allowed_origins = kwargs.get('allowed_origins', None) - self.allowed_methods = kwargs.get('allowed_methods', None) - self.allowed_headers = kwargs.get('allowed_headers', None) - self.expose_headers = kwargs.get('expose_headers', None) - self.max_age = kwargs.get('max_age', None) - self.allow_credentials = kwargs.get('allow_credentials', None) + def __init__(self, *, value: List["_models.WorkloadProfileStates"], **kwargs: Any) -> None: + """ + :keyword value: Collection of resources. Required. + :paramtype value: list[~azure.mgmt.appcontainers.models.WorkloadProfileStates] + """ + super().__init__(**kwargs) + self.value = value + self.next_link = None + + +class WorkloadProfileStatesProperties(_serialization.Model): + """Workload Profile resource specific properties. + + :ivar minimum_count: Minimum count of instances. + :vartype minimum_count: int + :ivar maximum_count: Maximum count of nodes. + :vartype maximum_count: int + :ivar current_count: Current count of nodes. + :vartype current_count: int + """ + + _attribute_map = { + "minimum_count": {"key": "minimumCount", "type": "int"}, + "maximum_count": {"key": "maximumCount", "type": "int"}, + "current_count": {"key": "currentCount", "type": "int"}, + } + + def __init__( + self, + *, + minimum_count: Optional[int] = None, + maximum_count: Optional[int] = None, + current_count: Optional[int] = None, + **kwargs: Any + ) -> None: + """ + :keyword minimum_count: Minimum count of instances. + :paramtype minimum_count: int + :keyword maximum_count: Maximum count of nodes. + :paramtype maximum_count: int + :keyword current_count: Current count of nodes. + :paramtype current_count: int + """ + super().__init__(**kwargs) + self.minimum_count = minimum_count + self.maximum_count = maximum_count + self.current_count = current_count From cdf097494a29f9c1e84455a6f38927c29053df3d Mon Sep 17 00:00:00 2001 From: xinyu pang <1042945277@qq.com> Date: Wed, 19 Apr 2023 13:21:46 +0800 Subject: [PATCH 2/5] fix process_loaded_yaml --- src/containerapp/azext_containerapp/custom.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/containerapp/azext_containerapp/custom.py b/src/containerapp/azext_containerapp/custom.py index 1c4a78e3f39..5525bb769ea 100644 --- a/src/containerapp/azext_containerapp/custom.py +++ b/src/containerapp/azext_containerapp/custom.py @@ -95,12 +95,13 @@ def process_loaded_yaml(yaml_containerapp): yaml_containerapp['identity']['userAssignedIdentities'][identity] = {} nested_properties = ["provisioningState", "managedEnvironmentId", "environmentId", "latestRevisionName", "latestRevisionFqdn", - "customDomainVerificationId", "configuration", "template", "outboundIPAddresses", "workloadProfileName"] + "customDomainVerificationId", "configuration", "template", "outboundIPAddresses", "workloadProfileName", "latestReadyRevisionName", "eventStreamEndpoint"] for nested_property in nested_properties: tmp = yaml_containerapp.get(nested_property) + if nested_property in yaml_containerapp: + del yaml_containerapp[nested_property] if tmp: yaml_containerapp['properties'][nested_property] = tmp - del yaml_containerapp[nested_property] if "managedEnvironmentId" in yaml_containerapp['properties']: yaml_containerapp['properties']["environmentId"] = yaml_containerapp['properties']['managedEnvironmentId'] From d495e3aa900de932ce48d2f0077793a0353ba0fc Mon Sep 17 00:00:00 2001 From: xinyu pang <1042945277@qq.com> Date: Thu, 20 Apr 2023 11:36:17 +0800 Subject: [PATCH 3/5] fix and format process_loaded_yaml --- src/containerapp/azext_containerapp/custom.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/containerapp/azext_containerapp/custom.py b/src/containerapp/azext_containerapp/custom.py index 5525bb769ea..56044bddda0 100644 --- a/src/containerapp/azext_containerapp/custom.py +++ b/src/containerapp/azext_containerapp/custom.py @@ -94,14 +94,23 @@ def process_loaded_yaml(yaml_containerapp): # Update (PATCH) ignores them so it's okay to remove them as well yaml_containerapp['identity']['userAssignedIdentities'][identity] = {} - nested_properties = ["provisioningState", "managedEnvironmentId", "environmentId", "latestRevisionName", "latestRevisionFqdn", - "customDomainVerificationId", "configuration", "template", "outboundIPAddresses", "workloadProfileName", "latestReadyRevisionName", "eventStreamEndpoint"] + nested_properties = ["provisioningState", + "managedEnvironmentId", + "environmentId", + "latestRevisionName", + "latestRevisionFqdn", + "customDomainVerificationId", + "configuration", + "template", + "outboundIPAddresses", + "workloadProfileName", + "latestReadyRevisionName", + "eventStreamEndpoint"] for nested_property in nested_properties: tmp = yaml_containerapp.get(nested_property) if nested_property in yaml_containerapp: - del yaml_containerapp[nested_property] - if tmp: yaml_containerapp['properties'][nested_property] = tmp + del yaml_containerapp[nested_property] if "managedEnvironmentId" in yaml_containerapp['properties']: yaml_containerapp['properties']["environmentId"] = yaml_containerapp['properties']['managedEnvironmentId'] From 0ccbdbff5d85c80f3e84773c494616a9ef3d6f0b Mon Sep 17 00:00:00 2001 From: xinyu pang <1042945277@qq.com> Date: Thu, 20 Apr 2023 15:28:19 +0800 Subject: [PATCH 4/5] rename --- .../{_container_apps_api_client_enums.py => _sdk_enums.py} | 0 src/containerapp/azext_containerapp/_sdk_models.py | 4 +++- 2 files changed, 3 insertions(+), 1 deletion(-) rename src/containerapp/azext_containerapp/{_container_apps_api_client_enums.py => _sdk_enums.py} (100%) diff --git a/src/containerapp/azext_containerapp/_container_apps_api_client_enums.py b/src/containerapp/azext_containerapp/_sdk_enums.py similarity index 100% rename from src/containerapp/azext_containerapp/_container_apps_api_client_enums.py rename to src/containerapp/azext_containerapp/_sdk_enums.py diff --git a/src/containerapp/azext_containerapp/_sdk_models.py b/src/containerapp/azext_containerapp/_sdk_models.py index f5ed7067aed..974995776f0 100644 --- a/src/containerapp/azext_containerapp/_sdk_models.py +++ b/src/containerapp/azext_containerapp/_sdk_models.py @@ -12,7 +12,9 @@ from typing import Any, Dict, List, Optional, Union import msrest.serialization as _serialization -import azext_containerapp as _models +# import azext_containerapp as _models + +from . import _sdk_models, _sdk_enums as _models if sys.version_info >= (3, 9): from collections.abc import MutableMapping From 8feaf6f4d93facaa8e937783ffb514544665a40f Mon Sep 17 00:00:00 2001 From: xinyu pang <1042945277@qq.com> Date: Thu, 20 Apr 2023 16:52:52 +0800 Subject: [PATCH 5/5] fix process yaml --- src/containerapp/azext_containerapp/_sdk_models.py | 1 - src/containerapp/azext_containerapp/custom.py | 4 +++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/containerapp/azext_containerapp/_sdk_models.py b/src/containerapp/azext_containerapp/_sdk_models.py index 974995776f0..11c431048ed 100644 --- a/src/containerapp/azext_containerapp/_sdk_models.py +++ b/src/containerapp/azext_containerapp/_sdk_models.py @@ -12,7 +12,6 @@ from typing import Any, Dict, List, Optional, Union import msrest.serialization as _serialization -# import azext_containerapp as _models from . import _sdk_models, _sdk_enums as _models diff --git a/src/containerapp/azext_containerapp/custom.py b/src/containerapp/azext_containerapp/custom.py index 56044bddda0..06318a5abc9 100644 --- a/src/containerapp/azext_containerapp/custom.py +++ b/src/containerapp/azext_containerapp/custom.py @@ -113,7 +113,9 @@ def process_loaded_yaml(yaml_containerapp): del yaml_containerapp[nested_property] if "managedEnvironmentId" in yaml_containerapp['properties']: - yaml_containerapp['properties']["environmentId"] = yaml_containerapp['properties']['managedEnvironmentId'] + tmp = yaml_containerapp['properties']['managedEnvironmentId'] + if tmp: + yaml_containerapp['properties']["environmentId"] = tmp del yaml_containerapp['properties']['managedEnvironmentId'] return yaml_containerapp