# -*- coding: utf8 -*-
# Copyright (c) 2017-2021 THL A29 Limited, a Tencent company. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import warnings
from tencentcloud.common.abstract_model import AbstractModel
class CreateIAPUserOIDCConfigRequest(AbstractModel):
"""CreateIAPUserOIDCConfig请求参数结构体
"""
def __init__(self):
r"""
:param _IdentityUrl: 身份提供商URL。OpenID Connect身份提供商标识。对应企业IdP提供的Openid-configuration中"issuer"字段的值。
:type IdentityUrl: str
:param _ClientId: 客户端ID,在OpenID Connect身份提供商注册的客户端ID。
:type ClientId: str
:param _AuthorizationEndpoint: 授权请求Endpoint,OpenID Connect身份提供商授权地址。对应企业IdP提供的Openid-configuration中"authorization_endpoint"字段的值。
:type AuthorizationEndpoint: str
:param _ResponseType: 授权请求Response type,固定值id_token
:type ResponseType: str
:param _ResponseMode: 授权请求Response mode。授权请求返回模式,form_post和fragment两种可选模式,推荐选择form_post模式。
:type ResponseMode: str
:param _MappingFiled: 映射字段名称。IdP的id_token中哪一个字段映射到子用户的用户名,通常是sub或者name字段
:type MappingFiled: str
:param _IdentityKey: 签名公钥,需要base64_encode。验证OpenID Connect身份提供商ID Token签名的公钥。为了您的账号安全,建议您定期轮换签名公钥。
:type IdentityKey: str
:param _Scope: 授权请求Scope。openid; email;profile。授权请求信息范围。默认必选openid。
:type Scope: list of str
:param _Description: 描述
:type Description: str
"""
self._IdentityUrl = None
self._ClientId = None
self._AuthorizationEndpoint = None
self._ResponseType = None
self._ResponseMode = None
self._MappingFiled = None
self._IdentityKey = None
self._Scope = None
self._Description = None
@property
def IdentityUrl(self):
"""身份提供商URL。OpenID Connect身份提供商标识。对应企业IdP提供的Openid-configuration中"issuer"字段的值。
:rtype: str
"""
return self._IdentityUrl
@IdentityUrl.setter
def IdentityUrl(self, IdentityUrl):
self._IdentityUrl = IdentityUrl
@property
def ClientId(self):
"""客户端ID,在OpenID Connect身份提供商注册的客户端ID。
:rtype: str
"""
return self._ClientId
@ClientId.setter
def ClientId(self, ClientId):
self._ClientId = ClientId
@property
def AuthorizationEndpoint(self):
"""授权请求Endpoint,OpenID Connect身份提供商授权地址。对应企业IdP提供的Openid-configuration中"authorization_endpoint"字段的值。
:rtype: str
"""
return self._AuthorizationEndpoint
@AuthorizationEndpoint.setter
def AuthorizationEndpoint(self, AuthorizationEndpoint):
self._AuthorizationEndpoint = AuthorizationEndpoint
@property
def ResponseType(self):
"""授权请求Response type,固定值id_token
:rtype: str
"""
return self._ResponseType
@ResponseType.setter
def ResponseType(self, ResponseType):
self._ResponseType = ResponseType
@property
def ResponseMode(self):
"""授权请求Response mode。授权请求返回模式,form_post和fragment两种可选模式,推荐选择form_post模式。
:rtype: str
"""
return self._ResponseMode
@ResponseMode.setter
def ResponseMode(self, ResponseMode):
self._ResponseMode = ResponseMode
@property
def MappingFiled(self):
"""映射字段名称。IdP的id_token中哪一个字段映射到子用户的用户名,通常是sub或者name字段
:rtype: str
"""
return self._MappingFiled
@MappingFiled.setter
def MappingFiled(self, MappingFiled):
self._MappingFiled = MappingFiled
@property
def IdentityKey(self):
"""签名公钥,需要base64_encode。验证OpenID Connect身份提供商ID Token签名的公钥。为了您的账号安全,建议您定期轮换签名公钥。
:rtype: str
"""
return self._IdentityKey
@IdentityKey.setter
def IdentityKey(self, IdentityKey):
self._IdentityKey = IdentityKey
@property
def Scope(self):
"""授权请求Scope。openid; email;profile。授权请求信息范围。默认必选openid。
:rtype: list of str
"""
return self._Scope
@Scope.setter
def Scope(self, Scope):
self._Scope = Scope
@property
def Description(self):
"""描述
:rtype: str
"""
return self._Description
@Description.setter
def Description(self, Description):
self._Description = Description
def _deserialize(self, params):
self._IdentityUrl = params.get("IdentityUrl")
self._ClientId = params.get("ClientId")
self._AuthorizationEndpoint = params.get("AuthorizationEndpoint")
self._ResponseType = params.get("ResponseType")
self._ResponseMode = params.get("ResponseMode")
self._MappingFiled = params.get("MappingFiled")
self._IdentityKey = params.get("IdentityKey")
self._Scope = params.get("Scope")
self._Description = params.get("Description")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class CreateIAPUserOIDCConfigResponse(AbstractModel):
"""CreateIAPUserOIDCConfig返回参数结构体
"""
def __init__(self):
r"""
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:type RequestId: str
"""
self._RequestId = None
@property
def RequestId(self):
"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:rtype: str
"""
return self._RequestId
@RequestId.setter
def RequestId(self, RequestId):
self._RequestId = RequestId
def _deserialize(self, params):
self._RequestId = params.get("RequestId")
class DescribeIAPLoginSessionDurationRequest(AbstractModel):
"""DescribeIAPLoginSessionDuration请求参数结构体
"""
class DescribeIAPLoginSessionDurationResponse(AbstractModel):
"""DescribeIAPLoginSessionDuration返回参数结构体
"""
def __init__(self):
r"""
:param _Duration: 登录会话时长
:type Duration: int
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:type RequestId: str
"""
self._Duration = None
self._RequestId = None
@property
def Duration(self):
"""登录会话时长
:rtype: int
"""
return self._Duration
@Duration.setter
def Duration(self, Duration):
self._Duration = Duration
@property
def RequestId(self):
"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:rtype: str
"""
return self._RequestId
@RequestId.setter
def RequestId(self, RequestId):
self._RequestId = RequestId
def _deserialize(self, params):
self._Duration = params.get("Duration")
self._RequestId = params.get("RequestId")
class DescribeIAPUserOIDCConfigRequest(AbstractModel):
"""DescribeIAPUserOIDCConfig请求参数结构体
"""
class DescribeIAPUserOIDCConfigResponse(AbstractModel):
"""DescribeIAPUserOIDCConfig返回参数结构体
"""
def __init__(self):
r"""
:param _ProviderType: 身份提供商类型。 13:IAP用户OIDC身份提供商
:type ProviderType: int
:param _IdentityUrl: 身份提供商URL
:type IdentityUrl: str
:param _IdentityKey: 签名公钥
:type IdentityKey: str
:param _ClientId: 客户端id
:type ClientId: str
:param _Status: 状态:0:未设置,11:已开启,2:已禁用
:type Status: int
:param _Fingerprints: HTTPS CA证书的验证指纹,允许英文字母和数字,每个指纹长度为40个字符,最多5个指纹。
:type Fingerprints: list of str
:param _EnableAutoPublicKey: 是否需要开启自动使用OIDC签名公钥,1:需要,2:不需要,默认不需要
:type EnableAutoPublicKey: int
:param _AuthorizationEndpoint: 授权请求Endpoint
:type AuthorizationEndpoint: str
:param _Scope: 授权请求Scope
:type Scope: list of str
:param _ResponseType: 授权请求Response type
:type ResponseType: str
:param _ResponseMode: 授权请求Response mode
:type ResponseMode: str
:param _MappingFiled: 映射字段名称
:type MappingFiled: str
:param _Description: 描述
:type Description: str
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:type RequestId: str
"""
self._ProviderType = None
self._IdentityUrl = None
self._IdentityKey = None
self._ClientId = None
self._Status = None
self._Fingerprints = None
self._EnableAutoPublicKey = None
self._AuthorizationEndpoint = None
self._Scope = None
self._ResponseType = None
self._ResponseMode = None
self._MappingFiled = None
self._Description = None
self._RequestId = None
@property
def ProviderType(self):
"""身份提供商类型。 13:IAP用户OIDC身份提供商
:rtype: int
"""
return self._ProviderType
@ProviderType.setter
def ProviderType(self, ProviderType):
self._ProviderType = ProviderType
@property
def IdentityUrl(self):
"""身份提供商URL
:rtype: str
"""
return self._IdentityUrl
@IdentityUrl.setter
def IdentityUrl(self, IdentityUrl):
self._IdentityUrl = IdentityUrl
@property
def IdentityKey(self):
"""签名公钥
:rtype: str
"""
return self._IdentityKey
@IdentityKey.setter
def IdentityKey(self, IdentityKey):
self._IdentityKey = IdentityKey
@property
def ClientId(self):
"""客户端id
:rtype: str
"""
return self._ClientId
@ClientId.setter
def ClientId(self, ClientId):
self._ClientId = ClientId
@property
def Status(self):
"""状态:0:未设置,11:已开启,2:已禁用
:rtype: int
"""
return self._Status
@Status.setter
def Status(self, Status):
self._Status = Status
@property
def Fingerprints(self):
"""HTTPS CA证书的验证指纹,允许英文字母和数字,每个指纹长度为40个字符,最多5个指纹。
:rtype: list of str
"""
return self._Fingerprints
@Fingerprints.setter
def Fingerprints(self, Fingerprints):
self._Fingerprints = Fingerprints
@property
def EnableAutoPublicKey(self):
"""是否需要开启自动使用OIDC签名公钥,1:需要,2:不需要,默认不需要
:rtype: int
"""
return self._EnableAutoPublicKey
@EnableAutoPublicKey.setter
def EnableAutoPublicKey(self, EnableAutoPublicKey):
self._EnableAutoPublicKey = EnableAutoPublicKey
@property
def AuthorizationEndpoint(self):
"""授权请求Endpoint
:rtype: str
"""
return self._AuthorizationEndpoint
@AuthorizationEndpoint.setter
def AuthorizationEndpoint(self, AuthorizationEndpoint):
self._AuthorizationEndpoint = AuthorizationEndpoint
@property
def Scope(self):
"""授权请求Scope
:rtype: list of str
"""
return self._Scope
@Scope.setter
def Scope(self, Scope):
self._Scope = Scope
@property
def ResponseType(self):
"""授权请求Response type
:rtype: str
"""
return self._ResponseType
@ResponseType.setter
def ResponseType(self, ResponseType):
self._ResponseType = ResponseType
@property
def ResponseMode(self):
"""授权请求Response mode
:rtype: str
"""
return self._ResponseMode
@ResponseMode.setter
def ResponseMode(self, ResponseMode):
self._ResponseMode = ResponseMode
@property
def MappingFiled(self):
"""映射字段名称
:rtype: str
"""
return self._MappingFiled
@MappingFiled.setter
def MappingFiled(self, MappingFiled):
self._MappingFiled = MappingFiled
@property
def Description(self):
"""描述
:rtype: str
"""
return self._Description
@Description.setter
def Description(self, Description):
self._Description = Description
@property
def RequestId(self):
"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:rtype: str
"""
return self._RequestId
@RequestId.setter
def RequestId(self, RequestId):
self._RequestId = RequestId
def _deserialize(self, params):
self._ProviderType = params.get("ProviderType")
self._IdentityUrl = params.get("IdentityUrl")
self._IdentityKey = params.get("IdentityKey")
self._ClientId = params.get("ClientId")
self._Status = params.get("Status")
self._Fingerprints = params.get("Fingerprints")
self._EnableAutoPublicKey = params.get("EnableAutoPublicKey")
self._AuthorizationEndpoint = params.get("AuthorizationEndpoint")
self._Scope = params.get("Scope")
self._ResponseType = params.get("ResponseType")
self._ResponseMode = params.get("ResponseMode")
self._MappingFiled = params.get("MappingFiled")
self._Description = params.get("Description")
self._RequestId = params.get("RequestId")
class DisableIAPUserSSORequest(AbstractModel):
"""DisableIAPUserSSO请求参数结构体
"""
class DisableIAPUserSSOResponse(AbstractModel):
"""DisableIAPUserSSO返回参数结构体
"""
def __init__(self):
r"""
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:type RequestId: str
"""
self._RequestId = None
@property
def RequestId(self):
"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:rtype: str
"""
return self._RequestId
@RequestId.setter
def RequestId(self, RequestId):
self._RequestId = RequestId
def _deserialize(self, params):
self._RequestId = params.get("RequestId")
class ModifyIAPLoginSessionDurationRequest(AbstractModel):
"""ModifyIAPLoginSessionDuration请求参数结构体
"""
def __init__(self):
r"""
:param _Duration: 登录会话时长
:type Duration: int
"""
self._Duration = None
@property
def Duration(self):
"""登录会话时长
:rtype: int
"""
return self._Duration
@Duration.setter
def Duration(self, Duration):
self._Duration = Duration
def _deserialize(self, params):
self._Duration = params.get("Duration")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class ModifyIAPLoginSessionDurationResponse(AbstractModel):
"""ModifyIAPLoginSessionDuration返回参数结构体
"""
def __init__(self):
r"""
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:type RequestId: str
"""
self._RequestId = None
@property
def RequestId(self):
"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:rtype: str
"""
return self._RequestId
@RequestId.setter
def RequestId(self, RequestId):
self._RequestId = RequestId
def _deserialize(self, params):
self._RequestId = params.get("RequestId")
class UpdateIAPUserOIDCConfigRequest(AbstractModel):
"""UpdateIAPUserOIDCConfig请求参数结构体
"""
def __init__(self):
r"""
:param _IdentityUrl: 身份提供商URL。OpenID Connect身份提供商标识。对应企业IdP提供的Openid-configuration中"issuer"字段的值。
:type IdentityUrl: str
:param _ClientId: 客户端ID,在OpenID Connect身份提供商注册的客户端ID。
:type ClientId: str
:param _AuthorizationEndpoint: 授权请求Endpoint,OpenID Connect身份提供商授权地址。对应企业IdP提供的Openid-configuration中"authorization_endpoint"字段的值。
:type AuthorizationEndpoint: str
:param _ResponseType: 授权请求Response type,固定值id_token
:type ResponseType: str
:param _ResponseMode: 授权请求Response mode。授权请求返回模式,form_post和fragment两种可选模式,推荐选择form_post模式。
:type ResponseMode: str
:param _MappingFiled: 映射字段名称。IdP的id_token中哪一个字段映射到子用户的用户名,通常是sub或者name字段
:type MappingFiled: str
:param _IdentityKey: RSA签名公钥,JWKS格式,需要进行base64_encode。验证OpenID Connect身份提供商ID Token签名的公钥。为了您的账号安全,建议您定期轮换签名公钥。
:type IdentityKey: str
:param _Scope: 授权请求Scope。openid; email;profile。授权请求信息范围。默认必选openid。
:type Scope: list of str
:param _Description: 描述,长度为1~255个英文或中文字符,默认值为空。
:type Description: str
"""
self._IdentityUrl = None
self._ClientId = None
self._AuthorizationEndpoint = None
self._ResponseType = None
self._ResponseMode = None
self._MappingFiled = None
self._IdentityKey = None
self._Scope = None
self._Description = None
@property
def IdentityUrl(self):
"""身份提供商URL。OpenID Connect身份提供商标识。对应企业IdP提供的Openid-configuration中"issuer"字段的值。
:rtype: str
"""
return self._IdentityUrl
@IdentityUrl.setter
def IdentityUrl(self, IdentityUrl):
self._IdentityUrl = IdentityUrl
@property
def ClientId(self):
"""客户端ID,在OpenID Connect身份提供商注册的客户端ID。
:rtype: str
"""
return self._ClientId
@ClientId.setter
def ClientId(self, ClientId):
self._ClientId = ClientId
@property
def AuthorizationEndpoint(self):
"""授权请求Endpoint,OpenID Connect身份提供商授权地址。对应企业IdP提供的Openid-configuration中"authorization_endpoint"字段的值。
:rtype: str
"""
return self._AuthorizationEndpoint
@AuthorizationEndpoint.setter
def AuthorizationEndpoint(self, AuthorizationEndpoint):
self._AuthorizationEndpoint = AuthorizationEndpoint
@property
def ResponseType(self):
"""授权请求Response type,固定值id_token
:rtype: str
"""
return self._ResponseType
@ResponseType.setter
def ResponseType(self, ResponseType):
self._ResponseType = ResponseType
@property
def ResponseMode(self):
"""授权请求Response mode。授权请求返回模式,form_post和fragment两种可选模式,推荐选择form_post模式。
:rtype: str
"""
return self._ResponseMode
@ResponseMode.setter
def ResponseMode(self, ResponseMode):
self._ResponseMode = ResponseMode
@property
def MappingFiled(self):
"""映射字段名称。IdP的id_token中哪一个字段映射到子用户的用户名,通常是sub或者name字段
:rtype: str
"""
return self._MappingFiled
@MappingFiled.setter
def MappingFiled(self, MappingFiled):
self._MappingFiled = MappingFiled
@property
def IdentityKey(self):
"""RSA签名公钥,JWKS格式,需要进行base64_encode。验证OpenID Connect身份提供商ID Token签名的公钥。为了您的账号安全,建议您定期轮换签名公钥。
:rtype: str
"""
return self._IdentityKey
@IdentityKey.setter
def IdentityKey(self, IdentityKey):
self._IdentityKey = IdentityKey
@property
def Scope(self):
"""授权请求Scope。openid; email;profile。授权请求信息范围。默认必选openid。
:rtype: list of str
"""
return self._Scope
@Scope.setter
def Scope(self, Scope):
self._Scope = Scope
@property
def Description(self):
"""描述,长度为1~255个英文或中文字符,默认值为空。
:rtype: str
"""
return self._Description
@Description.setter
def Description(self, Description):
self._Description = Description
def _deserialize(self, params):
self._IdentityUrl = params.get("IdentityUrl")
self._ClientId = params.get("ClientId")
self._AuthorizationEndpoint = params.get("AuthorizationEndpoint")
self._ResponseType = params.get("ResponseType")
self._ResponseMode = params.get("ResponseMode")
self._MappingFiled = params.get("MappingFiled")
self._IdentityKey = params.get("IdentityKey")
self._Scope = params.get("Scope")
self._Description = params.get("Description")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class UpdateIAPUserOIDCConfigResponse(AbstractModel):
"""UpdateIAPUserOIDCConfig返回参数结构体
"""
def __init__(self):
r"""
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:type RequestId: str
"""
self._RequestId = None
@property
def RequestId(self):
"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:rtype: str
"""
return self._RequestId
@RequestId.setter
def RequestId(self, RequestId):
self._RequestId = RequestId
def _deserialize(self, params):
self._RequestId = params.get("RequestId")