# 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_py3 import Resource
[docs]class IdentityProviderContract(Resource):
"""Identity Provider details.
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: Resource ID.
:vartype id: str
:ivar name: Resource name.
:vartype name: str
:ivar type: Resource type for API Management resource.
:vartype type: str
:param identity_provider_contract_type: Identity Provider Type identifier.
Possible values include: 'facebook', 'google', 'microsoft', 'twitter',
'aad', 'aadB2C'
:type identity_provider_contract_type: str or
~azure.mgmt.apimanagement.models.IdentityProviderType
:param allowed_tenants: List of Allowed Tenants when configuring Azure
Active Directory login.
:type allowed_tenants: list[str]
:param authority: OpenID Connect discovery endpoint hostname for AAD or
AAD B2C.
:type authority: str
:param signup_policy_name: Signup Policy Name. Only applies to AAD B2C
Identity Provider.
:type signup_policy_name: str
:param signin_policy_name: Signin Policy Name. Only applies to AAD B2C
Identity Provider.
:type signin_policy_name: str
:param profile_editing_policy_name: Profile Editing Policy Name. Only
applies to AAD B2C Identity Provider.
:type profile_editing_policy_name: str
:param password_reset_policy_name: Password Reset Policy Name. Only
applies to AAD B2C Identity Provider.
:type password_reset_policy_name: str
:param client_id: Required. Client Id of the Application in the external
Identity Provider. It is App ID for Facebook login, Client ID for Google
login, App ID for Microsoft.
:type client_id: str
:param client_secret: Required. Client secret of the Application in
external Identity Provider, used to authenticate login request. For
example, it is App Secret for Facebook login, API Key for Google login,
Public Key for Microsoft.
:type client_secret: str
"""
_validation = {
'id': {'readonly': True},
'name': {'readonly': True},
'type': {'readonly': True},
'allowed_tenants': {'max_items': 32},
'signup_policy_name': {'min_length': 1},
'signin_policy_name': {'min_length': 1},
'profile_editing_policy_name': {'min_length': 1},
'password_reset_policy_name': {'min_length': 1},
'client_id': {'required': True, 'min_length': 1},
'client_secret': {'required': True, 'min_length': 1},
}
_attribute_map = {
'id': {'key': 'id', 'type': 'str'},
'name': {'key': 'name', 'type': 'str'},
'type': {'key': 'type', 'type': 'str'},
'identity_provider_contract_type': {'key': 'properties.type', 'type': 'str'},
'allowed_tenants': {'key': 'properties.allowedTenants', 'type': '[str]'},
'authority': {'key': 'properties.authority', 'type': 'str'},
'signup_policy_name': {'key': 'properties.signupPolicyName', 'type': 'str'},
'signin_policy_name': {'key': 'properties.signinPolicyName', 'type': 'str'},
'profile_editing_policy_name': {'key': 'properties.profileEditingPolicyName', 'type': 'str'},
'password_reset_policy_name': {'key': 'properties.passwordResetPolicyName', 'type': 'str'},
'client_id': {'key': 'properties.clientId', 'type': 'str'},
'client_secret': {'key': 'properties.clientSecret', 'type': 'str'},
}
def __init__(self, *, client_id: str, client_secret: str, identity_provider_contract_type=None, allowed_tenants=None, authority: str=None, signup_policy_name: str=None, signin_policy_name: str=None, profile_editing_policy_name: str=None, password_reset_policy_name: str=None, **kwargs) -> None:
super(IdentityProviderContract, self).__init__(**kwargs)
self.identity_provider_contract_type = identity_provider_contract_type
self.allowed_tenants = allowed_tenants
self.authority = authority
self.signup_policy_name = signup_policy_name
self.signin_policy_name = signin_policy_name
self.profile_editing_policy_name = profile_editing_policy_name
self.password_reset_policy_name = password_reset_policy_name
self.client_id = client_id
self.client_secret = client_secret