--- title: "Create edge" slug: "edge-create" tags: ["Global Edge"] updated: 2026-09-17T10:05:54Z published: 2026-09-17T10:05:54Z canonical: "api.ncloud-docs.com/edge-create" --- > ## Documentation Index > Fetch the complete documentation index at: https://api.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # Create edge Available in Classic and VPC Create an edge in a profile. Note You can create up to 100 edges per account. If you need to increase the limit, request it through customer inquiry. ## Request This section describes the request format. The method and URI are as follows: | Method | URI | | --- | --- | | POST | /api/v1/cdn-edge | ### Request headers For information about the headers common to all Global Edge APIs, see [Global Edge request headers](/docs/en/edge-overview#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94). ### Request body You can include the following data in the body of your request: | Field | Type | Required | Description | | --- | --- | --- | --- | | `profileId` | Long | Required | Profile ID - See [Get profile list](/docs/en/profile-listing). | | `edgeName` | String | Required | Edge name - Enter 3-35 characters using a combination of English letters, numbers, and special characters "-" and "_". | | `distributionConfig` | Object | Required | Deployment settings: [CdnDistributionConfig](/docs/en/edge-create#CdnDistributionConfig) | | `originalCopyConfig` | Object | Required | Origin settings: [CdnOriginalCopyConfig](/docs/en/edge-create#CdnOriginalCopyConfig) | | `cachingConfig` | Object | Required | Cache settings: [CdnCachingConfig](/docs/en/edge-create#CdnCachingConfig) | | `managedRule` | Object | Required | Managed rule: [ManagedRule](/docs/en/edge-create#ManagedRule) | | `headerPolicies` | Array | Required | Header settings: [HeaderPolicy](/docs/en/edge-create#HeaderPolicy) - If not set, enter the empty value `[]`. | | `optimizationConfig` | Object | Required | Optimization settings: [OptimizationConfig](/docs/en/edge-create#OptimizationConfig) | | `accessControl` | Object | Required | Access control settings: [AccessControl](/docs/en/edge-create#AccessControl) | #### `CdnDistributionConfig` The following describes `CdnDistributionConfig`. | Field | Type | Required | Description | | --- | --- | --- | --- | | `protocolType` | String | Required | Service protocol - `HTTPS` \| `ALL` | | `regionType` | String | Required | Service area - `KOREA` \| `JAPAN` \| `GLOBAL` - `KOREA`: Korea - `JAPAN`: Japan - `GLOBAL`: Global | | `serviceDomain` | Object | Required | Service domain settings | | `serviceDomain.domainType` | String | Required | Service domain type - `NCP_DOMAIN_AUTO` \| `NCP_DOMAIN_CUSTOM` \| `CUSTOM_DOMAIN` - `NCP_DOMAIN_AUTO`: Automatically generated NAVER Cloud Platform domain - `NCP_DOMAIN_CUSTOM`: NAVER Cloud Platform domain including user input values - `CUSTOM_DOMAIN`: User-owned domain | | `serviceDomain.domainName` | String | Conditional | Domain name - Required if `serviceDomain.domainType` is `NCP_DOMAIN_CUSTOM` or `CUSTOM_DOMAIN` | | `serviceDomain.certificate` | Object | Conditional | Certificate - Required, including subinformation, when serving a user-owned domain (`CUSTOM_DOMAIN`) over HTTPS | | `serviceDomain.certificate.id` | Number | Conditional | Certificate slot ID - See [Get certificate list](/docs/en/edge-getcertificatelist). | | `edgeLogging` | Object | Required | Edge log settings | | `edgeLogging.enabled` | Boolean | Required | Feature usage status - `true` \| `false` - `true`: Enable - `false`: Disable | | `edgeLogging.bucketPrefix` | String | Optional | Log storage path | | `edgeLogging.objectStorage` | Object | Conditional | Log storage information - Only buckets registered in Object Storage are available. - Required, including subinformation, if `edgeLogging.enabled` is `true`. | | `edgeLogging.objectStorage.region` | String | Conditional | Service Region - `KR` \| `USWN` \| `SGN` \| `JPN` \| `DEN` - `KR`: Korea - `USWN`: U.S. - `SGN`: Singapore - `JPN`: Japan - `DEN`: Germany | | `edgeLogging.objectStorage.bucketName` | String | Conditional | Bucket name | #### `CdnOriginalCopyConfig` The following describes `CdnOriginalCopyConfig`. | Field | Type | Required | Description | | --- | --- | --- | --- | | `originalCopyLocation` | Object | Required | Origin server settings | | `originalCopyLocation.type` | String | Required | Origin type - `OBJECT_STORAGE` \| `LOAD_BALANCER` \| `API_GATEWAY` \| `CUSTOM` - `OBJECT_STORAGE`: NAVER Cloud Platform's Object Storage - `LOAD_BALANCER`: NAVER Cloud Platform's Load Balancer - `API_GATEWAY`: NAVER Cloud Platform's API Gateway - `CUSTOM`: External origin domain | | `originalCopyLocation.region` | String | Conditional | Service Region - `KR` \| `USWN` \| `SGN` \| `JPN` \| `DEN` - `KR`: Korea - `USWN`: U.S. - `SGN`: Singapore - `JPN`: Japan - `DEN`: Germany - Required if `originalCopyLocation.type` is `OBJECT_STORAGE` or `LOAD_BALANCER` | | `originalCopyLocation.bucketName` | String | Conditional | Bucket name - Required if `originalCopyLocation.type` is `OBJECT_STORAGE` | | `originalCopyLocation.customLocation` | String | Conditional | Origin domain name - Required if `originalCopyLocation.type` is `LOAD_BALANCER`, `API_GATEWAY`, or `CUSTOM` | | `forwardHostHeader` | Object | Required | Host header forwarding settings | | `forwardHostHeader.type` | String | Required | Forwarding type - `INCOMING_HOST_HEADER` \| `ORIGIN_HOSTNAME` \| `CUSTOM` - `INCOMING_HOST_HEADER`: Use header received from client. - `ORIGIN_HOSTNAME`: Replace header with a specific value. - `CUSTOM`: Specify header value. | | `forwardHostHeader.customHostHeader` | String | Conditional | Host header value - Required if `forwardHostHeader.type` is `CUSTOM` | | `originalCopyProtocol` | Object | Required | Origin protocol settings | | `originalCopyProtocol.type` | String | Required | Protocol type - `HTTP` \| `HTTPS` | | `originalCopyProtocol.port` | Integer | Required | Port number | | `originalCopyPath` | String | Optional | Origin path - URL to add for origin request. - `/{Path}/` format: English letters, numbers, and special character "_" is allowed. | | `originFailoverConfig` | Object | Optional | Origin failover settings | | `originFailoverConfig.ruleName` | String | Conditional | Failover rule name | | `originFailoverConfig.statusCodes` | Array | Conditional | List of origin response codes - `404` \| `500` \| `502` \| `503` \| `504` | | `originFailoverConfig.originalCopyLocation` | Object | Conditional | Backup origin server information to forward requests to | | `originFailoverConfig.originalCopyLocation.type` | String | Conditional | Backup origin type - `OBJECT_STORAGE` \| `CUSTOM` - `OBJECT_STORAGE`: Object Storage - `CUSTOM`: External domain | | `originFailoverConfig.originalCopyLocation.region` | String | Conditional | Service Region - `KR` \| `USWN` \| `SGN` \| `JPN` \| `DEN` - `KR`: Korea - `USWN`: U.S. - `SGN`: Singapore - `JPN`: Japan - `DEN`: Germany - Required if `originFailoverConfig.originalCopyLocation.type` is `OBJECT_STORAGE` | | `originFailoverConfig.originalCopyLocation.bucketName` | String | Conditional | Bucket name - Required if `originFailoverConfig.originalCopyLocation.type` is `OBJECT_STORAGE` | | `originFailoverConfig.originalCopyLocation.customLocation` | String | Conditional | Origin domain name - Required if `originFailoverConfig.originalCopyLocation.type` is `CUSTOM` | #### `CdnCachingConfig` The following describes `CdnCachingConfig`. | Field | Type | Required | Description | | --- | --- | --- | --- | | `defaultCaching` | Object | Required | Default cache settings | | `defaultCaching.enabled` | Boolean | Required | Feature usage status - `true` - Only `true` is available. | | `defaultCaching.ruleDefinitionType` | String | Required | Cache options - `CACHING` \| `BYPASS_CACHE` \| `ORIGIN_CACHE_CONTROL_HEADER` - `CACHING`: Cache - `BYPASS_CACHE`: Bypass to origin server - `ORIGIN_CACHE_CONTROL_HEADER`: Process based on origin cache-control header | | `defaultCaching.cacheRevalidateConfig` | Object | Required | Set up revalidation of stale objects. - Specify what to do when the cache expires and the origin can't be used. | | `defaultCaching.cacheRevalidateConfig.type` | String | Required | Revalidation type - `IF_POSSIBLE` \| `ALWAYS` - `IF_POSSIBLE`: Serve stale objects if validation can't be done. - `ALWAYS`: Always validates origin. | | `defaultCaching.cacheRevalidateConfig.ageType` | String | Required | Maximum cache retention period unit - `SECONDS` \| `MINUTES` \| `HOURS` \| `DAYS` - `SECONDS`: Second - `MINUTES`: Minute - `HOURS`: Hour - `DAYS`: Day | | `defaultCaching.cacheRevalidateConfig.age` | String | Required | Maximum cache retention period - 1 second to 365 days | | `negativeTtl` | Boolean | Required | Whether to use negative TTL - `true` \| `false` - `true`: Enable - `false`: Disable - Cache response when the origin server returns an error response. | | `bypassQueryString` | Object | Required | Bypass query string settings - Specify a condition string to bypass to the origin server without caching. | | `bypassQueryString.enabled` | Boolean | Required | Feature usage status - `true` \| `false` - `true`: Enable - `false`: Disable - If `true`, related information must be entered. | | `bypassQueryString.queryStrings` | Array | Conditional | Target string list | | `cacheKeyHostname` | String | Required | Cache key host name type - `INCOMING_HOST_HEADER` \| `ORIGIN_HOSTNAME` - `INCOMING_HOST_HEADER`: Include service domain in cache key. - `ORIGIN_HOSTNAME`: Include host name of origin server in cache key. | | `cacheKeyIgnoreQueryString` | Object | Required | Cache key query string settings - Specify how query strings are included/ignored when generating cache keys. | | `cacheKeyIgnoreQueryString.type` | String | Required | Setting type - `ALL_IGNORED` \| `ALL_ALLOWED` \| `ALLOW_SPECIFIC_STRING` - `ALL_IGNORED`: Ignore all. - `ALL_ALLOWED`: Allow all. - `ALLOW_SPECIFIC_STRING`: Allow specific string. | | `cacheKeyIgnoreQueryString.queryStrings` | Array | Conditional | Target string list - Required if `cacheKeyIgnoreQueryString.type` is `ALLOW_SPECIFIC_STRING` | | `urlLetterCaseIgnoreUse` | Boolean | Optional | Whether to ignore cache key case sensitivity - `true` \| `false` (default) - `true`: Ignore - `false`: Not ignore - URL and file names can be cached ignoring case if origin is not case sensitive. | | `removeVaryHeader` | Boolean | Required | Whether to remove the Vary header - `true` \| `false` - `true`: Enable - `false`: Disable - Cache after removing Vary headers other than Accept-Encoding in origin server responses when enabled. | | `edgeAuth` | Object | Required | Request authentication settings - Authenticate requests with tokens to respond only if they pass. | | `edgeAuth.enabled` | Boolean | Required | Feature usage status - `true` \| `false` - `true`: Enable - `false`: Disable - If `true`, related information must be entered. | | `edgeAuth.type` | String | Conditional | Authentication type - `SIGNED_URL` \| `JWT` - `SIGNED_URL`: Include authentication information in the URL. - `JWT`: Create a JSON token to include in the HTTP header. - Only `SIGNED_URL` is available if `regionType` is `GLOBAL`. | | `edgeAuth.tokenName` | String | Conditional | Token name - Enter a combination of lowercase English letters without spaces. | | `edgeAuth.tokenKey` | String | Conditional | Token key value | | `edgeAuth.bypassValues` | Array | Optional | List of authentication exclusion extensions - Enter up to 20. - Example: `.ts`, `.jpg`, `.exe` | | `edgeAuth.tokenBypassValues` | Array | Optional | List of extensions that pass authentication values to origin - Enter up to 20. - Example: `playlist.m3u8`, `index.m3u8`, `.ts`, `.png` | | `cachingRules` | Array | Required | Cache detailed rule settings: [CachingRule](/docs/en/edge-create#CachingRule) | #### `CachingRule` The following describes `CachingRule`. | Field | Type | Required | Description | | --- | --- | --- | --- | | `ruleName` | String | Required | Cache detailed rule name | | `ruleType` | String | Required | Rule condition type - `DIRECTORY` \| `FILE_EXTENSION` \| `ADVANCED` - `DIRECTORY`: Directory - `FILE_EXTENSION`: File extension - `ADVANCED`: Directory and file extension | | `ruleConditions` | Array | Required | Rule condition list - Enter the condition according to the `ruleType` value. - Example: `/*`, `/sample/*` | | `ruleDefinitionType` | String | Required | Cache options - `CACHING` \| `BYPASS_CACHE` \| `ORIGIN_CACHE_CONTROL_HEADER` - `CACHING`: Cache - `BYPASS_CACHE`: Bypass to origin server - `ORIGIN_CACHE_CONTROL_HEADER`: Process based on origin cache-control header | | `cacheRevalidateConfig` | Object | Required | Set up revalidation of stale objects. - Specify what to do when the cache expires and the origin can't be used. | | `cacheRevalidateConfig.type` | String | Required | Revalidation type - `IF_POSSIBLE` \| `ALWAYS` - `IF_POSSIBLE`: Serve stale objects if validation can't be done. - `ALWAYS`: Always validates origin. | | `cacheRevalidateConfig.ageType` | String | Required | Maximum cache retention period unit - `SECONDS` \| `MINUTES` \| `HOURS` \| `DAYS` - `SECONDS`: Second - `MINUTES`: Minute - `HOURS`: Hour - `DAYS`: Day | | `cacheRevalidateConfig.age` | Integer | Required | Maximum cache retention period - 1 second to 365 days | | `ruleBasedRoutingConfig` | Object | Required | Rule-based origin routing settings - Route the origin to a specified location when rule conditions are met. | | `ruleBasedRoutingConfig.enabled` | Boolean | Required | Feature usage status - `true` \| `false` - `true`: Enable - `false`: Disable - If `true`, related information must be entered. | | `ruleBasedRoutingConfig.originalCopyLocation` | Object | Conditional | Origin server settings | | `ruleBasedRoutingConfig.originalCopyLocation.type` | String | Conditional | Origin type - `OBJECT_STORAGE` \| `CUSTOM` - `OBJECT_STORAGE`: Object Storage - `CUSTOM`: External domain | | `ruleBasedRoutingConfig.originalCopyLocation.region` | String | Conditional | Service Region - `KR` \| `USWN` \| `SGN` \| `JPN` \| `DEN` - `KR`: Korea - `USWN`: U.S. - `SGN`: Singapore - `JPN`: Japan - `DEN`: Germany - Required if `ruleBasedRoutingConfig.originalCopyLocation.type` is `OBJECT_STORAGE` | | `ruleBasedRoutingConfig.originalCopyLocation.bucketName` | String | Conditional | Bucket name - Required if `ruleBasedRoutingConfig.originalCopyLocation.type` is `OBJECT_STORAGE` | | `ruleBasedRoutingConfig.originalCopyLocation.customLocation` | String | Conditional | Origin domain name - Required if `ruleBasedRoutingConfig.originalCopyLocation.type` is `CUSTOM` | | `browserCache` | Object | Required | Browser cache settings - Specify the caching behavior sent to the client in edge. | | `browserCache.enabled` | Boolean | Required | Feature usage status - `true` \| `false` - `true`: Enable - `false`: Disable - If `true`, related information must be entered. | | `browserCache.type` | String | Conditional | Browser cache allowance type - `ALLOW_CACHE` \| `NO_CACHE` - `ALLOW_CACHE`: Allow cache. - `NO_CACHE`: Not allow cache. | | `browserCache.ageType` | String | Conditional | Maximum cache retention period unit - `SECONDS` \| `MINUTES` \| `HOURS` \| `DAYS` - `SECONDS`: Second - `MINUTES`: Minute - `HOURS`: Hour - `DAYS`: Day | | `browserCache.age` | Integer | Conditional | Maximum cache retention period - 1 second to 365 days | | `cacheKeyQueryParameter` | Object | Required | Cache key query parameter settings - Specify how query strings are included/ignored when generating cache keys. | | `cacheKeyQueryParameter.enabled` | Boolean | Required | Feature usage status - `true` \| `false` - `true`: Enable - `false`: Disable - If `true`, related information must be entered. | | `cacheKeyQueryParameter.type` | String | Conditional | Setting type - `ALL_IGNORED` \| `ALL_ALLOWED` \| `IGNORE_SPECIFIC_STRING` \| `ALLOW_SPECIFIC_STRING` - `ALL_IGNORED`: Ignore all. - `ALL_ALLOWED`: Allow all. - `IGNORE_SPECIFIC_STRING`: Ignore specific string. - `ALLOW_SPECIFIC_STRING`: Allow specific string. | | `cacheKeyQueryParameter.queryParameters` | Array | Conditional | Target string list - Required if `cacheKeyQueryParameter.type` is `ALLOW_SPECIFIC_STRING` or `IGNORE_SPECIFIC_STRING` | | `accessDeny` | Boolean | Required | Whether to block access according to the rule condition (`ruleConditions`) - `true` \| `false` - `true`: Block - `false`: Not block | | `urlRedirect` | Object | Required | URL redirection settings - Respond with a redirect instead of the origin server when rule conditions are met. - Only one between `urlRedirect` or `urlRewrite` can be used. | | `urlRedirect.enabled` | Boolean | Required | Feature usage status - `true` \| `false` - `true`: Enable - `false`: Disable - If `true`, related information must be entered. | | `urlRedirect.destinationProtocol` | String | Conditional | Redirect destination protocol - `HTTP` \| `HTTPS` | | `urlRedirect.destinationHostname` | String | Conditional | Redirect destination host - English letters, numbers, and special characters "-" and "." are allowed, and enter in domain format. | | `urlRedirect.destinationPath` | String | Conditional | Redirection destination detailed path | | `urlRedirect.responseCode` | String | Conditional | Redirection status code - `MOVED_PERMANENTLY_301` \| `FOUND_302` - `MOVED_PERMANENTLY_301`: Permanent URL move - `FOUND_302`: Temporary URL move | | `urlRewrite` | Object | Required | URL rewriting settings - Automatically edits URLs in requests when rule conditions are met. - Only one between `urlRedirect` and `urlRewrite` can be used. | | `urlRewrite.enabled` | Boolean | Required | Feature usage status - `true` \| `false` - `true`: Enable - `false`: Disable - If `true`, related information must be entered. | | `urlRewrite.rewriteTarget` | String | Conditional | Destination detailed path | #### `ManagedRule` The following describes `ManagedRule`. | Field | Type | Required | Description | | --- | --- | --- | --- | | `cors` | Boolean | Required | Whether to add the cross origin resource sharing header (CORS header) - `true` \| `false` - `true`: Add - `false`: Not add | | `corsPolicy` | Object | Conditional | Cross-Origin Resource Sharing (CORS) header details | | `corsPolicy.allowOrigin` | String | Required | Access-Control-Allow-Origin settings - Access-Control-Allow-Origin: * and Access-Control-Allow-Credentials: true can't be set at the same time. | | `corsPolicy.allowMethods` | Array | Conditional | Access-Control-Allow-Methods settings - `GET` \| `POST` \| `OPTIONS` - If not set, enter the empty value `[]`. | | `corsPolicy.allowHeaders` | Array | Conditional | Access-Control-Allow-Headers settings - If not set, enter the empty value `[]`. | | `corsPolicy.allowCredentials` | Boolean | Conditional | Access-Control-Allow-Credentials settings - `true` \| `false` - Access-Control-Allow-Origin: * and Access-Control-Allow-Credentials: true can't be set at the same time. | | `corsPolicy.useMaxAge` | Boolean | Conditional | Access-Control-Max-Age settings - `true` \| `false` - `true`: 86400 - `false`: Disable | | `http2` | Boolean | Required | Whether to use open network protocol (HTTP/2) - `true` \| `false` - `true`: Enable - `false`: Disable | | `trueClientIpHeader` | Boolean | Required | Whether to add client IP header to headers when forwarding requests to origin server - `true` \| `false` - `true`: Add - `false`: Not add | | `hsts` | Boolean | Required | Whether to use HTTPS for browser connections - `true` \| `false` - `true`: Enable - `false`: Disable | #### `HeaderPolicy` The following describes `HeaderPolicy`. | Field | Type | Required | Description | | --- | --- | --- | --- | | `type` | String | Required | Header type - `ORIGIN_REQUEST` \| `CLIENT_RESPONSE` - `ORIGIN_REQUEST`: Request header forwarded to the origin server - `CLIENT_RESPONSE`: Response header sent from the server to the client | | `ruleName` | String | Required | Header setting name | | `header` | Object | Required | Header detailed settings | | `header.type` | String | Required | Action type - `ADD` \| `MODIFY` \| `REMOVE` - `ADD`: Add - `MODIFY`: Edit - `REMOVE`: Delete | | `header.name` | String | Required | Header name | | `header.value` | String | Conditional | Header value - Required if `header.type` is `ADD` or `MODIFY` | #### `OptimizationConfig` The following describes `OptimizationConfig`. | Field | Type | Required | Description | | --- | --- | --- | --- | | `httpCompression` | Boolean | Required | Whether to use Gzip or Brotli compressed transfers - `true` \| `false` - `true`: Enable - `false`: Disable - Faster response times when enabled | | `largeFileOptimization` | Boolean | Required | Whether to enable large file transfer - `true` \| `false` - `true`: Enable - `false`: Disable - Optimize large file transfer performance and reliability when enabled. | | `headerMaxSize` | Object | Conditional | Request Header Size settings | | `headerMaxSize.singleSize` | String | Required | Single Header Size settings - `SIZE_8KB` \| `SIZE_16KB` \| `SIZE_32KB` - `SIZE_8KB`: 8192 - `SIZE_16KB`: 16384 - `SIZE_32KB`: 32768 | | `headerMaxSize.totalSize` | String | Required | Total Header Size settings - `SIZE_8KB` \| `SIZE_16KB` \| `SIZE_32KB` - `SIZE_8KB`: 8192 - `SIZE_16KB`: 16384 - `SIZE_32KB`: 32768 | #### `AccessControl` The following describes `AccessControl`. | Field | Type | Required | Description | | --- | --- | --- | --- | | `type` | String | Required | Access control type - `WHITELIST` \| `BLACKLIST` - `WHITELIST`: Whitelist - `BLACKLIST`: Blacklist - Only one of the two policies can be used. | | `ipPolicies` | Array | Required | Client IP or CIDR block - Can be entered in IP format. - Enter the empty value `[]` if not set. - One or more among `ipPolicies`, `geoPolicies`, and `refererPolicies` must be entered. | | `geoPolicies` | Array | Required | Client country code - ISO 3166-1 alpha-2 country code standard. - Enter the empty value `[]` if not set. - One or more among `ipPolicies`, `geoPolicies`, and `refererPolicies` must be entered. | | `refererPolicies` | Array | Required | HTTP request referrer header - Can be entered in domain format. - Enter the empty value `[]` if not set. - One or more among `ipPolicies`, `geoPolicies`, and `refererPolicies` must be entered. | ### Request example The request example is as follows: ``` curl --location --request POST 'https://edge.apigw.ntruss.com/api/v1/cdn-edge' \ --header 'x-ncp-apigw-timestamp: {Timestamp}' \ --header 'x-ncp-iam-access-key: {Access Key}' \ --header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \ --header 'Content-Type: application/json' \ --data '{ "profileId": 4210, "edgeName": "edge001", "distributionConfig": { "protocolType": "ALL", "regionType": "KOREA", "serviceDomain": { "domainType": "NCP_DOMAIN_AUTO", "domainName": null, "certificate": null }, "edgeLogging": { "enabled": true, "bucketPrefix": "edge/log", "objectStorage": { "region": "KR", "bucketName": "mmmmbucket" } } }, "originalCopyConfig": { "originalCopyLocation": { "type": "OBJECT_STORAGE", "region": "KR", "bucketName": "mybucket" }, "forwardHostHeader": { "type": "ORIGIN_HOSTNAME" }, "originalCopyProtocol": { "type": "HTTPS", "port": 443 }, "originalCopyPath": null, "originFailoverConfig": { "ruleName": "failrule1", "statusCodes": [ "404", "500", "502", "503", "504" ], "originalCopyLocation": { "type": "CUSTOM", "customLocation": "customdomain.com" } } }, "cachingConfig": { "defaultCaching": { "enabled": true, "ruleDefinitionType": "CACHING", "cacheRevalidateConfig": { "type": "IF_POSSIBLE", "ageType": "HOURS", "age": "10" } }, "negativeTtl": true, "bypassQueryString": { "enabled": true, "queryStrings": [ "aaa", "bbb", "ccc" ] }, "cacheKeyHostname": "INCOMING_HOST_HEADER", "cacheKeyIgnoreQueryString": { "type": "ALL_ALLOWED" }, "urlLetterCaseIgnoreUse": true, "removeVaryHeader": true, "edgeAuth": { "enabled": true, "type": "SIGNED_URL", "tokenName": "tokenname", "tokenKey": "b7*********************b45" }, "cachingRules": [ { "ruleName": "sample", "ruleType": "DIRECTORY", "ruleConditions": [ "/sample/*" ], "ruleDefinitionType": "CACHING", "cacheRevalidateConfig": { "type": "IF_POSSIBLE", "ageType": "SECONDS", "age": 100 }, "ruleBasedRoutingConfig": { "enabled": true, "originalCopyLocation": { "type": "CUSTOM", "region": null, "bucketName": null, "customLocation": "admin.example.co.kr" } }, "browserCache": { "enabled": true, "type": "ALLOW_CACHE", "ageType": "SECONDS", "age": 100 }, "cacheKeyQueryParameter": { "enabled": true, "type": "IGNORE_SPECIFIC_STRING", "queryParameters": [ "aaa", "bbb", "ccc" ] }, "accessDeny": false, "urlRedirect": { "enabled": true, "destinationProtocol": "HTTP", "destinationHostname": "ncloud.com", "destinationPath": "/home", "responseCode": "FOUND_302" }, "urlRewrite": { "enabled": false, "rewriteTarget": null } } ] }, "managedRule": { "cors": true, "corsPolicy": { "allowOrigin": "*", "allowMethods": [ "GET", "POST", "OPTIONS" ], "allowHeaders": [ "origin" ], "allowCredentials": false, "useMaxAge": true }, "http2": true, "trueClientIpHeader": true, "hsts": false }, "headerPolicies": [ { "type": "ORIGIN_REQUEST", "ruleName": "Modify Origin Request Header", "header": { "type": "ADD", "name": "headername", "value": "headervalue" } }, { "type": "CLIENT_RESPONSE", "ruleName": "Modify Client Response Header", "header": { "type": "MODIFY", "name": "rheadername", "value": "rheadervalue" } } ], "optimizationConfig": { "httpCompression": true, "largeFileOptimization": true, "headerMaxSize": { "singleSize": "SIZE_16KB", "totalSize": "SIZE_32KB" } }, "accessControl": { "type": "WHITELIST", "ipPolicies": [ "1.1.1.1", "2.2.2.2", "3.3.3.3" ], "geoPolicies": [ "AL", "SK", "ZM" ], "refererPolicies": [ "ncloud.com", "naver.com" ] } }' ``` ## Response This section describes the response format. ### Response body The response body includes the following data: | Field | Type | Required | Description | | --- | --- | --- | --- | | `code` | String | - | Response code | | `message` | String | - | Response message | | `result` | Object | - | Response result | | `result.edgeId` | Integer | - | Edge ID | ### Response status codes For information about the HTTP status codes common to all Global Edge APIs, see [Global Edge response status codes](/docs/en/edge-overview#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C). ### Response example The response example is as follows: ``` { "code": "0000", "message": "Success", "result": { "edgeId": 11207 } } ```