text: # 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 msrest.serialization import Model
  from msrest.exceptions import HttpOperationError
  
  
  class CloudError(Model):
      """CloudError.
      """
  
      _attribute_map = {
      }
  
  
  class ComplianceStatus(Model):
      """Compliance Status details.
  
      Variables are only populated by the server, and will be ignored when
      sending a request.
  
      :ivar compliance_state: The compliance state of the configuration.
       Possible values include: 'Pending', 'Compliant', 'Noncompliant',
       'Installed', 'Failed'
      :vartype compliance_state: str or
       ~azure.mgmt.kubernetesconfiguration.models.ComplianceStateType
      :param last_config_applied: Datetime the configuration was last applied.
      :type last_config_applied: datetime
      :param message: Message from when the configuration was applied.
      :type message: str
      :param message_level: Level of the message. Possible values include:
       'Error', 'Warning', 'Information'
      :type message_level: str or
       ~azure.mgmt.kubernetesconfiguration.models.MessageLevelType
      """
  
      _validation = {
          'compliance_state': {'readonly': True},
      }
  
      _attribute_map = {
          'compliance_state': {'key': 'complianceState', 'type': 'str'},
          'last_config_applied': {'key': 'lastConfigApplied', 'type': 'iso-8601'},
          'message': {'key': 'message', 'type': 'str'},
          'message_level': {'key': 'messageLevel', 'type': 'str'},
      }
  
      def __init__(self, *, last_config_applied=None, message: str=None, message_level=None, **kwargs) -> None:
          super(ComplianceStatus, self).__init__(**kwargs)
          self.compliance_state = None
          self.last_config_applied = last_config_applied
          self.message = message
          self.message_level = message_level
  
  
  class ConfigurationIdentity(Model):
      """Identity for the managed cluster.
  
      Variables are only populated by the server, and will be ignored when
      sending a request.
  
      :ivar principal_id: The principal id of the system assigned identity which
       is used by the configuration.
      :vartype principal_id: str
      :ivar tenant_id: The tenant id of the system assigned identity which is
       used by the configuration.
      :vartype tenant_id: str
      :param type: The type of identity used for the configuration. Type
       'SystemAssigned' will use an implicitly created identity. Type 'None' will
       not use Managed Identity for the configuration. Possible values include:
       'SystemAssigned', 'None'
      :type type: str or
       ~azure.mgmt.kubernetesconfiguration.models.ResourceIdentityType
      """
  
      _validation = {
          'principal_id': {'readonly': True},
          'tenant_id': {'readonly': True},
      }
  
      _attribute_map = {
          'principal_id': {'key': 'principalId', 'type': 'str'},
          'tenant_id': {'key': 'tenantId', 'type': 'str'},
          'type': {'key': 'type', 'type': 'ResourceIdentityType'},
      }
  
      def __init__(self, *, type=None, **kwargs) -> None:
          super(ConfigurationIdentity, self).__init__(**kwargs)
          self.principal_id = None
          self.tenant_id = None
          self.type = type
  
  
  class ErrorDefinition(Model):
      """Error definition.
  
      All required parameters must be populated in order to send to Azure.
  
      :param code: Required. Service specific error code which serves as the
       substatus for the HTTP error code.
      :type code: str
      :param message: Required. Description of the error.
      :type message: str
      """
  
      _validation = {
          'code': {'required': True},
          'message': {'required': True},
      }
  
      _attribute_map = {
          'code': {'key': 'code', 'type': 'str'},
          'message': {'key': 'message', 'type': 'str'},
      }
  
      def __init__(self, *, code: str, message: str, **kwargs) -> None:
          super(ErrorDefinition, self).__init__(**kwargs)
          self.code = code
          self.message = message
  
  
  class ErrorResponse(Model):
      """Error response.
  
      :param error: Error definition.
      :type error: ~azure.mgmt.kubernetesconfiguration.models.ErrorDefinition
      """
  
      _attribute_map = {
          'error': {'key': 'error', 'type': 'ErrorDefinition'},
      }
  
      def __init__(self, *, error=None, **kwargs) -> None:
          super(ErrorResponse, self).__init__(**kwargs)
          self.error = error
  
  
  class ErrorResponseException(HttpOperationError):
      """Server responsed with exception of type: 'ErrorResponse'.
  
      :param deserialize: A deserializer
      :param response: Server response to be deserialized.
      """
  
      def __init__(self, deserialize, response, *args):
  
          super(ErrorResponseException, self).__init__(deserialize, response, 'ErrorResponse', *args)
  
  
  class Resource(Model):
      """The Resource model definition.
  
      Variables are only populated by the server, and will be ignored when
      sending a request.
  
      :ivar id: Resource Id
      :vartype id: str
      :ivar name: Resource name
      :vartype name: str
      :ivar type: Resource type
      :vartype type: str
      :param system_data: Top level metadata
       https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/common-api-contracts.md#system-metadata-for-all-azure-resources
      :type system_data: ~azure.mgmt.kubernetesconfiguration.models.SystemData
      """
  
      _validation = {
          'id': {'readonly': True},
          'name': {'readonly': True},
          'type': {'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'},
      }
  
      def __init__(self, *, system_data=None, **kwargs) -> None:
          super(Resource, self).__init__(**kwargs)
          self.id = None
          self.name = None
          self.type = None
          self.system_data = system_data
  
  
  class ProxyResource(Resource):
      """ARM proxy resource.
  
      Variables are only populated by the server, and will be ignored when
      sending a request.
  
      :ivar id: Resource Id
      :vartype id: str
      :ivar name: Resource name
      :vartype name: str
      :ivar type: Resource type
      :vartype type: str
      :param system_data: Top level metadata
       https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/common-api-contracts.md#system-metadata-for-all-azure-resources
      :type system_data: ~azure.mgmt.kubernetesconfiguration.models.SystemData
      """
  
      _validation = {
          'id': {'readonly': True},
          'name': {'readonly': True},
          'type': {'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'},
      }
  
      def __init__(self, *, system_data=None, **kwargs) -> None:
          super(ProxyResource, self).__init__(system_data=system_data, **kwargs)
  
  
  class ExtensionInstance(ProxyResource):
      """The Extension Instance object.
  
      Variables are only populated by the server, and will be ignored when
      sending a request.
  
      :ivar id: Resource Id
      :vartype id: str
      :ivar name: Resource name
      :vartype name: str
      :ivar type: Resource type
      :vartype type: str
      :param location: Location of resource type
      :type location: str
      :param system_data: Top level metadata
       https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/common-api-contracts.md#system-metadata-for-all-azure-resources
      :type system_data: ~azure.mgmt.kubernetesconfiguration.models.SystemData
      :param extension_type: Type of the Extension, of which this resource is an
       instance of.  It must be one of the Extension Types registered with
       Microsoft.KubernetesConfiguration by the Extension publisher.
      :type extension_type: str
      :param auto_upgrade_minor_version: Flag to note if this instance
       participates in auto upgrade of minor version, or not.
      :type auto_upgrade_minor_version: bool
      :param release_train: ReleaseTrain this extension instance participates in
       for auto-upgrade (e.g. Stable, Preview, etc.) - only if
       autoUpgradeMinorVersion is 'true'.
      :type release_train: str
      :param version: Version of the extension for this extension instance, if
       it is 'pinned' to a specific version. autoUpgradeMinorVersion must be
       'false'.
      :type version: str
      :param scope: Scope at which the extension instance is installed.
      :type scope: ~azure.mgmt.kubernetesconfiguration.models.Scope
      :param configuration_settings: Configuration settings, as name-value pairs
       for configuring this instance of the extension.
      :type configuration_settings: dict[str, str]
      :param configuration_protected_settings: Configuration settings that are
       sensitive, as name-value pairs for configuring this instance of the
       extension.
      :type configuration_protected_settings: dict[str, str]
      :param install_state: Status of installation of this instance of the
       extension. Possible values include: 'Pending', 'Installed', 'Failed'
      :type install_state: str or
       ~azure.mgmt.kubernetesconfiguration.models.InstallStateType
      :param statuses: Status from this instance of the extension.
      :type statuses:
       list[~azure.mgmt.kubernetesconfiguration.models.ExtensionStatus]
      :ivar creation_time: DateLiteral (per ISO8601) noting the time the
       resource was created by the client (user).
      :vartype creation_time: str
      :ivar last_modified_time: DateLiteral (per ISO8601) noting the time the
       resource was modified by the client (user).
      :vartype last_modified_time: str
      :ivar last_status_time: DateLiteral (per ISO8601) noting the time of last
       status from the agent.
      :vartype last_status_time: str
      :ivar error_info: Error information from the Agent - e.g. errors during
       installation.
      :vartype error_info:
       ~azure.mgmt.kubernetesconfiguration.models.ErrorDefinition
      :param identity: The identity of the configuration.
      :type identity:
       ~azure.mgmt.kubernetesconfiguration.models.ConfigurationIdentity
      """
  
      _validation = {
          'id': {'readonly': True},
          'name': {'readonly': True},
          'type': {'readonly': True},
          'creation_time': {'readonly': True},
          'last_modified_time': {'readonly': True},
          'last_status_time': {'readonly': True},
          'error_info': {'readonly': True},
      }
  
      _attribute_map = {
          'id': {'key': 'id', 'type': 'str'},
          'name': {'key': 'name', 'type': 'str'},
          'type': {'key': 'type', 'type': 'str'},
          'location': {'key': 'location', 'type': 'str'},
          'system_data': {'key': 'systemData', 'type': 'SystemData'},
          'identity': {'key': 'identity', 'type': 'ConfigurationIdentity'},
          'extension_type': {'key': 'properties.extensionType', 'type': 'str'},
          'auto_upgrade_minor_version': {'key': 'properties.autoUpgradeMinorVersion', 'type': 'bool'},
          'release_train': {'key': 'properties.releaseTrain', 'type': 'str'},
          'version': {'key': 'properties.version', 'type': 'str'},
          'scope': {'key': 'properties.scope', 'type': 'Scope'},
          'configuration_settings': {'key': 'properties.configurationSettings', 'type': '{str}'},
          'configuration_protected_settings': {'key': 'properties.configurationProtectedSettings', 'type': '{str}'},
          'install_state': {'key': 'properties.installState', 'type': 'str'},
          'statuses': {'key': 'properties.statuses', 'type': '[ExtensionStatus]'},
          'creation_time': {'key': 'properties.creationTime', 'type': 'str'},
          'last_modified_time': {'key': 'properties.lastModifiedTime', 'type': 'str'},
          'last_status_time': {'key': 'properties.lastStatusTime', 'type': 'str'},
          'error_info': {'key': 'properties.errorInfo', 'type': 'ErrorDefinition'}
      }
  
      def __init__(self, *, system_data=None, location: str=None, extension_type: str=None, auto_upgrade_minor_version: bool=None, release_train: str=None, version: str=None, scope=None, configuration_settings=None, configuration_protected_settings=None, install_state=None, statuses=None, identity=None, **kwargs) -> None:
          super(ExtensionInstance, self).__init__(system_data=system_data, **kwargs)
          self.location = location
          self.extension_type = extension_type
          self.auto_upgrade_minor_version = auto_upgrade_minor_version
          self.release_train = release_train
          self.version = version
          self.scope = scope
          self.configuration_settings = configuration_settings
          self.configuration_protected_settings = configuration_protected_settings
          self.install_state = install_state
          self.statuses = statuses
          self.creation_time = None
          self.last_modified_time = None
          self.last_status_time = None
          self.error_info = None
          self.identity = identity
  
  
  class ExtensionInstanceUpdate(Model):
      """Update Extension Instance request object.
  
      :param auto_upgrade_minor_version: Flag to note if this instance
       participates in Extension Lifecycle Management or not.
      :type auto_upgrade_minor_version: bool
      :param release_train: ReleaseTrain this extension instance participates in
       for auto-upgrade (e.g. Stable, Preview, etc.) - only if
       autoUpgradeMinorVersion is 'true'.
      :type release_train: str
      :param version: Version number of extension, to 'pin' to a specific
       version.  autoUpgradeMinorVersion must be 'false'.
      :type version: str
      """
  
      _attribute_map = {
          'auto_upgrade_minor_version': {'key': 'properties.autoUpgradeMinorVersion', 'type': 'bool'},
          'release_train': {'key': 'properties.releaseTrain', 'type': 'str'},
          'version': {'key': 'properties.version', 'type': 'str'},
      }
  
      def __init__(self, *, auto_upgrade_minor_version: bool=None, release_train: str=None, version: str=None, **kwargs) -> None:
          super(ExtensionInstanceUpdate, self).__init__(**kwargs)
          self.auto_upgrade_minor_version = auto_upgrade_minor_version
          self.release_train = release_train
          self.version = version
  
  
  class ExtensionStatus(Model):
      """Status from this instance of the extension.
  
      :param code: Status code provided by the Extension
      :type code: str
      :param display_status: Short description of status of this instance of the
       extension.
      :type display_status: str
      :param level: Level of the status. Possible values include: 'Error',
       'Warning', 'Information'. Default value: "Information" .
      :type level: str or ~azure.mgmt.kubernetesconfiguration.models.LevelType
      :param message: Detailed message of the status from the Extension
       instance.
      :type message: str
      :param time: DateLiteral (per ISO8601) noting the time of installation
       status.
      :type time: str
      """
  
      _attribute_map = {
          'code': {'key': 'code', 'type': 'str'},
          'display_status': {'key': 'displayStatus', 'type': 'str'},
          'level': {'key': 'level', 'type': 'str'},
          'message': {'key': 'message', 'type': 'str'},
          'time': {'key': 'time', 'type': 'str'},
      }
  
      def __init__(self, *, code: str=None, display_status: str=None, level="Information", message: str=None, time: str=None, **kwargs) -> None:
          super(ExtensionStatus, self).__init__(**kwargs)
          self.code = code
          self.display_status = display_status
          self.level = level
          self.message = message
          self.time = time
  
  
  class HelmOperatorProperties(Model):
      """Properties for Helm operator.
  
      :param chart_version: Version of the operator Helm chart.
      :type chart_version: str
      :param chart_values: Values override for the operator Helm chart.
      :type chart_values: str
      """
  
      _attribute_map = {
          'chart_version': {'key': 'chartVersion', 'type': 'str'},
          'chart_values': {'key': 'chartValues', 'type': 'str'},
      }
  
      def __init__(self, *, chart_version: str=None, chart_values: str=None, **kwargs) -> None:
          super(HelmOperatorProperties, self).__init__(**kwargs)
          self.chart_version = chart_version
          self.chart_values = chart_values
  
  
  class ResourceProviderOperation(Model):
      """Supported operation of this resource provider.
  
      Variables are only populated by the server, and will be ignored when
      sending a request.
  
      :param name: Operation name, in format of
       {provider}/{resource}/{operation}
      :type name: str
      :param display: Display metadata associated with the operation.
      :type display:
       ~azure.mgmt.kubernetesconfiguration.models.ResourceProviderOperationDisplay
      :ivar is_data_action: The flag that indicates whether the operation
       applies to data plane.
      :vartype is_data_action: bool
      """
  
      _validation = {
          'is_data_action': {'readonly': True},
      }
  
      _attribute_map = {
          'name': {'key': 'name', 'type': 'str'},
          'display': {'key': 'display', 'type': 'ResourceProviderOperationDisplay'},
          'is_data_action': {'key': 'isDataAction', 'type': 'bool'},
      }
  
      def __init__(self, *, name: str=None, display=None, **kwargs) -> None:
          super(ResourceProviderOperation, self).__init__(**kwargs)
          self.name = name
          self.display = display
          self.is_data_action = None
  
  
  class ResourceProviderOperationDisplay(Model):
      """Display metadata associated with the operation.
  
      :param provider: Resource provider: Microsoft KubernetesConfiguration.
      :type provider: str
      :param resource: Resource on which the operation is performed.
      :type resource: str
      :param operation: Type of operation: get, read, delete, etc.
      :type operation: str
      :param description: Description of this operation.
      :type 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, *, provider: str=None, resource: str=None, operation: str=None, description: str=None, **kwargs) -> None:
          super(ResourceProviderOperationDisplay, self).__init__(**kwargs)
          self.provider = provider
          self.resource = resource
          self.operation = operation
          self.description = description
  
  
  class Result(Model):
      """Sample result definition.
  
      :param sample_property: Sample property of type string
      :type sample_property: str
      """
  
      _attribute_map = {
          'sample_property': {'key': 'sampleProperty', 'type': 'str'},
      }
  
      def __init__(self, *, sample_property: str=None, **kwargs) -> None:
          super(Result, self).__init__(**kwargs)
          self.sample_property = sample_property
  
  
  class Scope(Model):
      """Scope of the extensionInstance. It can be either Cluster or Namespace; but
      not both.
  
      :param cluster: Specifies that the scope of the extensionInstance is
       Cluster
      :type cluster: ~azure.mgmt.kubernetesconfiguration.models.ScopeCluster
      :param namespace: Specifies that the scope of the extensionInstance is
       Namespace
      :type namespace: ~azure.mgmt.kubernetesconfiguration.models.ScopeNamespace
      """
  
      _attribute_map = {
          'cluster': {'key': 'cluster', 'type': 'ScopeCluster'},
          'namespace': {'key': 'namespace', 'type': 'ScopeNamespace'},
      }
  
      def __init__(self, *, cluster=None, namespace=None, **kwargs) -> None:
          super(Scope, self).__init__(**kwargs)
          self.cluster = cluster
          self.namespace = namespace
  
  
  class ScopeCluster(Model):
      """Specifies that the scope of the extensionInstance is Cluster.
  
      :param release_namespace: Namespace where the extension Release must be
       placed, for a Cluster scoped extensionInstance.  If this namespace does
       not exist, it will be created
      :type release_namespace: str
      """
  
      _attribute_map = {
          'release_namespace': {'key': 'releaseNamespace', 'type': 'str'},
      }
  
      def __init__(self, *, release_namespace: str=None, **kwargs) -> None:
          super(ScopeCluster, self).__init__(**kwargs)
          self.release_namespace = release_namespace
  
  
  class ScopeNamespace(Model):
      """Specifies that the scope of the extensionInstance is Namespace.
  
      :param target_namespace: Namespace where the extensionInstance will be
       created for an Namespace scoped extensionInstance.  If this namespace does
       not exist, it will be created
      :type target_namespace: str
      """
  
      _attribute_map = {
          'target_namespace': {'key': 'targetNamespace', 'type': 'str'},
      }
  
      def __init__(self, *, target_namespace: str=None, **kwargs) -> None:
          super(ScopeNamespace, self).__init__(**kwargs)
          self.target_namespace = target_namespace
  
  
  class SourceControlConfiguration(ProxyResource):
      """The SourceControl Configuration object returned in Get & Put response.
  
      Variables are only populated by the server, and will be ignored when
      sending a request.
  
      :ivar id: Resource Id
      :vartype id: str
      :ivar name: Resource name
      :vartype name: str
      :ivar type: Resource type
      :vartype type: str
      :param system_data: Top level metadata
       https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/common-api-contracts.md#system-metadata-for-all-azure-resources
      :type system_data: ~azure.mgmt.kubernetesconfiguration.models.SystemData
      :param repository_url: Url of the SourceControl Repository.
      :type repository_url: str
      :param operator_namespace: The namespace to which this operator is
       installed to. Maximum of 253 lower case alphanumeric characters, hyphen
       and period only. Default value: "default" .
      :type operator_namespace: str
      :param operator_instance_name: Instance name of the operator - identifying
       the specific configuration.
      :type operator_instance_name: str
      :param operator_type: Type of the operator. Possible values include:
       'Flux'
      :type operator_type: str or
       ~azure.mgmt.kubernetesconfiguration.models.OperatorType
      :param operator_params: Any Parameters for the Operator instance in string
       format.
      :type operator_params: str
      :param configuration_protected_settings: Name-value pairs of protected
       configuration settings for the configuration
      :type configuration_protected_settings: dict[str, str]
      :param operator_scope: Scope at which the operator will be installed.
       Possible values include: 'cluster', 'namespace'. Default value: "cluster"
       .
      :type operator_scope: str or
       ~azure.mgmt.kubernetesconfiguration.models.OperatorScopeType
      :ivar repository_public_key: Public Key associated with this SourceControl
       configuration (either generated within the cluster or provided by the
       user).
      :vartype repository_public_key: str
      :param ssh_known_hosts_contents: Base64-encoded known_hosts contents
       containing public SSH keys required to access private Git instances
      :type ssh_known_hosts_contents: str
      :param enable_helm_operator: Option to enable Helm Operator for this git
       configuration.
      :type enable_helm_operator: bool
      :param helm_operator_properties: Properties for Helm operator.
      :type helm_operator_properties:
       ~azure.mgmt.kubernetesconfiguration.models.HelmOperatorProperties
      :ivar provisioning_state: The provisioning state of the resource provider.
       Possible values include: 'Accepted', 'Deleting', 'Running', 'Succeeded',
       'Failed'
      :vartype provisioning_state: str or
       ~azure.mgmt.kubernetesconfiguration.models.ProvisioningStateType
      :ivar compliance_status: Compliance Status of the Configuration
      :vartype compliance_status:
       ~azure.mgmt.kubernetesconfiguration.models.ComplianceStatus
      """
  
      _validation = {
          'id': {'readonly': True},
          'name': {'readonly': True},
          'type': {'readonly': True},
          'repository_public_key': {'readonly': True},
          'provisioning_state': {'readonly': True},
          'compliance_status': {'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'},
          'repository_url': {'key': 'properties.repositoryUrl', 'type': 'str'},
          'operator_namespace': {'key': 'properties.operatorNamespace', 'type': 'str'},
          'operator_instance_name': {'key': 'properties.operatorInstanceName', 'type': 'str'},
          'operator_type': {'key': 'properties.operatorType', 'type': 'str'},
          'operator_params': {'key': 'properties.operatorParams', 'type': 'str'},
          'configuration_protected_settings': {'key': 'properties.configurationProtectedSettings', 'type': '{str}'},
          'operator_scope': {'key': 'properties.operatorScope', 'type': 'str'},
          'repository_public_key': {'key': 'properties.repositoryPublicKey', 'type': 'str'},
          'ssh_known_hosts_contents': {'key': 'properties.sshKnownHostsContents', 'type': 'str'},
          'enable_helm_operator': {'key': 'properties.enableHelmOperator', 'type': 'bool'},
          'helm_operator_properties': {'key': 'properties.helmOperatorProperties', 'type': 'HelmOperatorProperties'},
          'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'},
          'compliance_status': {'key': 'properties.complianceStatus', 'type': 'ComplianceStatus'},
      }
  
      def __init__(self, *, system_data=None, repository_url: str=None, operator_namespace: str="default", operator_instance_name: str=None, operator_type=None, operator_params: str=None, configuration_protected_settings=None, operator_scope="cluster", ssh_known_hosts_contents: str=None, enable_helm_operator: bool=None, helm_operator_properties=None, **kwargs) -> None:
          super(SourceControlConfiguration, self).__init__(system_data=system_data, **kwargs)
          self.repository_url = repository_url
          self.operator_namespace = operator_namespace
          self.operator_instance_name = operator_instance_name
          self.operator_type = operator_type
          self.operator_params = operator_params
          self.configuration_protected_settings = configuration_protected_settings
          self.operator_scope = operator_scope
          self.repository_public_key = None
          self.ssh_known_hosts_contents = ssh_known_hosts_contents
          self.enable_helm_operator = enable_helm_operator
          self.helm_operator_properties = helm_operator_properties
          self.provisioning_state = None
          self.compliance_status = None
  
  
  class SystemData(Model):
      """Top level metadata
      https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/common-api-contracts.md#system-metadata-for-all-azure-resources.
  
      Variables are only populated by the server, and will be ignored when
      sending a request.
  
      :ivar created_by: A string identifier for the identity that created the
       resource
      :vartype created_by: str
      :ivar created_by_type: The type of identity that created the resource:
       user, application, managedIdentity, key
      :vartype created_by_type: str
      :ivar created_at: The timestamp of resource creation (UTC)
      :vartype created_at: datetime
      :ivar last_modified_by: A string identifier for 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: user, application, managedIdentity, key
      :vartype last_modified_by_type: str
      :ivar last_modified_at: The timestamp of resource last modification (UTC)
      :vartype last_modified_at: datetime
      """
  
      _validation = {
          'created_by': {'readonly': True},
          'created_by_type': {'readonly': True},
          'created_at': {'readonly': True},
          'last_modified_by': {'readonly': True},
          'last_modified_by_type': {'readonly': True},
          'last_modified_at': {'readonly': True},
      }
  
      _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) -> None:
          super(SystemData, self).__init__(**kwargs)
          self.created_by = None
          self.created_by_type = None
          self.created_at = None
          self.last_modified_by = None
          self.last_modified_by_type = None
          self.last_modified_at = None
  