This guide describes Public API v1.0 provided by NHN Cloud API Gateway.
Name | Region | Domain |
---|---|---|
API domain | Korea (Pangyo) | https://kr1-apigateway.api.nhncloudservice.com |
API domain | Korea (Pyeongchon) | https://kr2-apigateway.api.nhncloudservice.com |
To use the API, you need an Appkey. You can find your Appkey in the URL & Appkey menu at the top right of the console.
All APIs must specify the appkey as a path parameter. * Example) /v1.0/appkeys/{appKey}/**
Name | Description |
---|---|
appKey | Appkey issued from the console |
The service responds with 200 OK to all API requests. For detailed response results, refer to the header of the response body as in the following example.
[Success: Response Body]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "Success"
}
}
Field | Type | Description |
---|---|---|
header | Object | Header area |
header.isSuccessful | Boolean | Successful or not |
header.resultCode | Integer | Result code |
header.resultMessage | String | Result message |
[Failure: Response Body]
{
"header": {
"isSuccessful": false,
"resultCode": 400,
"resultMessage": "Bad Request"
},
"errorList": [
{
"resultCode": 400,
"errorProperty": "postApigwServiceRequest",
"errorField": "apigwServiceName",
"errorMessage": "Cannot be empty."
}
]
}
Field | Type | Description |
---|---|---|
errorList | List | Error list area |
errorList[0].resultCode | Integer | Error Code |
errorList[0].errorProperty | String | Error property (model) |
errorList[0].errorField | String | Error details field |
errorList[0].errorMessage | String | Error Message |
[URI]
Method | URI |
---|---|
GET | /v1.0/appkeys/{appKey}/services |
[QueryString Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
regionCode | Enum | Required | N/A | KR1, KR2 | See API Gateway Region Enum Code |
page | Integer | Optional | 1 | N/A | Page |
limit | Integer | Optional | 10 | Max. 1000 | Count per page |
[Response]
{
"header":{
"isSuccessful":true,
"resultCode":0,
"resultMessage":"SUCCESS"
},
"paging":{
"limit":10,
"page":1,
"totalCount":100
},
"apigwServiceList":[
{
"apigwServiceId":"{apigwServiceId}",
"apigwServiceAlias":"{apigwServiceAlias}",
"apigwServiceName":"test api gateway",
"apigwServiceDescription":"description of test api gateway service",
"apigwDomain":"api.nhncloudservice.com",
"appKey":"{appKey}",
"regionCode":"KR1",
"serverGroupId":"{serverGroupId}",
"dedicatedId":null,
"createdAt":"2021-10-19T07:25:23.000Z",
"updatedAt":"2021-10-19T07:25:23.000Z",
"apigwServiceTypeCode":"SHARED"
}
]
}
Field | Type | Description |
---|---|---|
paging | Object | Paging area |
paging.page | Integer | Current page |
paging.limit | Integer | Count per page |
paging.totalCount | Integer | Total count |
apigwServiceList | List | API Gateway service list area |
apigwServiceList[0].apigwDomain | String | API Gateway service domain |
apigwServiceList[0].apigwServiceAlias | String | API Gateway service alias |
apigwServiceList[0].apigwServiceId | String | API Gateway service ID |
apigwServiceList[0].apigwServiceTypeCode | Enum | See API Gateway Service Type Enum Code |
apigwServiceList[0].appKey | String | AppKey |
apigwServiceList[0].dedicatedId | String | ID of the dedicated API Gateway service |
apigwServiceList[0].apigwServiceDescription | String | API Gateway service alias |
apigwServiceList[0].apigwServiceName | String | API Gateway service name |
apigwServiceList[0].regionCode | Enum | See API Gateway Region Enum Code |
apigwServiceList[0].serverGroupId | String | ID of the server group to which the API Gateway service belongs |
apigwServiceList[0].createdAt | DateTime | API Gateway service creation date and time |
apigwServiceList[0].updatedAt | DateTime | API Gateway service modification date and time |
[URI]
Method | URI |
---|---|
GET | /v1.0/appkeys/{appKey}/services/{apigwServiceId} |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"apigwService": {
"apigwServiceId": "{apigwServiceId}",
"apigwServiceAlias": "{apigwServiceAlias}",
"apigwServiceName": "test api gateway",
"apigwServiceDescription": "description of test api gateway",
"apigwDomain": "api.nhncloudservice.com",
"appKey": "{appKey}",
"regionCode": "KR1",
"serverGroupId": "{serverGroupId}",
"dedicatedId": null,
"createdAt": "2021-10-19T07:28:44.946Z",
"updatedAt": "2021-10-19T07:28:44.946Z",
"apigwServiceTypeCode": "SHARED"
}
}
Field | Type | Description |
---|---|---|
apigwService | Object | API Gateway service area |
apigwService.apigwDomain | String | API Gateway service domain |
apigwService.apigwServiceAlias | String | API Gateway service alias |
apigwService.apigwServiceId | String | API Gateway service ID |
apigwService.apigwServiceTypeCode | Enum | See API Gateway Service Type Enum Code |
apigwService.appKey | String | AppKey |
apigwService.dedicatedId | String | ID of the dedicated API Gateway service |
apigwService.apigwServiceDescription | String | API Gateway service alias |
apigwService.apigwServiceName | String | API Gateway service name |
apigwService.regionCode | Enum | See API Gateway Region Enum Code |
apigwService.serverGroupId | String | ID of the server group to which the API Gateway service belongs |
apigwService.createdAt | DateTime | API Gateway service creation date and time |
apigwService.updatedAt | DateTime | API Gateway service modification date and time |
[URI]
Method | URI |
---|---|
POST | /v1.0/appkeys/{appKey}/services |
[Request Body]
{
"regionCode": "KR1",
"apigwServiceName": "service name",
"apigwServiceDescription": "service description"
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
regionCode | Enum | Required | N/A | KR1, KR2 | See API Gateway Region Enum Code |
apigwServiceName | String | Required | N/A | Max. 50 characters | API Gateway service name |
apigwServiceDescription | String | Optional | N/A | Max. 200 characters | API Gateway service alias |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"apigwService": {
"apigwServiceId": "{apigwServiceId}",
"apigwServiceAlias": "{apigwServiceAlias}",
"apigwServiceName": "test api gateway",
"apigwServiceDescription": "description of test api gateway",
"apigwDomain": "api.nhncloudservice.com",
"appKey": "{appKey}",
"regionCode": "KR1",
"serverGroupId": "{serverGroupId}",
"dedicatedId": null,
"createdAt": "2021-10-19T07:28:44.946Z",
"updatedAt": "2021-10-19T07:28:44.946Z",
"apigwServiceTypeCode": "SHARED"
}
}
Field | Type | Description |
---|---|---|
apigwService | Object | API Gateway service area |
apigwService.apigwDomain | String | API Gateway service domain |
apigwService.apigwServiceAlias | String | API Gateway service alias |
apigwService.apigwServiceId | String | API Gateway service ID |
apigwService.apigwServiceTypeCode | Enum | See API Gateway Service Type Enum Code |
apigwService.appKey | String | AppKey |
apigwService.dedicatedId | String | ID of the dedicated API Gateway service |
apigwService.apigwServiceDescription | String | Service description |
apigwService.apigwServiceName | String | API Gateway service name |
apigwService.regionCode | Enum | See API Gateway Region Enum Code |
apigwService.serverGroupId | String | ID of the server group to which the API Gateway service belongs |
apigwService.createdAt | DateTime | API Gateway service creation date and time |
apigwService.updatedAt | DateTime | API Gateway service modification date and time |
[URI]
Method | URI |
---|---|
PUT | /v1.0/appkeys/{appKey}/services/{apigwServiceId} |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
[Request Body]
{
"apigwServiceName": "update service name",
"apigwServiceDescription": "test of api gateway service"
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceName | String | Required | N/A | Max. 50 characters | API Gateway service name |
apigwServiceDescription | String | Optional | N/A | Max. 200 characters | API Gateway service alias |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"apigwService": {
"apigwServiceId": "{apigwServiceId}",
"apigwServiceAlias": "{apigwServiceAlias}",
"apigwServiceName": "test api gateway",
"apigwServiceDescription": "description of test api gateway",
"apigwDomain": "api.nhncloudservice.com",
"appKey": "{appKey}",
"regionCode": "KR1",
"serverGroupId": "{serverGroupId}",
"dedicatedId": null,
"createdAt": "2021-10-19T07:28:44.946Z",
"updatedAt": "2021-10-19T07:50:44.946Z",
"apigwServiceTypeCode": "SHARED"
}
}
Field | Type | Description |
---|---|---|
apigwService | Object | API Gateway service area |
apigwService.apigwDomain | String | API Gateway service domain |
apigwService.apigwServiceAlias | String | API Gateway service alias |
apigwService.apigwServiceId | String | API Gateway service ID |
apigwService.apigwServiceTypeCode | Enum | See API Gateway Service Type Enum Code |
apigwService.appKey | String | AppKey |
apigwService.dedicatedId | String | ID of the dedicated API Gateway service |
apigwService.apigwServiceDescription | String | Service description |
apigwService.apigwServiceName | String | Service name |
apigwService.regionCode | Enum | See API Gateway Region Enum Code |
apigwService.serverGroupId | String | ID of the server group to which the service belongs |
apigwService.createdAt | DateTime | Service creation date and time |
apigwService.updatedAt | DateTime | Service modification date and time |
[URI]
Method | URI |
---|---|
DELETE | /v1.0/appkeys/{appKey}/services/{apigwServiceId} |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
[Response]
{
"header" : {
"resultCode" : 0,
"resultMessage" : "SUCCESS",
"isSuccessful" : true
}
}
[URI]
Method | URI |
---|---|
GET | /v1.0/appkeys/{appKey}/services/{apigwServiceId}/resources |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"resourceList": [
{
"resourceId": "15ea79f5-a0fc-4f78-a498-c7c49898dcb4",
"apigwServiceId": "{apigwServiceId}",
"path": "/",
"methodType": null,
"methodName": null,
"methodDescription": null,
"createdAt": "2021-10-25T05:05:23.000Z",
"updatedAt": "2021-10-25T05:05:23.000Z",
"resourcePluginList": []
},
{
"resourceId": "f7906669-687b-423a-9101-6f86f2777d2f",
"apigwServiceId": "{apigwServiceId}",
"path": "/path",
"methodType": null,
"methodName": null,
"methodDescription": null,
"createdAt": "2021-10-25T05:06:10.000Z",
"updatedAt": "2021-10-25T05:06:10.000Z",
"resourcePluginList": []
},
{
"resourceId": "cd66701a-e2a8-47d2-b3cb-245a6d8e0145",
"apigwServiceId": "{apigwServiceId}",
"path": "/path",
"methodType": "GET",
"methodName": "example",
"methodDescription": "This is a method description",
"createdAt": "2021-10-25T05:06:10.000Z",
"updatedAt": "2021-10-25T05:06:10.000Z",
"resourcePluginList": [
{
"resourcePluginId": "847efa44-f405-4b43-824b-95ec1a146ac4",
"resourceId": "cd66701a-e2a8-47d2-b3cb-245a6d8e0145",
"pluginType": "HTTP",
"pluginConfigJson": {
"frontendEndpointPath": "/path",
"backendEndpointPath": "/anything"
},
"createdAt": "2021-10-25T05:06:10.000Z",
"updatedAt": "2021-10-25T05:06:10.000Z"
}
]
}
]
}
Field | Type | Description |
---|---|---|
resourceList | List | Resource list area |
resourceList[0].resourceId | String | Resource ID |
resourceList[0].apigwServiceId | String | API Gateway service ID |
resourceList[0].path | String | Resource path |
resourceList[0].createdAt | DateTime | Resource creation date and time |
resourceList[0].updatedAt | DateTime | Resource modification date and time |
resourceList[2].methodType | Enum | See HTTP Method Type Enum Code |
resourceList[2].methodName | String | Method resource name |
resourceList[2].methodDescription | String | Method resource description |
resourceList[2].resourcePluginList | List | Resource plugin list area |
resourceList[2].resourcePluginList[0].resourcePluginId | String | Resource plugin ID |
resourceList[2].resourcePluginList[0].resourceId | String | Resource ID |
resourceList[2].resourcePluginList[0].pluginType | Enum | See Resource Plugin Type Enum Code |
resourceList[2].resourcePluginList[0].pluginConfigJson | Object | See JSON setting value by resource plugin type |
resourceList[2].resourcePluginList[0].createdAt | DateTime | Resource plugin creation date and time |
resourceList[2].resourcePluginList[0].updatedAt | DateTime | Resource plugin modification date and time |
[URI]
Method | URI |
---|---|
POST | /v1.0/appkeys/{appKey}/services/{apigwServiceId}/resources |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
[Request Body]
{
"resourcePathList":[
{
"path":"/members/{memberId}",
"pathPluginList":[
{
"pluginConfigJson":{
"allowedMethods":[
"GET",
"POST",
"DELETE",
"PUT",
"OPTIONS",
"HEAD",
"PATCH"
],
"allowedHeaders":[
"*"
],
"allowedOrigins":[
"*"
],
"exposedHeaders":[
],
"maxCredentialsAge":null,
"allowCredentials":false
},
"pluginType":"CORS"
}
],
"methodList":[
{
"methodDescription":"Edit a member information",
"methodName":"PutMember",
"methodPluginList":[
{
"pluginConfigJson":{
"frontendEndpointPath":"/members/{memberId}",
"backendEndpointPath":"/api/v1/members/${request.path.memberId}"
},
"pluginType":"HTTP"
}
],
"methodType":"PUT"
},
{
"methodDescription":"Query a member",
"methodName":"GetMember",
"methodPluginList":[
{
"pluginConfigJson":{
"frontendEndpointPath":"/members/{memberId}",
"backendEndpointPath":"/api/v1/members/${request.path.memberId}"
},
"pluginType":"HTTP"
},
{
"pluginConfigJson":{
"parameters":{
"id":"${request.path.memberId}"
}
},
"pluginType":"ADD_REQUEST_QUERY_PARAMETER"
}
],
"methodType":"GET"
}
]
}
]
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
resourcePathList | List | Required | N/A | N/A | Resource path list |
resourcePathList[0] | Object | Required | N/A | N/A | Resource path area |
resourcePathList[0].path | Object | Required | N/A | A valid path consisting of alphanumeric characters, path variables, and limited characters (. + - /) | Resource path |
resourcePathList[0].pathPluginList | List | Optional | N/A | N/A | Resource path plugin list |
resourcePathList[0].pathPluginList[0] | Object | Optional | N/A | N/A | Resource path plugin area |
resourcePathList[0].pathPluginList[0].pluginType | Enum | Required | N/A | {pluginCode} CORS, SET_REQUEST_HEADER, SET_RESPONSE_HEADER, ADD_REQUEST_QUERY_PARAMETER | The plugin type that can be set in the resource path among Resource Plugin Type Enum Code |
resourcePathList[0].pathPluginList[0].pluginConfigJson | Object | Required | N/A | N/A | See JSON setting value by resource plugin type |
resourcePathList[0].methodList | List | Optional | N/A | N/A | List of methods under the resource path |
resourcePathList[0].methodList[0] | Object | Optional | N/A | N/A | Area for methods under the resource path |
resourcePathList[0].methodList[0].methodType | Enum | Required | N/A | GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH | See HTTP Method Type Enum Code |
resourcePathList[0].methodList[0].methodName | String | Required | N/A | Max. 50 characters | Method name |
resourcePathList[0].methodList[0].methodDescription | String | Optional | N/A | Max. 200 characters | Method description |
resourcePathList[0].methodList[0].methodPluginList | List | Required | N/A | N/A | Resource method plugin list |
resourcePathList[0].methodList[0].methodPluginList[0] | Object | Required | N/A | N/A | Resource method plugin area, requires input of one of the 'HTTP' or 'MOCK' plugin |
resourcePathList[0].methodList[0].methodPluginList[0].pluginType | Enum | Required | N/A | {pluginCode} HTTP, MOCK, SET_REQUEST_HEADER, SET_RESPONSE_HEADER, ADD_REQUEST_QUERY_PARAMETER | The plugin type that can be set in the resource method among Resource Plugin Type Enum Code |
resourcePathList[0].methodList[0].methodPluginList[0].pluginConfigJson | Object | Required | N/A | N/A | See JSON setting value by resource plugin type |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"resourceList": [
{
"resourceId": "{resourceId}",
"apigwServiceId": "{apigwServiceId}",
"path": "/members",
"methodType": null,
"methodName": null,
"methodDescription": null,
"createdAt": "2021-12-23T23:55:11.297Z",
"updatedAt": "2021-12-23T23:55:11.297Z",
"resourcePluginList": [],
"parentPath": "/"
},
{
"resourceId": "{resourceId}",
"apigwServiceId": "{apigwServiceId}",
"path": "/members/{memberId}",
"methodType": null,
"methodName": null,
"methodDescription": null,
"createdAt": "2021-12-23T23:55:11.298Z",
"updatedAt": "2021-12-23T23:55:11.298Z",
"resourcePluginList": [
{
"resourcePluginId": "{resourcePluginId}",
"resourceId": "{resourceId}",
"pluginType": "CORS",
"pluginConfigJson": {
"allowedMethods": [
"GET",
"POST",
"DELETE",
"PUT",
"OPTIONS",
"HEAD",
"PATCH"
],
"allowedHeaders": [
"*"
],
"allowedOrigins": [
"*"
],
"exposedHeaders": [],
"maxCredentialsAge": null,
"allowCredentials": false
},
"createdAt": "2021-12-23T23:55:11.298Z",
"updatedAt": "2021-12-23T23:55:11.298Z"
}
],
"parentPath": "/members"
},
{
"resourceId": "{resourceId}",
"apigwServiceId": "{apigwServiceId}",
"path": "/members/{memberId}",
"methodType": "PUT",
"methodName": "PostMember",
"methodDescription": "Edit a member info",
"createdAt": "2021-12-23T23:55:11.300Z",
"updatedAt": "2021-12-23T23:55:11.300Z",
"resourcePluginList": [
{
"resourcePluginId": "24bef5d0-feaf-4469-9619-a31e9e35a622",
"resourceId": "{resourceId}",
"pluginType": "HTTP",
"pluginConfigJson": {
"frontendEndpointPath": "/members/{memberId}",
"backendEndpointPath": "/api/v1/members/${request.path.memberId}"
},
"createdAt": "2021-12-23T23:55:11.300Z",
"updatedAt": "2021-12-23T23:55:11.300Z"
},
{
"resourcePluginId": "321d99cc-cb26-473e-ab76-84249a82b262",
"resourceId": "{resourceId}",
"pluginType": "CORS",
"pluginConfigJson": {
"allowedMethods": [
"GET",
"POST",
"DELETE",
"PUT",
"OPTIONS",
"HEAD",
"PATCH"
],
"allowedHeaders": [
"*"
],
"allowedOrigins": [
"*"
],
"exposedHeaders": [],
"maxCredentialsAge": null,
"allowCredentials": false
},
"createdAt": "2021-12-23T23:55:11.300Z",
"updatedAt": "2021-12-23T23:55:11.300Z"
}
],
"parentPath": "/members/{memberId}"
},
{
"resourceId": "{resourceId}",
"apigwServiceId": "{apigwServiceId}",
"path": "/members/{memberId}",
"methodType": "GET",
"methodName": "GetMember",
"methodDescription": "Query a member",
"createdAt": "2021-12-23T23:55:11.300Z",
"updatedAt": "2021-12-23T23:55:11.300Z",
"resourcePluginList": [
{
"resourcePluginId": "{resourcePluginId}",
"resourceId": "{resourceId}",
"pluginType": "HTTP",
"pluginConfigJson": {
"frontendEndpointPath": "/members/{memberId}",
"backendEndpointPath": "/api/v1/members/${request.path.memberId}"
},
"createdAt": "2021-12-23T23:55:11.300Z",
"updatedAt": "2021-12-23T23:55:11.300Z"
},
{
"resourcePluginId": "{resourcePluginId}",
"resourceId": "{resourceId}",
"pluginType": "ADD_REQUEST_QUERY_PARAMETER",
"pluginConfigJson": {
"parameters": {
"id": "${request.path.memberId}"
}
},
"createdAt": "2021-12-23T23:55:11.300Z",
"updatedAt": "2021-12-23T23:55:11.300Z"
},
{
"resourcePluginId": "{resourcePluginId}",
"resourceId": "{resourceId}",
"pluginType": "CORS",
"pluginConfigJson": {
"allowedMethods": [
"GET",
"POST",
"DELETE",
"PUT",
"OPTIONS",
"HEAD",
"PATCH"
],
"allowedHeaders": [
"*"
],
"allowedOrigins": [
"*"
],
"exposedHeaders": [],
"maxCredentialsAge": null,
"allowCredentials": false
},
"createdAt": "2021-12-23T23:55:11.300Z",
"updatedAt": "2021-12-23T23:55:11.300Z"
}
],
"parentPath": "/members/{memberId}"
},
{
"resourceId": "{resourceId}",
"apigwServiceId": "{apigwServiceId}",
"path": "/members/{memberId}",
"methodType": "OPTIONS",
"methodName": "CORS",
"methodDescription": null,
"createdAt": "2021-12-23T23:55:11.300Z",
"updatedAt": "2021-12-23T23:55:11.300Z",
"resourcePluginList": [
{
"resourcePluginId": "{resourcePluginId}",
"resourceId": "{resourceId}",
"pluginType": "CORS",
"pluginConfigJson": {
"allowedMethods": [
"GET",
"POST",
"DELETE",
"PUT",
"OPTIONS",
"HEAD",
"PATCH"
],
"allowedHeaders": [
"*"
],
"allowedOrigins": [
"*"
],
"exposedHeaders": [],
"maxCredentialsAge": null,
"allowCredentials": false
},
"createdAt": "2021-12-23T23:55:11.300Z",
"updatedAt": "2021-12-23T23:55:11.300Z"
}
],
"parentPath": "/members/{memberId}"
}
]
}
Field | Type | Description |
---|---|---|
resourceList | List | Resource list area |
resourceList[1].resourceId | String | Resource ID |
resourceList[1].apigwServiceId | String | API Gateway service ID |
resourceList[1].path | String | Resource path |
resourceList[1].parentPath | String | Parent resource path |
resourceList[1].createdAt | DateTime | Resource creation date and time |
resourceList[1].updatedAt | DateTime | Resource modification date and time |
resourceList[1].methodType | Enum | See HTTP Method Type Enum Code |
resourceList[1].methodName | String | Method resource name |
resourceList[1].methodDescription | String | Method resource description |
resourceList[1].resourcePluginList | List | Resource plugin list area |
resourceList[1].resourcePluginList[0].resourcePluginId | String | Resource plugin ID |
resourceList[1].resourcePluginList[0].resourceId | String | Resource ID |
resourceList[1].resourcePluginList[0].pluginType | Enum | See Resource Plugin Type Enum Code |
resourceList[1].resourcePluginList[0].pluginConfigJson | Object | See JSON setting value by resource plugin type |
resourceList[1].resourcePluginList[0].createdAt | DateTime | Resource plugin creation date and time |
resourceList[1].resourcePluginList[0].updatedAt | DateTime | Resource plugin modification date and time |
[URI]
Method | URI |
---|---|
POST | /v1.0/appkeys/{appKey}/services/{apigwServiceId}/resources/{resourceId}/methods |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
resourceId | String | Required | N/A | N/A | Resource path ID |
[Request Body]
{
"methodList": [
{
"methodType": "DELETE",
"methodName": "DeleteMember",
"methodDescription": "Delete a member",
"methodPluginList": [
{
"pluginType": "HTTP",
"pluginConfigJson": {
"frontendEndpointPath": "/members/{memberId}",
"backendEndpointPath": "/api/v1/members/${request.path.memberId}"
}
}
]
}
]
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
methodList | List | Required | N/A | N/A | List of methods under the resource path |
methodList[0] | Object | Required | N/A | N/A | Area for methods under the resource path |
methodList[0].methodType | Enum | Required | N/A | GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH | See HTTP Method Type Enum Code |
methodList[0].methodName | String | Required | N/A | Max. 50 characters | Method name |
methodList[0].methodDescription | String | Optional | N/A | Max. 200 characters | Method description |
methodList[0].methodPluginList | List | Required | N/A | N/A | Resource method plugin list |
methodList[0].methodPluginList[0] | Object | Required | N/A | N/A | Resource method plugin area, requires input of one of the 'HTTP' or 'MOCK' plugin |
methodList[0].methodPluginList[0].pluginType | Enum | Required | N/A | {pluginCode} HTTP, MOCK, SET_REQUEST_HEADER, SET_RESPONSE_HEADER, ADD_REQUEST_QUERY_PARAMETER | The plugin type that can be set in the resource method among Resource Plugin Type Enum Code |
methodList[0].methodPluginList[0].pluginConfigJson | Object | Required | N/A | N/A | See JSON setting value by resource plugin type |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"resourceList": [
{
"resourceId": "{resourceId}",
"apigwServiceId": "{apigwServiceId}",
"path": "/members/{memberId}",
"parentPath": "/members/{memberId}",
"methodType": "GET",
"methodName": "GetMember",
"methodDescription": "Query a member",
"createdAt": "2021-12-23T23:55:11.300Z",
"updatedAt": "2021-12-23T23:55:11.300Z",
"resourcePluginList": [
{
"resourcePluginId": "{resourcePluginId}",
"resourceId": "{resourceId}",
"pluginType": "HTTP",
"pluginConfigJson": {
"frontendEndpointPath": "/members/{memberId}",
"backendEndpointPath": "/api/v1/members/${request.path.memberId}"
},
"createdAt": "2021-12-23T23:55:11.300Z",
"updatedAt": "2021-12-23T23:55:11.300Z"
},
{
"resourcePluginId": "{resourcePluginId}",
"resourceId": "{resourceId}",
"pluginType": "ADD_REQUEST_QUERY_PARAMETER",
"pluginConfigJson": {
"parameters": {
"id": "${request.path.memberId}"
}
},
"createdAt": "2021-12-23T23:55:11.300Z",
"updatedAt": "2021-12-23T23:55:11.300Z"
}
]
},
...
]
}
Field | Type | Description |
---|---|---|
resourceList | List | Resource list area |
resourceList[0].resourceId | String | Resource ID |
resourceList[0].apigwServiceId | String | API Gateway service ID |
resourceList[0].path | String | Resource path |
resourceList[0].parentPath | String | Parent resource path |
resourceList[0].createdAt | DateTime | Resource creation date and time |
resourceList[0].updatedAt | DateTime | Resource modification date and time |
resourceList[0].methodType | Enum | See HTTP Method Type Enum Code |
resourceList[0].methodName | String | Method resource name |
resourceList[0].methodDescription | String | Method resource description |
resourceList[0].resourcePluginList | List | Resource plugin list area |
resourceList[0].resourcePluginList[0].resourcePluginId | String | Resource plugin ID |
resourceList[0].resourcePluginList[0].resourceId | String | Resource ID |
resourceList[0].resourcePluginList[0].pluginType | Enum | See Resource Plugin Type Enum Code |
resourceList[0].resourcePluginList[0].pluginConfigJson | Object | See JSON setting value by resource plugin type |
resourceList[0].resourcePluginList[0].createdAt | DateTime | Resource plugin creation date and time |
resourceList[0].resourcePluginList[0].updatedAt | DateTime | Resource plugin modification date and time |
[URI]
Method | URI |
---|---|
PUT | /v1.0/appkeys/{appKey}/services/{apigwServiceId}/resource-paths/{resourceId} |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
resourceId | String | Required | N/A | N/A | Resource path ID |
[Request Body]
{
"pathPluginList":[
{
"applyChildPath": true,
"delete": true,
"pluginConfigJson":{
"allowedMethods":[
"GET",
"POST",
"DELETE",
"PUT",
"OPTIONS",
"HEAD",
"PATCH"
],
"allowedHeaders":[
"*"
],
"allowedOrigins":[
"*"
],
"exposedHeaders":[
],
"maxCredentialsAge":null,
"allowCredentials":false
},
"pluginType":"CORS"
}
]
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
pathPluginList | List | Optional | N/A | N/A | Resource path plugin list |
pathPluginList[0] | Object | Optional | N/A | N/A | Resource path plugin area |
pathPluginList[0].pluginType | Enum | Required | N/A | {pluginCode} CORS, SET_REQUEST_HEADER, SET_RESPONSE_HEADER,ADD_REQUEST_QUERY_PARAMETER | The plugin type that can be set in the resource path among Resource Plugin Type Enum Code |
pathPluginList[0].pluginConfigJson | Object | Conditionally required | N/A | N/A | See JSON setting value by resource plugin type, required input when the delete field is false. |
pathPluginList[0].applyChildPath | Boolean | Optional | false | true, false | Whether to overwrite child paths and methods |
pathPluginList[0].delete | Boolean | Optional | false | true, false | Whether to delete the plugin |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"resourceList": [
{
"resourceId": "{resourceId}",
"apigwServiceId": "{apigwServiceId}",
"path": "/members/{memberId}",
"parentPath": "/members",
"methodType": "DELETE",
"methodName": "DeleteMember",
"methodDescription": "Delete a member",
"createdAt": "2021-12-23T23:55:11.298Z",
"updatedAt": "2021-12-23T23:55:11.298Z",
"resourcePluginList": [
{
"resourcePluginId": "{resourcePluginId}",
"resourceId": "{resourceId}",
"pluginType": "HTTP",
"pluginConfigJson": {
"frontendEndpointPath": "/members/{memberId}",
"backendEndpointPath": "/api/v1/members/${request.path.memberId}"
},
"createdAt": "2021-12-23T23:55:11.298Z",
"updatedAt": "2021-12-23T23:55:11.298Z"
}
]
}
...
]
}
Field | Type | Description |
---|---|---|
resourceList | List | Resource list area |
resourceList[0].resourceId | String | Resource ID |
resourceList[0].apigwServiceId | String | API Gateway service ID |
resourceList[0].path | String | Resource path |
resourceList[0].parentPath | String | Parent resource path |
resourceList[0].createdAt | DateTime | Resource creation date and time |
resourceList[0].updatedAt | DateTime | Resource modification date and time |
resourceList[0].methodType | Enum | See HTTP Method Type Enum Code |
resourceList[0].methodName | String | Method resource name |
resourceList[0].methodDescription | String | Method resource description |
resourceList[0].resourcePluginList | List | Resource plugin list area |
resourceList[0].resourcePluginList[0].resourcePluginId | String | Resource plugin ID |
resourceList[0].resourcePluginList[0].resourceId | String | Resource ID |
resourceList[0].resourcePluginList[0].pluginType | Enum | See Resource Plugin Type Enum Code |
resourceList[0].resourcePluginList[0].pluginConfigJson | Object | See JSON setting value by resource plugin type |
resourceList[0].resourcePluginList[0].createdAt | DateTime | Resource plugin creation date and time |
resourceList[0].resourcePluginList[0].updatedAt | DateTime | Resource plugin modification date and time |
[URI]
Method | URI |
---|---|
PUT | /v1.0/appkeys/{appKey}/services/{apigwServiceId}/resource-methods/{resourceId} |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
resourceId | String | Required | N/A | N/A | Resource method ID |
[Request Body]
{
"methodName":"PutMember",
"methodDescription":"Edit a member information",
"methodPluginList":[
{
"pluginConfigJson":{
"frontendEndpointPath":"/members/{memberId}",
"backendEndpointPath":"/api/v2/members/${request.path.memberId}"
},
"pluginType":"HTTP"
},
{
"delete": true,
"pluginType": "ADD_REQUEST_QUERY_PARAMETER"
}
]
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
methodName | String | Required | N/A | Max. 50 characters | Method name |
methodDescription | String | Optional | N/A | Max. 200 characters | Method description |
methodPluginList | List | Optional | N/A | N/A | Resource method plugin list |
methodPluginList[0] | Object | Required | N/A | N/A | Resource method plugin area |
methodPluginList[0].pluginType | Enum | Required | N/A | {pluginCode} HTTP, MOCK, SET_REQUEST_HEADER, SET_RESPONSE_HEADER, ADD_REQUEST_QUERY_PARAMETER | The plugin type that can be set in the resource method among Resource Plugin Type Enum Code |
methodPluginList[0].pluginConfigJson | Object | Conditionally required | N/A | N/A | See JSON setting value by resource plugin type, required input when the delete field is false. |
methodPluginList[0].delete | Boolean | Optional | false | N/A | Whether to delete the plugin |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"resourceList": [
{
"resourceId": "{resourceId}",
"apigwServiceId": "{apigwServiceId}",
"path": "/members/{memberId}",
"parentPath": "/members/{memberId}",
"methodType": "PUT",
"methodName": "PostMember",
"methodDescription": "Edit a member info",
"createdAt": "2021-12-23T23:55:11.300Z",
"updatedAt": "2021-12-23T23:55:11.300Z",
"resourcePluginList": [
{
"resourcePluginId": "24bef5d0-feaf-4469-9619-a31e9e35a622",
"resourceId": "{resourceId}",
"pluginType": "HTTP",
"pluginConfigJson": {
"frontendEndpointPath": "/members/{memberId}",
"backendEndpointPath": "/api/v2/members/${request.path.memberId}"
},
"createdAt": "2021-12-23T23:55:11.300Z",
"updatedAt": "2021-12-23T23:55:11.300Z"
}
]
}
]
}
Field | Type | Description |
---|---|---|
resourceList | List | Resource list area |
resourceList[0].resourceId | String | Resource ID |
resourceList[0].apigwServiceId | String | API Gateway service ID |
resourceList[0].path | String | Resource path |
resourceList[0].parentPath | String | Parent resource path |
resourceList[0].createdAt | DateTime | Resource creation date and time |
resourceList[0].updatedAt | DateTime | Resource modification date and time |
resourceList[0].methodType | Enum | See HTTP Method Type Enum Code |
resourceList[0].methodName | String | Method resource name |
resourceList[0].methodDescription | String | Method resource description |
resourceList[0].resourcePluginList | List | Resource plugin list area |
resourceList[0].resourcePluginList[0].resourcePluginId | String | Resource plugin ID |
resourceList[0].resourcePluginList[0].resourceId | String | Resource ID |
resourceList[0].resourcePluginList[0].pluginType | Enum | See Resource Plugin Type Enum Code |
resourceList[0].resourcePluginList[0].pluginConfigJson | Object | See JSON setting value by resource plugin type |
resourceList[0].resourcePluginList[0].createdAt | DateTime | Resource plugin creation date and time |
resourceList[0].resourcePluginList[0].updatedAt | DateTime | Resource plugin modification date and time |
[URI]
Method | URI |
---|---|
DELETE | /v1.0/appkeys/{appKey}/services/{apigwServiceId}/resources/{resourceId} |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
resourceId | String | Required | N/A | N/A | Resource ID |
[Response Body]
{
"header" : {
"resultCode" : 0,
"resultMessage" : "SUCCESS",
"isSuccessful" : true
}
}
[URI]
Method | URI |
---|---|
POST | /v1.0/appkeys/{appKey}/services/{apigwServiceId}/resources/import |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
[Request Body]
{
"swaggerData": {
"info": {
"title": "Swagger Petstore",
"version": "1.0.5"
},
"paths": {
"/pet/{petId}": {
"get": {
"summary": "Find pet by ID",
"description": "Returns a single pet",
"consumes": [
"application/json"
],
"parameters": [
{
"name": "userId",
"in": "header",
"required": false,
"type": "string"
}
],
"produces": [
"application/json"
],
"responses": {
"200": {
"description": "successful operation",
"headers": {
"response-header1": {
"description": "This is a response header",
"type": "string"
}
},
"schema": {
"$ref": "#/definitions/Pet"
}
}
},
"x-nhncloud-apigateway": {
"plugins": {
"MOCK": {
"statusCode": 200,
"headers": {
"Content-Type": "application/json"
},
"body": "{\"id\":1,\"name\":\"Dog1\"}\"}"
}
}
}
}
}
},
"definitions": {
"Pet": {
"type": "object",
"required": [
"name"
],
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"name": {
"type": "string"
}
}
}
}
}
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
swaggerData | Object | Required | N/A | Swagger JSON format | Swagger v2.0 OpenAPI Specification |
swaggerData.info | Object | Required | N/A | N/A | API metadata area. See Info Object |
swaggerData.info.title | String | Optional | N/A | N/A | API title. See Info Object |
swaggerData.info.version | String | Optional | N/A | N/A | API version information. See Info Object |
swaggerData.paths | Object | Required | N/A | N/A | Object area with route information of the API that sets the API Gateway route. See Paths Object |
swaggerData.paths.{path} | Object | Required | N/A | {path} Max. 255 characters | Object area with {path}, which is the API Gateway route, and method information in {path}. See Paths Item Object |
swaggerData.paths.{path}.{operation} | Object | Optional | N/A | {operation} get, post, put, delete, head, options, patch | Object area with {operation}, which is the API Gateway method, and method information. Data from invalid operations is ignored and not registered. See Operation Object |
swaggerData.paths.{path}.{operation}.summary | String | Optional | {operation} Uppercase | Max. 50 characters | API Gateway method name. |
swaggerData.paths.{path}.{operation}.description | String | Optional | {operation} Uppercase | Max. 200 characters | API Gateway method description. |
swaggerData.paths.{path}.{operation}.consumes | Array | Optional | Empty Array | N/A | API Gateway resource request parameters > Content Type List area. |
swaggerData.paths.{path}.{operation}.consumes[0] | String | Optional | N/A | */* format | API Gateway Resource Request Parameters > Content Type. |
swaggerData.paths.{path}.{operation}.parameters | Array | Optional | N/A | N/A | API Gateway resource request parameters > Query String, Header, Form Data, Request Body area. See Parameter Object |
swaggerData.paths.{path}.{operation}.parameters[0].name | String | Required | N/A | Max. 50 characters | API Gateway resource request parameters > Query String, Header, Form Data, Request Body name. |
swaggerData.paths.{path}.{operation}.parameters[0].in | String | Required | N/A | query, header, formData, body | API Gateway resource request parameters > Separate Query String, Header, Form Data, and Request location. |
swaggerData.paths.{path}.{operation}.parameters[0].description | String | Optional | N/A | Max. 200 characters | API Gateway resource request parameters > Query String, Header, Form Data, Request Body description. |
swaggerData.paths.{path}.{operation}.parameters[0].required | Boolean | Required | N/A | true, false | API Gateway resource request parameters > Query String, Header, Form Data, Request Body required |
swaggerData.paths.{path}.{operation}.produces | Array | Optional | Empty Array | N/A | API Gateway resource response > Content Type List area. |
swaggerData.paths.{path}.{operation}.produces[0] | String | Optional | N/A | */* format | API Gateway Resource Response > Content Type. |
swaggerData.paths.{path}.{operation}.responses | Object | Optional | N/A | N/A | API Gateway resource response > Object area with response HTTP status code information. See Responses Object |
swaggerData.paths.{path}.{operation}.responses.{httpStatusCode} | Object | Optional | N/A | {httpStatusCode} 100~599 | API Gateway resource response > Response HTTP status code object area. |
swaggerData.paths.{path}.{operation}.responses.{httpStatusCode}.description | String | Optional | N/A | Max. 200 characters | API Gateway resource response > Response HTTP status code > Description. |
swaggerData.paths.{path}.{operation}.responses.{httpStatusCode}.headers | Object | Optional | N/A | N/A | API Gateway resource response > Response HTTP status code > Header object area. See Header Object |
swaggerData.paths.{path}.{operation}.responses.{httpStatusCode}.headers.{headerName} | Object | Optional | N/A | {headerName} Max. 50 characters | API Gateway resource response > Response HTTP status code > Header area. |
swaggerData.paths.{path}.{operation}.responses.{httpStatusCode}.headers.{headerName}.description | String | Optional | N/A | Max. 200 characters | API Gateway resource response > Response HTTP status code > Header > Description. |
swaggerData.paths.{path}.{operation}.responses.{httpStatusCode}.headers.{headerName}.type | String | Required | N/A | string, number, integer, boolean | API Gateway resource response > Response HTTP status code > Header > Data Type. |
swaggerData.paths.{path}.{operation}.responses.{httpStatusCode}.schema | Object | Optional | N/A | N/A | API Gateway resource response > Response HTTP status code > Response Body area. |
swaggerData.paths.{path}.{operation}.responses.{httpStatusCode}.schema.$ref | String | Required | N/A | Objects declared in Swagger definitions | API Gateway resource response > Response HTTP status code > Response Body > Model. |
swaggerData.paths.{path}.{operation}.x-nhncloud-apigateway | Object | Optional | N/A | N/A | API Gateway-provided feature definition object area. |
swaggerData.paths.{path}.{operation}.x-nhncloud-apigateway.plugins | Object | Required | N/A | N/A | API Gateway custom plugin object area. |
swaggerData.paths.{path}.{operation}.x-nhncloud-apigateway.plugins.{pluginCode} | Object | Required | N/A | {pluginCode} HTTP, MOCK, CORS, SET_REQUEST_HEADER, SET_RESPONSE_HEADER, ADD_REQUEST_QUERY_PARAMETER | See Resource Plugin Type Enum Code. See JSON setting value by resource plugin type. |
swaggerData.definitions | Object | Optional | N/A | N/A | API Gateway resource request parameters, body object definition area used in response. See Definitions Object |
{
"frontendEndpointPath": "/path",
"backendEndpointPath": "/anything"
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
frontendEndpointPath | String | Required | N/A | Max. 255 characters | The resource path where API Gateway will receive requests. |
backendEndpointPath | String | Required | N/A | Max. 255 characters | Backend endpoint path to forward requests received from API Gateway |
{
"statusCode": 200,
"headers": {
"Content-Type": "application/json"
},
"body": "{\"isSuccess\":true}\"}"
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
statusCode | String | Required | N/A | 100-599 | Custom response HTTP status code |
headers | Map | Optional | N/A | N/A | Custom response header object area |
headers[{HeaderName}] | Object | Required | N/A | N/A | Map Entry for custom response headers (Key: header name, Value: header value) |
body | String | Optional | N/A | N/A | Custom response body |
{
"allowedMethods": ["GET", "POST", "DELETE", "PUT", "OPTIONS", "HEAD", "PATCH"],
"allowedHeaders": ["*"],
"allowedOrigins": ["*"],
"exposedHeaders": ["X-NHN-HEADER"],
"maxCredentialsAge": 60,
"allowCredentials": false
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
allowedMethods | List | Required | N/A | N/A | Area for the list of methods to allow access to resources |
allowedMethods[0] | Enum | Required | N/A | GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH | See HTTP Method Type Enum Code |
allowedHeaders | List | Required | N/A | N/A | Area for the list of HTTP headers that can be used in the request. |
allowedHeaders[0] | String | Required | N/A | N/A | HTTP header that can be used in the request (e.g. wildcard format: '*' or 'X-NHN-HEADER, Content-Type') |
allowedOrigins | List | Required | N/A | N/A | Area for the list of domains of the origin servers that can access the resource. |
allowedOrigins[0] | String | Required | N/A | N/A | Domain of the origin server that can access the resource (e.g., wildcard format: '*' or 'http://example.nhncloudservice.com:8080') |
exposedHeaders | List | Optional | N/A | N/A | Area for list of headers accessible by browser (client) |
exposedHeaders[0] | String | Required | N/A | N/A | Header accessible by browser (client) |
maxCredentialsAge | Integer | Optional | N/A | -1~86400 | Response browser cache time for preflight requests (in seconds) |
allowCredentials | Boolean | Required | N/A | true/false | Whether to request with credentials |
{
"headers": {
"headerName": "headerValue"
}
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
headers | Map | Required | N/A | N/A | Area for request header object to add or change |
headers[{HeaderName}] | Object | Required | N/A | N/A | Map Entry of request headers to add and change (Key: header name, Value: header value) |
{
"headers": [
"Remove-Header-Name1",
"Remove-Header-Name2"
]
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
headers | List | Required | None | N/A | List of request headers to delete area |
headers[0] | Token ID | Required | None | N/A | Request header name to delete |
{
"headers": {
"headerName": "headerValue"
}
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
headers | Map | Required | N/A | N/A | Area for request header object to add or change |
headers[{HeaderName}] | Object | Required | N/A | N/A | Map Entry of request headers to add and change (Key: header name, Value: header value) |
{
"headers": [
"Remove-Header-Name1",
"Remove-Header-Name2"
]
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
headers | List | Required | None | N/A | Response header list area to delete |
headers[0] | Token ID | Required | None | N/A | Response header name to delete |
{
"parameters": {
"queryName1": "queryValue1"
}
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
parameters | Map | Required | N/A | N/A | Area for objects of request query string parameters to add |
parameters[{QueryName}] | Object | Required | N/A | N/A | Map Entry of the query parameter string to add (Key: parameter name, Value: parameter value) |
[URI]
Method | URI |
---|---|
GET | /v1.0/appkeys/{appKey}/services/{apigwServiceId}/resources/{resourceId}/parameters |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
resourceId | String | Required | N/A | N/A | API Gateway resource ID |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"queryStringList": [
{
"name": "query1",
"description": "This is a query1",
"dataType": "STRING",
"required": false,
"isArray": false
}
],
"headerList": [
{
"name": "header1",
"description": "This is a header1",
"dataType": "STRING",
"required": false,
"isArray": null
}
],
"formDataList": [
{
"name": "formDataString",
"description": "This is a formData String",
"dataType": "STRING",
"required": false,
"isArray": false
},
{
"name": "formDataFile",
"description": "This is a formData File",
"dataType": "FILE",
"required": false,
"isArray": false
}
],
"requestBody": {
"name": "requestBody",
"description": "This is a requestBody",
"modelId": "{modelId}"
},
"contentTypeList": [
"application/json"
]
}
Field | Type | Description |
---|---|---|
queryStringList | List | Query string list area |
queryStringList[0].name | String | Query string name |
queryStringList[0].description | String | Query string description |
queryStringList[0].dataType | Enum | See Resource Request/Response Parameter Data Type Enum Code |
queryStringList[0].required | Boolean | Whether the query string is required or not |
queryStringList[0].isArray | Boolean | Whether the query string is Array or not |
headerList | List | Header list area |
headerList[0].name | String | Header Value |
headerList[0].description | String | Header description |
headerList[0].dataType | Enum | See Resource Request/Response Parameter Data Type Enum Code |
headerList[0].required | Boolean | Header required or not |
headerList[0].isArray | null | Whether the header is Array is not provided. |
formDataList | List | Form data list area |
formDataList[0].name | String | Form data name |
formDataList[0].description | String | Form data description |
formDataList[0].dataType | Enum | See Resource Request/Response Parameter Data Type Enum Code |
formDataList[0].required | Boolean | Whether the form data is required or not |
formDataList[0].isArray | Boolean | Whether the form data is Array or not |
requestBody | Object | Request body area |
requestBody.name | String | Request body name |
requestBody.description | String | Request body description |
requestBody.modelId | String | Model ID associated with the request body |
contentTypeList | List | Content type list area |
contentTypeList[0] | String | Enter the content type (e.g., application/json) of the documents to send to the server. |
[URI]
Method | URI |
---|---|
POST | /v1.0/appkeys/{appKey}/services/{apigwServiceId}/resources/{resourceId}/parameters |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
resourceId | String | Required | N/A | N/A | API Gateway resource ID |
[Request Body]
{
"queryStringList": [
{
"name": "query1",
"description": "This is a query1",
"dataType": "BOOLEAN",
"required": true,
"isArray": true
}
],
"headerList": [
{
"name": "header1",
"description": "This is a header1",
"dataType": "BOOLEAN",
"required": true
}
],
"formDataList": [
{
"name": "formDataString",
"description": "This is a formDataString",
"dataType": "BOOLEAN",
"required": true,
"isArray": true
}
],
"requestBody": {
"name": "requestBody",
"description": "This is a requestBody",
"modelId": "{modelId}"
},
"contentTypeList": [
"application/json"
]
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
queryStringList | List | Optional | Empty List | Max. 50 items | Query string list area |
queryStringList[0].name | String | Required | N/A | Max. 50 characters | Query string name |
queryStringList[0].description | String | Optional | N/A | Max. 200 characters | Query string description |
queryStringList[0].dataType | Enum | Required | N/A | STRING, BOOLEAN, INTEGER, LONG, FLOAT, DOUBLE | See Resource Request/Response Parameter Data Type Enum Code |
queryStringList[0].required | Boolean | Required | N/A | true, false | Whether the query string is required or not |
queryStringList[0].isArray | Boolean | Required | N/A | true, false | Whether the query string is Array or not |
headerList | List | Optional | Empty List | Max. 50 items | Header list area |
headerList[0].name | String | Required | N/A | Max. 50 characters | Header Value |
headerList[0].description | String | Optional | N/A | Max. 200 characters | Header description |
headerList[0].dataType | Enum | Required | N/A | STRING, BOOLEAN, INTEGER, LONG, FLOAT, DOUBLE | See Resource Request/Response Parameter Data Type Enum Code |
headerList[0].required | Boolean | Required | N/A | true, false | Header required or not |
formDataList | List | Optional | Empty List | Max. 50 items | Form data list area |
formDataList[0].name | String | Required | N/A | Max. 50 characters | Form data name |
formDataList[0].description | String | Optional | N/A | Max. 200 characters | Form data description |
formDataList[0].dataType | Enum | Required | N/A | STRING, BOOLEAN, INTEGER, LONG, FLOAT, DOUBLE, FILE | See Resource Request/Response Parameter Data Type Enum Code |
formDataList[0].required | Boolean | Required | N/A | true, false | Whether the form data is required or not |
formDataList[0].isArray | Boolean | Required | N/A | true, false | Whether the query string is Array or not. false if dataType is FILE. |
requestBody | Object | Optional | Empty Object | N/A | Request body object area |
requestBody.name | String | Required | N/A | Max. 50 characters | Request body name |
requestBody.description | String | Optional | N/A | Max. 200 characters | Request body description |
requestBody.modelId | String | Required | N/A | N/A | Model ID associated with the request body |
contentTypeList | List | Optional | Empty List | Max. 10 items | Content type list area |
contentTypeList[0] | String | Required | N/A | */* format | Enter the content type (e.g., application/json) of the documents to send to the server. |
[Response Body]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
}
}
[URI]
Method | URI |
---|---|
GET | /v1.0/appkeys/{appKey}/services/{apigwServiceId}/resources/{resourceId}/responses |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
resourceId | String | Required | N/A | N/A | API Gateway resource ID |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"responseList": [
{
"responseStatusCode": 200,
"description": "HTTP Status 200",
"headerList": [
{
"name": "header1",
"description": "This is a response header1",
"dataType": "STRING"
}
],
"responseBody": {
"name": "responseBody",
"description": "This is a responseBody",
"modelId": "{modelId}"
}
}
],
"contentTypeList": [
"application/json"
]
}
Field | Type | Description |
---|---|---|
responseList | List | Response information list area by HTTP response status code |
responseList[0].responseStatusCode | Integer | HTTP response status code |
responseList[0].description | String | HTTP response status code description |
responseList[0].headerList | List | HTTP response header list area |
responseList[0].headerList[0].name | String | Response header name |
responseList[0].headerList[0].description | String | Response header description |
responseList[0].headerList[0].dataType | Enum | See Resource Request/Response Parameter Data Type Enum Code |
responseList[0].responseBody | Object | HTTP response body object area |
responseList[0].responseBody.name | String | Response body name |
responseList[0].responseBody.description | String | Response body description |
responseList[0].responseBody.modelId | String | Model ID associated with the response body |
contentTypeList | List | Content type list area |
contentTypeList[0] | String | Enter the content type (e.g., application/json) of the documents to send to the server. |
[URI]
Method | URI |
---|---|
POST | /v1.0/appkeys/{appKey}/services/{apigwServiceId}/resources/{resourceId}/responses |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
resourceId | String | Required | N/A | N/A | API Gateway resource ID |
[Request Body]
{
"responseList": [
{
"responseStatusCode": 200,
"description": "HTTP Status 200",
"headerList": [
{
"name": "header1",
"description": "This is a response header1",
"dataType": "STRING"
}
],
"requestBody": {
"name": "responseBody",
"description": "This is a response body",
"modelId": "{modelId}"
}
}
],
"contentTypeList": [
"application/json"
]
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
responseList | List | Optional | Empty List | N/A | Response information list area by HTTP response status code |
responseList[0].responseStatusCode | Integer | Required | N/A | 100-599 | HTTP response status code |
responseList[0].description | String | Optional | N/A | Max. 200 characters | HTTP response status code description |
responseList[0].headerList | List | Optional | Empty List | Max. 50 items | HTTP response header list area |
responseList[0].headerList[0].name | String | Required | N/A | Max. 50 characters | Response header name |
responseList[0].headerList[0].description | String | Optional | N/A | Max. 200 characters | Response header description |
responseList[0].headerList[0].dataType | Enum | Required | N/A | STRING, BOOLEAN, INTEGER, LONG, FLOAT, DOUBLE | See Resource Request/Response Parameter Data Type Enum Code |
responseList[0].responseBody | Object | Optional | Empty Object | N/A | HTTP response body object area |
responseList[0].responseBody.name | String | Required | N/A | Max. 50 characters | Response body name |
responseList[0].responseBody.description | String | Optional | N/A | Max. 200 characters | Response body description |
responseList[0].responseBody.modelId | String | Required | N/A | N/A | Model ID associated with the response body |
contentTypeList | List | Optional | Empty List | Max. 10 items | Content type list area |
contentTypeList[0] | String | Required | N/A | */* format | Enter the content type (e.g., application/json) of the documents to send to the server. |
[Response Body]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
}
}
[URI]
Method | URI |
---|---|
GET | /v1.0/appkeys/{appKey}/services/{apigwServiceId}/models |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
[QueryString Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
page | Integer | Optional | 1 | N/A | Page |
limit | Integer | Optional | 10 | Max. 1000 | Count per page |
modelName | String | Optional | N/A | Max. 50 characters | Model name filter condition. It must contain a string of the model name. |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"paging": {
"limit": 10,
"page": 1,
"totalCount": 1
},
"modelList": [
{
"modelId": "{modelId}",
"apigwServiceId": "{apigwServiceId}",
"modelName": "UserModel",
"modelDescription": "This is a user model.",
"modelSchema": {
"type": "object",
"properties": {
"userName": {
"type": "string"
},
"userDescription": {
"description": "user description",
"type": "string",
"maxLength": 128
}
},
"required": [
"userName"
]
},
"createdAt": "2021-10-11T23:51:47.000Z",
"updatedAt": "2021-10-11T23:51:47.000Z"
}
]
}
Field | Type | Description |
---|---|---|
paging | Object | Paging area |
paging.page | Integer | Current page |
paging.limit | Integer | Count per page |
paging.totalCount | Integer | Total count |
modelList | List | Model list area |
modelList[0].apigwServiceId | String | API Gateway service ID |
modelList[0].modelId | String | Model ID |
modelList[0].modelName | String | Model name |
modelList[0].modelDescription | String | Model description |
modelList[0].modelSchema | Object | JSON Schema draft-04 JSON object of model |
modelList[0].createdAt | DateTime | Model creation date and time |
modelList[0].updatedAt | DateTime | Model modification date and time |
[URI]
Method | URI |
---|---|
POST | /v1.0/appkeys/{appKey}/services/{apigwServiceId}/models |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
[Request Body]
{
"modelName": "UserModel",
"modelDescription": "This is a user model.",
"modelSchema": {
"type": "object",
"properties": {
"userName": {
"type": "string"
},
"userDescription": {
"description": "user description",
"type": "string",
"maxLength": 128
}
},
"required": [
"userName"
]
}
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
modelName | String | Required | N/A | Max. 50 characters | Model name |
modelDescription | String | Optional | N/A | Max. 200 characters | Model description |
modelSchema | Object | Required | N/A | Max. 65535 characters | JSON Schema draft-04 JSON object of model |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"model": {
"modelId": "{modelId}",
"apigwServiceId": "{apigwServiceId}",
"modelName": "UserModel",
"modelDescription": "This is a user model.",
"modelSchema": {
"type": "object",
"properties": {
"userName": {
"type": "string"
},
"userDescription": {
"description": "user description",
"type": "string",
"maxLength": 128
}
},
"required": [
"userName"
]
},
"createdAt": "2021-10-11T23:51:47.000Z",
"updatedAt": "2021-10-11T23:51:47.000Z"
}
}
Field | Type | Description |
---|---|---|
model | Object | Model area |
model.apigwServiceId | String | API Gateway service ID |
model.modelId | String | Model ID |
model.modelName | String | Model name |
model.modelDescription | String | Model description |
model.modelSchema | Object | JSON Schema draft-04 JSON object of model |
model.createdAt | DateTime | Model creation date and time |
model.updatedAt | DateTime | Model modification date and time |
[URI]
Method | URI |
---|---|
PUT | /v1.0/appkeys/{appKey}/services/{apigwServiceId}/models/{modelId} |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
modelId | String | Required | N/A | N/A | Model ID |
[Request Body]
{
"modelDescription": "This is user model.",
"modelSchema": {
"type": "object",
"properties": {
"userName": {
"type": "string"
},
"userDescription": {
"description": "user description",
"type": "string",
"maxLength": 256
}
},
"required": [
"userName"
]
}
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
modelDescription | String | Optional | N/A | Max. 200 characters | Model description |
modelSchema | Object | Required | N/A | Max. 65535 characters | JSON Schema draft-04 JSON object of model |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"model": {
"modelId": "{modelId}",
"apigwServiceId": "{apigwServiceId}",
"modelName": "UserModel",
"modelDescription": "This is a user model.",
"modelSchema": {
"type": "object",
"properties": {
"userName": {
"type": "string"
},
"userDescription": {
"description": "user description",
"type": "string",
"maxLength": 256
}
},
"required": [
"userName"
]
},
"createdAt": "2021-10-11T23:51:47.000Z",
"updatedAt": "2021-10-11T23:51:50.000Z"
}
}
Field | Type | Description |
---|---|---|
model | Object | Model area |
model.apigwServiceId | String | API Gateway service ID |
model.modelId | String | Model ID |
model.modelName | String | Model name |
model.modelDescription | String | Model description |
model.modelSchema | Object | JSON Schema draft-04 JSON object of model |
model.createdAt | DateTime | Model creation date and time |
model.updatedAt | DateTime | Model modification date and time |
[URI]
Method | URI |
---|---|
DELETE | /v1.0/appkeys/{appKey}/services/{apigwServiceId}/models/{modelId} |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
modelId | String | Required | N/A | N/A | Model ID |
[Response]
{
"header" : {
"resultCode" : 0,
"resultMessage" : "SUCCESS",
"isSuccessful" : true
}
}
[URI]
Method | URI |
---|---|
GET | /v1.0/appkeys/{appKey}/services/{apigwServiceId}/stages |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
[QueryString Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
page | Integer | Optional | 1 | N/A | Page |
limit | Integer | Optional | 10 | Max. 1000 | Count per page |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"paging": {
"limit": 10,
"page": 1,
"totalCount": 1
},
"stageList": [
{
"stageId": "{stageId}",
"apigwServiceId": "{apigwServiceId}",
"regionCode": "KR1",
"stageName": "alpha",
"stageDescription": "alpha environment stage",
"stageUrl": "kr1-{apigwServiceId}-alpha.api.nhncloudservice.com",
"stageCustomDomainList": [],
"backendEndpointUrl": "https://backend.com",
"resourceUpdatedAt": "2021-10-20T06:43:26.000Z",
"createdAt": "2021-10-20T06:43:26.000Z",
"updatedAt": "2021-10-20T06:43:26.000Z"
}
]
}
Field | Type | Description |
---|---|---|
paging | Object | Paging area |
paging.page | Integer | Current page |
paging.limit | Integer | Count per page |
paging.totalCount | Integer | Total count |
stageList | List | Stage list area |
stageList[0].regionCode | Enum | See API Gateway Region Enum Code |
stageList[0].apigwServiceId | String | API Gateway service ID |
stageList[0].stageId | String | Stage ID |
stageList[0].stageName | String | Stage name |
stageList[0].stageUrl | String | Stage URL |
stageList[0].stageCustomDomainList | List | Area for the list of stage custom domain |
stageList[0].stageCustomDomainList[0].customDomain | String | Custom domain |
stageList[0].stageCustomDomainList[0].createdAt | DateTime | When custom domain is connected |
stageList[0].stageDescription | String | Stage description |
stageList[0].backendEndpointUrl | String | Backend endpoint URL |
stageList[0].resourceUpdatedAt | DateTime | Date and time of importing resource to the stage recently |
stageList[0].createdAt | DateTime | Stage creation date and time |
stageList[0].updatedAt | DateTime | Stage modification date and time |
[URI]
Method | URI |
---|---|
GET | /v1.0/appkeys/{appKey}/services/{apigwServiceId}/stages/{stageId}/swagger |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
stageId | String | Required | N/A | N/A | Stage ID |
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "string"
},
"swaggerData": "{swaggerJson}"
}
Field | Type | Description |
---|---|---|
swaggerData | Object | A Swagger JSON object based on the current stage. See Swagger v2.0 OpenAPI Specification. |
[URI]
Method | URI |
---|---|
POST | /v1.0/appkeys/{appKey}/services/{apigwServiceId}/stages |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
[Request Body]
{
"stageName": "alpha",
"stageDescription": "alpha environment stage",
"backendEndpointUrl": "https://backend.com"
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
stageName | String | Conditionally required | N/A | Max. 30 characters, English lowercase letters and numbers only | Stage name Required for non-default stage. |
stageDescription | String | Optional | N/A | Max. 200 characters | Stage description |
backendEndpointUrl | String | Required | N/A | Max. 150 characters, URL format | Backend endpoint URL |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"stage": {
"stageId": "{stageId}",
"apigwServiceId": "{apigwServiceId}",
"regionCode": "KR1",
"stageName": "alpha",
"stageDescription": "alpha environment stage",
"stageUrl": "kr1-{apigwServiceId}-alpha.api.nhncloudservice.com",
"stageCustomDomainList": [],
"backendEndpointUrl": "https://backend.com",
"resourceUpdatedAt": "2021-10-22T02:22:11.182Z",
"createdAt": "2021-10-22T02:22:11.182Z",
"updatedAt": "2021-10-22T02:22:11.182Z"
}
}
Field | Type | Description |
---|---|---|
stage | Object | Stage area |
stage.regionCode | Enum | See API Gateway Region Enum Code |
stage.apigwServiceId | String | API Gateway service ID |
stage.stageId | String | Stage ID |
stage.stageName | String | Stage name |
stage.stageUrl | String | Stage URL |
stage.stageCustomDomainList | List | Area for the list of stage custom domain |
stage.stageCustomDomainList[0].customDomain | String | Custom domain |
stage.stageCustomDomainList[0].createdAt | DateTime | When custom domain is connected |
stage.stageDescription | String | Stage description |
stage.backendEndpointUrl | String | Backend endpoint URL |
stage.resourceUpdatedAt | DateTime | Date and time of importing resource to the stage recently |
stage.createdAt | DateTime | Stage creation date and time |
stage.updatedAt | DateTime | Stage modification date and time |
[URI]
Method | URI |
---|---|
PUT | /v1.0/appkeys/{appKey}/services/{apigwServiceId}/stages/{stageId} |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
stageId | String | Required | N/A | N/A | Stage ID |
[Request Body]
{
"backendEndpointUrl": "https://v2.backend.com",
"stageDescription": "alpha v2 environment stage"
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
backendEndpointUrl | String | Required | N/A | Max. 150 characters, URL format | Backend endpoint URL |
stageDescription | String | Optional | N/A | Max. 200 characters | Stage description |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"stage": {
"stageId": "{stageId}",
"apigwServiceId": "{apigwServiceId}",
"regionCode": "KR1",
"stageName": "alpha",
"stageDescription": "alpha v2 environment stage",
"stageUrl": "kr1-{apigwServiceId}-alpha.api.nhncloudservice.com",
"stageCustomDomainList": [],
"backendEndpointUrl": "https://v2.backend.com",
"resourceUpdatedAt": "2021-10-22T02:22:11.182Z",
"createdAt": "2021-10-22T02:22:11.182Z",
"updatedAt": "2021-10-22T02:22:11.182Z"
}
}
Field | Type | Description |
---|---|---|
stage | Object | Stage area |
stage.regionCode | Enum | See API Gateway Region Enum Code |
stage.apigwServiceId | String | API Gateway service ID |
stage.stageId | String | Stage ID |
stage.stageName | String | Stage name |
stage.stageUrl | String | Stage URL |
stage.stageCustomDomainList | List | Area for the list of stage custom domain |
stage.stageCustomDomainList[0].customDomain | String | Custom domain |
stage.stageCustomDomainList[0].createdAt | DateTime | When custom domain is connected |
stage.stageDescription | String | Stage description |
stage.backendEndpointUrl | String | Backend endpoint URL |
stage.resourceUpdatedAt | DateTime | Date and time of importing resource to the stage recently |
stage.createdAt | DateTime | Stage creation date and time |
stage.updatedAt | DateTime | Stage modification date and time |
[URI]
Method | URI |
---|---|
DELETE | /v1.0/appkeys/{appKey}/services/{apigwServiceId}/stages/{stageId} |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
stageId | String | Required | N/A | N/A | Stage ID |
[Response Body]
{
"header" : {
"resultCode" : 0,
"resultMessage" : "SUCCESS",
"isSuccessful" : true
}
}
[URI]
Method | URI |
---|---|
GET | /v1.0/appkeys/{appKey}/services/{apigwServiceId}/stages/{stageId}/resources |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
stageId | String | Required | N/A | N/A | Stage ID |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"stageResourceList": [
{
"stageResourceId": "{stageResourceId}",
"stageId": "{stageId}",
"path": "/",
"parentPath": null,
"methodType": null,
"methodName": null,
"methodDescription": null,
"customBackendEndpointUrl": null,
"createdAt": "2021-10-22T04:43:14.000Z",
"updatedAt": "2021-10-22T04:44:42.000Z",
"stageResourcePluginList": [
{
"stageResourcePluginId": "{stageResourcePluginId}",
"stageResourceId": "{stageResourceId}",
"pluginType": "HMAC",
"pluginConfigJson": {
"secretKey": "hmac-secret-key",
"clockSkewSeconds": 10,
"enforceHeaders": []
},
"createdAt": "2021-10-22T04:44:42.000Z",
"updatedAt": "2021-10-22T04:44:42.000Z"
},
{
"stageResourcePluginId": "{stageResourcePluginId}",
"stageResourceId": "{stageResourceId}",
"pluginType": "RATE_LIMIT",
"pluginConfigJson": {
"requestPerSec": 10,
"defaultKey": "kr1-{apigwServiceId}.alpha-api.nhncloudservice.com/:",
"keyType": "DEFAULT",
"extraKeyValue": null
},
"createdAt": "2021-10-22T04:44:42.000Z",
"updatedAt": "2021-10-22T04:44:42.000Z"
}
]
}
]
}
Field | Type | Description |
---|---|---|
stageResourceList | List | Stage resource list area |
stageResourceList[0] | Object | Stage resource area |
stageResourceList[0].stageResourceId | String | Stage resource ID |
stageResourceList[0].path | String | Stage resource path |
stageResourceList[0].parentPath | String | Parent resource path of the stage (parentPath for root (/) path is null) |
stageResourceList[0].stageId | String | Stage ID |
stageResourceList[0].customBackendEndpointUrl | String | Backend endpoint override URL |
stageResourceList[0].methodType | Enum | See HTTP Method Type Enum Code |
stageResourceList[0].methodName | String | Method name |
stageResourceList[0].methodDescription | String | Method description |
stageResourceList[0].createdAt | DateTime | Stage resource creation date and time |
stageResourceList[0].updatedAt | DateTime | Stage resource modification date and time |
stageResourceList[0].stageResourcePluginList | List | Stage resource's plugin list area |
stageResourceList[0].stageResourcePluginList[0] | Object | Stage resource's plugin area |
stageResourceList[0].stageResourcePluginList[0].stageResourcePluginId | String | Stage resource's plugin ID |
stageResourceList[0].stageResourcePluginList[0].stageResourceId | String | Stage resource ID |
stageResourceList[0].stageResourcePluginList[0].pluginType | Enum | See Resource Plugin Type Enum Code, Stage Resource > Plugin Type Enum Code |
stageResourceList[0].stageResourcePluginList[0].pluginConfigJson | Object | See configuration JSON by Resource Plugin Type, Stage Resource Plugin |
stageResourceList[0].stageResourcePluginList[0].createdAt | DateTime | Stage resource plugin creation date and time |
stageResourceList[0].stageResourcePluginList[0].updatedAt | DateTime | Stage resource plugin modification date and time |
[URI]
Method | URI |
---|---|
PUT | /v1.0/appkeys/{appKey}/services/{apigwServiceId}/stages/{stageId}/resources |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
stageId | String | Required | N/A | N/A | Stage ID |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"stageResourceList": [
{
"stageResourceId": "{stageResourceId}",
"stageId": "{stageId}",
"path": "/",
"parentPath": null,
"methodType": null,
"methodName": null,
"methodDescription": null,
"customBackendEndpointUrl": null,
"createdAt": "2021-10-22T04:43:14.000Z",
"updatedAt": "2021-10-22T04:44:42.000Z",
"stageResourcePluginList": [
{
"stageResourcePluginId": "{stageResourcePluginId}",
"stageResourceId": "{stageResourceId}",
"pluginType": "HMAC",
"pluginConfigJson": {
"secretKey": "hmac-secret-key",
"clockSkewSeconds": 10,
"enforceHeaders": []
},
"createdAt": "2021-10-22T04:44:42.000Z",
"updatedAt": "2021-10-22T04:44:42.000Z"
},
{
"stageResourcePluginId": "{stageResourcePluginId}",
"stageResourceId": "{stageResourceId}",
"pluginType": "RATE_LIMIT",
"pluginConfigJson": {
"requestPerSec": 10,
"defaultKey": "kr1-{apigwServiceId}.alpha-api.nhncloudservice.com/:",
"keyType": "DEFAULT",
"extraKeyValue": null
},
"createdAt": "2021-10-22T04:44:42.000Z",
"updatedAt": "2021-10-22T04:44:42.000Z"
}
]
}
]
}
Field | Type | Description |
---|---|---|
stageResourceList | List | Stage resource list area |
stageResourceList[0] | Object | Stage resource area |
stageResourceList[0].stageResourceId | String | Stage resource ID |
stageResourceList[0].path | String | Stage resource path |
stageResourceList[0].parentPath | String | Parent resource path of the stage (parentPath for root (/) path is null) |
stageResourceList[0].stageId | String | Stage ID |
stageResourceList[0].customBackendEndpointUrl | String | Backend endpoint override URL |
stageResourceList[0].methodType | Enum | See HTTP Method Type Enum Code |
stageResourceList[0].methodName | String | Method name |
stageResourceList[0].methodDescription | String | Method description |
stageResourceList[0].createdAt | DateTime | Stage resource creation date and time |
stageResourceList[0].updatedAt | DateTime | Stage resource modification date and time |
stageResourceList[0].stageResourcePluginList | List | Stage resource's plugin list area |
stageResourceList[0].stageResourcePluginList[0] | Object | Stage resource's plugin area |
stageResourceList[0].stageResourcePluginList[0].stageResourcePluginId | String | Stage resource's plugin ID |
stageResourceList[0].stageResourcePluginList[0].stageResourceId | String | Stage resource ID |
stageResourceList[0].stageResourcePluginList[0].pluginType | Enum | See Resource Plugin Type Enum Code, Stage Resource > Plugin Type Enum Code |
stageResourceList[0].stageResourcePluginList[0].pluginConfigJson | Object | See configuration JSON by Resource Plugin Type, Stage Resource Plugin |
stageResourceList[0].stageResourcePluginList[0].createdAt | DateTime | Stage resource plugin creation date and time |
stageResourceList[0].stageResourcePluginList[0].updatedAt | DateTime | Stage resource plugin modification date and time |
[URI]
Method | URI |
---|---|
PUT | /v1.0/appkeys/{appKey}/services/{apigwServiceId}/stages/{stageId}/resources/{stageResourceId} |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
stageId | String | Required | N/A | N/A | Stage ID |
stageResourceId | String | Required | N/A | N/A | Stage resource ID |
[Request Body]
{
"customBackendEndpointUrl": "http://custom.backendpoint.com",
"stageResourcePluginList": [
{
"pluginConfigJson": {"isActive": true},
"pluginType": "API_KEY"
}
]
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
customBackendEndpointUrl | String | Optional | N/A | Max. 150 characters, URL format | Backend endpoint override URL |
stageResourcePluginList | List | Required | N/A | N/A | Stage resource's plugin list area |
stageResourcePluginList[0] | Object | Required | N/A | N/A | Stage resource's plugin area |
stageResourcePluginList[0].pluginType | Enum | Required | N/A | IP_ACL, HMAC, JWT, API_KEY, PRE_API, RATE_LIMIT | See Stage Resource > Plugin Type Enum Code |
stageResourcePluginList[0].pluginConfigJson | Object | Required | N/A | N/A | JSON-format object for each stage resource plugin See configuration JSON by Stage Resource Plugin |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"stageResourceList": [
{
"stageResourceId": "{stageResourceId}",
"stageId": "{stageId}",
"path": "/",
"parentPath": null,
"methodType": null,
"methodName": null,
"methodDescription": null,
"customBackendEndpointUrl": null,
"createdAt": "2021-10-22T04:43:14.000Z",
"updatedAt": "2021-10-22T04:44:42.000Z",
"stageResourcePluginList": [
{
"stageResourcePluginId": "{stageResourcePluginId}",
"stageResourceId": "{stageResourceId}",
"pluginType": "HMAC",
"pluginConfigJson": {
"secretKey": "hmac-secret-key",
"clockSkewSeconds": 10,
"enforceHeaders": []
},
"createdAt": "2021-10-22T04:44:42.000Z",
"updatedAt": "2021-10-22T04:44:42.000Z"
},
{
"stageResourcePluginId": "{stageResourcePluginId}",
"stageResourceId": "{stageResourceId}",
"pluginType": "RATE_LIMIT",
"pluginConfigJson": {
"requestPerSec": 10,
"defaultKey": "kr1-{apigwServiceId}.alpha-api.nhncloudservice.com/:",
"keyType": "DEFAULT",
"extraKeyValue": null
},
"createdAt": "2021-10-22T04:44:42.000Z",
"updatedAt": "2021-10-22T04:44:42.000Z"
}
]
}
]
}
Field | Type | Description |
---|---|---|
stageResourceList | List | Stage resource list area |
stageResourceList[0] | Object | Stage resource area |
stageResourceList[0].stageResourceId | String | Stage resource ID |
stageResourceList[0].path | String | Stage resource path |
stageResourceList[0].parentPath | String | Parent resource path of the stage (parentPath for root (/) path is null) |
stageResourceList[0].stageId | String | Stage ID |
stageResourceList[0].customBackendEndpointUrl | String | Backend endpoint override URL |
stageResourceList[0].methodType | Enum | See HTTP Method Type Enum Code |
stageResourceList[0].methodName | String | Method name |
stageResourceList[0].methodDescription | String | Method description |
stageResourceList[0].createdAt | DateTime | Stage resource creation date and time |
stageResourceList[0].updatedAt | DateTime | Stage resource modification date and time |
stageResourceList[0].stageResourcePluginList | List | Stage resource's plugin list area |
stageResourceList[0].stageResourcePluginList[0] | Object | Stage resource's plugin area |
stageResourceList[0].stageResourcePluginList[0].stageResourcePluginId | String | Stage resource's plugin ID |
stageResourceList[0].stageResourcePluginList[0].stageResourceId | String | Stage resource ID |
stageResourceList[0].stageResourcePluginList[0].pluginType | Enum | See Resource Plugin Type Enum Code, Stage Resource > Plugin Type Enum Code |
stageResourceList[0].stageResourcePluginList[0].pluginConfigJson | Object | See configuration JSON by Resource Plugin Type, Stage Resource Plugin |
stageResourceList[0].stageResourcePluginList[0].createdAt | DateTime | Stage resource plugin creation date and time |
stageResourceList[0].stageResourcePluginList[0].updatedAt | DateTime | Stage resource plugin modification date and time |
When a plugin is set in the upper level, it is applied to all child methods collectively, and can be overridden in child paths/methods.
[Example]: Plugin configuration override ``` / /members
Plugins configurable depending on resources
Resource type | List of configurable plugins |
---|---|
Root (/) resource path | IP ACL, Authentication (either JWT or HMAC), Pre-call API, Request number limit, API key |
Resource path | Backend endpoint URL override, Pre-call API, API Key |
Resource method | Backend endpoint URL override, Pre-call API, Request number limit, API Key |
{
"pluginType": "IP_ACL",
"pluginConfigJson": {
"isPermit": false,
"ipAclList": [
{
"ipCidrAddress": "192.168.0.1",
"description": "ip format"
},
{
"ipCidrAddress": "192.168.0.0/24",
"description": "cidr format"
}
]
}
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
pluginType | Enum | Required | N/A | IP_ACL | See IP_ACL in Stage Resource > Plugin Type Enum Code |
pluginConfigJson | Object | Required | N/A | N/A | IP ACL plugin configuration area |
pluginConfigJson.isPermit | Boolean | Required | N/A | true, false | If set to false, the request is denied for the configured IP/CIDR. If set to true, the request is allowed only for the configured IP/CIDR. |
pluginConfigJson.ipAclList | List | Required | N/A | 1~100 items | Area for IP or CIDR list to allow/deny requests |
pluginConfigJson.ipAclList[0].ipCidrAddress | String | Required | N/A | IP or CIDR format | Set IP or CIDR. |
pluginConfigJson.ipAclList[0].description | String | Optional | N/A | Max. 200 characters | Set the description. |
{
"pluginType": "HMAC",
"pluginConfigJson": {
"secretKey": "{secretKey}",
"clockSkewSeconds": 0,
"enforceHeaders": [
"Authorization"
]
}
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
pluginType | Enum | Required | N/A | HMAC | See HMAC in Stage Resource > Plugin Type Enum Code |
pluginConfigJson | Object | Required | N/A | N/A | HMAC plugin configuration area |
pluginConfigJson.secretKey | String | Required | N/A | N/A | Set the secret key used for signing. It is recommended to set it to a string of at least 32 bytes. |
pluginConfigJson.clockSkewSeconds | Integer | Optional | 0 | 0~86400 | Specify the request validity period (in seconds). |
pluginConfigJson.enforceHeaders | Array | Optional | Empty List | N/A | Enter a string array of required validation headers. |
pluginConfigJson.enforceHeaders[0] | String | Required | N/A | N/A | String of required validation headers |
{
"pluginType": "JWT",
"pluginConfigJson": {
"encryptAlgorithm": "HS256",
"hs256": {
"secretKey": "{secretKey}"
},
"clockSkew": 0,
"claimValidationCondition": {
"iss": {
"value": [],
"dataType": "Array",
"required": false,
"validate": false
},
"aud": {
"value": [],
"dataType": "Array",
"required": false,
"validate": true
},
"sub": {
"value": "",
"dataType": "String",
"required": false,
"validate": false
},
"jti": {
"value": "",
"dataType": "String",
"required": false,
"validate": false
},
"exp": {
"value": "",
"dataType": "NumericDate",
"required": false,
"validate": true
},
"iat": {
"value": "",
"dataType": "NumericDate",
"required": false,
"validate": true
},
"nbf": {
"value": "",
"dataType": "NumericDate",
"required": false,
"validate": true
}
}
}
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
pluginType | Enum | Required | N/A | JWT | See JWT in Stage Resource > Plugin Type Enum Code |
pluginConfigJson | Object | Required | N/A | N/A | JWT plugin configuration area |
pluginConfigJson.encryptAlgorithm | Enum | Required | HS256 | HS256 | See JWT > Encryption Algorithm Enum Code |
pluginConfigJson.hs256 | Object | Required | N/A | N/A | HS256 validation area |
pluginConfigJson.hs256.secretKey | String | Required | N/A | N/A | Set the secret key used for signing. It is recommended to set it to a string of at least 32 bytes. |
pluginConfigJson.clockSkew | Integer | Optional | 0 | 0~86400 | Specify the validation validity period (in seconds) of the exp, nbf claim. |
pluginConfigJson.claimValidationCondition | Object | Optional | Default Object | N/A | Claim validation condition area |
pluginConfigJson.claimValidationCondition.iss | Object | Optional | Default Object | N/A | The iss claim validation condition area. If not requested, it will be stored as the default value for each field. |
pluginConfigJson.claimValidationCondition.iss.value | Array | Required | Empty Array | N/A | Set the value of the claim to allow among the values of the iss request claim as a string array. |
pluginConfigJson.claimValidationCondition.iss.value[0] | String | Optional | N/A | N/A | Set the string to allow among the values of the iss request claim. |
pluginConfigJson.claimValidationCondition.iss.dataType | Enum | Optional | Array | Array | Set the data type of the iss claim. Only Array is valid. See JWT > Claim Data Type Enum Code |
pluginConfigJson.claimValidationCondition.iss.required | Boolean | Required | false | true, false | Set whether the iss request claim value is required to be validated. |
pluginConfigJson.claimValidationCondition.iss.validate | Boolean | Required | false | true, false | Set whether to validate the iss request claim value. |
pluginConfigJson.claimValidationCondition.aud | Object | Optional | Default Object | N/A | The aud claim validation condition area. If not requested, it will be stored as the default value for each field. |
pluginConfigJson.claimValidationCondition.aud.value | Array | Required | Empty Array | N/A | Set the value of the claim to allow among the values of the aud request claim as a string array. |
pluginConfigJson.claimValidationCondition.aud.value[0] | String | Optional | N/A | N/A | Set the string to allow among the values of the aud request claim. |
pluginConfigJson.claimValidationCondition.aud.dataType | Enum | Optional | Array | Array | Set the data type of the aud claim. Only Array is valid. JWT > Claim Data Type Enum Code |
pluginConfigJson.claimValidationCondition.aud.required | Boolean | Required | false | true, false | Set whether the aud request claim value is required to be validated. |
pluginConfigJson.claimValidationCondition.aud.validate | Boolean | Required | true | true | Set whether to validate the aud request claim value. Only true is valid. |
pluginConfigJson.claimValidationCondition.sub | Object | Optional | Default Object | N/A | The sub claim validation condition area. If not requested, it will be stored as the default value for each field. |
pluginConfigJson.claimValidationCondition.sub.value | String | Required | Empty String | N/A | Set the value of the claim to allow among the values of the sub request claim as a string value. |
pluginConfigJson.claimValidationCondition.sub.dataType | Enum | Optional | String | String | Set the data type of the sub claim. Only Array is valid. JWT > Claim Data Type Enum Code |
pluginConfigJson.claimValidationCondition.sub.required | Boolean | Required | false | true, false | Set whether the sub request claim value is required to be validated. If the validate field value is true, required must be set to true. |
pluginConfigJson.claimValidationCondition.sub.validate | Boolean | Required | false | true, false | Set whether to validate the sub request claim value. |
pluginConfigJson.claimValidationCondition.jti | Object | Optional | Default Object | N/A | The jti claim validation condition area. If not requested, it will be stored as the default value for each field. |
pluginConfigJson.claimValidationCondition.jti.value | String | Required | Empty String | N/A | The jti claim does not require setting the validation values to allow, so set it to an empty string. |
pluginConfigJson.claimValidationCondition.jti.dataType | Enum | Optional | String | String | Set the data type of the jti claim. JWT > Claim Data Type Enum Code |
pluginConfigJson.claimValidationCondition.jti.required | Boolean | Required | false | true, false | Set whether the jti request claim value is required to be validated. |
pluginConfigJson.claimValidationCondition.jti.validate | Boolean | Required | false | false | Set whether to validate the jti request claim value. Only false is valid. |
pluginConfigJson.claimValidationCondition.exp | Object | Optional | Default Object | N/A | The exp claim validation condition area. If not requested, it will be stored as the default value for each field. |
pluginConfigJson.claimValidationCondition.exp.dataType | Enum | Optional | NumericDate | NumericDate | Set the data type of the exp claim. Only NumericDate is valid. See JWT > Claim Data Type Enum Code |
pluginConfigJson.claimValidationCondition.exp.required | Boolean | Required | false | true, false | Set whether the exp request claim value is required to be validated. |
pluginConfigJson.claimValidationCondition.exp.validate | Boolean | Optional | true | true | Set whether to validate the exp request claim value. Only true is valid. |
pluginConfigJson.claimValidationCondition.iat | Object | Optional | Default Object | N/A | The iat claim validation condition area. If not requested, it will be stored as the default value for each field. |
pluginConfigJson.claimValidationCondition.iat.dataType | Enum | Optional | NumericDate | NumericDate | Set the data type of the iat claim. Only NumericDate is valid. See JWT > Claim Data Type Enum Code |
pluginConfigJson.claimValidationCondition.iat.required | Boolean | Required | false | true, false | Set whether the iat request claim value is required to be validated. |
pluginConfigJson.claimValidationCondition.iat.validate | Boolean | Optional | true | true | Set whether to validate the iat request claim value. Only true is valid. |
pluginConfigJson.claimValidationCondition.nbf | Object | Optional | Default Object | N/A | The nbf claim validation condition area. If not requested, it will be stored as the default value for each field. |
pluginConfigJson.claimValidationCondition.nbf.dataType | Enum | Optional | NumericDate | NumericDate | Set the data type of the nbf claim. Only NumericDate is valid. See JWT > Claim Data Type Enum Code |
pluginConfigJson.claimValidationCondition.nbf.required | Boolean | Required | false | true, false | Set whether the nbf request claim value is required to be validated. |
pluginConfigJson.claimValidationCondition.nbf.validate | Boolean | Optional | true | true | Sets whether to validate the nbf request claim value. Only true is valid. |
{
"pluginType": "JWT",
"pluginConfigJson": {
"encryptAlgorithm": "RS256",
"rs256": {
"publicKeyType": "RSA_PUBLIC_KEY",
"rsaPublicKey": "-----BEGIN PUBLIC KEY-----\n{publicPemKey}\n-----END PUBLIC KEY-----"
},
"clockSkew": 0,
"claimValidationCondition": {
...
}
}
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
pluginType | Enum | Required | N/A | JWT | See JWT in Stage Resource > Plugin Type Enum Code |
pluginConfigJson | Object | Required | N/A | N/A | JWT plugin configuration area |
pluginConfigJson.encryptAlgorithm | Enum | Required | RS256 | RS256 | See JWT > Encryption Algorithm Enum Code |
pluginConfigJson.rs256 | Object | Required | N/A | N/A | RS256 configuration area |
pluginConfigJson.rs256.publicKeyType | Enum | Required | N/A | RSA_PUBLIC_KEY | Set the public key in PEM format. See JWT > RS256 Encryption Algorithm > Public Key Type Enum Code |
pluginConfigJson.rs256.rsaPublicKey | String | Required | N/A | Public key in PEM format | Set the public key value in PEM format. It must be entered including the newline character (\n). |
pluginConfigJson.clockSkew | Integer | Optional | 0 | 0~86400 | Specify the validation validity period (in seconds) of the exp, nbf claim. |
pluginConfigJson.claimValidationCondition | Object | Optional | Default Object | N/A | Claim validation condition field (encryption algorithm: same as claimValidationCondition field description of HS256) |
{
"pluginType": "JWT",
"pluginConfigJson": {
"encryptAlgorithm": "RS256",
"rs256": {
"publicKeyType": "JWKS_URI",
"jwksUri": "https://examp.com/.well-known/jwks.json"
},
"clockSkew": 0,
"claimValidationCondition": {
...
}
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
pluginType | Enum | Required | N/A | JWT | See JWT in Stage Resource > Plugin Type Enum Code |
pluginConfigJson | Object | Required | N/A | N/A | JWT plugin configuration area |
pluginConfigJson.encryptAlgorithm | Enum | Required | RS256 | RS256 | See JWT > Encryption Algorithm Enum Code |
pluginConfigJson.rs256 | Object | Required | N/A | N/A | RS256 configuration area |
pluginConfigJson.rs256.publicKeyType | String | Required | N/A | JWKS_URI | Set the public key in JSON Web Key Set (JWKS) URI format. See JWT > RS256 Encryption Algorithm > Public Key Type Enum Code |
pluginConfigJson.rs256.rsaPublicKey | String | Required | N/A | N/A | Set the JSON Web Key Set URI. |
pluginConfigJson.clockSkew | Integer | Optional | 0 | 0~86400 | Specify the validation validity period (in seconds) of the exp, nbf claim. |
pluginConfigJson.claimValidationCondition | Object | Optional | Default Object | N/A | Claim validation condition field (encryption algorithm: same as claimValidationCondition field description of HS256) |
{
"pluginType": "PRE_API",
"pluginConfigJson": {
"httpMethod": "POST",
"url": "http://auth.check.com",
"cacheTtl": 0
}
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
pluginType | Enum | Required | N/A | PRE_API | See PRE_API in Stage Resource > Plugin Type Enum Code |
pluginConfigJson | Object | Required | N/A | N/A | Pre-call API plugin configuration area |
pluginConfigJson.httpMethod | Enum | Required | N/A | GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH | See HTTP Method Type Enum Code |
pluginConfigJson.url | String | Required | N/A | URL format | Enter the URL of the pre-call API. |
pluginConfigJson.cacheTtl | Integer | Optional | 0 | 0~86400 | Set the cache period of the response status code of the pre-call API. The code is cached for the configured amount of time only if the response status code is 200 OK. If it is cached, the pre-call API is not called. |
{
"pluginType": "RATE_LIMIT",
"pluginConfigJson": {
"requestPerSec": 100,
"keyType": "DEFAULT",
"extraKeyValue": null
}
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
pluginType | Enum | Required | N/A | RATE_LIMIT | See RATE_LIMIT in Stage Resource > Plugin Type Enum Code |
pluginConfigJson | Object | Required | N/A | N/A | Request number limit plugin configuration area |
pluginConfigJson.keyType | Enum | Required | N/A | DEFAULT, IP, HEADER, PATH_VARIABLE | See Request Number Limit > Limit Key Enum Code |
pluginConfigJson.extraKeyValue | String | Conditionally required | N/A | N/A | If keyType is HEADER, the header name must be set. If the keyType is PATH_VARIABLE, you must set a path variable of the format ${request.path.variable-name}. |
pluginConfigJson.requestPerSec | Integer | Required | N/A | 1~5000 | Set the maximum number of requests per second. |
{
"pluginType": "API_KEY",
"pluginConfigJson": {
"isActive": true
}
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
pluginType | Enum | Required | N/A | API_KEY | See API_KEY in Stage Resource > Plugin Type Enum Code |
pluginConfigJson | Object | Required | N/A | N/A | API Key plugin configuration area |
pluginConfigJson.isActive | Boolean | Required | N/A | true | Set whether to verify the API key. Must be set to true. |
{
"pluginType": "REQUEST_VALIDATOR",
"pluginConfigJson": {
"isActive": true
}
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
pluginType | Enum | Required | N/A | REQUEST_VALIDATOR | Note REQUEST_VALIDATOR in the Stage Resource > Plugin Type Enum Code |
pluginConfigJson | Object | Required | None | N/A | Request Validator plugin settings area |
pluginConfigJson.isActive | Boolean | Required | N/A | true | Enable or disable the request validator. Must be set to true. |
[URI]
Method | URI |
---|---|
POST | /v1.0/appkeys/{appKey}/services/{apigwServiceId}/stages/{stageId}/deploys |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
stageId | String | Required | N/A | N/A | Stage ID |
[Request Body]
{
"deployDescription": "deploy description"
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
deployDescription | String | Optional | N/A | Max. 200 characters | Deployment description |
[Response]
{
"header" : {
"resultCode" : 0,
"resultMessage" : "SUCCESS",
"isSuccessful" : true
}
}
[URI]
Method | URI |
---|---|
GET | /v1.0/appkeys/{appKey}/services/{apigwServiceId}/stages/{stageId}/deploys/latest |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
stageId | String | Required | N/A | N/A | Stage ID |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"latestStageDeployResult": {
"deployId": "{deployId}",
"stageId": "{stageId}",
"deployStatus": "COMPLETE",
"deployDescription": "",
"stageResourceList": [
{
"stageResourceId": "{stageResourceId}",
"stageId": "{stageId}",
"path": "/",
"parentPath": null,
"methodType": null,
"methodName": null,
"methodDescription": null,
"customBackendEndpointUrl": null,
"createdAt": "2021-10-22T04:43:14.000Z",
"updatedAt": "2021-10-22T04:44:42.000Z",
"stageResourcePluginList": [
{
"stageResourcePluginId": "{stageResourcePluginId}",
"stageResourceId": "{stageResourceId}",
"pluginType": "HMAC",
"pluginConfigJson": {
"secretKey": "hmac-secret-key",
"clockSkewSeconds": 10,
"enforceHeaders": []
},
"createdAt": "2021-10-22T04:44:42.000Z",
"updatedAt": "2021-10-22T04:44:42.000Z"
},
{
"stageResourcePluginId": "{stageResourcePluginId}",
"stageResourceId": "{stageResourceId}",
"pluginType": "RATE_LIMIT",
"pluginConfigJson": {
"requestPerSec": 10,
"defaultKey": "kr1-{apigwServiceId}.api.nhncloudservice.com/:",
"keyType": "DEFAULT",
"extraKeyValue": null
},
"createdAt": "2021-10-22T04:44:42.000Z",
"updatedAt": "2021-10-22T04:44:42.000Z"
}
]
}
],
"isBase": false,
"deployedAt": "2021-10-25T01:40:13.000Z",
"rollbackAt": null
}
}
Field | Type | Description |
---|---|---|
latestStageDeployResult | Object | Stage deployment result area |
latestStageDeployResult.deployId | String | Deployment ID |
latestStageDeployResult.stageId | String | Stage ID |
latestStageDeployResult.deployDescription | String | Deployment description |
latestStageDeployResult.deployStatus | Enum | See Stage Deployment > Deployment Status Enum Code |
latestStageDeployResult.isBase | String | Whether the deployment history is the base for the current stage configuration. |
latestStageDeployResult.deployedAt | DateTime | Deployment request date and time |
latestStageDeployResult.rollbackAt | DateTime | Stage rollback request date and time |
latestStageDeployResult.stageResourceList | List | Stage resource list area |
latestStageDeployResult.stageResourceList[0] | Object | Stage resource area |
latestStageDeployResult.stageResourceList[0].stageResourceId | String | Stage resource ID |
latestStageDeployResult.stageResourceList[0].path | String | Stage resource path |
latestStageDeployResult.stageResourceList[0].parentPath | String | Parent resource path of the stage (parentPath for root (/) path is null) |
latestStageDeployResult.stageResourceList[0].stageId | String | Stage ID |
latestStageDeployResult.stageResourceList[0].customBackendEndpointUrl | String | Backend endpoint override URL |
latestStageDeployResult.stageResourceList[0].methodType | Enum | See HTTP Method Type Enum Code |
latestStageDeployResult.stageResourceList[0].methodName | String | Method name |
latestStageDeployResult.stageResourceList[0].methodDescription | String | Method description |
latestStageDeployResult.stageResourceList[0].createdAt | DateTime | Stage resource creation date and time |
latestStageDeployResult.stageResourceList[0].updatedAt | DateTime | Stage resource modification date and time |
latestStageDeployResult.stageResourceList[0].stageResourcePluginList | List | Stage resource's plugin list area |
latestStageDeployResult.stageResourceList[0].stageResourcePluginList[0] | Object | Stage resource's plugin area |
latestStageDeployResult.stageResourceList[0].stageResourcePluginList[0].stageResourcePluginId | String | Stage resource's plugin ID |
latestStageDeployResult.stageResourceList[0].stageResourcePluginList[0].stageResourceId | String | Stage resource ID |
latestStageDeployResult.stageResourceList[0].stageResourcePluginList[0].pluginType | Enum | See Resource Plugin Type Enum Code, Stage Resource > Plugin Type Enum Code |
latestStageDeployResult.stageResourceList[0].stageResourcePluginList[0].pluginConfigJson | Object | See configuration JSON by Resource Plugin Type, Stage Resource Plugin |
latestStageDeployResult.stageResourceList[0].stageResourcePluginList[0].createdAt | DateTime | Stage resource plugin creation date and time |
latestStageDeployResult.stageResourceList[0].stageResourcePluginList[0].updatedAt | DateTime | Stage resource plugin modification date and time |
[URI]
Method | URI |
---|---|
DELETE | /v1.0/appkeys/{appKey}/services/{apigwServiceId}/stages/{stageId}/deploys/{deployId} |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
stageId | String | Required | N/A | N/A | Stage ID |
deployId | String | Required | N/A | N/A | Deployment ID to delete |
[Response]
{
"header" : {
"resultCode" : 0,
"resultMessage" : "SUCCESS",
"isSuccessful" : true
}
}
[URI]
Method | URI |
---|---|
GET | /v1.0/appkeys/{appKey}/services/{apigwServiceId}/stages/{stageId}/deploys |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
stageId | String | Required | N/A | N/A | Stage ID |
[QueryString Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
page | Integer | Optional | 1 | N/A | Page |
limit | Integer | Optional | 10 | Max. 1000 | Count per page |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"paging": {
"limit": 10,
"page": 1,
"totalCount": 1
},
"stageDeployHistoryList": [
{
"deployId": "{deployId}",
"stageId": "{stageId}",
"deployedAt": "2021-10-25T01:58:34.000Z",
"deployDescription": "",
"isBase": true,
"rollbackAt": null
}
]
}
Field | Type | Description |
---|---|---|
paging | Object | Paging area |
paging.page | Integer | Current page |
paging.limit | Integer | Count per page |
paging.totalCount | Integer | Total count |
stageDeployHistoryList | List | Stage deployment history list area |
stageDeployHistoryList[0] | Object | Stage deployment history area |
stageDeployHistoryList[0].deployId | String | Deployment ID |
stageDeployHistoryList[0].stageId | String | Stage ID |
stageDeployHistoryList[0].deployDescription | String | Deployment description |
stageDeployHistoryList[0].isBase | Boolean | Whether the deployment history is the base for the current stage configuration. |
stageDeployHistoryList[0].deployedAt | DateTime | Deployment request date and time |
stageDeployHistoryList[0].rollbackAt | DateTime | Stage rollback request date and time |
[URI]
Method | URI |
---|---|
POST | /v1.0/appkeys/{appKey}/services/{apigwServiceId}/stages/{stageId}/deploys/{deployId}/rollback |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
stageId | String | Required | N/A | N/A | Stage ID |
deployId | String | Required | N/A | N/A | Deployment ID to rollback |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"stageResourceList": [
{
"resourceMethod": false,
"resourcePath": true,
"parentPath": null,
"pathKey": "/",
"rootPath": true,
"stageResourceId": "{stageResourceId}",
"stageId": "{stageId}",
"path": "/",
"methodType": null,
"methodName": null,
"methodDescription": null,
"customEndpointUrl": null,
"createdAt": "2021-10-25T08:23:41.139Z",
"updatedAt": "2021-10-25T08:23:41.139Z",
"stageResourcePluginList": []
}
]
}
Field | Type | Description |
---|---|---|
stageResourceList | List | Stage resource list area |
stageResourceList[0] | Object | Stage resource area |
stageResourceList[0].stageResourceId | String | Stage resource ID |
stageResourceList[0].path | String | Stage resource path |
stageResourceList[0].parentPath | String | Parent resource path of the stage (parentPath for root (/) path is null) |
stageResourceList[0].stageId | String | Stage ID |
stageResourceList[0].customBackendEndpointUrl | String | Backend endpoint override URL |
stageResourceList[0].methodType | Enum | See HTTP Method Type Enum Code |
stageResourceList[0].methodName | String | Method name |
stageResourceList[0].methodDescription | String | Method description |
stageResourceList[0].createdAt | DateTime | Stage resource creation date and time |
stageResourceList[0].updatedAt | DateTime | Stage resource modification date and time |
stageResourceList[0].stageResourcePluginList | List | Stage resource's plugin list area |
stageResourceList[0].stageResourcePluginList[0] | Object | Stage resource's plugin area |
stageResourceList[0].stageResourcePluginList[0].stageResourcePluginId | String | Stage resource's plugin ID |
stageResourceList[0].stageResourcePluginList[0].stageResourceId | String | Stage resource ID |
stageResourceList[0].stageResourcePluginList[0].pluginType | Enum | See Resource Plugin Type Enum Code, Stage Resource > Plugin Type Enum Code |
stageResourceList[0].stageResourcePluginList[0].pluginConfigJson | Object | See configuration JSON by Resource Plugin Type, Stage Resource Plugin |
stageResourceList[0].stageResourcePluginList[0].createdAt | DateTime | Stage resource plugin creation date and time |
stageResourceList[0].stageResourcePluginList[0].updatedAt | DateTime | Stage resource plugin modification date and time |
[URI]
Method | URI |
---|---|
GET | /v1.0/appkeys/{appKey}/services/{apigwServiceId}/gateway-responses |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"gatewayResponseList": [
{
"gatewayResponseId": "{gatewayResponseId}",
"gatewayResponseType": "Unauthorized",
"httpStatusCode": 401,
"headers": { "test1": "test1" },
"body": { "application/json": "{\"result\":\"fail\"}" },
"createdAt": "2024-07-04T09:24:15.000Z",
"updatedAt": "2024-07-04T09:24:15.000Z"
}
]
}
Field | Type | Description |
---|---|---|
gatewayResponseList | List | Gateway response list area |
gatewayResponseList[0] | Object | Gateway response area |
gatewayResponseList[0].gatewayResponseId | String | Gateway response ID |
gatewayResponseList[0].gatewayResponseType | Enum | See Gateway Response Type Enum Code |
gatewayResponseList[0].httpStatusCode | Integer | Gateway response HTTP status codes |
gatewayResponseList[0].headers | Map | Gateway response header object area |
gatewayResponseList[0].headers[{HeaderName}] | Object | Map Entry of Gateway response headers (Key: header name, Value: header value) |
gatewayResponseList[0].body | Map | Gateway response body object area |
gatewayResponseList[0].body[{ContentType}] | Object | Map entry in the gateway response body (Key: ContentType, Value: Response body) |
gatewayResponseList[0].createdAt | DateTime | When the gateway response is created |
gatewayResponseList[0].updatedAt | DateTime | When the gateway response is updated |
[URI]
Method | URI |
---|---|
PUT | /v1.0/appkeys/{appKey}/services/{apigwServiceId}/gateway-responses |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
[Request Body]
{
"gatewayResponseType": "NotFound",
"httpStatusCode": 404,
"headers": { "test1": "test1" },
"body": { "application/json": "{\"result\":\"fail\"}" }
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
gatewayResponseType | Enum | Required | N/A | See Gateway Response Type Enum Code | |
httpStatusCode | Integer | Required | N/A | 100-599 | Gateway response HTTP status codes |
headers | Map | Optional | N/A | N/A | Custom response header object area |
headers[{HeaderName}] | Object | Required | N/A | N/A | Map Entry of Gateway response headers (Key: header name, Value: header value) |
body | Map | Optional | N/A | N/A | Gateway response body object area |
body[{ContentType}] | Object | Required | N/A | N/A | Map entry in the gateway response body (Key: ContentType, Value: Response body) |
#### Response |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"gatewayResponse": {
"gatewayResponseId": "{gatewayResponseId}",
"gatewayResponseType": "NotFound",
"httpStatusCode": 404,
"headers": { "test1": "test1" },
"body": { "application/json": "{\"result\":\"fail\"}" },
"createdAt": "2024-07-05T00:24:37.000Z",
"updatedAt": "2024-07-05T00:24:37.000Z"
}
}
Field | Type | Description |
---|---|---|
gatewayResponse | Object | Gateway response area |
gatewayResponse.gatewayResponseId | String | Gateway response ID |
gatewayResponse.gatewayResponseType | Enum | See Gateway Response Type Enum Code |
gatewayResponse.httpStatusCode | Integer | Gateway response HTTP status codes |
gatewayResponse.headers | Map | Gateway response header object area |
gatewayResponse.headers[{HeaderName}] | Object | Map Entry of Gateway response headers (Key: header name, Value: header value) |
gatewayResponse.body | Map | Gateway response body object area |
gatewayResponse.body[{ContentType}] | Object | Map entry in the gateway response body (Key: ContentType, Value: Response body) |
gatewayResponse.createdAt | DateTime | When the gateway response is created |
gatewayResponse.updatedAt | DateTime | When the gateway response is updated |
[URI]
Method | URI |
---|---|
DELETE | /v1.0/appkeys/{appKey}/services/{apigwServiceId}/gateway-responses/{gatewayResponseId} |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
String | Required | N/A | N/A | Gateway response ID |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
}
}
[URI]
Method | URI |
---|---|
GET | /v1.0/appkeys/{appKey}/services/{apigwServiceId}/stages/{stageId}/documents/swagger |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
stageId | String | Required | N/A | N/A | Stage ID |
[Response]
{
"swagger": "2.0",
"info": {
"version": "2021-10-26T15:21:22.163+09:00",
"title": "alpha"
},
"host": "kr1-{apigwServiceId}-alpha.api.nhncloudservice.com",
"schemes": [
"https",
"http"
],
"paths": {
"/members/{proxy+}": {
"get": {
"summary": "Member API",
"description": "",
"consumes": [
"application/json"
],
"produces": [
"application/xml",
"application/json"
],
"parameters": [
{
"name": "proxy+",
"in": "path",
"description": "proxy+",
"required": true,
"type": "string"
},
{
"name": "memberId",
"in": "query",
"description": "member id",
"required": false,
"type": "string"
},
{
"name": "x-request-id",
"in": "header",
"description": "Request ID",
"required": false,
"type": "string"
},
{
"in": "body",
"name": "Member",
"description": "Member object",
"required": false,
"schema": {
"$ref": "#/definitions/MemberModel",
"originalRef": "MemberModel"
}
}
],
"responses": {
"200": {
"description": "Query success response",
"headers": {
"x-response-id": {
"type": "string",
"description": "Response ID"
}
},
"schema": {
"$ref": "#/definitions/MemberModel",
"originalRef": "#/definitions/MemberModel"
},
"responseSchema": {
"$ref": "#/definitions/MemberModel",
"originalRef": "MemberModel"
}
},
"404": {
"description": "Unavailable member",
"headers": {
"x-response-id": {
"type": "string",
"description": "Response ID"
}
}
}
},
"security": [
{
"x-nhncloud-jwt": [
],
"x-nhncloud-apikey": [
]
}
],
"x-nhncloud-apigateway": {
"plugins": {
"HTTP": {
"frontendEndpointPath": "/members/{proxy+}",
"backendEndpointPath": "/anything/${request.path.proxy+}"
}
}
}
},
"post": {
"summary": "Member API",
"description": "",
"parameters": [
{
"name": "proxy+",
"in": "path",
"description": "proxy+",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "default response"
}
},
"security": [
{
"x-nhncloud-jwt": [
],
"x-nhncloud-apikey": [
]
}
],
"x-nhncloud-apigateway": {
"plugins": {
"HTTP": {
"frontendEndpointPath": "/members/{proxy+}",
"backendEndpointPath": "/api/${request.path.proxy+}"
}
}
}
}
}
},
"securityDefinitions": {
"x-nhncloud-jwt": {
"type": "apiKey",
"name": "Authorization",
"in": "header"
},
"x-nhncloud-apikey": {
"type": "apiKey",
"name": "x-nhn-apikey",
"in": "header"
}
},
"definitions": {
"MemberModel": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string",
"description": "member description",
"maxLength": 128
}
}
}
}
}
Field | Type | Description |
---|---|---|
swagger | String | Swagger specification version. See Swagger Object |
info | Object | The metadata area of the API. See Info Object |
info.version | String | The version information of the API, where the date and time of the stage deployment request is set. See Info Object |
info.title | String | The title of the API, where the stage name is set. See Info Object |
host | String | The host that provides the API, where the stage URL is set. See Swagger Object |
schemes | Array | Supported transport protocol of the API, where [http, https] is set. See Swagger Object > schemes |
paths | Object | Paths of APIs, where paths of resource methods are set. See Paths Object |
paths.{path} | Object | {path} is the path of the API, where the path to the resource method is set. See Paths Object |
paths.{path}.{operation} | Object | {operation} is an operation on the API path, which is set as a resource method. See Path Item Object |
paths.{path}.{operation}.consumes | Array | A list of MIME types that operation on the API path can use. |
paths.{path}.{operation}.consumes[0] | String | MIME types that operation of the API path can use. |
paths.{path}.{operation}.produces | Array | A list of MIME types that operation on the API path can generate. |
paths.{path}.{operation}.produces[0] | String | The MIME types that operation on the API path can generate. |
paths.{path}.{operation}.summary | String | API summary, where the name of the resource is set. See Operation Object |
paths.{path}.{operation}.description | String | API description, where the description of the resource is set. See Operation Object |
paths.{path}.{operation}.parameters | Object | API parameter, where the path variable and request parameters of the resource are set. See Parameter Object |
paths.{path}.{operation}.responses | Object | API response, where resource response is set. See Responses Object |
paths.{path}.{operation}.security | Array | A security definition used for the task of an API operation. When setting API Key and authentication (HMAC, JWT), custom settings of API Gateway are included. |
paths.{path}.{operation}.x-nhncloud-apigateway | Object | NHN Cloud API Gateway definition setting area |
paths.{path}.{operation}.x-nhncloud-apigateway.plugins | Object | This is the custom plugin information area for API Gateway. This includes settings in Resources > Plugins and backend endpoint paths mapped to resources. |
securityDefinitions | Object | A security definition object. When setting API Key and authentication (HMAC, JWT), custom settings of API Gateway are included. See Security Definitions Object |
definitions | Object | An area for data types used in requests and responses. The model referenced in the request parameter/response is defined. See Definitions Object |
[URI]
Method | URI |
---|---|
GET | /v1.0/appkeys/{appKey}/apikeys |
[QueryString Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
page | Integer | Optional | 1 | N/A | Page |
limit | Integer | Optional | 10 | Max. 1000 | Count per page |
apiKey | String | Optional | N/A | N/A | Primary or Secondary API Key filter condition |
apiKeyId | String | Optional | N/A | N/A | API Key ID filter condition |
apiKeyName | String | Optional | N/A | N/A | API Key name filter condition. The starting string of the API Key name must match. |
apiKeyStatus | Enum | Optional | N/A | ACTIVE, INACTIVE | API Key status filter condition. See API Key Status Enum Code |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"paging": {
"limit": 10,
"page": 1,
"totalCount": 1
},
"apiKeyList": [
{
"appKey": "{appkey}",
"apiKeyId": "{apiKeyId}",
"apiKeyName": "User1 API Key",
"apiKeyDescription": "For User1",
"primaryApiKey": "{primaryApiKey}",
"secondaryApiKey": "{secondaryApiKey}",
"apiKeyStatus": "ACTIVE",
"createdAt": "2021-06-10T03:06:52.000Z",
"updatedAt": "2021-06-10T03:06:52.000Z"
}
]
}
Field | Type | Description |
---|---|---|
paging | Object | Paging area |
paging.page | Integer | Current page |
paging.limit | Integer | Count per page |
paging.totalCount | Integer | Total count |
apiKeyList | List | API Key list area |
apiKeyList[0] | Object | API Key area |
apiKeyList[0].appKey | String | AppKey |
apiKeyList[0].apiKeyId | String | API Key ID |
apiKeyList[0].apiKeyName | String | API Key name |
apiKeyList[0].apiKeyDescription | String | API Key description |
apiKeyList[0].primaryApiKey | String | Primary API Key value |
apiKeyList[0].secondaryApiKey | String | Secondary API Key value |
apiKeyList[0].apiKeyStatus | Enum | See API Key Status Enum Code |
apiKeyList[0].createdAt | DateTime | API Key creation date and time |
apiKeyList[0].updatedAt | DateTime | API Key modification date and time |
[URI]
Method | URI |
---|---|
POST | /v1.0/appkeys/{appKey}/apikeys |
[Request Body]
{
"apiKeyName": "User1 API Key",
"apiKeyDescription": "For User1",
"apiKeyStatus": "ACTIVE",
"primaryApiKey": null,
"secondaryApiKey": null
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apiKeyName | String | Required | N/A | Max. 50 characters | API Key name |
apiKeyDescription | String | Optional | N/A | Max. 200 characters | API Key description |
apiKeyStatus | Enum | Required | N/A | ACTIVE, INACTIVE | See API Key Status Enum Code |
primaryApiKey | String | Optional | N/A | Min. 10 characters, Max. 40 characters, English letters, and numbers | Primary API key value, automatically issued when null |
secondaryApiKey | String | Optional | N/A | Min. 10 characters, Max. 40 characters, English letters, and numbers | Secondary API key value, automatically issued when null |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"apiKey": {
"appKey": "{appKey}",
"apiKeyId": "{apiKeyId}",
"apiKeyName": "User1 API Key",
"apiKeyDescription": "For User1",
"primaryApiKey": "{primaryApiKey}",
"secondaryApiKey": "{secondaryApiKey}",
"apiKeyStatus": "ACTIVE",
"createdAt": "2021-11-02T07:43:06.458Z",
"updatedAt": "2021-11-02T07:43:06.458Z"
}
}
Field | Type | Description |
---|---|---|
apiKey | Object | API Key area |
apiKey.appKey | String | AppKey |
apiKey.apiKeyId | String | API Key ID |
apiKey.apiKeyName | String | API Key name |
apiKey.apiKeyDescription | String | API Key description |
apiKey.primaryApiKey | String | Primary API Key value |
apiKey.secondaryApiKey | String | Secondary API Key value |
apiKey.apiKeyStatus | Enum | See API Key Status Enum Code |
apiKey.createdAt | DateTime | API Key creation date and time |
apiKey.updatedAt | DateTime | API Key modification date and time |
[URI]
Method | URI |
---|---|
PUT | /v1.0/appkeys/{appKey}/apikeys/{apiKeyId} |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apiKeyId | String | Required | N/A | N/A | API Key ID |
[Request Body]
{
"apiKeyName": "User1 API Key",
"apiKeyDescription": "For User1",
"apiKeyStatus": "ACTIVE"
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apiKeyName | String | Required | N/A | Max. 50 characters | API Key name |
apiKeyDescription | String | Optional | N/A | Max. 200 characters | API Key description |
apiKeyStatus | Enum | Required | N/A | ACTIVE, INACTIVE | See API Key Status Enum Code |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"apiKey": {
"appKey": "{appKey}",
"apiKeyId": "{apiKeyId}",
"apiKeyName": "User1 API Key",
"apiKeyDescription": "For User1",
"primaryApiKey": "{primaryApiKey}",
"secondaryApiKey": "{secondaryApiKey}",
"apiKeyStatus": "ACTIVE",
"createdAt": "2021-11-02T07:43:06.458Z",
"updatedAt": "2021-11-02T07:43:06.458Z"
}
}
Field | Type | Description |
---|---|---|
apiKey | Object | API Key area |
apiKey.appKey | String | AppKey |
apiKey.apiKeyId | String | API Key ID |
apiKey.apiKeyName | String | API Key name |
apiKey.apiKeyDescription | String | API Key description |
apiKey.primaryApiKey | String | Primary API Key value |
apiKey.secondaryApiKey | String | Secondary API Key value |
apiKey.apiKeyStatus | Enum | See API Key Status Enum Code |
apiKey.createdAt | DateTime | API Key creation date and time |
apiKey.updatedAt | DateTime | API Key modification date and time |
[URI]
Method | URI |
---|---|
DELETE | /v1.0/appkeys/{appKey}/apikeys/{apiKeyId} |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apiKeyId | String | Required | N/A | N/A | API Key ID |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
}
}
[URI]
Method | URI |
---|---|
POST | /v1.0/appkeys/{appKey}/apikeys/{apiKeyId}/regenerate |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apiKeyId | String | Required | N/A | N/A | API Key ID |
[Request Body]
{
"apiKeyType": "PRIMARY",
"apiKeyValue": null
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apiKeyType | Enum | Required | N/A | PRIMARY, SECONDARY | The API Key type you want to change. See API Key Type Enum Code |
apiKeyValue | String | Optional | N/A | Min. 10 characters, Max. 40 characters, English letters, and numbers | API key value, automatically issued when null |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"apiKey": {
"appKey": "{appKey}",
"apiKeyId": "{apiKeyId}",
"apiKeyName": "User1 API Key",
"apiKeyDescription": "For User1",
"primaryApiKey": "{primaryApiKey}",
"secondaryApiKey": "{secondaryApiKey}",
"apiKeyStatus": "ACTIVE",
"createdAt": "2021-11-02T07:43:06.458Z",
"updatedAt": "2021-11-02T07:43:06.458Z"
}
}
Field | Type | Description |
---|---|---|
apiKey | Object | API Key area |
apiKey.appKey | String | AppKey |
apiKey.apiKeyId | String | API Key ID |
apiKey.apiKeyName | String | API Key name |
apiKey.apiKeyDescription | String | API Key description |
apiKey.primaryApiKey | String | Primary API Key value |
apiKey.secondaryApiKey | String | Secondary API Key value |
apiKey.apiKeyStatus | Enum | See API Key Status Enum Code |
apiKey.createdAt | DateTime | API Key creation date and time |
apiKey.updatedAt | DateTime | API Key modification date and time |
[URI]
Method | URI |
---|---|
GET | /v1.0/appkeys/{appKey}/stages/{stageId}/apikeys/connectable |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
stageId | String | Required | N/A | N/A | Stage ID |
[QueryString Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
page | Integer | Optional | 1 | N/A | Page |
limit | Integer | Optional | 10 | Max. 1000 | Count per page |
apiKey | String | Optional | N/A | N/A | Primary or secondary API key value |
apiKeyId | String | Optional | N/A | N/A | API Key ID |
apiKeyName | String | Optional | N/A | N/A | API Key name start string |
apiKeyStatus | Enum | Optional | N/A | ACTIVE, INACTIVE | See API Key Status Enum Code |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"paging": {
"limit": 10,
"page": 1,
"totalCount": 1
},
"apiKeyList": [
{
"appKey": "{appkey}",
"apiKeyId": "{apiKeyId}",
"apiKeyName": "User1 API Key",
"apiKeyDescription": "For User1",
"primaryApiKey": "{primaryApiKey}",
"secondaryApiKey": "{secondaryApiKey}",
"apiKeyStatus": "ACTIVE",
"createdAt": "2021-06-10T03:06:52.000Z",
"updatedAt": "2021-06-10T03:06:52.000Z"
}
]
}
Field | Type | Description |
---|---|---|
paging | Object | Paging area |
paging.page | Integer | Current page |
paging.limit | Integer | Count per page |
paging.totalCount | Integer | Total count |
apiKeyList | List | API Key list area |
apiKeyList[0] | Object | API Key area |
apiKeyList[0].appKey | String | AppKey |
apiKeyList[0].apiKeyId | String | API Key ID |
apiKeyList[0].apiKeyName | String | API Key name |
apiKeyList[0].apiKeyDescription | String | API Key description |
apiKeyList[0].primaryApiKey | String | Primary API Key value |
apiKeyList[0].secondaryApiKey | String | Secondary API Key value |
apiKeyList[0].apiKeyStatus | Enum | See API Key Status Enum Code |
apiKeyList[0].createdAt | DateTime | API Key creation date and time |
apiKeyList[0].updatedAt | DateTime | API Key modification date and time |
[URI]
Method | URI |
---|---|
GET | /v1.0/appkeys/{appKey}/usage-plans |
[QueryString Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
page | Integer | Optional | 1 | N/A | Page |
limit | Integer | Optional | 10 | Max. 1000 | Count per page |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"paging": {
"limit": 10,
"page": 1,
"totalCount": 1
},
"usagePlanList": [
{
"appKey": "{appKey}",
"usagePlanId": "{usagePlanId}",
"usagePlanName": "Basic",
"usagePlanDescription": "It's for Basic User",
"rateLimitRequestPerSecond": 10,
"quotaLimitPeriodUnitCode": "DAY",
"quotaLimit": 100,
"createdAt": "2021-09-09T05:04:37.000Z",
"updatedAt": "2021-09-09T05:04:37.000Z"
}
]
}
Field | Type | Description |
---|---|---|
paging | Object | Paging area |
paging.page | Integer | Current page |
paging.limit | Integer | Count per page |
paging.totalCount | Integer | Total count |
usagePlanList | List | Usage plan list area |
usagePlanList[0] | Object | Usage plan area |
usagePlanList[0].appKey | String | AppKey |
usagePlanList[0].usagePlanId | String | Usage plan ID |
usagePlanList[0].usagePlanName | String | Usage plan name |
usagePlanList[0].usagePlanDescription | String | Usage plan description |
usagePlanList[0].rateLimitRequestPerSecond | Integer | Limit on the number of requests per second |
usagePlanList[0].quotaLimitPeriodUnitCode | Enum | See Usage Plan > Quota Period Unit Enum Code |
usagePlanList[0].quotaLimit | Integer | Request quota per quota period unit |
usagePlanList[0].createdAt | DateTime | Usage plan creation date and time |
usagePlanList[0].updatedAt | DateTime | Usage plan modification date and time |
[URI]
Method | URI |
---|---|
GET | /v1.0/appkeys/{appKey}/usage-plans/{usagePlanId} |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
usagePlanId | String | Required | N/A | N/A | Usage plan ID |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"usagePlan": {
"appKey": "{appKey}",
"usagePlanId": "{usagePlanId}",
"usagePlanName": "Basic",
"usagePlanDescription": "It's for Basic User",
"rateLimitRequestPerSecond": 10,
"quotaLimitPeriodUnitCode": "MONTH",
"quotaLimit": 2147483647,
"createdAt": "2021-11-02T02:26:44.000Z",
"updatedAt": "2021-11-02T02:26:44.000Z"
}
}
Field | Type | Description |
---|---|---|
usagePlan | Object | Usage plan area |
usagePlan.appKey | String | AppKey |
usagePlan.usagePlanId | String | Usage plan ID |
usagePlan.usagePlanName | String | Usage plan name |
usagePlan.usagePlanDescription | String | Usage plan description |
usagePlan.rateLimitRequestPerSecond | Integer | Limit on the number of requests per second |
usagePlan.quotaLimitPeriodUnitCode | Enum | See Usage Plan > Quota Period Unit Enum Code |
usagePlan.quotaLimit | Integer | Request quota per quota period unit |
usagePlan.createdAt | DateTime | Usage plan creation date and time |
usagePlan.updatedAt | DateTime | Usage plan modification date and time |
[URI]
Method | URI |
---|---|
POST | /v1.0/appkeys/{appKey}/usage-plans |
[Request Body]
{
"usagePlanName": "string",
"usagePlanDescription": "string",
"rateLimitRequestPerSecond": 10,
"quotaLimitPeriodUnitCode": "DAY",
"quotaLimit": 100
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
usagePlanName | String | Required | N/A | Max. 50 characters | Usage plan name |
usagePlanDescription | String | Optional | N/A | Max. 200 characters | Usage plan description |
rateLimitRequestPerSecond | Integer | Optional | N/A | 1~5000 | Limit on the number of requests per second |
quotaLimitPeriodUnitCode | Enum | Optional | N/A | DAY, MONTH | See Usage Plan > Quota Period Unit Enum Code |
quotaLimit | Integer | Conditionally required | N/A | 1~2147483647 | Required if quotaLimitPeriodUnitCode is set. Request quota per quota period unit |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"usagePlan": {
"appKey": "{appKey}",
"usagePlanId": "{usagePlanId}",
"usagePlanName": "Basic",
"usagePlanDescription": "It's for Basic User",
"rateLimitRequestPerSecond": 10,
"quotaLimitPeriodUnitCode": "MONTH",
"quotaLimit": 2147483647,
"createdAt": "2021-11-02T02:26:44.087Z",
"updatedAt": "2021-11-02T02:26:44.087Z"
}
}
Field | Type | Description |
---|---|---|
usagePlan | Object | Usage plan area |
usagePlan.appKey | String | AppKey |
usagePlan.usagePlanId | String | Usage plan ID |
usagePlan.usagePlanName | String | Usage plan name |
usagePlan.usagePlanDescription | String | Usage plan description |
usagePlan.rateLimitRequestPerSecond | Integer | Limit on the number of requests per second |
usagePlan.quotaLimitPeriodUnitCode | Enum | See Usage Plan > Quota Period Unit Enum Code |
usagePlan.quotaLimit | Integer | Request quota per quota period unit |
usagePlan.createdAt | DateTime | Usage plan creation date and time |
usagePlan.updatedAt | DateTime | Usage plan modification date and time |
[URI]
Method | URI |
---|---|
PUT | /v1.0/appkeys/{appKey}/usage-plans/{usagePlanId} |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
usagePlanId | String | Required | N/A | N/A | Usage plan ID |
[Request Body]
{
"usagePlanName": "Basic",
"usagePlanDescription": "It's for Basic User",
"rateLimitRequestPerSecond": 10,
"quotaLimitPeriodUnitCode": "DAY",
"quotaLimit": 100
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
usagePlanName | String | Required | N/A | Max. 50 characters | Usage plan name |
usagePlanName | String | Optional | N/A | Max. 200 characters | Usage plan description |
rateLimitRequestPerSecond | Integer | Optional | N/A | 1~5000 | Limit on the number of requests per second |
quotaLimitPeriodUnitCode | Enum | Optional | N/A | DAY, MONTH | See Usage Plan > Quota Period Unit Enum Code |
quotaLimit | Integer | Conditionally required | N/A | 1~2147483647 | Required if quotaLimitPeriodUnitCode is set. Request quota per quota period unit |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"usagePlan": {
"appKey": "{appKey}",
"usagePlanId": "{usagePlanId}",
"usagePlanName": "Basic",
"usagePlanDescription": "It's for Basic User",
"rateLimitRequestPerSecond": 10,
"quotaLimitPeriodUnitCode": "DAY",
"quotaLimit": 100,
"createdAt": "2021-11-02T02:26:44.087Z",
"updatedAt": "2021-11-02T02:26:44.087Z"
}
}
Field | Type | Description |
---|---|---|
usagePlan | Object | Usage plan area |
usagePlan.appKey | String | AppKey |
usagePlan.usagePlanId | String | Usage plan ID |
usagePlan.usagePlanName | String | Usage plan name |
usagePlan.usagePlanDescription | String | Usage plan description |
usagePlan.rateLimitRequestPerSecond | Integer | Limit on the number of requests per second |
usagePlan.quotaLimitPeriodUnitCode | Enum | See Usage Plan > Quota Period Unit Enum Code |
usagePlan.quotaLimit | Integer | Request quota per quota period unit |
usagePlan.createdAt | DateTime | Usage plan creation date and time |
usagePlan.updatedAt | DateTime | Usage plan modification date and time |
[URI]
Method | URI |
---|---|
DELETE | /v1.0/appkeys/{appKey}/usage-plans/{usagePlanId} |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
usagePlanId | String | Required | N/A | N/A | Usage plan ID |
[Response]
{
"header" : {
"resultCode" : 0,
"resultMessage" : "SUCCESS",
"isSuccessful" : true
}
}
[URI]
Method | URI |
---|---|
GET | /v1.0/appkeys/{appKey}/usage-plans/{usagePlanId}/stages |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
usagePlanId | String | Required | N/A | N/A | Usage plan ID |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"paging": {
"limit": 10,
"page": 1,
"totalCount": 1
},
"usagePlanStageList": [
{
"regionCode": "KR1",
"apigwServiceId": "{apigwServiceId}",
"apigwServiceName": "APIGW Example",
"stageId": "{stageId}",
"stageName": "custom",
"stageUrl": "kr1-example-custom.api.nhncloudservice.com",
"stageCustomDomainList": [],
"usagePlanId": "{usagePlanId}",
"usagePlanName": "Basic"
}
]
}
Field | Type | Description |
---|---|---|
paging | Object | Paging area |
paging.page | Integer | Current page |
paging.limit | Integer | Count per page |
paging.totalCount | Integer | Total count |
usagePlanStageList | List | Stage list area associated with the usage plan |
usagePlanStageList[0] | Object | Stage area associated with the usage plan |
usagePlanStageList[0].regionCode | Enum | See API Gateway Region Enum Code |
usagePlanStageList[0].apigwServiceId | String | API Gateway service ID |
usagePlanStageList[0].apigwServiceName | String | API Gateway service name |
usagePlanStageList[0].stageId | String | Stage ID |
usagePlanStageList[0].stageName | String | Stage name |
usagePlanStageList[0].stageUrl | String | Stage URL |
usagePlanStageList[0].stageCustomDomainList | List | Area for the list of stage custom domain |
usagePlanStageList[0].stageCustomDomainList[0].customDomain | String | Custom domain |
usagePlanStageList[0].stageCustomDomainList[0].createdAt | DateTime | When custom domain is connected |
usagePlanStageList[0].usagePlanId | String | Usage plan ID |
usagePlanStageList[0].usagePlanName | String | Usage plan name |
[URI]
Method | URI |
---|---|
POST | /v1.0/appkeys/{appKey}/usage-plans/{usagePlanId}/stages/{stageId} |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
usagePlanId | String | Required | N/A | N/A | Usage plan ID |
stageId | String | Required | N/A | N/A | Stage ID |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
}
}
[URI]
Method | URI |
---|---|
DELETE | /v1.0/appkeys/{appKey}/usage-plans/{usagePlanId}/stages/{stageId} |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
usagePlanId | String | Required | N/A | N/A | Usage plan ID |
stageId | String | Required | N/A | N/A | Stage ID |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
}
}
[URI]
Method | URI |
---|---|
GET | /v1.0/appkeys/{appKey}/usage-plans/stages/{stageId} |
[QueryString Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
page | Integer | Optional | 1 | N/A | Page |
limit | Integer | Optional | 10 | Max. 1000 | Count per page |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"paging": {
"limit": 10,
"page": 1,
"totalCount": 1
},
"usagePlanList": [
{
"appKey": "{appKey}",
"usagePlanId": "{usagePlanId}",
"usagePlanName": "Basic",
"usagePlanDescription": "It's for Basic User",
"rateLimitRequestPerSecond": 10,
"quotaLimitPeriodUnitCode": "DAY",
"quotaLimit": 100,
"createdAt": "2021-11-02T02:26:44.087Z",
"updatedAt": "2021-11-02T02:26:44.087Z"
}
]
}
Field | Type | Description |
---|---|---|
paging | Object | Paging area |
paging.page | Integer | Current page |
paging.limit | Integer | Count per page |
paging.totalCount | Integer | Total count |
usagePlanList | List | Usage plan list area |
usagePlanList[0] | Object | Usage plan area |
usagePlanList[0].appKey | String | AppKey |
usagePlanList[0].usagePlanId | String | Usage plan ID |
usagePlanList[0].usagePlanName | String | Usage plan name |
usagePlanList[0].usagePlanDescription | String | Usage plan description |
usagePlanList[0].rateLimitRequestPerSecond | Integer | Limit on the number of requests per second |
usagePlanList[0].quotaLimitPeriodUnitCode | Enum | See Usage Plan > Quota Period Unit Enum Code |
usagePlanList[0].quotaLimit | Integer | Request quota per quota period unit |
usagePlanList[0].createdAt | DateTime | Usage plan creation date and time |
usagePlanList[0].updatedAt | DateTime | Usage plan modification date and time |
[URI]
Method | URI |
---|---|
GET | /v1.0/appkeys/{appKey}/apikeys/{apiKeyId}/subscriptions |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apiKeyId | String | Required | N/A | N/A | API Key ID |
[QueryString Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
page | Integer | Optional | 1 | N/A | Page |
limit | Integer | Optional | 10 | Max. 1000 | Count per page |
stageUrl | String | Optional | N/A | N/A | Stage URL filter condition |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"paging": {
"limit": 10,
"page": 1,
"totalCount": 1
},
"subscribedStageAndUsagePlanList": [
{
"subscriptionId": "{subscriptionId}",
"subscriptionStatus": "APPROVAL",
"apiKeyId": "{apiKeyId}",
"apigwServiceName": "test api gateway",
"stageId": "{stageId}",
"stageName": null,
"stageUrl": "kr1-example.api.nhncloudservice.com",
"stageCustomDomainList": [],
"usagePlanId": "{usagePlanId}",
"usagePlanName": "Basic",
"usagePlanDescription": "It's for Basic User",
"rateLimitRequestPerSecond": 10,
"quotaLimitPeriodUnitCode": "DAY",
"quotaLimit": 100
}
]
}
Field | Type | Description |
---|---|---|
paging | Object | Paging area |
paging.page | Integer | Current page |
paging.limit | Integer | Count per page |
paging.totalCount | Integer | Total count |
subscribedStageAndUsagePlanList | List | Area for the list of the stage and the usage plan connected with API key |
subscribedStageAndUsagePlanList[0] | Object | Area for the stage and the usage plan connected with API key |
subscribedStageAndUsagePlanList[0].subscriptionId | String | Subscription ID |
subscribedStageAndUsagePlanList[0].subscriptionStatus | Enum | See API Key Subscription Status Enum Code |
subscribedStageAndUsagePlanList[0].apiKeyId | String | API Key ID |
subscribedStageAndUsagePlanList[0].apigwServiceName | String | API Gateway service name |
subscribedStageAndUsagePlanList[0].stageId | String | Stage ID |
subscribedStageAndUsagePlanList[0].stageName | String | Stage name |
subscribedStageAndUsagePlanList[0].stageUrl | String | Stage URL |
subscribedStageAndUsagePlanList[0].stageCustomDomainList | List | Area for the list of stage custom domain |
subscribedStageAndUsagePlanList[0].stageCustomDomainList[0].customDomain | String | Custom domain |
subscribedStageAndUsagePlanList[0].stageCustomDomainList[0].createdAt | DateTime | When custom domain is connected |
subscribedStageAndUsagePlanList[0].usagePlanId | String | Usage plan ID |
subscribedStageAndUsagePlanList[0].usagePlanName | String | Usage plan name |
subscribedStageAndUsagePlanList[0].usagePlanDescription | String | Usage plan description |
subscribedStageAndUsagePlanList[0].rateLimitRequestPerSecond | Integer | Limit on the number of requests per second |
subscribedStageAndUsagePlanList[0].quotaLimitPeriodUnitCode | Enum | See Usage Plan > Quota Period Unit Enum Code |
subscribedStageAndUsagePlanList[0].quotaLimit | Integer | Request quota per quota period unit |
[URI]
Method | URI |
---|---|
GET | /v1.0/appkeys/{appKey}/usage-plans/{usagePlanId}/stages/{stageId}/subscriptions |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
usagePlanId | String | Required | N/A | N/A | Usage plan ID |
stageId | String | Required | N/A | N/A | Stage ID |
[QueryString Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
page | Integer | Optional | 1 | N/A | Page |
limit | Integer | Optional | 10 | Max. 1000 | Count per page |
apiKey | String | Optional | N/A | N/A | Primary or Secondary API Key filter condition |
apiKeyId | String | Optional | N/A | N/A | API Key ID filter condition |
apiKeyName | String | Optional | N/A | N/A | API Key name filter condition. The starting string of the API Key name must match. |
apiSubscriptionStatus | Enum | Optional | N/A | APPROVAL | See API Key Subscription Status Enum Code |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"paging": {
"limit": 10,
"page": 1,
"totalCount": 1
},
"apiSubscriptionList": [
{
"subscriptionId": "{subscriptionId}",
"subscriptionStatus": "APPROVAL",
"subscriptionDescription": null,
"stageId": "{stageId}",
"usagePlanId": "{usagePlanId}",
"apiKeyId": "{apiKeyId}",
"apiKeyName": "User1 API Key",
"createdAt": "2021-08-27T04:53:57.000Z",
"updatedAt": "2021-09-10T00:26:03.000Z"
}
]
}
Field | Type | Description |
---|---|---|
paging | Object | Paging area |
paging.page | Integer | Current page |
paging.limit | Integer | Count per page |
paging.totalCount | Integer | Total count |
apiSubscriptionList | List | Subscription information list area |
apiSubscriptionList[0] | Object | Subscription information area |
apiSubscriptionList[0].subscriptionId | String | Subscription ID |
apiSubscriptionList[0].subscriptionStatus | Enum | See API Key Subscription Status Enum Code |
apiSubscriptionList[0].subscriptionDescription | String | Subscription description |
apiSubscriptionList[0].stageId | String | Stage ID |
apiSubscriptionList[0].usagePlanId | String | Usage plan ID |
apiSubscriptionList[0].apiKeyId | String | API Key ID |
apiSubscriptionList[0].apiKeyName | String | API Key name |
apiSubscriptionList[0].createdAt | DateTime | Subscription creation date and time |
apiSubscriptionList[0].updatedAt | DateTime | Subscription modification date and time |
[URI]
Method | URI |
---|---|
POST | /v1.0/appkeys/{appKey}/usage-plans/{usagePlanId}/stages/{stageId}/subscriptions |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
usagePlanId | String | Required | N/A | N/A | Usage plan ID |
stageId | String | Required | N/A | N/A | Stage ID |
[Request Body]
{
"apiKeyIdList": [
"{apiKeyId}"
]
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apiKeyIdList | List | Required | N/A | Max. 100 items | API Key ID list area |
apiKeyIdList[0] | String | Required | N/A | N/A | API Key ID |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"apiSubscriptionList": [
{
"subscriptionId": "{subscriptionId}",
"subscriptionStatus": "APPROVAL",
"subscriptionDescription": null,
"stageId": "{stageId}",
"usagePlanId": "{usagePlanId}",
"apiKeyId": "{apiKeyId}",
"apiKeyName": "User1 API Key",
"createdAt": "2021-11-03T02:53:21.775Z",
"updatedAt": "2021-11-03T02:53:21.775Z"
}
]
}
Field | Type | Description |
---|---|---|
apiSubscriptionList | List | Subscription information list area |
apiSubscriptionList[0] | Object | Subscription information area |
apiSubscriptionList[0].subscriptionId | String | Subscription ID |
apiSubscriptionList[0].subscriptionStatus | Enum | See API Key Subscription Status Enum Code |
apiSubscriptionList[0].subscriptionDescription | String | Subscription description |
apiSubscriptionList[0].stageId | String | Stage ID |
apiSubscriptionList[0].usagePlanId | String | Usage plan ID |
apiSubscriptionList[0].apiKeyId | String | API Key ID |
apiSubscriptionList[0].apiKeyName | String | API Key name |
apiSubscriptionList[0].createdAt | DateTime | Subscription creation date and time |
apiSubscriptionList[0].updatedAt | DateTime | Subscription modification date and time |
[URI]
Method | URI |
---|---|
DELETE | /v1.0/appkeys/{appKey}/usage-plans/{usagePlanId}/stages/{stageId}/subscriptions |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
usagePlanId | String | Required | N/A | N/A | Usage plan ID |
stageId | String | Required | N/A | N/A | Stage ID |
[Request Body]
{
"apiSubscriptionIdList": [
"{apiKeyId}"
]
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apiSubscriptionIdList | List | Required | N/A | Max. 100 items | Subscription ID list area |
apiSubscriptionIdList[0] | String | Required | N/A | N/A | Subscription ID |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
}
}
[URI]
Method | URI |
---|---|
POST | /v1.0/appkeys/{appKey}/usage-plans/{usagePlanId}/stages/{stageId}/subscriptions/{subscriptionId}/change-usage-plan |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
usagePlanId | String | Required | N/A | N/A | Usage plan ID |
stageId | String | Required | N/A | N/A | Stage ID |
subscriptionId | String | Required | N/A | N/A | Subscription ID |
[Request Body]
{
"changeUsagePlanId": "{usagePlanId}"
}
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
changeUsagePlanId | String | Required | N/A | N/A | ID of the usage plan to change |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
}
}
[URI]
Method | URI |
---|---|
GET | /v1.0/appkeys/{appKey}/services/{apigwServiceId}/stages/{stageId}/metrics |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
stageId | String | Required | N/A | N/A | Stage ID |
[QueryString Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
startTime | DateTime | Required | N/A | N/A | Statistics query start date and time |
endTime | DateTime | Required | N/A | N/A | Statistics query end date and time |
page | Integer | Optional | 1 | N/A | Page |
limit | Integer | Optional | 10 | Max. 1000 | Count per page |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"paging": {
"limit": 10,
"page": 1,
"totalCount": 2
},
"data": [
{
"uriPattern": "/members/{memberId}",
"httpMethodType": "GET",
"successCount": 31,
"failCount": 18,
"status2xxCount": 29,
"status3xxCount": 2,
"status4xxCount": 18,
"status5xxCount": 0,
"statusEtcCount": 0,
"avgResponseTimeMs": 35,
"networkOutboundByte": 26059
},
{
"uriPattern": "/members/{memberId}",
"httpMethodType": "POST",
"successCount": 20,
"failCount": 2,
"status2xxCount": 18,
"status3xxCount": 0,
"status4xxCount": 0,
"status5xxCount": 2,
"statusEtcCount": 0,
"avgResponseTimeMs": 129,
"networkOutboundByte": 3032
}
],
"metricsLatestUpdatedAt": "2021-11-29T08:50:57.000Z"
}
Field | Type | Description |
---|---|---|
paging | Object | Paging area |
paging.page | Integer | Current page |
paging.limit | Integer | Count per page |
paging.totalCount | Integer | Total count |
data | List | Area for statistics data list by resource |
data[0] | Object | Area for statistics data by resource |
data[0].uriPattern | String | Resource path or path pattern |
data[0].httpMethodType | Enum | See HTTP Method Type Enum Code |
data[0].successCount | Long | Number of API call successes (response HTTP status code is 2xx, 3xx) |
data[0].failCount | Long | Number of API call failures (response HTTP status code is 4xx, 5xx) |
data[0].status2xxCount | Long | Number of API calls with response HTTP status code 2xx |
data[0].status3xxCount | Long | Number of API calls with response HTTP status code 3xx |
data[0].status4xxCount | Long | Number of API calls with response HTTP status code 4xx |
data[0].status5xxCount | Long | Number of API calls with response HTTP status code 5xx |
data[0].statusEtcCount | Long | Number of API calls with response HTTP status code other than 2xx, 3xx, 4xx, 5xx |
data[0].avgResponseTimeMs | Long | Average API response time (ms) |
data[0].networkOutboundByte | Long | Total outbound network bytes (bytes) |
metricsLatestUpdatedAt | DateTime | Statistics data last updated date |
[URI]
Method | URI |
---|---|
GET | /v1.0/appkeys/{appKey}/apikeys/{apiKeyId}/metrics |
[Path Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
apigwServiceId | String | Required | N/A | N/A | API Gateway service ID |
apiKeyId | String | Required | N/A | N/A | API Key ID |
[QueryString Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
startTime | DateTime | Required | N/A | N/A | Statistics query start date and time |
endTime | DateTime | Required | N/A | N/A | Statistics query end date and time |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"data": {
"kr1-{apigwServiceId}-member.api.nhncloudservice.com": {
"stageName": "member",
"stageUrl": "kr1-{apigwServiceId1}-member.api.nhncloudservice.com",
"stageCustomDomainList": [],
"apiKeyMetricsTimeSeries": {
"callCount": [
{
"dateTime": 1635346800000,
"count": 8
},
{
"dateTime": 1635433200000,
"count": 0
}
]
}
},
"kr1-{apigwServiceId}-billing.api.nhncloudservice.com": {
"stageName": "billing",
"stageUrl": "kr1-{apigwServiceId}-billing.api.nhncloudservice.com",
"stageCustomDomainList": [],
"apiKeyMetricsTimeSeries": {
"callCount": [
{
"dateTime": 1635346800000,
"count": 13
},
{
"dateTime": 1635433200000,
"count": 0
}
]
}
}
},
"metricsLatestUpdatedAt": "2021-11-29T08:50:57.000Z",
"timeUnit": "ONE_DAYS"
}
Field | Type | Description |
---|---|---|
data | Object | API Key statistics data area |
data.{requestApigwEndpoint} | Object | Area for statistics by API call endpoint |
data.{requestApigwEndpoint}.stageName | String | Stage name |
data.{requestApigwEndpoint}.stageUrl | String | Stage URL |
data.{requestApigwEndpoint}.stageCustomDomainList | List | Area for the list of stage custom domain |
data.{requestApigwEndpoint}.stageCustomDomainList[0].customDomain | String | Custom domain |
data.{requestApigwEndpoint}.stageCustomDomainList[0].createdAt | DateTime | When custom domain is connected |
data.{requestApigwEndpoint}.apiKeyMetricsTimeSeries | Object | Area for API Key statistics by aggregation time unit |
data.{requestApigwEndpoint}.apiKeyMetricsTimeSeries.callCount | List | API call count statistics list area |
data.{requestApigwEndpoint}.apiKeyMetricsTimeSeries.callCount[0] | Object | API call count statistics area |
data.{requestApigwEndpoint}.apiKeyMetricsTimeSeries.callCount[0].dateTime | Long | Statistics time (Unix time format) |
data.{requestApigwEndpoint}.apiKeyMetricsTimeSeries.callCount[0].count | Long | Total number of API calls during statistics time |
metricsLatestUpdatedAt | DateTime | Statistics data last updated date |
timeUnit | Enum | Statistics Data Time Unit Enum Code See ONE_DAYS |
[URI]
Method | URI |
---|---|
GET | /v1.0/appkeys/{appKey}/metrics/top-services |
[QueryString Parameter]
Name | Type | Required | Default value | Valid range | Description |
---|---|---|---|---|---|
lastDays | Integer | Optional | 7 | 1~30 | Days in query period (current day included) |
order | Enum | Optional | CALL_COUNT | CALL_COUNT,FAIL_CALL_COUNT,AVG_RESPONSE_TIME | Statistics > Sort Top10 Services by |
[Response]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"data": [
{
"rank": 1,
"apigwServiceId": "{apigwServiceId1}",
"apigwServiceName": "apigwservice-1",
"status2xxCount": 100,
"status3xxCount": 0,
"status4xxCount": 0,
"status5xxCount": 0,
"statusEtcCount": 0,
"callCount": 100,
"failCallCount": 0,
"successCallCount": 100,
"avgResponseTimeMs": 6,
"networkOutboundByte": 31202
},
{
"rank": 2,
"apigwServiceId": "apigwServiceId2",
"apigwServiceName": "apigwservice-2",
"status2xxCount": 50,
"status3xxCount": 0,
"status4xxCount": 0,
"status5xxCount": 0,
"statusEtcCount": 0,
"callCount": 50,
"failCallCount": 0,
"successCallCount": 50,
"avgResponseTimeMs": 8,
"networkOutboundByte": 19220
}
...
],
"metricsLatestUpdatedAt": "2023-07-19T02:21:08.000Z"
}
Field | Type | Description |
---|---|---|
data | Object | Top 10 service statistics data area |
data[0].rank | Integer | Rank number |
data[0].apigwServiceId | String | API Gateway service ID |
data[0].apigwServiceName | String | API Gateway service name |
data[0].successCount | Long | Number of API call successes (response HTTP status code is 2xx, 3xx) |
data[0].failCount | Long | Number of API call failures (response HTTP status code is 4xx, 5xx) |
data[0].status2xxCount | Long | Number of API calls with response HTTP status code 2xx |
data[0].status3xxCount | Long | Number of API calls with response HTTP status code 3xx |
data[0].status4xxCount | Long | Number of API calls with response HTTP status code 4xx |
data[0].status5xxCount | Long | Number of API calls with response HTTP status code 5xx |
data[0].statusEtcCount | Long | Number of API calls with response HTTP status code other than 2xx, 3xx, 4xx, 5xx |
data[0].avgResponseTimeMs | Long | Average API response time (ms) |
data[0].networkOutboundByte | Long | Total outbound network bytes (bytes) |
metricsLatestUpdatedAt | DateTime | Statistics data last updated date |