text: # coding=utf8
  
  # Copyright 2018 JDCLOUD.COM
  #
  # 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.
  #
  # NOTE: This class is auto generated by the jdcloud code generator program.
  
  
  class Application(object):
  
      def __init__(self, clientName=None, tokenEndpointAuthMethod=None, grantTypes=None, redirectUris=None, clientUri=None, logoUri=None, tosUri=None, policyUri=None, scope=None, jwksUri=None, jwks=None, contacts=None, extension=None, accessTokenValiditySeconds=None, refreshTokenValiditySeconds=None, multiTenant=None, secret=None, userType=None):
          """
          :param clientName: (Optional) 应用名
          :param tokenEndpointAuthMethod: (Optional) 客户端认证方式<br> - none：不设置客户端密码（不推荐）<br> - client_secret_post：客户端必须设置密码，且该密码需要在OAuth2 Token Endpoint提供于请求的body<br> - client_secret_basic：客户端必须设置密码，且该密码需要在OAuth2 Token Endpoint提供于请求的header<br> 支持以下值：<br> （1）none<br> （2）client_secret_post<br> （3）client_secret_basic
          :param grantTypes: (Optional) 支持的OAuth类型：<br> - authorization_code：OAuth2授权码模式<br> - implicit：OAuth2隐式授权模式<br> - refresh_token：启用刷新令牌 支持以下值：<br> （1）authorization_code<br> （2）authorization_code,refresh_token<br> （3）authorization_code,implicit<br> （4）authorization_code,implicit,refresh_token<br> （5）implicit<br> 注：如果grantTypes指定了refresh_token，应用将可以使用刷新令牌；如果在创建应用时未指定，则应用不能使用刷新令牌；任何时候应用都可以调用“更新应用”接口更改grantTypes设置
          :param redirectUris: (Optional) 回调地址，最多4个，多个url之间用逗号,分隔，每个url长度不超过1000，url不支持#符号
          :param clientUri: (Optional) 应用介绍地址，url不支持#符号
          :param logoUri: (Optional) 应用logo地址，url不支持#符号
          :param tosUri: (Optional) 应用服务协议地址，url不支持#符号
          :param policyUri: (Optional) 应用隐私政策地址，url不支持#符号
          :param scope: (Optional) OAuth scope范围，支持的值为：<br/> （1）openid：用OpenID Connect协议进行身份认证<br/> 指定scope为openid，并在Authorization Endpoint请求该scope，京东云将返回用户的OpenID令牌；如果在创建应用时未指明该值，则应用不能请求OpenID令牌；任何时候应用都可以调用“更新应用”更改该设置
          :param jwksUri: (Optional) JWKS地址，url不支持#符号<br/>jwksUri和jwks传一个即可
          :param jwks: (Optional) JWKS
          :param contacts: (Optional) 应用联系信息
          :param extension: (Optional) 应用扩展信息
          :param accessTokenValiditySeconds: (Optional) 访问令牌有效期，值的范围为 600 秒到 6x3600=21,600 秒，即10分钟-6小时
          :param refreshTokenValiditySeconds: (Optional) 刷新令牌有效期，值的范围为 30x24x3600=2,592,000 秒到 365x24x3600=31,536,000 秒，即30天-365天<br/><br/> 注：当 GrantTypes 包含 refresh_token 时，refreshTokenValiditySeconds 为必传参数
          :param multiTenant: (Optional) 是否为多租户应用<br/> "false"：该应用仅支持当前创建应用的租户访问，其他京东云租户无法访问<br/>        "true"：该应用支持其他京东云租户访问，但当前创建应用的租户不能访问
          :param secret: (Optional) 应用的密码，支持8-255位长度的ASCII可打印字符，建议使用足够复杂的密码策略<br/><br/>        注：当TokenEndpointAuthMethod不等于none时，secret为必传参数；反之，当指定了secret时，TokenEndpointAuthMethod不能等于none<br/>京东云将不可逆加密secret，因此您无法再次从京东云查看该密码，但您可以随时通过更新应用重新设置secret
          :param userType: (Optional) 能访问应用的账号类型，支持以下值：<br/> （1）root：支持主账号访问，子用户无法访问<br/> （2）sub：子用户账号，使用主账号不能访问<br/><br/> 注：multiTenant和userType的组合指定了应用的用户人群，典型的应用场景如：<br/> （1）应用向当前租户下的子用户开放（2）应用向京东云其他租户主账号开放
          """
  
          self.clientName = clientName
          self.tokenEndpointAuthMethod = tokenEndpointAuthMethod
          self.grantTypes = grantTypes
          self.redirectUris = redirectUris
          self.clientUri = clientUri
          self.logoUri = logoUri
          self.tosUri = tosUri
          self.policyUri = policyUri
          self.scope = scope
          self.jwksUri = jwksUri
          self.jwks = jwks
          self.contacts = contacts
          self.extension = extension
          self.accessTokenValiditySeconds = accessTokenValiditySeconds
          self.refreshTokenValiditySeconds = refreshTokenValiditySeconds
          self.multiTenant = multiTenant
          self.secret = secret
          self.userType = userType
  