|
|
|
@@ -77,24 +77,73 @@ paths:
|
|
|
|
|
/api/platform/v1/iam/internal-users:
|
|
|
|
|
get:
|
|
|
|
|
tags: [IAM Resources / IAM 资源]
|
|
|
|
|
summary: List platform internal users / 查询平台内部用户
|
|
|
|
|
summary: 查询平台内部用户
|
|
|
|
|
responses:
|
|
|
|
|
'200': {$ref: '#/components/responses/Success'}
|
|
|
|
|
'403': {$ref: '#/components/responses/Forbidden'}
|
|
|
|
|
post:
|
|
|
|
|
tags: [IAM Resources / IAM 资源]
|
|
|
|
|
summary: Create platform internal user / 新增平台内部用户
|
|
|
|
|
description: Create an IAM profile linked to an existing authentication account. / 创建关联已有认证账号的 IAM 用户资料。
|
|
|
|
|
summary: 新增平台内部用户
|
|
|
|
|
description: 创建完整的 Auth/IAM 平台账号,也兼容通过 authUserId 关联已有账号。
|
|
|
|
|
requestBody:
|
|
|
|
|
required: true
|
|
|
|
|
content:
|
|
|
|
|
application/json:
|
|
|
|
|
schema: {$ref: '#/components/schemas/CreateIamUserRequest'}
|
|
|
|
|
schema: {$ref: '#/components/schemas/CreateInternalUserRequest'}
|
|
|
|
|
responses:
|
|
|
|
|
'200': {$ref: '#/components/responses/Success'}
|
|
|
|
|
'400': {$ref: '#/components/responses/BadRequest'}
|
|
|
|
|
'403': {$ref: '#/components/responses/Forbidden'}
|
|
|
|
|
'409': {$ref: '#/components/responses/Conflict'}
|
|
|
|
|
/api/platform/v1/iam/internal-users/{membershipId}:
|
|
|
|
|
parameters:
|
|
|
|
|
- {$ref: '#/components/parameters/MembershipId'}
|
|
|
|
|
put:
|
|
|
|
|
tags: [IAM Resources / IAM 资源]
|
|
|
|
|
summary: 编辑平台内部用户
|
|
|
|
|
requestBody:
|
|
|
|
|
required: true
|
|
|
|
|
content:
|
|
|
|
|
application/json:
|
|
|
|
|
schema: {$ref: '#/components/schemas/UpdateInternalUserRequest'}
|
|
|
|
|
responses:
|
|
|
|
|
'200': {$ref: '#/components/responses/Success'}
|
|
|
|
|
'400': {$ref: '#/components/responses/BadRequest'}
|
|
|
|
|
'403': {$ref: '#/components/responses/Forbidden'}
|
|
|
|
|
'404': {$ref: '#/components/responses/NotFound'}
|
|
|
|
|
'409': {$ref: '#/components/responses/Conflict'}
|
|
|
|
|
/api/platform/v1/iam/internal-users/{membershipId}/status:
|
|
|
|
|
parameters:
|
|
|
|
|
- {$ref: '#/components/parameters/MembershipId'}
|
|
|
|
|
put:
|
|
|
|
|
tags: [IAM Resources / IAM 资源]
|
|
|
|
|
summary: 启用或停用平台内部用户
|
|
|
|
|
requestBody:
|
|
|
|
|
required: true
|
|
|
|
|
content:
|
|
|
|
|
application/json:
|
|
|
|
|
schema: {$ref: '#/components/schemas/ChangeInternalUserStatusRequest'}
|
|
|
|
|
responses:
|
|
|
|
|
'200': {$ref: '#/components/responses/Success'}
|
|
|
|
|
'400': {$ref: '#/components/responses/BadRequest'}
|
|
|
|
|
'403': {$ref: '#/components/responses/Forbidden'}
|
|
|
|
|
'404': {$ref: '#/components/responses/NotFound'}
|
|
|
|
|
/api/platform/v1/iam/internal-users/{membershipId}/password:
|
|
|
|
|
parameters:
|
|
|
|
|
- {$ref: '#/components/parameters/MembershipId'}
|
|
|
|
|
put:
|
|
|
|
|
tags: [IAM Resources / IAM 资源]
|
|
|
|
|
summary: 重置平台内部用户密码
|
|
|
|
|
requestBody:
|
|
|
|
|
required: true
|
|
|
|
|
content:
|
|
|
|
|
application/json:
|
|
|
|
|
schema: {$ref: '#/components/schemas/ResetInternalUserPasswordRequest'}
|
|
|
|
|
responses:
|
|
|
|
|
'200': {$ref: '#/components/responses/Success'}
|
|
|
|
|
'400': {$ref: '#/components/responses/BadRequest'}
|
|
|
|
|
'403': {$ref: '#/components/responses/Forbidden'}
|
|
|
|
|
'404': {$ref: '#/components/responses/NotFound'}
|
|
|
|
|
/api/merchant/v1/iam/tenant/profile:
|
|
|
|
|
get:
|
|
|
|
|
tags: [Merchant Tenant / 商户企业]
|
|
|
|
@@ -165,18 +214,6 @@ paths:
|
|
|
|
|
responses:
|
|
|
|
|
'200': {$ref: '#/components/responses/Success'}
|
|
|
|
|
'403': {$ref: '#/components/responses/Forbidden'}
|
|
|
|
|
post:
|
|
|
|
|
tags: [IAM Resources / IAM 资源]
|
|
|
|
|
summary: Add tenant qualification / 新增企业资质
|
|
|
|
|
requestBody:
|
|
|
|
|
required: true
|
|
|
|
|
content:
|
|
|
|
|
application/json:
|
|
|
|
|
schema: {$ref: '#/components/schemas/QualificationRequest'}
|
|
|
|
|
responses:
|
|
|
|
|
'200': {$ref: '#/components/responses/Success'}
|
|
|
|
|
'400': {$ref: '#/components/responses/BadRequest'}
|
|
|
|
|
'403': {$ref: '#/components/responses/Forbidden'}
|
|
|
|
|
/api/{app}/v1/iam/roles:
|
|
|
|
|
parameters:
|
|
|
|
|
- {$ref: '#/components/parameters/App'}
|
|
|
|
@@ -276,6 +313,12 @@ components:
|
|
|
|
|
description: Application domain / 应用域
|
|
|
|
|
schema: {type: string, enum: [platform, merchant]}
|
|
|
|
|
example: platform
|
|
|
|
|
MembershipId:
|
|
|
|
|
name: membershipId
|
|
|
|
|
in: path
|
|
|
|
|
required: true
|
|
|
|
|
description: Platform membership ID / 平台成员关系 ID
|
|
|
|
|
schema: {type: integer, format: int64}
|
|
|
|
|
responses:
|
|
|
|
|
Success: {description: Operation succeeded / 操作成功, content: {application/json: {schema: {$ref: '#/components/schemas/ApiResponse'}}}}
|
|
|
|
|
BadRequest: {description: Invalid request / 请求参数错误, content: {application/json: {schema: {$ref: '#/components/schemas/ApiResponse'}}}}
|
|
|
|
@@ -317,15 +360,53 @@ components:
|
|
|
|
|
type: object
|
|
|
|
|
properties:
|
|
|
|
|
comment: {type: string, description: Review comment or rejection reason / 审核意见或驳回原因}
|
|
|
|
|
CreateIamUserRequest:
|
|
|
|
|
CreateInternalUserRequest:
|
|
|
|
|
type: object
|
|
|
|
|
required: [authUserId, userType, displayName]
|
|
|
|
|
required: [displayName]
|
|
|
|
|
properties:
|
|
|
|
|
authUserId: {type: integer, format: int64, description: 兼容旧接口;填写后关联已有认证账号}
|
|
|
|
|
userType: {type: string, enum: [INTERNAL, PLATFORM], description: 兼容旧接口,可省略}
|
|
|
|
|
username: {type: string, minLength: 4, maxLength: 64}
|
|
|
|
|
password: {type: string, format: password, minLength: 8, maxLength: 64, writeOnly: true}
|
|
|
|
|
displayName: {type: string, maxLength: 64}
|
|
|
|
|
phone: {type: string, maxLength: 32}
|
|
|
|
|
email: {type: string, format: email, maxLength: 128}
|
|
|
|
|
memberNo: {type: string, maxLength: 64}
|
|
|
|
|
roleIds: {type: array, items: {type: integer, format: int64}}
|
|
|
|
|
UpdateInternalUserRequest:
|
|
|
|
|
type: object
|
|
|
|
|
required: [displayName, memberNo, roleIds]
|
|
|
|
|
properties:
|
|
|
|
|
displayName: {type: string, maxLength: 64}
|
|
|
|
|
phone: {type: string, maxLength: 32}
|
|
|
|
|
email: {type: string, format: email, maxLength: 128}
|
|
|
|
|
memberNo: {type: string, maxLength: 64}
|
|
|
|
|
roleIds: {type: array, items: {type: integer, format: int64}}
|
|
|
|
|
ChangeInternalUserStatusRequest:
|
|
|
|
|
type: object
|
|
|
|
|
required: [status]
|
|
|
|
|
properties:
|
|
|
|
|
status: {type: string, enum: [ACTIVE, DISABLED]}
|
|
|
|
|
ResetInternalUserPasswordRequest:
|
|
|
|
|
type: object
|
|
|
|
|
required: [newPassword]
|
|
|
|
|
properties:
|
|
|
|
|
newPassword: {type: string, format: password, minLength: 8, maxLength: 64, writeOnly: true}
|
|
|
|
|
InternalUserResponse:
|
|
|
|
|
type: object
|
|
|
|
|
required: [membershipId, userId, authUserId, username, displayName, memberType, status, roleIds]
|
|
|
|
|
properties:
|
|
|
|
|
membershipId: {type: integer, format: int64}
|
|
|
|
|
userId: {type: integer, format: int64}
|
|
|
|
|
authUserId: {type: integer, format: int64}
|
|
|
|
|
userType: {type: string, enum: [PLATFORM, ENTERPRISE]}
|
|
|
|
|
username: {type: string}
|
|
|
|
|
displayName: {type: string}
|
|
|
|
|
phone: {type: string}
|
|
|
|
|
email: {type: string, format: email}
|
|
|
|
|
memberType: {type: string, enum: [EMPLOYEE]}
|
|
|
|
|
memberNo: {type: string}
|
|
|
|
|
status: {type: string, enum: [ACTIVE, DISABLED]}
|
|
|
|
|
roleIds: {type: array, items: {type: integer, format: int64}}
|
|
|
|
|
CreateMemberRequest:
|
|
|
|
|
type: object
|
|
|
|
|
required: [username, password, displayName, memberType]
|
|
|
|
@@ -350,15 +431,6 @@ components:
|
|
|
|
|
detail: {type: string}
|
|
|
|
|
postalCode: {type: string}
|
|
|
|
|
isDefault: {type: boolean}
|
|
|
|
|
QualificationRequest:
|
|
|
|
|
type: object
|
|
|
|
|
required: [qualificationType, documentUrl]
|
|
|
|
|
properties:
|
|
|
|
|
qualificationType: {type: string, example: BUSINESS_LICENSE}
|
|
|
|
|
certificateNo: {type: string}
|
|
|
|
|
documentUrl: {type: string, format: uri}
|
|
|
|
|
validFrom: {type: string, format: date}
|
|
|
|
|
validTo: {type: string, format: date}
|
|
|
|
|
CreateRoleRequest:
|
|
|
|
|
type: object
|
|
|
|
|
required: [roleCode, roleName]
|
|
|
|
|