The following APIs allow you to manage your organization and projects, such as creating project members and assigning roles. To use the APIs, you need a token of type Bearer, which is issued through API calls and authentication. When you make an API call, the API checks the permissions of the authenticated member.
https://core.api.nhncloudservice.com/
When calling the Public API, you must include the Request Header below.
In | Name | Type | Required | Description |
---|---|---|---|---|
Header | x-nhn-authorization | String | Yes | Bearer type token issued to the user |
When the Public API returns, the header part below is included in the response body.
{
"header" : {
"isSuccessful" : true,
"resultCode" : 0,
"resultMessage" : "resultMessage"
}
}
Name | Type | Required | Description |
---|---|---|---|
isSuccessful | Boolean | No | Successful or not |
resultCode | Integer | No | Result code. 0 is returned on success, or an error code on failure. |
resultMessage | String | No | Result message |
Name | Type | Size | Description |
---|---|---|---|
org-id | String | 16 characters | Organization ID |
project-id | String | 8 characters | Project ID |
product-id | String | 8 characters | Service (product) ID |
user-access-key-id | String | 20 characters | User Access Key ID |
project-app-key | String | 20 characters | The project's AppKey |
product-app-key | String | 16 characters | The service's AppKey |
UUID | String | 36 characters | Member's UUID |
If you set IP ACLs through Organization Management > Governance Settings > Organization Governance Settings > IP ACL Settings, those settings are also applied to calls to the framework API.
[Caution]
Responses from the API can have fields added that are not specified in the guide, so they should be developed so that new fields added do not cause errors.
Also, when saving the DB, the column size may change, so you should set it generously.
POST "/v1/projects/{project-id}/members"
API to add members to a project.
Project.Member.Create
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | project-id | String | Yes | The project ID to which you want to add the member |
Request Body | request | CreateMemberRequest | Yes | Request |
[Caution]
At least one of memberUuid, email, and userCode must have a value when requested.
If you're checking for values in the order memberUuid > email > userCode, add that member as a project member.
Only one project member can be created in a request.
Name | Type | Required | Description |
---|---|---|---|
assignRoles | List |
Yes | List of roles to assign to users |
memberUuid | String | No | UUID of the member to add |
String | No | The email of the member you want to add | |
userCode | String | No | IAM member ID to add |
Name | Type | Required | Description |
---|---|---|---|
roleId | String | Yes | Role ID |
conditions | List |
No | Role condition attribute |
Name | Type | Required | Description |
---|---|---|---|
attributeId | String | Yes | Condition attribute ID |
attributeOperatorTypeCode | String | Yes | Condition attribute operator Available operators vary depending on the conditional attribute data type
|
attributeValues | List |
Yes | Condition attribute value |
{
"header" : {
"isSuccessful" : true,
"resultCode" : 0,
"resultMessage" : "resultMessage"
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes |
POST "/v1/organizations/{org-id}/projects"
API to add projects to your organization.
Organization.Project.Create
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | org-id | String | Yes | Organization ID to add the project to |
Request Body | request | CreateProjectRequest | Yes | Request |
Name | Type | Required | Description |
---|---|---|---|
description | String | No | Project description (up to 100 characters) |
projectName | String | Yes | Project name (up to 40 characters) |
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "resultMessage"
},
"project": {
"regDateTime": "2000-01-23T04:56:07.000+00:00",
"description": "description",
"projectName": "projectName",
"projectId": "projectId",
"orgId": "orgId",
"projectStatusCode": "STABLE"
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes | |
regDateTime | Date | Yes | When the project is created |
description | String | No | Project description |
ownerId | String | Yes | Project owner member ID |
projectName | String | Yes | Project name |
projectId | String | Yes | Project ID |
orgId | String | Yes | Organization ID |
projectStatusCode | String | Yes | Project status
|
DELETE "/v1/projects/{project-id}/members/{target-uuid}"
API to delete a user from a project.
Project.Member.Delete
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | project-id | String | Yes | Project ID |
Path | target-uuid | String | Yes | Member UUID to delete |
{
"header" : {
"isSuccessful" : true,
"resultCode" : 0,
"resultMessage" : "resultMessage"
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes |
DELETE "/v1/projects/{project-id}"
API to delete a project.
You'll need one permission from the list below
* Organization.Project.Delete
* Project.Delete
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | project-id | String | Yes | Project ID to delete |
{
"header" : {
"isSuccessful" : true,
"resultCode" : 0,
"resultMessage" : "resultMessage"
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes |
DELETE "/v1/projects/{project-id}/products/{product-id}/disable"
API to disable a user-specified service so that it is no longer used by this project.
Product Name: Product.Delete
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | project-id | String | Yes | Project ID of the project you want to shut down |
Path | product-id | String | Yes | Service ID |
{
"childProducts": [ {
"productId": "productId",
"productName": "productName",
"statusCode": "STABLE"
} ],
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "resultMessage"
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes | |
childProducts | List |
No | Subservice information for that service, not included if there are no subservices. Requires you to disable the child service first and then disable the service. |
Name | Type | Required | Description |
---|---|---|---|
productId | String | Yes | Subservice ID |
productName | String | Yes | Subservice name |
statusCode | String | Yes | Service status (STABLE, CLOSED) |
POST "/v1/projects/{project-id}/products/{product-id}/enable"
An API that requests to enable a service you specify to be available in your project.
Product Name: Product.Create
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | product-id | String | Yes | Service ID |
Path | project-id | String | Yes | The ID of the project you want to use the service for |
{
"secretKey": "secretKey",
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "resultMessage"
},
"appKey": "appKey",
"parentProduct": {
"productId": "productId",
"productName": "productName",
"statusCode": "STABLE"
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes | |
appKey | String | Yes | AppKey information for the service your project is using |
parentProduct | ParentProduct | No | Shows parent service information if it exists, or does not include it if no parent service exists |
secretKey | String | No | Secret key information for the service your project is using. Only available for services that use secret keys |
Name | Type | Required | Description |
---|---|---|---|
productId | String | Yes | Service ID |
productName | String | Yes | Service name |
statusCode | String | Yes | Service status (STABLE, CLOSED) |
GET "/v1/organizations/{org-id}/roles"
API to request a list of roles that can be granted to users in your organization.
Organization.RoleGroup.List
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | org-id | String | Yes | Organization ID |
Query | categoryTypeCodes | List |
No | Role/Permission/Role Group Category Distinction (ROLE, PERMISSION, ROLE_GROUP) |
Query | roleNameLike | String | No | Role/privilege/role group name |
Query | limit | Integer | No | Number of displays per page, default 20 |
Query | page | Integer | No | Target Page, default 1 |
{
"roles": [ {
"roleId": "roleId",
"roleName": "roleName",
"categoryKey": "categoryKey",
"description": "description",
"roleCategory": "ORG_ROLE",
"categoryTypeCode": "ORG_ROLE_GROUP"
}],
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "resultMessage"
},
"totalCount": 0
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes | |
roles | List |
Yes | Roles list |
totalCount | Integer | Yes | Total count |
Name | Type | Required | Description |
---|---|---|---|
categoryKey | String | Yes | Role/Privilege Category Taxonomy Key
|
categoryTypeCode | String | Yes | Role group/role/privilege distinguishing codes (ORG_ROLE_GROUP, PERMISSION, ROLE, ROLE_GROUP, SYSTEM) |
description | String | Yes | Role/privilege description |
roleCategory | String | Yes | Role/Privilege Category Broad Classification (ORG_ROLE, ORG_ROLE_GROUP, ORG_SERVICE_ROLE, PROJECT_ROLE, PROJECT_ROLE_GROUP, PROJECT_SERVICE_ROLE, SYSTEM_ROLE) |
roleId | String | Yes | Role/Privilege ID |
roleName | String | Yes | Role/privilege name |
GET "/v1/projects/{project-id}/roles"
API to request a list of roles that can be granted to project users.
Project.RoleGroup.List
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | project-id | String | Yes | Project ID |
Query | categoryTypeCodes | List |
No | Role/Permission/Role Group Category Distinction (ROLE, PERMISSION, ROLE_GROUP) |
Query | roleNameLike | String | No | Role/privilege/role group name |
Query | limit | Integer | No | Number of displays per page, default 20 |
Query | page | Integer | No | Target Page, default 1 |
{
"roles": [ {
"roleId": "roleId",
"roleName": "roleName",
"categoryKey": "categoryKey",
"description": "description",
"roleCategory": "ORG_ROLE",
"categoryTypeCode": "ORG_ROLE_GROUP"
}],
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "resultMessage"
},
"totalCount": 0
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes | |
roles | List<RoleProtocol> | Yes | Roles list |
totalCount | Integer | Yes | Total count |
GET "/v1/organizations/{org-id}/domains"
API to look up domains for a specific organization.
Organization.Domain.List
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | org-id | String | Yes | The ID of the organization to look up |
{
"domainList": [
{
"domainId": "string",
"domainName": "string"
}
],
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "string"
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes | |
domainList | List |
Yes |
Name | Type | Required | Description |
---|---|---|---|
orgDomainId | String | Yes | Organization domain ID |
orgDomainName | String | Yes | Organization domain name |
GET "/v1/organizations/{org-id}/members/{member-uuid}"
API to get members belonging to an organization.
Organization.Member.Get
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | org-id | String | Yes | Organization ID for which you want to look up members |
Path | member-uuid | String | Yes | Member UUID to look up |
{
"orgMember": {
"memberUuid": "memberUuid",
"roleId": "roleId",
"memberTypeCode": "memberTypeCode",
"roles": [ {
"regDateTime": "2000-01-23T04:56:07.000+00:00",
"roleApplyPolicyCode": "ALLOW",
"roleId": "roleId",
"roleName": "roleName",
"categoryKey": "categoryKey",
"description": "description",
"categoryTypeCode": "ORG_ROLE_GROUP",
"conditions": [ {
"attributeId": "attributeId",
"attributeOperatorTypeCode": "ALLOW",
"attributeValues": [ "attributeValues", "attributeValues" ],
"attributeDescription": "attributeDescription",
"attributeName": "attributeName",
"attributeDataTypeCode": "BOOLEAN"
}]
}],
"inviteStatusCode": "COMPLETE",
"memberName": "memberName",
"recentPasswordModifyYmdt": "2000-01-23T04:56:07.000+00:00",
"recentLoginYmdt": "2000-01-23T04:56:07.000+00:00",
"roleCode": "roleCode",
"secondFactorCertificationYn": "secondFactorCertificationYn",
"id": "id",
"joinYmdt": "2000-01-23T04:56:07.000+00:00",
"email": "email"
},
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "resultMessage"
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes | |
orgMember | OrgMemberRoleBundleProtocol | No | Added member information, not included on error |
Name | Type | Required | Description |
---|---|---|---|
String | Yes | Member email | |
id | String | No | Member ID (available only to IAM members) |
inviteStatusCode | String | Yes | COMPLETE, EXPIRE, UNKNOWN, WAIT |
joinYmdt | Date | Yes | Organization member enrollment date |
memberName | String | Yes | Member name |
memberTypeCode | String | Yes | Member classification (TOAST_CLOUD: NHN Cloud member, IAM: IAM member) |
memberUuid | String | Yes | Member's UUID |
recentLoginYmdt | Date | Yes | Last login date |
recentPasswordModifyYmdt | Date | No | Date of last password change |
roleCode | String | No | Role ID |
roles | List |
No | List of related roles (with condition attributes) |
secondFactorCertificationYn | String | No | Whether to set up two-step sign-in (available to NHN Cloud members only) |
Name | Type | Required | Description |
---|---|---|---|
roleId | String | Yes | Role ID |
roleName | String | Yes | Role name |
description | String | No | Role descriptions |
categoryKey | String | Yes | Role/Privilege Category Taxonomy Key
|
categoryTypeCode | String | Yes | Role group/role/privilege distinguishing codes (ORG_ROLE_GROUP, PERMISSION, ROLE, ROLE_GROUP, SYSTEM) |
conditions | List |
No | Condition attributes |
roleApplyPolicyCode | String | Yes | Whether the role is enabled ALLOW, DENY |
regDateTime | Date | Yes | When the role was created |
Name | Type | Required | Description |
---|---|---|---|
attributeDataTypeCode | String | Yes | Conditional attribute data type (BOOLEAN, DATETIME, DAY_OF_WEEK, IPADDRESS, NUMERIC, STRING, TIME) |
attributeDescription | String | No | Condition attribute description |
attributeId | String | Yes | Condition attribute ID |
attributeName | String | Yes | Condition attribute name |
attributeOperatorTypeCode | String | Yes | Condition attribute operator Available operators vary depending on the conditional attribute data type
|
attributeValues | List |
Yes | Condition attribute value |
POST "/v1/organizations/{org-id}/members/search"
API to get a list of NHN Cloud members belonging to an organization.
Organization.Member.List
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | org-id | String | Yes | Organization ID |
Request Body | request | SearchOrgMembersRequest | Yes | Request |
Name | Type | Required | Description |
---|---|---|---|
memberStatusCodes | List |
No | Status of the member to look up
|
roleIds | Set |
No | Role IDs assigned to members |
paging | PagingBean | No |
Name | Type | Required | Description |
---|---|---|---|
limit | Integer | No | Number of displays per page, default 20 |
page | Integer | No | Target Page, default 1 |
{
"orgMembers": [ {
"memberUuid": "memberUuid",
"memberTypeCode": "memberTypeCode",
"inviteStatusCode": "COMPLETE",
"maskingEmail": "maskingEmail",
"memberName": "memberName",
"secondFactorCertificationYn": "secondFactorCertificationYn",
"id": "id",
"joinYmdt": "2000-01-23T04:56:07.000+00:00",
"recentPasswordModifyYmdt": "2000-01-23T04:56:07.000+00:00",
"email": "email",
"recentLoginYmdt": "2000-01-23T04:56:07.000+00:00"
}],
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "resultMessage"
},
"paging": {
"limit": 0,
"page": 6,
"totalCount": 1
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes | |
orgMembers | List |
Yes | Organization member list |
paging | PagingResponse | Yes | About the page |
Name | Type | Required | Description |
---|---|---|---|
String | Yes | The member's email address | |
inviteStatusCode | String | No | Member's invitation status (COMPLETE, EXPIRE, UNKNOWN, WAIT) |
joinYmdt | Date | Yes | When you joined |
maskingEmail | String | Yes | Member's masked email |
memberName | String | Yes | Member's name |
memberTypeCode | String | Yes | Member classification (TOAST_CLOUD: NHN Cloud member, IAM: IAM member) |
memberUuid | String | No | Member's UUID Doesn't return a value if you're inviting |
recentLoginYmdt | Date | Yes | Last login date |
recentPasswordModifyYmdt | Date | No | Date of last password change |
secondFactorCertificationYn | String | No | Whether to set up two-step sign-in (available to NHN Cloud members only) |
Name | Type | Required | Description |
---|---|---|---|
limit | Integer | No | Number of displays per page, default 20 |
page | Integer | No | Target Page, default 1 |
totalCount | Long | Yes | Total number of cases |
GET "/v1/organizations/{org-id}/project-role-groups"
API to get a list of project common role groups set up by your organization.
Organization.Project.RoleGroup.List
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | org-id | String | Yes | Organization ID for the lookup |
Query | descriptionLike | String | No | Description |
Query | roleGroupNameLike | String | No | Role group name |
Query | limit | Integer | No | Number of displays per page, default 20 |
Query | page | Integer | No | Target Page, default 1 |
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "resultMessage"
},
"paging": {
"limit": 0,
"page": 6,
"totalCount": 1
},
"roleGroups": [ {
"regDateTime": "2000-01-23T04:56:07.000+00:00",
"roleGroupType": "ORG",
"description": "description",
"roleGroupName": "roleGroupName",
"roleGroupId": "roleGroupId"
} ]
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes | |
paging | PagingResponse | Yes | |
roleGroups | List |
Yes | List of available role groups in your project |
Name | Type | Required | Description |
---|---|---|---|
description | String | No | Role group descriptions |
regDateTime | Date | Yes | When the role group was created |
roleGroupId | String | Yes | Role group ID |
roleGroupName | String | Yes | Name of the role group |
roleGroupType | String | Yes | Types of role groups
|
GET "/v1/product-uis/hierarchy"
API to return homepage category, homepage service information that is exposed on the bill.
This API can be called without specific permissions if you are signed up to NHN Cloud.
However, if you're viewing an organization's products, you must be a member of a project in that organization or a project under that organization.
In | Name | Type | Required | Description |
---|---|---|---|---|
Query | productUiType | String | Yes | Product UI Types
|
Query | orgId | String | No | Organization ID must be entered if the product UI type is ORG |
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "resultMessage"
},
"productUiList": [ {
"productUiId": "productUiId",
"parentProductUiId": "parentProductUiId",
"children": [ null ],
"productUiName": "productUiName",
"productId": "productId",
"manualLink": "manualLink"
} ]
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes | |
productUiList | List |
Yes | Homepage Category Product UI List |
Name | Type | Required | Description |
---|---|---|---|
children | List |
No | Homepage Service Product UI List |
manualLink | String | No | |
parentProductUiId | String | No | Product UI divisions |
productId | String | No | |
productUiId | String | No | Product UI identification key |
productUiName | String | No |
GET "/v1/projects/{project-id}/products/{product-id}"
Product Name: ProductAppKey.Get
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | project-id | String | Yes | Project ID to look up |
Path | product-id | String | Yes | Service ID to look up |
{
"hasUpdateSecretKeyPermission": true,
"product": {
"updateDate": "updateDate",
"productId": "productId",
"relationDate": "relationDate",
"secretKey": "secretKey",
"externalId": "externalId",
"productSecretKeyCode": "F",
"productName": "productName",
"updateUuid": "updateUuid",
"appKey": "appKey",
"productStatusCode": "STABLE",
"projectId": "projectId",
"statusCode": "STABLE"
},
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "resultMessage"
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes | |
hasUpdateSecretKeyPermission | Boolean | Yes | Permission to reissue secret keys |
product | ProjectProductRelationAndProductProtocol | Yes | Returns information about the services being used by the project for the specified service ID, not including on error |
Name | Type | Required | Description |
---|---|---|---|
appKey | String | Yes | AppKey information for the service your project is using |
externalId | String | No | Tenant ID Only available if the tenant ID exists for the service |
productId | String | Yes | Service ID |
productName | String | Yes | Product name |
productSecretKeyCode | String | No | Whether to use a secret key T: Enabled Others: Not used (F, N) |
productStatusCode | String | Yes | Service status (STABLE, CLOSED) |
projectId | String | Yes | The project ID that uses the service |
relationDate | Date | Yes | When you started using the service |
secretKey | String | Yes | Service SecretKey Only available on services that use secretKey |
statusCode | String | Yes | The service's usage status (STABLE, CLOSED) |
updateDate | Date | No | Service last modified date |
updateUuid | String | No | Service AppKey Modifier UUID |
GET "/v1/projects/{project-id}/members/{member-uuid}"
API to get a specific member of a project.
Project.Member.Get
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | project-id | String | Yes | Project ID to look up members |
Path | member-uuid | String | Yes | Member UUID to look up |
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "resultMessage"
},
"projectMember": {
"emailAddress": "emailAddress",
"memberTypeCode": "IAM",
"roles": [ {
"regDateTime": "2000-01-23T04:56:07.000+00:00",
"roleApplyPolicyCode": "ALLOW",
"roleId": "roleId",
"roleName": "roleName",
"categoryKey": "categoryKey",
"description": "description",
"categoryTypeCode": "ORG_ROLE_GROUP",
"conditions": [ {
"attributeId": "attributeId",
"attributeOperatorTypeCode": "ALLOW",
"attributeValues": [ "attributeValues", "attributeValues" ],
"attributeDescription": "attributeDescription",
"attributeName": "attributeName",
"attributeDataTypeCode": "BOOLEAN"
} ]
} ],
"maskingEmail": "maskingEmail",
"memberName": "memberName",
"relationDateTime": "2000-01-23T04:56:07.000+00:00",
"uuid": "uuid",
"statusCode": "COMPLETE"
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes | |
projectMember | ProjectMemberRoleBundleProtocol | Yes | Added member information, not included on error |
Name | Type | Required | Description |
---|---|---|---|
emailAddress | String | No | Member email address |
maskingEmail | String | No | Member's masked email |
memberName | String | No | Member name |
memberTypeCode | String | No | Member Distinction (IAM, TOAST_CLOUD) |
relationDateTime | Date | No | Time to add members |
roles | List |
No | List of related roles (with condition attributes) |
statusCode | String | No | Invitation status codes (COMPLETE, EXPIRE, UNKNOWN, WAIT) |
UUID | String | No | Member UUID |
POST "/v1/projects/{project-id}/members/search"
API for getting a list of members belonging to a project.
Project.Member.List
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | project-id | String | Yes | Project ID to look up |
Request Body | request | SearchProjectMembersRequest | Yes | Request |
Name | Type | Required | Description |
---|---|---|---|
memberStatusCodes | List |
No | Project member status codes (INVITED, STABLE) |
roleIds | List |
No | List of role IDs |
paging | PagingBean | No |
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "resultMessage"
},
"paging": {
"limit": 0,
"page": 6,
"totalCount": 1
},
"projectMembers": [ {
"emailAddress": "emailAddress",
"memberTypeCode": "TOAST_CLOUD",
"maskingEmail": "maskingEmail",
"memberName": "memberName",
"relationDateTime": "2000-01-23T04:56:07.000+00:00",
"uuid": "uuid",
"statusCode": "COMPLETE"
} ]
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes | |
paging | PagingResponse | Yes | |
projectMembers | List |
Yes | Project members |
Name | Type | Required | Description |
---|---|---|---|
emailAddress | String | No | Member email address |
maskingEmail | String | No | Member's masked email |
memberName | String | No | Member name |
memberTypeCode | String | No | Separate members |
relationDateTime | Date | No | Time to add members |
statusCode | String | No | Invitation status codes (COMPLETE, EXPIRE, UNKNOWN, WAIT) |
UUID | String | No | Member UUID |
GET "/v1/projects/{project-id}/project-role-groups/{role-group-id}"
API to get a project's role groups.
Project.RoleGroup.Get
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | project-id | String | Yes | Project ID to look up |
Path | role-group-id | String | Yes | Project role group ID Project common role group IDs cannot be looked up |
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "resultMessage"
},
"roleGroup": {
"regDateTime": "2000-01-23T04:56:07.000+00:00",
"roleGroupType": "ORG",
"roles": [ {
"regDateTime": "2000-01-23T04:56:07.000+00:00",
"roleApplyPolicyCode": "ALLOW",
"roleId": "roleId",
"roleName": "roleName",
"categoryKey": "categoryKey",
"description": "description",
"categoryTypeCode": "ORG_ROLE_GROUP",
"conditions": [ {
"attributeId": "attributeId",
"attributeOperatorTypeCode": "ALLOW",
"attributeValues": [ "attributeValues", "attributeValues" ],
"attributeDescription": "attributeDescription",
"attributeName": "attributeName",
"attributeDataTypeCode": "BOOLEAN"
} ]
} ],
"description": "description",
"roleGroupName": "roleGroupName",
"roleGroupId": "roleGroupId"
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes | |
roleGroup | RoleGroupBundleProtocol | Yes | Role groups with related roles |
Name | Type | Required | Description |
---|---|---|---|
roleGroupId | String | No | Role group ID |
roleGroupName | String | No | Role group name |
description | String | No | Role group descriptions |
roleGroupType | String | No | Role group distinction (organization, project) |
roles | List |
No | List related roles |
regDateTime | Date | No | Registered date and time |
GET "/v1/organizations/{org-id}/project-role-groups/{role-group-id}"
API to get project common role groups.
Organization.Project.RoleGroup.Get
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | org-id | String | Yes | Organization ID for the lookup |
Path | role-group-id | String | Yes | Project common role group ID |
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "resultMessage"
},
"roleGroup": {
"regDateTime": "2000-01-23T04:56:07.000+00:00",
"roleGroupType": "ORG",
"roles": [ {
"regDateTime": "2000-01-23T04:56:07.000+00:00",
"roleApplyPolicyCode": "ALLOW",
"roleId": "roleId",
"roleName": "roleName",
"categoryKey": "categoryKey",
"description": "description",
"categoryTypeCode": "ORG_ROLE_GROUP",
"conditions": [ {
"attributeId": "attributeId",
"attributeOperatorTypeCode": "ALLOW",
"attributeValues": [ "attributeValues", "attributeValues" ],
"attributeDescription": "attributeDescription",
"attributeName": "attributeName",
"attributeDataTypeCode": "BOOLEAN"
} ]
} ],
"description": "description",
"roleGroupName": "roleGroupName",
"roleGroupId": "roleGroupId"
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes | |
roleGroup | RoleGroupBundleProtocol | Yes | Role groups with related roles |
GET "/v1/projects/{project-id}/project-role-groups"
API to get all role groups in a project.
Project.RoleGroup.List
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | project-id | String | Yes | Project ID to look up |
Query | descriptionLike | String | No | Description |
Query | roleGroupNameLike | String | No | Role group name |
Query | limit | Integer | No | Number of displays per page, default 20 |
Query | page | Integer | No | Target Page, default 1 |
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "resultMessage"
},
"paging": {
"limit": 0,
"page": 6,
"totalCount": 1
},
"roleGroups": [ {
"regDateTime": "2000-01-23T04:56:07.000+00:00",
"roleGroupType": "ORG",
"description": "description",
"roleGroupName": "roleGroupName",
"roleGroupId": "roleGroupId"
} ]
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes | |
paging | PagingResponse | Yes | |
roleGroups | List<RoleGroupProtocol> | Yes | List of available role groups in your project |
GET "/v1/organizations/{org-id}/projects"
API to get a list of projects in a STABLE state that belong to a specific organization.
Members of an organization
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | org-id | String | Yes | The ID of the organization to look up |
Query | memberUuid | String | No | Organization member UUID |
Query | projectName | String | No | Project name |
Query | page | Integer | No | Target Page, default 1 |
Query | limit | Integer | No | Number of displays per page, default 20 |
{
"projectList": [ {
"regDateTime": "2000-01-23T04:56:07.000+00:00",
"delDateTime": "2000-01-23T04:56:07.000+00:00",
"description": "description",
"orgId": "orgId",
"projectStatusCode": "STABLE",
"modDateTime": "2000-01-23T04:56:07.000+00:00",
"projectName": "projectName",
"projectId": "projectId"
} ],
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "resultMessage"
},
"paging": {
"limit": 0,
"page": 6,
"totalCount": 1
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes | |
paging | PagingResponse | Yes | |
projectList | List |
Yes |
Name | Type | Required | Description |
---|---|---|---|
delDateTime | Date | No | Project deletion date |
description | String | No | Project description |
modDateTime | Date | No | Project modification date |
orgId | String | Yes | The organization ID the project belongs to |
projectId | String | Yes | Project ID |
projectName | String | Yes | Project name |
projectStatusCode | String | Yes | Project status
|
regDateTime | Date | Yes | Project registration date |
GET "/v1/organizations/{org-id}/governances"
API to get the active governance.
Organization.Governance.List
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | org-id | String | Yes | Organization ID for the lookup |
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "resultMessage"
},
"usingGovernances": [ {
"regDatetime": "2000-01-23T04:56:07.000+00:00",
"governanceTypeCode": "governanceTypeCode"
} ]
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes | |
usingGovernances | List |
No | List governance in use |
Name | Type | Required | Description |
---|---|---|---|
governanceTypeCode | String | No | Governance type |
regDatetime | Date | No | When to enable governance |
POST "/v1/organizations/{org-id}/project-role-groups"
API to create project common role groups.
Organization.Project.RoleGroup.Create
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | org-id | String | Yes | Organization ID |
Request Body | request | CreateRoleGroupRequest | Yes | Request |
Name | Type | Required | Description |
---|---|---|---|
description | String | No | Role group descriptions |
roleGroupName | String | Yes | Role group name |
roles | List |
Yes | List roles to assign to a role group |
Name | Type | Required | Description |
---|---|---|---|
conditions | List<AssignAttributeConditionProtocol> | No | Role condition attribute |
roleApplyPolicyCode | String | Yes | Whether the role is enabled ALLOW, DENY |
roleId | String | Yes | Role ID |
{
"header" : {
"isSuccessful" : true,
"resultCode" : 0,
"resultMessage" : "resultMessage"
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes |
DELETE "/v1/organizations/{org-id}/project-role-groups"
API to delete a project common role group.
Organization.Project.RoleGroup.Delete
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | org-id | String | Yes | Organization ID |
Request Body | request | DeleteRoleGroupRequest | Yes | Request |
Name | Type | Required | Description |
---|---|---|---|
roleGroupIds | List |
Yes | List of role group IDs |
{
"header" : {
"isSuccessful" : true,
"resultCode" : 0,
"resultMessage" : "resultMessage"
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes |
PUT "/v1/organizations/{org-id}/project-role-groups/{role-group-id}/infos"
API to modify the name and description of a project's common role group.
Organization.Project.RoleGroup.Update
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | org-id | String | Yes | Organization ID |
Path | role-group-id | String | Yes | Role group ID |
Request Body | request | UpdateRoleGroupInfoRequest | Yes | Request |
Name | Type | Required | Description |
---|---|---|---|
description | String | No | Role group descriptions |
roleGroupName | String | Yes | Role group name |
{
"header" : {
"isSuccessful" : true,
"resultCode" : 0,
"resultMessage" : "resultMessage"
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes |
PUT "/v1/organizations/{org-id}/project-role-groups/{role-group-id}/roles"
API to modify roles in the project common roles group.
Organization.Project.RoleGroup.Update
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | org-id | String | Yes | Organization ID |
Path | role-group-id | String | Yes | Role group ID |
Request Body | request | UpdateRoleGroupRequest | Yes | Request |
Name | Type | Required | Description |
---|---|---|---|
roles | List<AssignRoleProtocol> | Yes | List roles to assign to a role group |
{
"header" : {
"isSuccessful" : true,
"resultCode" : 0,
"resultMessage" : "resultMessage"
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes |
POST "/v1/projects/{project-id}/project-role-groups"
API to create role groups in your project.
Project.RoleGroup.Create
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | project-id | String | Yes | Project ID |
Request Body | request | CreateRoleGroupRequest | Yes | Request |
{
"header" : {
"isSuccessful" : true,
"resultCode" : 0,
"resultMessage" : "resultMessage"
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes |
DELETE "/v1/projects/{project-id}/project-role-groups"
API to delete a project role group.
Project.RoleGroup.Delete
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | project-id | String | Yes | Project ID |
Request Body | request | DeleteRoleGroupRequest | Yes | Request |
{
"header" : {
"isSuccessful" : true,
"resultCode" : 0,
"resultMessage" : "resultMessage"
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes |
PUT "/v1/projects/{project-id}/project-role-groups/{role-group-id}/infos"
API to modify the name and description of a project role group.
Project.RoleGroup.Update
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | project-id | String | Yes | Project ID |
Path | role-group-id | String | Yes | Role group ID |
Request Body | request | UpdateRoleGroupInfoRequest | Yes | Request |
{
"header" : {
"isSuccessful" : true,
"resultCode" : 0,
"resultMessage" : "resultMessage"
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes |
PUT "/v1/projects/{project-id}/project-role-groups/{role-group-id}/roles"
API to modify roles in the project role group.
Project.RoleGroup.Update
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | project-id | String | Yes | Project ID |
Path | role-group-id | String | Yes | Role group ID |
Request Body | request | UpdateRoleGroupRequest | Yes | Request |
Name | Type | Required | Description |
---|---|---|---|
roles | List<AssignRoleProtocol> | Yes | List roles to assign to a role group |
{
"header" : {
"isSuccessful" : true,
"resultCode" : 0,
"resultMessage" : "resultMessage"
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes |
PUT "/v1/organizations/{org-id}/members/{member-uuid}"
API to modify the roles of members who belong to this organization.
Organization.Member.Update
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | org-id | String | Yes | Organization ID |
Path | member-uuid | String | Yes | UUID of the member to modify |
Request Body | request | UpdateMemberRoleRequest | Yes | Request |
Name | Type | Required | Description |
---|---|---|---|
assignRoles | List<UserAssignRoleProtocol> | Yes | List of roles to assign to users |
{
"header" : {
"isSuccessful" : true,
"resultCode" : 0,
"resultMessage" : "resultMessage"
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes |
PUT "/v1/projects/{project-id}/members/{member-uuid}"
API to change the role of a specified member in a project.
Project.Member.Update
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | project-id | String | Yes | Project ID |
Path | member-uuid | String | Yes | Member UUID to change role to |
Request Body | request | UpdateMemberRoleRequest | Yes | Request |
{
"header" : {
"isSuccessful" : true,
"resultCode" : 0,
"resultMessage" : "resultMessage"
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes |
GET "/v1/iam/organizations/{org-id}/members/{member-uuid}"
API to get the IAM members in your organization.
Organization.Member.Iam.Get
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | org-id | String | Yes | Organization ID to look up |
Path | member-uuid | String | Yes | The IAM member UUID of the organization to look up |
{
"orgMember": {
"country": "country",
"englishName": "englishName",
"nativeName": "nativeName",
"passwordChangedAt": "2000-01-23T04:56:07.000+00:00",
"lastLoggedInAt": "2000-01-23T04:56:07.000+00:00",
"roles": [ {
"regDateTime": "2000-01-23T04:56:07.000+00:00",
"roleApplyPolicyCode": "ALLOW",
"roleId": "roleId",
"roleName": "roleName",
"categoryKey": "categoryKey",
"description": "description",
"categoryTypeCode": "ORG_ROLE_GROUP",
"conditions": [ {
"attributeId": "attributeId",
"attributeOperatorTypeCode": "ALLOW",
"attributeValues": [ "attributeValues", "attributeValues" ],
"attributeDescription": "attributeDescription",
"attributeName": "attributeName",
"attributeDataTypeCode": "BOOLEAN"
} ]
}],
"officeHoursEnd": "officeHoursEnd",
"userCode": "userCode",
"organizationId": "organizationId",
"createdAt": "2000-01-23T04:56:07.000+00:00",
"emailAddress": "emailAddress",
"lastLoggedInIp": "lastLoggedInIp",
"nickname": "nickname",
"idProviderId": "idProviderId",
"mobilePhoneCountryCode": "mobilePhoneCountryCode",
"id": "id",
"department": "department",
"saasRoles": [ {
"role": "role",
"productId": "productId",
"productName": "productName"
}],
"profileImageUrl": "profileImageUrl",
"lastAccessedAt": "2000-01-23T04:56:07.000+00:00",
"maskingEmail": "maskingEmail",
"telephone": "telephone",
"creationType": "creationType",
"idProviderType": "idProviderType",
"officeHoursBegin": "officeHoursBegin",
"mobilePhone": "mobilePhone",
"corporate": "corporate",
"idProviderUserId": "idProviderUserId",
"name": "name",
"position": "position",
"status": "status"
},
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "resultMessage"
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes | |
orgMember | OrgIamMemberRoleBundleProtocol | No |
Name | Type | Required | Description |
---|---|---|---|
corporate | String | No | |
country | String | No | |
createdAt | Date | No | |
creationType | String | No | Member's creation type |
department | String | No | |
emailAddress | String | Yes | IAM member email address |
englishName | String | No | |
id | String | Yes | IAM member UUID |
idProviderId | String | No | |
idProviderType | String | No | service: IAM direct sign-in SSO: Customer SSO integration |
idProviderUserId | String | No | |
lastAccessedAt | Date | No | The member's last access date, returning null if not present |
lastLoggedInAt | Date | No | The member's last login date, returning null if not found |
lastLoggedInIp | String | No | The member's last login IP address, returning null if not present |
maskingEmail | String | No | Masked email addresses for IAM members |
mobilePhone | String | No | IAM member's cell phone number |
mobilePhoneCountryCode | String | No | |
name | String | Yes | Name of the IAM member |
nativeName | String | No | |
nickname | String | No | |
officeHoursBegin | String | No | |
officeHoursEnd | String | No | |
organizationId | String | Yes | Organization ID of the IAM member |
passwordChangedAt | Date | No | When the member's last password was changed, returning null if none |
position | String | No | |
profileImageUrl | String | No | |
roles | List |
No | List of related roles (with condition attributes) |
saasRoles | List |
No | IAM member roles |
String | String | No | Member's status |
telephone | String | No | IAM member's phone number |
userCode | String | Yes | IAM member ID |
Name | Type | Required | Description |
---|---|---|---|
productId | String | No | |
productName | String | No | |
String | String | No |
GET "/v1/iam/organizations/{org-id}/members"
API to get a list of IAM members that belong to this organization.
Organization.Member.Iam.List
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | org-id | String | Yes | Organization ID |
Query | String | No | IAM member's email address | |
Query | emailLike | String | No | |
Query | idProviderType | String | No | service: IAM direct sign-in SSO: Customer SSO integration |
Query | nameLike | String | No | |
Query | statuses | List |
No | |
Query | userCode | String | No | IAM member ID |
Query | userCodeLike | String | No | |
Query | limit | Integer | No | Number of displays per page, default 20 |
Query | page | Integer | No | Target Page, default 1 |
{
"orgMembers": [ {
"country": "country",
"englishName": "englishName",
"nativeName": "nativeName",
"passwordChangedAt": "2000-01-23T04:56:07.000+00:00",
"lastLoggedInAt": "2000-01-23T04:56:07.000+00:00",
"officeHoursEnd": "officeHoursEnd",
"userCode": "userCode",
"organizationId": "organizationId",
"createdAt": "2000-01-23T04:56:07.000+00:00",
"emailAddress": "emailAddress",
"lastLoggedInIp": "lastLoggedInIp",
"nickname": "nickname",
"idProviderId": "idProviderId",
"mobilePhoneCountryCode": "mobilePhoneCountryCode",
"id": "id",
"department": "department",
"saasRoles": [ {
"role": "role",
"productId": "productId",
"productName": "productName"
} ],
"profileImageUrl": "profileImageUrl",
"lastAccessedAt": "2000-01-23T04:56:07.000+00:00",
"maskingEmail": "maskingEmail",
"telephone": "telephone",
"creationType": "creationType",
"idProviderType": "idProviderType",
"officeHoursBegin": "officeHoursBegin",
"mobilePhone": "mobilePhone",
"corporate": "corporate",
"idProviderUserId": "idProviderUserId",
"name": "name",
"position": "position",
"status": "status"
} ],
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "resultMessage"
},
"paging": {
"limit": 0,
"page": 6,
"totalCount": 1
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes | |
orgMembers | List |
No | Organization IAM member list |
paging | PagingResponse | No |
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes | Required only if protocol is in response |
id | String | No | IAM member UUID |
userCode | String | Yes | IAM member ID to use for sign-in |
name | String | Yes | Username of the IAM member |
emailAddress | String | Yes | IAM member's email address Used to receive notifications or to change your password. |
maskingEmail | String | No | Masked email addresses for IAM members |
mobilePhone | String | No | IAM member's cell phone number |
telephone | String | No | IAM member phone number |
position | String | No | |
department | String | No | |
corporate | String | No | |
profileImageUrl | String | No | |
englishName | String | No | |
nativeName | String | No | |
nickname | String | No | |
officeHoursBegin | String | No | |
officeHoursEnd | String | No | |
String | String | Yes | Member status can be changed
|
creationType | String | No | |
idProviderId | String | No | |
idProviderType | String | No | service: IAM direct sign-in (default) SSO: Customer SSO integration (cannot be set up if not integrated) |
idProviderUserId | String | No | |
createdAt | Date | No | Date and time of creation |
lastAccessedAt | Date | No | Date of last access |
lastLoggedInAt | Date | No | Date of last login |
lastLoggedInIp | String | No | Last logged in IP |
passwordChangedAt | Date | No | When to change your password |
mobilePhoneCountryCode | String | No | Required when entering a mobile phone number |
organizationId | String | No | Organization ID of the IAM member |
country | String | No | |
saasRoles | List<IamMemberRole> | No | IAM roles |
POST "/v1/iam/organizations/{org-id}/members"
API to add IAM members to your organization.
Organization.Member.Iam.Create
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | org-id | String | Yes | Organization ID |
Request Body | request | AddIamOrgMemberRequest | Yes | Request |
Name | Type | Required | Description |
---|---|---|---|
member | IamOrgMemberProtocol | Yes |
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "resultMessage"
},
"uuid": "uuid"
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes | |
UUID | String | No | IAM member UUID |
POST "/v1/iam/organizations/{org-id}/members/{member-id}/send-password-setup-mail"
API to send an email to an IAM member to change their password.
Organization.Member.Iam.Update
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | org-id | String | Yes | Target organization ID |
Path | member-id | String | Yes | UUID of the IAM member whose password you want to change |
Request Body | request | SendPasswordSetupMailRequest | Yes | Request |
Name | Type | Required | Description |
---|---|---|---|
locale | String | No | User's locale information Example: en |
returnUrl | String | No | The address of the page you'll be directed to after you change your password via email change notification. You must enter the toast.com, dooray.com, or nhncloud.com domain in the Go To address information |
{
"header" : {
"isSuccessful" : true,
"resultCode" : 0,
"resultMessage" : "resultMessage"
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes |
PUT "/v1/iam/organizations/{org-id}/members/{member-uuid}"
API to modify your organization's IAM member information.
Organization.Member.Iam.Update
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | org-id | String | Yes | Target organization ID |
Path | member-uuid | String | Yes | UUID of the IAM member you want to change |
Request Body | request | UpdateIamMemberRequest | Yes | Request |
Name | Type | Required | Description |
---|---|---|---|
member | IamOrgMemberProtocol | Yes |
{
"header" : {
"isSuccessful" : true,
"resultCode" : 0,
"resultMessage" : "resultMessage"
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes |
POST "/v1/iam/organizations/{org-id}/members/{member-id}/set-password"
API to change the password of an organization IAM member.
Organization.Member.Iam.Update
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | org-id | String | Yes | Target organization ID |
Path | member-id | String | Yes | UUID of the IAM member whose password you want to change |
Request Body | request | UpdateIamPasswordRequest | Yes | Request |
Name | Type | Required | Description |
---|---|---|---|
password | String | Yes | Password to set |
{
"header" : {
"isSuccessful" : true,
"resultCode" : 0,
"resultMessage" : "resultMessage"
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes |
GET "/v1/organizations/{org-id}/products/ip-acl"
API to get IP ACL settings.
Organization.Governance.IpAcl.List
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | org-id | String | Yes | Organization ID |
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "resultMessage"
},
"orgIpAcl": [ {
"productId": "productId",
"ips": [ "ips" ]
} ]
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes | |
orgIpAcl | List |
Yes | If the result is an empty list, the setting is not set. |
Name | Type | Required | Description |
---|---|---|---|
ips | List |
Yes | Allowed IPs |
productId | String | Yes | Product ID If undefined, set to Common Settings |
GET "/v1/iam/organizations/{org-id}/settings/session"
API to get login session settings information.
Organization.Setting.Iam.Get
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | org-id | String | Yes | Organization ID |
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": ""
},
"result": {
"content": {
"multiSessionsLimit": 1,
"sessionTimeoutMinutes": 10,
"mobileSessionTimeoutMinutes": 10,
"sessionType": "fixed"
}
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes | |
result | Content | Yes | Setup contents |
Name | Type | Required | Description |
---|---|---|---|
multiSessionsLimit | Integer | Yes | Number of multisessions allowed |
sessionTimeoutMinutes | Integer | Yes | Session timeouts |
mobileSessionTimeoutMinutes | Integer | Yes | Mobile session timeout |
sessionType | String | Yes | fixed/idle. The default is fixed |
GET "/v1/iam/organizations/{org-id}/settings/security-mfa"
API to get settings for login two-factor authentication.
Organization.Setting.Iam.Get
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | org-id | String | Yes | Organization ID |
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": ""
},
"result": {
"range": "organization",
"organizationMfaSetting": {
"type": "email",
"bypassByIp": {
"enable": true
"ipList": [
"1.1.1.1",
"1.1.1.1/24"
]
}
},
"serviceMfaSettings": [{
"serviceId": "{toast-service-id}",
"type": "totp",
"bypassByIp": {
"enable": true
"ipList": [
"1.1.1.1",
"1.1.1.1/24"
]
}
}]
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes | |
result | Result | No | Response content If never set, null is returned |
Name | Type | Required | Description |
---|---|---|---|
range | Integer | No | Organization/Service status organization (common settings), services (service-specific settings) |
organizationMfaSetting | OrganizationMfaSetting | No | About organizational MFA settings Common Settings |
serviceMfaSettings | ServiceMfaSettings | No | About service-specific MFA settings |
Name | Type | Required | Description |
---|---|---|---|
String | String | No | MFA type none (no setting), totp (Google OTP), email (email) |
bypassByIp | BypassByIp | No | Exception IP |
Name | Type | Required | Description |
---|---|---|---|
serviceId | Sting | No | Service ID |
String | String | No | MFA type none (no setting), totp (Google OTP), email (email) |
bypassByIp | BypassByIp | No | Service type. none, totp, email |
Name | Type | Required | Description |
---|---|---|---|
String | Boolean | No | Activated or not true (enabled), false (disabled) |
ipList | List |
No | List of exception IPs |
GET "/v1/iam/organizations/{org-id}/settings/security-login-fail"
API to get login failure security settings.
Organization.Setting.Iam.Get
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | org-id | String | Yes | Organization ID |
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": ""
},
"result": {
"enable": false,
"loginFailCount": {
"limit": "5",
"blockMinutes": "2"
}
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes | |
result | Result | No | Returned only if login failure security is set, otherwise null is returned |
Name | Type | Required | Description |
---|---|---|---|
String | Boolean | Yes | Activated or not true (enabled), false (disabled) |
loginFailCount | LoginFailCount | No | Setting up login failure security |
Name | Type | Required | Description |
---|---|---|---|
limit | Integer | No | Number of attempts allowed |
blockMinutes | Integer | No | Login ban time |
POST "/v1/billing/contracts/basic/products/prices/search"
API to get the unit price set on a counter. For each language, you can get the impression name and type for calculating the amount.
APIs that can be called if you have signed up to NHN Cloud
In | Name | Type | Required | Description |
---|---|---|---|---|
Query | limit | Integer | No | |
Request Body | request | GetContractProductPriceRequest | Yes | Request |
Name | Type | Required | Description |
---|---|---|---|
counterNames | List |
No | List of counter names in the product meta Full search box if not found |
paging | Paging | No |
Name | Type | Required | Description |
---|---|---|---|
limit | Integer | No | Number of displays per page, default 20 |
page | Integer | No | Target Page, default 1 |
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "resultMessage"
},
"paging": {
"limit": 6,
"page": 1,
"totalCount": 5
},
"prices": [ {
"contractDiscountPolicyId": "jxzEL2C09G20oDX3",
"originalPrice": 0.8008281904610115,
"monthFrom": "monthFrom",
"displayNameJa": "displayNameJa",
"rangeFrom": 1.4658129805029452,
"monthTo": "monthTo",
"counterName": "counterName",
"slidingCalculationTypeCode": "NONE",
"rangeTo": 5.962133916683182,
"displayNameZh": "displayNameZh",
"price": 6.027456183070403,
"contractId": "3YVRwIVU",
"displayNameEn": "displayNameEn",
"displayNameKo": "displayNameKo",
"seq": 5,
"useFixPriceYn": "N"
} ]
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes | |
paging | PagingResponse | Yes | Return paging results with no sorting criteria |
prices | List |
Yes | Returns unit price information from counters as an array Not included on error |
Name | Type | Required | Description |
---|---|---|---|
limit | Integer | Yes | Limit the number of views Default value is 1. |
page | Integer | Yes | |
totalCount | Integer | Yes |
Name | Type | Required | Description |
---|---|---|---|
contractDiscountPolicyId | String | Yes | Commitment Rate Policy ID |
contractId | String | Yes | Commitment ID |
counterName | String | Yes | Counters |
displayNameEn | String | No | English name of the counter |
displayNameJa | String | No | Japanese name of the counter |
displayNameKo | String | Yes | Korean name of the counter |
displayNameZh | String | No | Chinese name of the counter Currently exposed in English |
monthFrom | String | Yes | The start month for which unit price information is valid (inclusive) |
monthTo | String | Yes | Ending month for which unit price information is valid (not included) |
originalPrice | BigDecimal | Yes | Unit price |
price | BigDecimal | Yes | Unit price |
rangeFrom | BigDecimal | Yes | Start of usage range that falls under unit price (not included) |
rangeTo | BigDecimal | Yes | Ending usage ranges that fall under unit pricing (inclusive) |
seq | Long | Yes | Serial number |
slidingCalculationTypeCode | String | Yes | Types of sliding fee calculations NONE, SECTION_SUM, SECTION_SELECTED |
useFixPriceYn | String | Yes | Fixed amount or not (Y: Fixed amount , N: Unit price calculation) Y: price becomes an amount if it falls in the range N: (Usage x Unit Price) becomes an amount |
GET "/v1/billing/contracts/basic/products"
API that provides a list of the main categories and subcategories exposed in the bill, and the counters they contain.
APIs that can be called if you have signed up to NHN Cloud
In | Name | Type | Required | Description |
---|---|---|---|---|
Query | limit | Integer | No | Limit the number of views Default value is 1. |
Query | page | Integer | No |
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "resultMessage"
},
"paging": {
"limit": 6,
"page": 1,
"totalCount": 5
},
"products": [ {
"productId": "KGDeiKUq",
"unitName": "hours",
"regionTypeCode": "regionTypeCode",
"calcUnitCode": "HOURS",
"displayOrder": 0,
"minUsage": 2.3021358869347655,
"description": "description",
"productUiId": "CQvbgjJw",
"categorySub": "eNWZ3jZq2FsMSHaQ",
"convertUsageTypeCode": "NONE",
"marketPlaceMandatoryUsePeriod": 5,
"counterName": "c2.small",
"meterUnitCode": "HOURS",
"counterTypeCode": "DELTA",
"unit": 1,
"categoryMain": "eNWZ3jZq2FsMSHaQ",
"parentCounterName": "parentCounterName",
"budgetUsageTypeYn": "Y",
"chargingTypeId": "API CALLS",
"productMetadataStatusCode": "STABLE",
"usageAggregationUnitCode": "RESOURCE_ID"
} ]
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes | |
paging | PagingResponse | Yes | |
products | List |
Yes | Product meta information list |
Name | Type | Required | Description |
---|---|---|---|
budgetUsageTypeYn | String | No | Budget Usage Type Yn Y, N |
calcUnitCode | String | Yes | Units to use when calculating amounts (converts metering units to settlement units to calculate amounts), units to expose on statements KB, MB, GB, TB, SECONDS, MINUTE, HOURS, DAYS, MB_HOURS, GB_SECONDS, GB_HOURS, GB_DAYS, CORE_SECONDS, CORE_HOURS, CORE_DAYS, USERS, MAU, MAD, DAU, CALLS, COUNTS, CCU, VCPU_HOURS, COUNT_HOURS |
categoryMain | String | Yes | Main Categories |
categorySub | String | Yes | Subcategories |
chargingTypeId | String | Yes | Billing type ID |
convertUsageTypeCode | String | Yes | Usage conversion type codes NONE, HOUR_AVERAGE, DAY_AVERAGE |
counterName | String | Yes | Counters |
counterTypeCode | String | Yes | Methods for summing usage
|
description | String | No | Counter descriptions |
displayOrder | Integer | Yes | Exposure order |
marketPlaceMandatoryUsePeriod | Integer | No | Marketplace mandatory usage period |
meterUnitCode | String | Yes | Usage units when storing metering in a service BYTES, KB, MB, GB, TB, CORE, HOURS, MINUTE, USERS, MAU, MAD, DAU, CALLS, COUNTS, CCU, SECONDS |
minUsage | BigDecimal | Yes | Minimum usage |
parentCounterName | String | Yes | Parent counter name |
productId | String | Yes | Product ID |
productMetadataStatusCode | String | Yes | Counter status codes STABLE, CLOSED |
productUiId | String | Yes | Homepage Category/Homepage Service Identification ID |
regionTypeCode | String | Yes | The region code the countername belongs to
|
unit | Long | Yes | Settlement units |
unitName | String | Yes | Name to appear on the invoice |
usageAggregationUnitCode | String | No | Usage aggregation units RESOURCE_ID, COUNTER_NAME |
GET "/v1/authentications/projects/{project-id}/project-appkeys"
API to get a list of project AppKeys being used by the project.
Project.ProjectAppKey.List
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | project-id | String | Yes | Project ID to look up |
{
"authenticationList": [ {
"appKey": "appKey",
"authStatus": "STABLE",
"modDatetime": "2000-01-23T04:56:07.000+00:00",
"authId": "authId",
"projectId": "projectId",
"lastUsedDatetime": "2000-01-23T04:56:07.000+00:00",
"reIssueDatetime": "2000-01-23T04:56:07.000+00:00",
"regDatetime": "2000-01-23T04:56:07.000+00:00"
} ],
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "resultMessage"
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes | |
authenticationList | List |
No | Project AppKey List |
Name | Type | Required | Description |
---|---|---|---|
authId | String | No | Internally managed authentication method ID |
appKey | String | No | Project AppKey exposed to the console |
authStatus | String | No | Authentication status codes (STABLE, STOP, BLOCKED) |
projectId | String | No | Project ID |
lastUsedDatetime | Date | No | Date of last use |
modDatetime | Date | No | Date and time of deletion |
reIssueDatetime | Date | No | Regeneration time |
regDatetime | Date | No | Date and time of creation |
GET "/v1/authentications/user-access-keys"
API to get a list of a member's User Access Key IDs.
APIs that can be called if you have signed up to NHN Cloud
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "resultMessage"
},
"authentications": [ {
"userAccessKeyID": "userAccessKeyID",
"secretAccessKey": "secretAccessKey",
"authStatus": "STABLE",
"modDatetime": "2000-01-23T04:56:07.000+00:00",
"authId": "authId",
"uuid": "uuid",
"tokenExpiryPeriod": 0,
"lastUsedDatetime": "2000-01-23T04:56:07.000+00:00",
"reIssueDatetime": "2000-01-23T04:56:07.000+00:00",
"regDatetime": "2000-01-23T04:56:07.000+00:00"
} ]
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes | |
authentications | List |
No | List credentials |
Name | Type | Required | Description |
---|---|---|---|
authId | String | No | Internally managed authentication method ID |
userAccessKeyID | String | No | User Access Key ID |
secretAccessKey | String | No | Secret key (masked) |
authStatus | String | No | Authentication status codes (STABLE, STOP, BLOCKED) |
UUID | String | No | User UUID |
lastUsedDatetime | Date | No | Date of last use |
modDatetime | Date | No | Date and time of deletion |
reIssueDatetime | Date | No | Regeneration time |
regDatetime | Date | No | Date and time of creation |
tokenExpiryPeriod | Long | No | Token expiration cycle (in seconds) |
POST "/v1/authentications/projects/{project-id}/project-appkeys"
API to generate an AppKey for use in your project.
Project.ProjectAppKey.Create
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | project-id | String | Yes | The project ID where you want to register the AppKey |
Request Body | request | AddProjectAppKeyRequest | Yes | Request |
Name | Type | Required | Description |
---|---|---|---|
appkeyAlias | String | Yes | Project AppKey aliases 100-character limit |
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "resultMessage"
},
"authentication": {
"appKey": "appKey",
"authId": "authId"
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes | |
authentication | ResponseProtocol | No |
Name | Type | Required | Description |
---|---|---|---|
authId | String | No | Internally managed authentication method ID |
appKey | String | No | Project AppKey |
POST "/v1/authentications/user-access-keys"
API to register a member's User Access Key ID.
APIs that can be called if you have signed up to NHN Cloud
In | Name | Type | Required | Description |
---|---|---|---|---|
Request Body | PostUserAppKeyRequest | PostUserAppKeyRequest | Yes |
Name | Type | Required | Description |
---|---|---|---|
tokenExpiryPeriod | Long | No | Token expiration period seconds, with a default of |
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "resultMessage"
},
"authentication": {
"userAccessKeyID": "userAccessKeyID",
"secretAccessKey": "secretAccessKey",
"authId": "authId",
"tokenExpiryPeriod": 0
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes | |
authentication | ResponseProtocol | No |
Name | Type | Required | Description |
---|---|---|---|
authId | String | No | Internally managed authentication method ID |
userAccessKeyID | String | No | User Access Key ID |
secretAccessKey | String | No | Secret key |
tokenExpiryPeriod | Long | No | Token expiration period (in seconds) |
DELETE "/v1/authentications/projects/{project-id}/project-appkeys/{app-key}"
API to delete a project AppKey.
Project.ProjectAppKey.Delete
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | project-id | String | Yes | Target project ID |
Path | app-key | String | Yes | Project AppKey to delete |
{
"header" : {
"isSuccessful" : true,
"resultCode" : 0,
"resultMessage" : "resultMessage"
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes |
PUT "/v1/authentications/user-access-keys/{user-access-key-id}/secretkey-reissue"
API to reissue the secret key for a User Access Key ID.
Can only reissue the secret key for the user's own User Access Key ID
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | user-access-key-id | String | Yes | User Access Key ID |
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "resultMessage"
},
"authentication": {
"secretAccessKey": "secretAccessKey"
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes | |
authentication | ResponseProtocol | No |
Name | Type | Required | Description |
---|---|---|---|
secretAccessKey | String | Yes | Secret key |
PUT "/v1/authentications/user-access-keys/{user-access-key-id}"
API to change the state of a member's User Access Key ID.
Can only modify the user's own User Access Key ID
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | user-access-key-id | String | Yes | User Acess Key ID |
Request Body | request | UpdateUserAccessKeyStatusRequest | Yes | Request |
Name | Type | Required | Description |
---|---|---|---|
String | String | Yes | Project AppKey state to change (STOP: Stop, STABLE: Enable) |
{
"header" : {
"isSuccessful" : true,
"resultCode" : 0,
"resultMessage" : "resultMessage"
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes |
DELETE "/v1/authentications/user-access-keys/{user-access-key-id}"
API to delete a User Access Key ID.
Can only delete the user's own User Access Key ID
In | Name | Type | Required | Description |
---|---|---|---|---|
Path | user-access-key-id | String | Yes | User Access Key ID |
{
"header" : {
"isSuccessful" : true,
"resultCode" : 0,
"resultMessage" : "resultMessage"
}
}
{
"header" : {
"isSuccessful" : true,
"resultCode" : 0,
"resultMessage" : "resultMessage"
}
}
Name | Type | Required | Description |
---|---|---|---|
header | Common response | Yes |
Result code | Description | Actions |
---|---|---|
80007 | Errors when calling with an expired or non-existent token | Issue and redeem a new token |
-6 | Errors that occur when invoked by unauthorized callers | Give callers the right permissions |
-8 | Errors that occur when IP validation fails by an organization's IP ACL policy | Verify that the IP is registered in your organization's IP ACLs |
404 | Fired on API calls without | Check the httpmethod,uri of the API you're calling |
400 501 502 503 Server connection failed 505 |
Errors that occur when request parameters are not appropriate | Check request parameters for required and configurable values, etc. |
500 | Abnormal system errors | Contact a representative |
1000 | Errors that occur when parameters are incorrect Organization IAM member API - IAM member password change email send request value returnUrl is not an authorized domain (authorized domains: toast.com, dooray.com, nhncloud.com) |
Verify request parameters |
1201 | Errors caused by failed API requests internal to the server | Resolve based on the error message and code in the error message Contact your representative if the included error message and code are not sufficient for resolution. |
10005 70008 1104 |
Errors that occur when request parameters are not appropriate | Check request parameters for required and configurable values, etc. |
10009 | Errors when granting roles that don't exist in an organization or project | Change to give members an existing role |
10010 | Error when deleting a role group, when project members (including those being invited) are granted only that role group Error when changing project member roles and not granting any roles |
1) Change the roles of project members (including those you're inviting) whose only role groups are the ones you want to delete to other roles, or delete them 2) When changing the project member role, set the value for the role in the request by setting the Request |
10012 | Error when deleting a project member, if the member is deleted and the project no longer has a member with the ADMIN role. | 1) Give the ADMIN role to another project member who is not targeted for deletion 2) Delete targets that are not in the ADMIN role |
12100 | Errors when project members don't exist | Use existing project member UUIDs |
12107 | Error when request uuid and target uuid are the same in APIs that don't allow them to be the same | Make the target UUID different from the request UUID |
12400 | Errors when adding members to a non-existent or deleted project | Change to add members to an existing project |
12401 | Error when creating a project and exceeding the limit on the number of projects created set in the project's organization OWNER account | 1) Delete unused projects to free up the number of projects you can create 2) Request an adjustment to the maximum number of projects created through your representative |
12500 | When deleting a project, an error occurs when a service in use exists | Disable all services in use for the project and then attempt to process the project deletion |
13001 | Errors that occur when enabling/disabling a service fails | Contact a representative |
13002 | Errors that occur when you reactivate a service that is already active | Leverage services that are already active |
13004 | Error when enabling an unenabled service | Enable for activatable services |
13006 | Enable Entity-only service, error when Organization OWNER's member type is not Entity | Attempting to activate a service in an organization subproject of an organization OWNER with an entity account type |
22006 | Fires if it already exists when added | Prevent duplicate requests from coming in |
22013 | Error when attempting to change the organization OWNER's role | You can't change roles for organization owners |
22016 | Errors that occur when an organization doesn't exist | Make sure you're requesting with the orgId of an existing organization |
23005 | Errors that occur when an organization does not exist for an organization ID | Contact a representative |
30015 | Error when exceeding the limit on the number of generated project AppKeys Project AppKey API - The number of project AppKeys generated by Generate Project AppKey is 3, and an error occurs if more than 3 are generated. |
Delete an unused project AppKey and retry |
40017 | Errors that occur when a project doesn't exist | Make an API request for an existing project |
40028 13003 |
Errors that occur when a project doesn't exist (created and then deleted) | Make an API request for an existing project |
40054 | Error when activating a service, if a service that should be activated first is not activated | Handle activating services that need to be activated first |
40057 | When disabling a service, an error occurs if a service that should be disabled first is not disabled | Handle disabling services that should be disabled first |
50007 | Invalid members, errors that occur (Members that don't exist, are dormant, or are withdrawn are not valid) Organization creation API - When making API calls, if the uuid is invalid |
Modify with the UUID of a valid member |
60003 | Errors that occur when there is no data in the DB Error when there are no AppKeys to delete in Project AppKey API - Delete Project AppKeys |
1) Contact a representative 2) Set the existing AppKey to the value of the AppKey to be deleted |
62004 | Error when creating a role group if a role group with the same name exists | Change to a non-duplicate name |
62008 | Role group ID does not exist when editing, deleting, and adding/deleting roles to a role group | Change to use an existing role group ID |
62009 | Occurs if the role is an invalid role when creating a role group | Change to use a valid role |
62011 | Role group deletion caused by being used by a notification group | Change to delete role groups after deleting notification groups |
62014 | When deleting a role group and adding/deleting roles to a role group, members who were assigned to the role group failed to notify the service of the roles. | Contact a representative |
62019 | If you want to grant an organization member an unallowed role | Contact a representative |
72005 | Errors that occur when billing-related API calls fail | Contact a representative |
70013 | Errors that occur when a service you're using exists | Disable a service you're using |
70014 | Error when member withdrawal conditions are not met IAM - 1) when a service is in use 2) when a project exists that has not been deleted 3) when the member exists in the ADMIN role on any project |
Set up withdrawal conditions for each member type |
70024 | Errors that occur when a payment method is not properly registered | Register a payment method |
70032 | Error when becoming a member block due to non-payment | Pay outstanding bills for that account |
-200201 | Errors that occur when the user-code length condition is not met | Lowercase letters, numbers, and special characters (-, _, .) within 20 characters. Special characters (-, _, .) are not allowed in leading and trailing positions. |
-200202 | Errors that occur when user-code formatting conditions are not met | Accept lowercase letters, numbers, and special characters (-, _, .). Special characters (-, _, .) are not allowed in leading and trailing positions. |
-200203 | Errors that occur when the name length condition is not met | Modify the name length to meet the 60-character length requirement |
-200204 | Error with overlapping user-code when modifying member creation | Change to non-duplicate user-code to request |