# Source code for azure.mgmt.recoveryservices.models.resource_certificate_and_acs_details_py3

    # 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 .resource_certificate_details_py3 import ResourceCertificateDetails

    class ResourceCertificateAndAcsDetails(ResourceCertificateDetails):
        """Certificate details representing the Vault credentials for ACS.

        All required parameters must be populated in order to send to Azure.

        :param certificate: The base64 encoded certificate raw data string.
        :type certificate: bytearray
        :param friendly_name: Certificate friendly name.
        :type friendly_name: str
        :param issuer: Certificate issuer.
        :type issuer: str
        :param resource_id: Resource ID of the vault.
        :type resource_id: long
        :param subject: Certificate Subject Name.
        :type subject: str
        :param thumbprint: Certificate thumbprint.
        :type thumbprint: str
        :param valid_from: Certificate Validity start Date time.
        :type valid_from: datetime
        :param valid_to: Certificate Validity End Date time.
        :type valid_to: datetime
        :param auth_type: Required. Constant filled by server.
        :type auth_type: str
        :param global_acs_namespace: Required. ACS namespace name - tenant for our
         service.
        :type global_acs_namespace: str
        :param global_acs_host_name: Required. Acs mgmt host name to connect to.
        :type global_acs_host_name: str
        :param global_acs_rp_realm: Required. Global ACS namespace RP realm.
        :type global_acs_rp_realm: str
        """

        _validation = {
            'auth_type': {'required': True},
            'global_acs_namespace': {'required': True},
            'global_acs_host_name': {'required': True},
            'global_acs_rp_realm': {'required': True},
        }

        _attribute_map = {
            'certificate': {'key': 'certificate', 'type': 'bytearray'},
            'friendly_name': {'key': 'friendlyName', 'type': 'str'},
            'issuer': {'key': 'issuer', 'type': 'str'},
            'resource_id': {'key': 'resourceId', 'type': 'long'},
            'subject': {'key': 'subject', 'type': 'str'},
            'thumbprint': {'key': 'thumbprint', 'type': 'str'},
            'valid_from': {'key': 'validFrom', 'type': 'iso-8601'},
            'valid_to': {'key': 'validTo', 'type': 'iso-8601'},
            'auth_type': {'key': 'authType', 'type': 'str'},
            'global_acs_namespace': {'key': 'globalAcsNamespace', 'type': 'str'},
            'global_acs_host_name': {'key': 'globalAcsHostName', 'type': 'str'},
            'global_acs_rp_realm': {'key': 'globalAcsRPRealm', 'type': 'str'},
        }

        def __init__(self, *, global_acs_namespace: str, global_acs_host_name: str, global_acs_rp_realm: str, certificate: bytearray=None, friendly_name: str=None, issuer: str=None, resource_id: int=None, subject: str=None, thumbprint: str=None, valid_from=None, valid_to=None, **kwargs) -> None:
            super(ResourceCertificateAndAcsDetails, self).__init__(certificate=certificate, friendly_name=friendly_name, issuer=issuer, resource_id=resource_id, subject=subject, thumbprint=thumbprint, valid_from=valid_from, valid_to=valid_to, **kwargs)
            self.global_acs_namespace = global_acs_namespace
            self.global_acs_host_name = global_acs_host_name
            self.global_acs_rp_realm = global_acs_rp_realm
            self.auth_type = 'AccessControlService'