Skip to content

Instantly share code, notes, and snippets.

@klaude
Last active February 20, 2020 02:14
Show Gist options
  • Save klaude/0fbaeadcd47a8346e0fa0491d6206f03 to your computer and use it in GitHub Desktop.
Save klaude/0fbaeadcd47a8346e0fa0491d6206f03 to your computer and use it in GitHub Desktop.
Swagger specs for StackPath's CDN and delivery API services
{
"swagger": "2.0",
"info": {
"title": "Content Delivery Network",
"version": "1.0.0",
"contact": {
"name": "StackPath Support",
"url": "https://support.stackpath.com/"
}
},
"host": "gateway.stackpath.com",
"schemes": [
"https"
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"paths": {
"/cdn/v1/ips": {
"get": {
"summary": "Get the IP addresses used by the StackPath CDN",
"operationId": "GetCDNIPs",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/cdnGetCDNIPsResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "filter",
"in": "query",
"required": false,
"type": "string",
"enum": [
"ALL",
"IPV4",
"IPV6"
],
"default": "ALL",
"description": "Whether to search for IPv4, IPv6, or all IP addresses"
},
{
"name": "response_type",
"in": "query",
"required": false,
"type": "string",
"enum": [
"JSON",
"PLAIN_TEXT"
],
"default": "JSON",
"description": "The format to return the result in"
}
],
"tags": [
"Infrastructure"
]
}
},
"/cdn/v1/origins/scan": {
"post": {
"summary": "Scan an origin from the CDN",
"description": "Retrieve information regarding an origin, such as its IP address and whether or not it supports SSL.",
"operationId": "ScanOrigin",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/cdnScanOriginResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/cdnScanOriginRequest"
}
}
],
"tags": [
"Scan"
]
}
},
"/cdn/v1/pops": {
"get": {
"summary": "Get the StackPath CDN points of presence",
"operationId": "GetPops",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/cdnGetPopsResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"tags": [
"Infrastructure"
]
}
},
"/cdn/v1/pops/closest": {
"get": {
"summary": "Scan a URL from the StackPath edge network and return a performance report",
"description": "Results are ordered with the fastest POP response first",
"operationId": "GetClosestPops",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/cdnGetClosestPopsResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "url",
"description": "The URL to scan.",
"in": "query",
"required": false,
"type": "string"
}
],
"tags": [
"Infrastructure"
]
}
},
"/cdn/v1/stacks/{stack_id}/certificates": {
"get": {
"summary": "Get a stack's SSL certificates",
"operationId": "GetCertificates",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/cdnGetCertificatesResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack to retrieve SSL certificates from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "page_request.first",
"description": "The number of items desired.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.after",
"description": "The cursor value after which data will be returned.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.filter",
"description": "SQL-style constraint filters.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.sort_by",
"description": "Sort the response by the given field.",
"in": "query",
"required": false,
"type": "string"
}
],
"tags": [
"Delivery"
]
},
"post": {
"summary": "Add an SSL certificate to a stack",
"description": "The certificate is automatically associated with CDN site scope hostnames that match either the certificate's subject or its alternative names.",
"operationId": "CreateCertificate",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/cdnCreateCertificateResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack to create a certificate on",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/cdnCreateCertificateRequest"
}
}
],
"tags": [
"Delivery"
]
}
},
"/cdn/v1/stacks/{stack_id}/certificates/{certificate_id}": {
"get": {
"summary": "Retrieve an individual SSL certificate",
"operationId": "GetCertificate",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/cdnGetCertificateResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the SSL certificate to retrieve",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "certificate_id",
"description": "The ID of the SSL certificate to retrieve",
"in": "path",
"required": true,
"type": "string"
}
],
"tags": [
"Delivery"
]
},
"delete": {
"summary": "Delete an SSL certificate",
"operationId": "DeleteCertificate",
"responses": {
"204": {
"description": "No content"
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the SSL certificate to delete",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "certificate_id",
"description": "The ID of the SSL certificate to delete",
"in": "path",
"required": true,
"type": "string"
}
],
"tags": [
"Delivery"
]
},
"put": {
"summary": "Update an SSL certificate",
"operationId": "UpdateCertificate",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/cdnUpdateCertificateResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the SSL certificate to update",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "certificate_id",
"description": "The ID of SSL certificate to update",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/cdnUpdateCertificateRequest"
}
}
],
"tags": [
"Delivery"
]
}
},
"/cdn/v1/stacks/{stack_id}/certificates/{certificate_id}/renew": {
"post": {
"summary": "Issue a renewal for an SSL certificate",
"description": "StackPath automatically renews certificates that are 30 days from expiration. Call this to retry a renewal that previously failed.",
"operationId": "RenewCertificate",
"responses": {
"204": {
"description": "No content"
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the SSL certificate to renew",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "certificate_id",
"description": "The ID of the SSL certificate to renew",
"in": "path",
"required": true,
"type": "string"
}
],
"tags": [
"Delivery"
]
}
},
"/cdn/v1/stacks/{stack_id}/certificates/{certificate_id}/sites": {
"get": {
"summary": "Retrieve the CDN sites associated with an SSL certificate",
"operationId": "GetCertificateSites",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/cdnGetCertificateSitesResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the SSL certificate to retrieve CDN sites for",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "certificate_id",
"description": "The ID of the SSL certificate to retrieve sites for",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "page_request.first",
"description": "The number of items desired.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.after",
"description": "The cursor value after which data will be returned.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.filter",
"description": "SQL-style constraint filters.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.sort_by",
"description": "Sort the response by the given field.",
"in": "query",
"required": false,
"type": "string"
}
],
"tags": [
"Delivery"
]
}
},
"/cdn/v1/stacks/{stack_id}/certificates/{certificate_id}/verification_details": {
"get": {
"summary": "Retrieve a CDN site's SSL certificate manual verification details",
"operationId": "GetCertificateVerificationDetails",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/cdnGetCertificateVerificationDetailsResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to retrieve SSL certificate verification details for",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "certificate_id",
"description": "The ID of the site to retrieve SSL certificate verification details for",
"in": "path",
"required": true,
"type": "string"
}
],
"tags": [
"Delivery"
]
}
},
"/cdn/v1/stacks/{stack_id}/metrics": {
"get": {
"summary": "Retrieve request metrics for all CDN sites in a stack",
"description": "If the start and end dates are not provided, the last 24 hours of data will be returned.",
"operationId": "GetMetrics",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/cdnGetMetricsResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack to retrieve CDN metrics for",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "start_date",
"description": "The starting date to retrieve metrics for.",
"in": "query",
"required": false,
"type": "string",
"format": "date-time"
},
{
"name": "end_date",
"description": "The ending date to retrieve metrics for.",
"in": "query",
"required": false,
"type": "string",
"format": "date-time"
},
{
"name": "granularity",
"in": "query",
"required": false,
"type": "string",
"enum": [
"AUTO",
"P1M",
"PT5M",
"PT1H",
"P1D"
],
"default": "AUTO",
"description": "The ISO 8601 duration to roll up metrics by"
},
{
"name": "platforms",
"description": "A comma-separated list of billing platforms to filter metrics for.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "pops",
"description": "A comma-separated list of StackPath point of presence location codes to filter metrics for.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "billing_regions",
"description": "A comma-separated list of billing regions to filter metrics for.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "sites",
"description": "A comma-separated list of site IDs to filter metrics for.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "group_by",
"in": "query",
"required": false,
"type": "string",
"enum": [
"NONE",
"ACCOUNT",
"SITE",
"PLATFORM",
"POP",
"REGION"
],
"default": "NONE",
"description": "The field to group metrics by"
},
{
"name": "site_type_filter",
"in": "query",
"required": false,
"type": "string",
"enum": [
"ALL",
"CDN",
"WAF",
"API",
"EDGE_ENGINE",
"SERVERLESS_EDGE_ENGINE"
],
"default": "ALL",
"description": "The type of sites to retrieve metrics for"
}
],
"tags": [
"Metrics"
]
}
},
"/cdn/v1/stacks/{stack_id}/purge": {
"post": {
"summary": "Purge cached content for all CDN sites on a stack",
"description": "Content is re-cached on the CDN the next time it is requested. Use the returned purge ID to see the status of a purge request.",
"operationId": "PurgeContent",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/cdnPurgeContentResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the sites to purge items from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/cdnPurgeContentRequest"
}
}
],
"tags": [
"Purge Content"
]
}
},
"/cdn/v1/stacks/{stack_id}/purge/{purge_id}": {
"get": {
"summary": "Retrieve a purge request's status",
"operationId": "GetPurgeStatus",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/cdnGetPurgeStatusResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack the purge request was made against",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "purge_id",
"description": "The ID of the purge request to check the status of",
"in": "path",
"required": true,
"type": "string"
}
],
"tags": [
"Purge Content"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/certificates": {
"get": {
"summary": "Retrieve a site's SSL certificates",
"operationId": "GetSiteCertificates",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/cdnGetSiteCertificatesResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to retrieve SSL certificates for",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site to retrieve SSL certificates for",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "page_request.first",
"description": "The number of items desired.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.after",
"description": "The cursor value after which data will be returned.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.filter",
"description": "SQL-style constraint filters.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.sort_by",
"description": "Sort the response by the given field.",
"in": "query",
"required": false,
"type": "string"
}
],
"tags": [
"Delivery"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/certificates/request": {
"post": {
"summary": "Request an SSL certificate for a CDN site",
"description": "The optional list of hosts should be delivery domains for the site. If no hosts parameter is provided, all delivery domains for a site will be included in the SAN field. If the hosts parameter is provided, then the first entry in the list will be used as the certificate's common name.",
"operationId": "RequestCertificate",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/cdnRequestCertificateResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to request an SSL certificate for",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site to request an SSL certificate for",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/cdnRequestCertificateRequest"
}
}
],
"tags": [
"Delivery"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/certificates/{certificate_id}": {
"put": {
"summary": "Associate a CDN site with an SSL certificate",
"description": "Association is performed without validating if the site has a hostname covered by the certificate. This is useful for preparation work required for getting a site ready for traffic.\n\nIf a certificate is uploaded which contains hostnames for sites, it will automatically be connected to those sites. If a hostname is added to a site which is covered by an SSL certificate, it will automatically be connected to the certificate.",
"operationId": "ConnectSiteToCertificate",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/cdnConnectSiteToCertificateResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to attach an SSL certificate to",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site to attach an SSL certificate to",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "certificate_id",
"description": "The ID of the SSL certificate to attach to a CDN site",
"in": "path",
"required": true,
"type": "string"
}
],
"tags": [
"Delivery"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/certificates/{certificate_id}/hosts": {
"put": {
"summary": "Update an SSL certificate's hosts",
"description": "Updating hosts issues a new certificate.",
"operationId": "UpdateSiteCertificateHosts",
"responses": {
"204": {
"description": "No content"
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the SSL certificate to update hosts on",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site containing the SSL certificate to update hosts on",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "certificate_id",
"description": "The ID of the SSL certificate to update hosts on",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/cdnUpdateSiteCertificateHostsRequest"
}
}
],
"tags": [
"Delivery"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/dns/targets": {
"get": {
"summary": "Retrieve a CDN site's DNS CNAME targets",
"description": "A site's hostname should point to these CNAME targets in order for traffic to be sent through StackPath's edge nodes.",
"operationId": "GetSiteDnsTargets",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/cdnGetSiteDnsTargetsResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to retrieve DNS CNAME targets from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site to retrieve DNS CNAME targets from",
"in": "path",
"required": true,
"type": "string"
}
],
"tags": [
"Delivery"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/scopes": {
"get": {
"summary": "Retrieve a CDN site's scopes",
"operationId": "GetSiteScopes",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/cdnGetSiteScopesResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to retrieve scopes from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site to retrieve scopes from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "page_request.first",
"description": "The number of items desired.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.after",
"description": "The cursor value after which data will be returned.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.filter",
"description": "SQL-style constraint filters.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.sort_by",
"description": "Sort the response by the given field.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "disable_transparent_mode",
"description": "Whether or not to retrieve the site's CDN scope or its WAF scope. When true, this call removes the hostname from a CDN site's scope instead of loading from a CDN site's WAF scope, if the site has WAF service.",
"in": "query",
"required": false,
"type": "boolean",
"format": "boolean"
}
],
"tags": [
"Configuration"
]
},
"post": {
"summary": "Create a new CDN site scope",
"operationId": "CreateScope",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/cdnCreateScopeResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to create a scope on",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site to create a scope on",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/cdnCreateScopeRequest"
}
}
],
"tags": [
"Configuration"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/scopes/{scope_id}": {
"delete": {
"summary": "Delete a CDN site scope",
"operationId": "DeleteScope",
"responses": {
"204": {
"description": "No content"
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site containing the scope to delete",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site containing the scope to delete",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "scope_id",
"description": "The ID of the scope to delete",
"in": "path",
"required": true,
"type": "string"
}
],
"tags": [
"Configuration"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/scopes/{scope_id}/configuration": {
"get": {
"summary": "Retrieve a CDN site's scope configuration",
"operationId": "GetScopeConfiguration",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/cdnGetScopeConfigurationResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to retrieve a scope configuration from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site to retrieve a scope configuration from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "scope_id",
"description": "The ID of the scope whose configuration to retrieve",
"in": "path",
"required": true,
"type": "string"
}
],
"tags": [
"Configuration"
]
},
"patch": {
"summary": "Update a CDN site's scope configuration",
"operationId": "UpdateScopeConfiguration",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/cdnUpdateScopeConfigurationResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site containing the scope to update",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site containing the scope to update",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "scope_id",
"description": "The ID of the scope to update",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/cdnUpdateScopeConfigurationRequest"
}
}
],
"tags": [
"Configuration"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/scopes/{scope_id}/hostnames": {
"get": {
"summary": "Retrieve the hostnames configured on a CDN site's scope",
"description": "Hostnames allow the CDN to recognize an HTTP request and associate it with a CDN site.",
"operationId": "GetScopeHostnames",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/cdnGetScopeHostnamesResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site containing the scope to retrieve hostnames from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site containing the scope to retrieve hostnames from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "scope_id",
"description": "The ID of the scope to retrieve hostnames from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "page_request.first",
"description": "The number of items desired.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.after",
"description": "The cursor value after which data will be returned.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.filter",
"description": "SQL-style constraint filters.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.sort_by",
"description": "Sort the response by the given field.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "disable_transparent_mode",
"description": "Whether or not to load hostnames from a CDN site's CDN scope or its WAF scope. When true, this call loads scope hostnames from a CDN site's scope instead of loading from a CDN site's WAF scope, if the site has WAF service.",
"in": "query",
"required": false,
"type": "boolean",
"format": "boolean"
}
],
"tags": [
"Configuration"
]
},
"post": {
"summary": "Add a hostname to a CDN site's scope",
"operationId": "CreateScopeHostname",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/cdnCreateScopeHostnameResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site containing the scope to add a hostname to",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site containing the scope to add a hostname to",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "scope_id",
"description": "The ID of the scope to add a hostname to",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/cdnCreateScopeHostnameRequest"
}
}
],
"tags": [
"Configuration"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/scopes/{scope_id}/hostnames/{domain}": {
"delete": {
"summary": "Remove a hostname from a CDN site's scope",
"operationId": "DeleteScopeHostname",
"responses": {
"204": {
"description": "No content"
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site containing the scope to remove a hostname from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site containing the scope to remove a hostname from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "scope_id",
"description": "The ID of the scope to remove a hostname from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "domain",
"description": "The hostname to remove from a scope",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "disable_transparent_mode",
"description": "Whether or not to remove the hostname from a CDN site's CDN scope or its WAF scope. When true, this call removes the hostname from a CDN site's scope instead of loading from a CDN site's WAF scope, if the site has WAF service.",
"in": "query",
"required": false,
"type": "boolean",
"format": "boolean"
}
],
"tags": [
"Configuration"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/scopes/{scope_id}/origins": {
"get": {
"summary": "Retrieve the origins behind a CDN site's scope",
"operationId": "GetScopeOrigins",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/cdnGetScopeOriginsResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site containing the scope to retrieve origins from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site containing the scope to retrieve origins from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "scope_id",
"description": "The ID of the scope to retrieve origins from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "page_request.first",
"description": "The number of items desired.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.after",
"description": "The cursor value after which data will be returned.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.filter",
"description": "SQL-style constraint filters.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.sort_by",
"description": "Sort the response by the given field.",
"in": "query",
"required": false,
"type": "string"
}
],
"tags": [
"Configuration"
]
},
"post": {
"summary": "Connect an origin to a CDN site's scope",
"description": "The origin is automatically created if necessary. When the request contains a priority which an origin already associated with the scope has set, the existing origin is disconnected. The priority of an origin already associated with a scope can be modified via this endpoint.",
"operationId": "ConnectScopeToOrigin",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/cdnConnectScopeToOriginResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site containing the scope to associate an origin with",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site containing the scope to associate an origin with",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "scope_id",
"description": "The ID of the scope to associate an origin with",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/cdnConnectScopeToOriginRequest"
}
}
],
"tags": [
"Configuration"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/scopes/{scope_id}/origins/{origin_id}": {
"delete": {
"summary": "Disconnect an origin from CDN site's scope",
"operationId": "DisconnectScopeFromOrigin",
"responses": {
"204": {
"description": "No content"
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site containing the scope to remove an origin from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site containing the scope to remove an origin from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "scope_id",
"description": "The ID of the scope to remove an origin from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "origin_id",
"description": "The ID of the origin to remove from a scope",
"in": "path",
"required": true,
"type": "string"
}
],
"tags": [
"Configuration"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/scopes/{scope_id}/rules": {
"get": {
"summary": "Retrieve all EdgeRules on a CDN site scope",
"operationId": "GetScopeRules",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/cdnGetScopeRulesResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to retrieve EdgeRules from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site to retrieve EdgeRules from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "scope_id",
"description": "The ID of the CDN site scope to retrieve EdgeRules from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "page_request.first",
"description": "The number of items desired.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.after",
"description": "The cursor value after which data will be returned.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.filter",
"description": "SQL-style constraint filters.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.sort_by",
"description": "Sort the response by the given field.",
"in": "query",
"required": false,
"type": "string"
}
],
"tags": [
"EdgeRules"
]
},
"post": {
"summary": "Create an EdgeRule on a CDN site scope",
"operationId": "CreateScopeRule",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/cdnCreateScopeRuleResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to create an EdgeRule on",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site to create an EdgeRule on",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "scope_id",
"description": "The ID of the CDN site scope to create an EdgeRule on",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/cdnCreateScopeRuleRequest"
}
}
],
"tags": [
"EdgeRules"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/scopes/{scope_id}/rules/{rule_id}": {
"get": {
"summary": "Retrieve an individual EdgeRule from a CDN site scope",
"operationId": "GetScopeRule",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/cdnGetScopeRuleResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to retrieve an EdgeRule from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site to retrieve an EdgeRule from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "scope_id",
"description": "The ID of the CDN site scope to retrieve an EdgeRule from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "rule_id",
"description": "The ID of the EdgeRule to retrieve",
"in": "path",
"required": true,
"type": "string"
}
],
"tags": [
"EdgeRules"
]
},
"delete": {
"summary": "Delete an EdgeRule",
"operationId": "DeleteScopeRule",
"responses": {
"204": {
"description": "No content"
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to delete an EdgeRule from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site to delete an EdgeRule from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "scope_id",
"description": "The ID of the CDN site scope to delete an EdgeRule from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "rule_id",
"description": "The ID of the EdgeRule to delete",
"in": "path",
"required": true,
"type": "string"
}
],
"tags": [
"EdgeRules"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/scopes/{scope_id}/rules/{rule_id}/configuration": {
"get": {
"summary": "Retrieve an EdgeRule's configuration",
"operationId": "GetScopeRuleConfiguration",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/cdnGetScopeRuleConfigurationResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to retrieve an EdgeRule's configuration from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site to retrieve an EdgeRule's configuration from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "scope_id",
"description": "The ID of the CDN site scope to retrieve an EdgeRule's configuration from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "rule_id",
"description": "The ID of the EdgeRule to retrieve configuration for",
"in": "path",
"required": true,
"type": "string"
}
],
"tags": [
"EdgeRules"
]
},
"patch": {
"summary": "Update an EdgeRule's configuration",
"operationId": "UpdateScopeRuleConfiguration",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/cdnUpdateScopeRuleConfigurationResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to update an EdgeRule's configuration for",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site to update an EdgeRule's configuration for",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "scope_id",
"description": "The ID of the CDN site scope to update an EdgeRule's configuration for",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "rule_id",
"description": "The ID of the EdgeRule to update configuration for",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/cdnUpdateScopeRuleConfigurationRequest"
}
}
],
"tags": [
"EdgeRules"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/scripts": {
"get": {
"summary": "Get all serverless scripts",
"operationId": "GetSiteScripts",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/cdnGetSiteScriptsResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack to get serverless scripts from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site to get serverless scripts from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "page_request.first",
"description": "The number of items desired.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.after",
"description": "The cursor value after which data will be returned.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.filter",
"description": "SQL-style constraint filters.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.sort_by",
"description": "Sort the response by the given field.",
"in": "query",
"required": false,
"type": "string"
}
],
"tags": [
"Serverless Scripting"
]
},
"post": {
"summary": "Create a serverless script",
"operationId": "CreateSiteScript",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/cdnCreateSiteScriptResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack to create a serverless script on",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site to create a serverless script on",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/cdnCreateSiteScriptRequest"
}
}
],
"tags": [
"Serverless Scripting"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/scripts/{script_id}": {
"get": {
"summary": "Get a serverless script",
"operationId": "GetSiteScript",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/cdnGetSiteScriptResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack to get the serverless script from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site to get the serverless script from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "script_id",
"description": "The ID of the serverless script to get",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "script_version",
"description": "The version of the serverless script to get",
"in": "query",
"required": false,
"type": "string"
}
],
"tags": [
"Serverless Scripting"
]
},
"delete": {
"summary": "Delete a serverless script",
"operationId": "DeleteSiteScript",
"responses": {
"204": {
"description": "No content"
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack to delete the serverless script from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site to delete the serverless script from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "script_id",
"description": "The ID of the serverless script to delete",
"in": "path",
"required": true,
"type": "string"
}
],
"tags": [
"Serverless Scripting"
]
},
"patch": {
"summary": "Update a serverless script",
"operationId": "UpdateSiteScript",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/cdnUpdateSiteScriptResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack with the serverless script to update",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site with the serverless script to update",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "script_id",
"description": "The ID of the serverless script to update",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/cdnUpdateSiteScriptRequest"
}
}
],
"tags": [
"Serverless Scripting"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/scripts/{script_id}/{script_version}": {
"get": {
"summary": "Get a version of a serverless script",
"operationId": "GetSiteScript2",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/cdnGetSiteScriptResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/apiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack to get the serverless script from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site to get the serverless script from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "script_id",
"description": "The ID of the serverless script to get",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "script_version",
"description": "The version of the serverless script to get",
"in": "path",
"required": true,
"type": "string"
}
],
"tags": [
"Serverless Scripting"
]
}
}
},
"definitions": {
"AuthACLAccessCodeEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"allow",
"deny"
],
"default": "UNKNOWN"
},
"AuthACLClientIPSrcEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"socket",
"header"
],
"default": "UNKNOWN"
},
"AuthGeoCodeEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"countryCode",
"region",
"subdivisionCodes",
"city",
"postalCode",
"continentCode",
"timeZone",
"dmaCode",
"areaCode"
],
"default": "UNKNOWN"
},
"AuthUrlSignAKv2HashStrategyEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"sha1",
"sha256",
"md5"
],
"default": "UNKNOWN"
},
"AuthUrlSignL3TimeFormatEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"epoch",
"datetime"
],
"default": "UNKNOWN"
},
"BandwidthRateLimitInitialBurstUnitsEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"byte",
"kilobyte"
],
"default": "UNKNOWN"
},
"BandwidthRateLimitSustainedRateUnitsEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"kilobit",
"kilobyte"
],
"default": "UNKNOWN"
},
"BillableRegionsEnabledRegionsEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"us",
"eu",
"sa",
"as",
"oc"
],
"default": "UNKNOWN"
},
"ClientRequestQueueIpListAccessCodeEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"allow",
"deny"
],
"default": "UNKNOWN"
},
"ContentDispositionByHeaderDefaultTypeEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"attachment",
"inline"
],
"default": "UNKNOWN"
},
"CreateSiteRequestTypeEnum": {
"type": "string",
"enum": [
"CDN",
"WAF",
"API"
],
"default": "CDN",
"description": "The CDN site's type\n\nA site's type determines how StackPath delivers content to incoming HTTP(S) requests.\n\n - CDN: The site is a CDN only site\n - WAF: The site is either a standalone WAF site or a WAF site with attached CDN service\n - API: The site is an API delivery site. API delivery sites are powered by both the WAF and CDN and have custom rulesets for each."
},
"DnsOverrideTypeEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"A",
"AAAA",
"CNAME"
],
"default": "UNKNOWN"
},
"FileSegmentationInitialOriginRequestBehaviorEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"range",
"full"
],
"default": "UNKNOWN"
},
"GetCDNIPsRequestIPFilter": {
"type": "string",
"enum": [
"ALL",
"IPV4",
"IPV6"
],
"default": "ALL",
"description": "The kinds of IP addresses that can be retrieved\n\n- ALL: Retrieve all IP address types\n - IPV4: Retrieve only IPv4 addresses\n - IPV6: Retrieve only IPv6 addresses"
},
"GetCDNIPsRequestResponseType": {
"type": "string",
"enum": [
"JSON",
"PLAIN_TEXT"
],
"default": "JSON",
"description": "The response formats that can be retrieved\n\n- JSON: Return a JSON serialized response\n - PLAIN_TEXT: Return a plain text response with one IP address on each line"
},
"GetMetricsRequestMetricsGranularity": {
"type": "string",
"enum": [
"AUTO",
"P1M",
"PT5M",
"PT1H",
"P1D"
],
"default": "AUTO",
"description": "The time intervals that metrics can be rounded to\n\n- AUTO: StackPath will choose the granularity based on start and end dates\n - P1M: Retrieve metrics per month\n - PT5M: Retrieve metrics per five minute intervals\n - PT1H: Retrieve metrics per hour\n - P1D: Retrieve metrics per day"
},
"GetMetricsRequestMetricsGroupBy": {
"type": "string",
"enum": [
"NONE",
"ACCOUNT",
"SITE",
"PLATFORM",
"POP",
"REGION"
],
"default": "NONE",
"description": "Fields that metrics can be grouped to\n\n- NONE: Don't group metrics\n - ACCOUNT: Group metrics by StackPath account\n - SITE: Group metrics by site\n - PLATFORM: Group metrics by scope billing platform\n - POP: Group metrics by StackPath point of presence\n - REGION: Group metrics by geographical region"
},
"GetMetricsRequestSiteTypeFilter": {
"type": "string",
"enum": [
"ALL",
"CDN",
"WAF",
"API",
"EDGE_ENGINE",
"SERVERLESS_EDGE_ENGINE"
],
"default": "ALL",
"description": "The different kind of sites that metrics can be retrieved for\n\n- ALL: Retrieve metrics for all site types\n - CDN: Retrieve metrics for CDN sites only\n - WAF: Retrieve metrics for WAF sites only\n - API: Retrieve metrics for API sites only\n - EDGE_ENGINE: DEPRECATED: Retrieve metrics for sites with serverless scripts only\n - SERVERLESS_EDGE_ENGINE: Retrieve metrics for sites with serverless scripts only"
},
"GetMetricsResponseMetricSample": {
"type": "object",
"properties": {
"values": {
"type": "array",
"items": {
"type": "number",
"format": "double"
},
"description": "An individual data point"
}
},
"description": "The data points associated with a series of metrics"
},
"GetMetricsResponseMetricSeries": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "The type of data in the analytics set"
},
"key": {
"type": "string",
"description": "A graphable key for the type of data in the analytics set"
},
"metrics": {
"type": "array",
"items": {
"type": "string"
},
"description": "Descriptions of the CDN metrics' samples"
},
"samples": {
"type": "array",
"items": {
"$ref": "#/definitions/GetMetricsResponseMetricSample"
},
"description": "The CDN metrics' data points"
}
},
"description": "A series of analytics data suitable for a graph"
},
"HashTypeClassEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"HOST",
"MEDIA"
],
"default": "UNKNOWN"
},
"MidTierCachingRequestFormatEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"internal",
"external"
],
"default": "UNKNOWN"
},
"OriginPullDefaultBehaviorEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"dedup",
"nocache",
"nostore"
],
"default": "UNKNOWN"
},
"OriginPullPolicyDefaultCacheBehaviorEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"bypass",
"ttl"
],
"default": "UNKNOWN"
},
"OriginPullPolicyExpirePolicyEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"CACHE_CONTROL",
"INGEST",
"LAST_MODIFY",
"NEVER_EXPIRE",
"DO_NOT_CACHE"
],
"default": "UNKNOWN"
},
"OriginPullPolicyNoCacheBehaviorEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"legacy",
"spec"
],
"default": "UNKNOWN"
},
"OriginPullRedirectActionEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"follow",
"proxy"
],
"default": "UNKNOWN"
},
"OriginPullResumeDownloadEtagValidationEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"DO_NOT_USE",
"OPTIONAL",
"REQUIRED"
],
"default": "UNKNOWN"
},
"OriginPullShieldBehaviorEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"redirect",
"tlb"
],
"default": "UNKNOWN"
},
"OriginPullShieldPermissibleShieldInternalErrorsEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"NONE",
"CONNECTION_ONLY",
"WRITE_ONLY",
"WRITE_READ",
"ALL"
],
"default": "UNKNOWN"
},
"PurgeContentRequestItem": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The URL at which to delete content"
},
"recursive": {
"type": "boolean",
"format": "boolean",
"description": "Whether or not to recursively delete content from the CDN"
},
"invalidateOnly": {
"type": "boolean",
"format": "boolean",
"description": "Whether or not to mark the asset as expired and re-validate instead of deleting"
},
"purgeAllDynamic": {
"type": "boolean",
"format": "boolean",
"description": "Whether or not to purge dynamic versions of assets\n\nThis is ignored if recursive is true."
},
"headers": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of HTTP request headers used to construct a cache key to purge content by. These headers must be configured in the site configuration's _DynamicContent.headerFields_ property."
},
"purgeSelector": {
"type": "array",
"items": {
"$ref": "#/definitions/PurgeContentRequestPurgeSelector"
},
"description": "A key/value pair definition of content to purge from the CDN"
}
},
"title": ""
},
"PurgeContentRequestPurgeSelector": {
"type": "object",
"properties": {
"selectorType": {
"$ref": "#/definitions/PurgeContentRequestPurgeSelectorType"
},
"selectorName": {
"type": "string",
"description": "The name of the type of content to purge\n\nFor example, the name of the HTTP response header. Names are case sensitive."
},
"selectorValue": {
"type": "string",
"description": "The value of the content to purge\n\nFor example, the value of the HTTP response header. Values are case sensitive and may be wild-carded, but cannot match a \"/\"."
},
"selectorValueDelimiter": {
"type": "string",
"description": "The delimiter to separate multiple values with\n\nDefaults to \",\"."
}
},
"description": "A key/value pair definition of content to purge from the CDN"
},
"PurgeContentRequestPurgeSelectorType": {
"type": "string",
"enum": [
"HEADER",
"TAG"
],
"default": "HEADER",
"description": "The kinds of content that can be purged from the CDN\n\n- HEADER: Purge content based on an HTTP response header\n - TAG: Purge content based on an X-TAG HTTP header value. Purging by tag can be useful when content on the origin is tagged."
},
"RequestFilterUrlInputEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"FULL_URL",
"FULL_FILE_PATH",
"FULL_FILE_PATH_LEGACY"
],
"default": "UNKNOWN"
},
"ScanOriginResponseOriginScanSSLDetails": {
"type": "object",
"properties": {
"valid": {
"type": "boolean",
"format": "boolean",
"description": "Whether or not the scanned domain has a valid SSL certificate"
},
"error": {
"type": "string",
"description": "Errors encountered processing HTTPS requests to the scanned domain"
}
},
"description": "SSL details in an origin scan response"
},
"SiteTypeValue": {
"type": "string",
"enum": [
"UNKNOWN",
"CDN",
"WAF",
"API"
],
"default": "UNKNOWN",
"description": "A CDN site's type\n\nA site's type determines how StackPath delivers content to incoming HTTP(S) requests.\n\n - UNKNOWN: StackPath is unable to determine a site's type\n - CDN: A site is CDN only site\n - WAF: A site is either a standalone WAF site or a WAF site with attached CDN service\n - API: A site is an API delivery site. API delivery sites are powered by both the WAF and CDN and have custom rulesets for each."
},
"TlsMinVersionEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"TLSv1_0",
"TLSv1_1",
"TLSv1_2"
],
"default": "UNKNOWN"
},
"VaryHeaderFieldProxyBehaviorEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"whole",
"filtered",
"none"
],
"default": "UNKNOWN"
},
"apiStatus": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32"
},
"error": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"$ref": "#/definitions/apiStatusDetail"
}
}
}
},
"apiStatusDetail": {
"type": "object",
"properties": {
"@type": {
"type": "string"
}
},
"required": [
"@type"
],
"discriminator": "@type"
},
"cdnCertificate": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "A certificate's unique ID"
},
"fingerprint": {
"type": "string",
"description": "A unique hash of a certificate's contents"
},
"commonName": {
"type": "string",
"description": "A certificate's common name, or the primary domain name the certificate is used for"
},
"issuer": {
"type": "string",
"description": "The name of the certificate's issuing certificate authority"
},
"caBundle": {
"type": "string",
"description": "A PEM PKCS #7 formatted certificate authority bundle"
},
"trusted": {
"type": "boolean",
"format": "boolean",
"description": "Whether or not the certificate's authority is trusted by a web browser"
},
"expirationDate": {
"type": "string",
"format": "date-time",
"description": "The date an SSL certificate will expire"
},
"createDate": {
"type": "string",
"format": "date-time",
"description": "The date an SSL certificate was created"
},
"updateDate": {
"type": "string",
"format": "date-time",
"description": "The date an SSL certificate was last updated"
},
"subjectAlternativeNames": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of Subject Alternative Names in the certificate\n\nCertificates for multiple domains define their domains in certificate's SAN list."
},
"status": {
"$ref": "#/definitions/cdnCertificateStatus"
},
"providerManaged": {
"type": "boolean",
"format": "boolean",
"description": "Whether a certificate is managed by StackPath or the end user"
}
},
"description": "An SSL certificate"
},
"cdnCertificateStatus": {
"type": "string",
"enum": [
"UNKNOWN",
"PENDING",
"EXPIRED",
"FAILED",
"PENDING_VERIFICATION",
"ACTIVE",
"INACTIVE"
],
"default": "UNKNOWN",
"description": "A StackPath-provided certificate's status\n\n- UNKNOWN: StackPath is unable to determine the certificate's status. This is the default status for end-user provided certificates.\n - PENDING: The certificate is provisioning\n - EXPIRED: The certificate has expired\n - FAILED: The certificate failed to provision\n - PENDING_VERIFICATION: The certificate is pending domain verification by the end user\n - ACTIVE: The certificate is valid and is in use by one or more hosts\n - INACTIVE: The certificate is valid but is not in use by any hosts"
},
"cdnCertificateVerificationMethod": {
"type": "string",
"enum": [
"DNS",
"HTTP"
],
"default": "DNS",
"description": "The Certificate Verification Method\n\nVerification method used to validate a requested certificate on a site\n\n - DNS: Verify a certificate using DNS records\n - HTTP: Verify a certificate by using HTTP validation. This will require all hosts in the certificate point to the site's stackpathcdn.com delivery domain or IP address"
},
"cdnConnectScopeToOriginRequest": {
"type": "object",
"properties": {
"origin": {
"$ref": "#/definitions/cdnConnectScopeToOriginRequestOrigin"
},
"priority": {
"type": "integer",
"format": "int32",
"description": "The origin's priority to the scope\n\nIf a CDN scope is powered by more than one origin, then the one with the lower priority number takes higher precedence."
},
"originId": {
"type": "string",
"description": "The ID of an existing origin to associate with a scope\n\nThis is useful for connecting to a shared origin."
}
},
"title": ""
},
"cdnConnectScopeToOriginRequestOrigin": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "The origin's path\n\nPaths default to \"/\""
},
"hostname": {
"type": "string",
"description": "The origin's hostname or IP address"
},
"port": {
"type": "integer",
"format": "int32",
"description": "The HTTP port to connect to the origin"
},
"securePort": {
"type": "integer",
"format": "int32",
"description": "The HTTPS port to connect to the origin"
}
},
"description": "A new origin"
},
"cdnConnectScopeToOriginResponse": {
"type": "object",
"properties": {
"scopeOrigin": {
"$ref": "#/definitions/cdnScopeOrigin"
}
},
"description": "The response from a request to associate an origin with a CDN site scope"
},
"cdnConnectSiteToCertificateResponse": {
"type": "object",
"properties": {
"siteCertificate": {
"$ref": "#/definitions/cdnSiteCertificate"
}
},
"description": "The response to a request to associate an SSL certificate with a CDN site"
},
"cdnCreateCertificateRequest": {
"type": "object",
"properties": {
"certificate": {
"type": "string",
"description": "A PEM PKCS #7 formatted SSL certificate"
},
"key": {
"type": "string",
"description": "A PEM PKCS #7 formatted private key\n\nPrivate keys are sent directly to the edge nodes and are not stored elsewhere on StackPath's systems."
},
"caBundle": {
"type": "string",
"description": "A PEM PKCS #7 formatted certificate authority bundle"
}
},
"title": ""
},
"cdnCreateCertificateResponse": {
"type": "object",
"properties": {
"certificate": {
"$ref": "#/definitions/cdnCertificate"
}
},
"description": "The response from a request to add an SSL certificate to a stack"
},
"cdnCreateScopeHostnameRequest": {
"type": "object",
"properties": {
"domain": {
"type": "string",
"description": "The hostname to add to a scope"
},
"disableTransparentMode": {
"type": "boolean",
"format": "boolean",
"description": "Whether or not to add the hostname to a CDN site's CDN scope or its WAF scope\n\nWhen true, this call adds the hostname to a CDN site's scope instead of loading from a CDN site's WAF scope, if the site has WAF service."
}
},
"title": ""
},
"cdnCreateScopeHostnameResponse": {
"type": "object",
"properties": {
"hostname": {
"$ref": "#/definitions/cdnHostname"
}
},
"description": "The response from a request to add a hostname to a CDN site scope"
},
"cdnCreateScopeRequest": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "The HTTP request path the scope should respond to"
},
"platform": {
"type": "string",
"description": "The StackPath billing platform to create the scope on"
}
},
"title": ""
},
"cdnCreateScopeResponse": {
"type": "object",
"properties": {
"scope": {
"$ref": "#/definitions/cdnScope"
}
},
"description": "The response from a request to create a CDN site scope"
},
"cdnCreateScopeRuleRequest": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the new EdgeRule"
},
"slug": {
"type": "string",
"description": "A programmatic name of the new EdgeRule"
},
"configuration": {
"$ref": "#/definitions/custconfConfiguration"
}
},
"title": ""
},
"cdnCreateScopeRuleResponse": {
"type": "object",
"properties": {
"rule": {
"$ref": "#/definitions/cdnScopeRule"
},
"configuration": {
"$ref": "#/definitions/custconfConfiguration"
}
},
"description": "The response from a request to create a new EdgeRule"
},
"cdnCreateSiteRequest": {
"type": "object",
"properties": {
"domain": {
"type": "string",
"description": "The new CDN site's name, typically the domain name of the site"
},
"origin": {
"$ref": "#/definitions/cdnCreateSiteRequestOrigin"
},
"features": {
"type": "array",
"items": {
"$ref": "#/definitions/cdnCreateSiteRequestFeature"
},
"description": "The new CDN site's associated features"
},
"type": {
"$ref": "#/definitions/CreateSiteRequestTypeEnum"
},
"configuration": {
"$ref": "#/definitions/custconfConfiguration"
}
},
"title": ""
},
"cdnCreateSiteRequestFeature": {
"type": "string",
"enum": [
"CDN",
"WAF"
],
"default": "CDN",
"description": "The features available to the new CDN site\n\nMultiple products can served on a single CDN site. Features control how those products are managed on the StackPath backend.\n\n - CDN: The site will have CDN caching abilities\n - WAF: The site is protected by the StackPath Web Application Firewall"
},
"cdnCreateSiteRequestOrigin": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "The origin's path\n\nPaths default to \"/\""
},
"hostname": {
"type": "string",
"description": "The origin's hostname or IP address"
},
"port": {
"type": "integer",
"format": "int32",
"description": "The HTTP port to connect to the origin"
},
"securePort": {
"type": "integer",
"format": "int32",
"description": "The HTTPS port to connect to the origin"
}
},
"description": "The new site's origin"
},
"cdnCreateSiteResponse": {
"type": "object",
"properties": {
"site": {
"$ref": "#/definitions/cdnSite"
}
},
"description": "The response from a request to create a new CDN site"
},
"cdnCreateSiteScriptRequest": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the new serverless script"
},
"code": {
"type": "string",
"format": "byte",
"description": "The contents of the new serverless script"
},
"paths": {
"type": "array",
"items": {
"type": "string"
},
"description": "The HTTP request paths that are handled by the new serverless script"
}
},
"title": ""
},
"cdnCreateSiteScriptResponse": {
"type": "object",
"properties": {
"script": {
"$ref": "#/definitions/cdnSiteScript"
}
},
"description": "The response from a request to create a new EdgeEngine script"
},
"cdnDnsRecord": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the network node to which a zone resource record pertains\n\nUse the value \"@\" to denote current root domain name."
},
"type": {
"type": "string",
"description": "A zone record's type\n\nZone record types describe the zone record's behavior. For instance, a zone record's type can say that the record is a name to IP address value, a name alias, or which mail exchanger is responsible for the domain. See https://support.stackpath.com/hc/en-us/articles/360001085563-What-DNS-record-types-does-StackPath-support for more information."
},
"class": {
"type": "string",
"description": "A zone record's class code\n\nThis is typically \"IN\" for Internet related resource records."
},
"ttl": {
"type": "integer",
"format": "int32",
"description": "A zone record's time to live\n\nA record's TTL is the number of seconds that the record should be cached by DNS resolvers. Use lower TTL values if you expect zone records to change often. Use higher TTL values for records that won't change to prevent extra DNS lookups by clients."
},
"data": {
"type": "string",
"description": "A zone record's value\n\nExpected data formats can vary depending on the zone record's type."
}
},
"description": "A DNS record\n\nA dns record describes an individual piece of DNS functionality in a DNS zone."
},
"cdnDnsVerificationDetails": {
"type": "object",
"properties": {
"dnsRecords": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of DNS records that will validate domain ownership"
},
"records": {
"type": "array",
"items": {
"$ref": "#/definitions/cdnDnsRecord"
},
"description": "A list of parsed dns records required for SSL verification"
}
},
"description": "DNS-based domain ownership verification details"
},
"cdnGetCDNIPsResponse": {
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "string"
},
"description": "The requested IP addresses"
}
},
"description": "The response from a request to retrieve IP addresses used by the StackPath edge network"
},
"cdnGetCertificateResponse": {
"type": "object",
"properties": {
"certificate": {
"$ref": "#/definitions/cdnCertificate"
}
},
"description": "The response from a request to retrieve an individual SSL certificate on a stack"
},
"cdnGetCertificateSitesResponse": {
"type": "object",
"properties": {
"pageInfo": {
"$ref": "#/definitions/paginationPageInfo"
},
"results": {
"type": "array",
"items": {
"$ref": "#/definitions/cdnSite"
},
"description": "The requested CDN sites"
}
},
"description": "The response from a request to retrieve CDN sites associated with an SSL certificate"
},
"cdnGetCertificateVerificationDetailsResponse": {
"type": "object",
"properties": {
"manualVerificationRequired": {
"type": "boolean",
"format": "boolean",
"description": "Whether or not the end user must provide their own certificate verification"
},
"verificationRequirements": {
"type": "array",
"items": {
"$ref": "#/definitions/cdnVerificationRequirements"
},
"description": "An SSL certificate's verification requirements"
}
},
"description": "The response from a request to retrieve an SSL certificate's manual verification details"
},
"cdnGetCertificatesResponse": {
"type": "object",
"properties": {
"pageInfo": {
"$ref": "#/definitions/paginationPageInfo"
},
"results": {
"type": "array",
"items": {
"$ref": "#/definitions/cdnCertificate"
},
"description": "The requested SSL certificates"
}
},
"description": "The response from a request to retrieve a stack's SSL certificates"
},
"cdnGetClosestPopsResponse": {
"type": "object",
"properties": {
"result": {
"type": "array",
"items": {
"$ref": "#/definitions/cdnPopScanReport"
},
"description": "Results of the scan"
}
},
"description": "The response from a request to scan a URL from the StackPath edge network"
},
"cdnGetMetricsResponse": {
"type": "object",
"properties": {
"series": {
"type": "array",
"items": {
"$ref": "#/definitions/GetMetricsResponseMetricSeries"
},
"description": "The requested CDN metrics"
}
},
"description": "The response from a request to retrieve CDN metrics from a stack"
},
"cdnGetOriginResponse": {
"type": "object",
"properties": {
"origin": {
"$ref": "#/definitions/schemacdnOrigin"
}
},
"description": "The response from a request to retrieve an individual origin"
},
"cdnGetOriginsResponse": {
"type": "object",
"properties": {
"pageInfo": {
"$ref": "#/definitions/paginationPageInfo"
},
"results": {
"type": "array",
"items": {
"$ref": "#/definitions/schemacdnOrigin"
},
"description": "The requested origins"
}
},
"description": "The response from a request to retrieve all origins on a stack"
},
"cdnGetPopsResponse": {
"type": "object",
"properties": {
"pageInfo": {
"$ref": "#/definitions/paginationPageInfo"
},
"results": {
"type": "array",
"items": {
"$ref": "#/definitions/cdnPop"
},
"description": "The requested StackPath points of presence"
}
},
"description": "The response from a request to retrieve the StackPath's points of presence"
},
"cdnGetPurgeStatusResponse": {
"type": "object",
"properties": {
"progress": {
"type": "number",
"format": "float",
"description": "The purge request's progress, ranging from 0.0 to 1.0"
}
},
"description": "The response from a request to retrieve the status of a purge request"
},
"cdnGetScopeConfigurationResponse": {
"type": "object",
"properties": {
"configuration": {
"$ref": "#/definitions/custconfConfiguration"
}
},
"description": "The response from a request to retrieve a CDN site scope's configuration"
},
"cdnGetScopeHostnamesResponse": {
"type": "object",
"properties": {
"pageInfo": {
"$ref": "#/definitions/paginationPageInfo"
},
"results": {
"type": "array",
"items": {
"$ref": "#/definitions/cdnHostname"
},
"description": "The requested scope hostnames"
}
},
"description": "The response from a request to retrieve a CDN site scope's associated hostnames"
},
"cdnGetScopeOriginsResponse": {
"type": "object",
"properties": {
"pageInfo": {
"$ref": "#/definitions/paginationPageInfo"
},
"results": {
"type": "array",
"items": {
"$ref": "#/definitions/cdnScopeOrigin"
},
"description": "The requested scope's origins"
}
},
"description": "The response from a request to retrieve a CDN site scope's origins"
},
"cdnGetScopeRuleConfigurationResponse": {
"type": "object",
"properties": {
"configuration": {
"$ref": "#/definitions/custconfConfiguration"
}
},
"description": "The response from a request to retrieve an EdgeRule's configuration"
},
"cdnGetScopeRuleResponse": {
"type": "object",
"properties": {
"rule": {
"$ref": "#/definitions/cdnScopeRule"
}
},
"description": "The response from a request to retrieve an individual EdgeRule"
},
"cdnGetScopeRulesResponse": {
"type": "object",
"properties": {
"pageInfo": {
"$ref": "#/definitions/paginationPageInfo"
},
"results": {
"type": "array",
"items": {
"$ref": "#/definitions/cdnScopeRule"
},
"description": "The requested EdgeRules"
}
},
"description": "The response from request to retrieve the EdgeRules on a CDN site's scope"
},
"cdnGetSiteCertificatesResponse": {
"type": "object",
"properties": {
"pageInfo": {
"$ref": "#/definitions/paginationPageInfo"
},
"results": {
"type": "array",
"items": {
"$ref": "#/definitions/cdnSiteCertificate"
},
"description": "The requested SSL certificates"
}
},
"description": "The response from a request to retrieve a CDN site's SSL certificates"
},
"cdnGetSiteDnsTargetsResponse": {
"type": "object",
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "The requested DNS CNAME targets\n\nA site's hostname should point to these CNAME targets in order for traffic to be sent through StackPath's edge nodes."
}
},
"description": "The response from a request to retrieve a CDN site's DNS CNAME targets"
},
"cdnGetSiteResponse": {
"type": "object",
"properties": {
"site": {
"$ref": "#/definitions/cdnSite"
}
},
"description": "The response from a request to retrieve an individual CDN site"
},
"cdnGetSiteScopesResponse": {
"type": "object",
"properties": {
"pageInfo": {
"$ref": "#/definitions/paginationPageInfo"
},
"results": {
"type": "array",
"items": {
"$ref": "#/definitions/cdnScope"
},
"description": "The requested scopes"
}
},
"description": "The response from request to a CDN site's scopes"
},
"cdnGetSiteScriptResponse": {
"type": "object",
"properties": {
"script": {
"$ref": "#/definitions/cdnSiteScript"
}
},
"description": "The result from a request to retrieve an EdgeEngine script"
},
"cdnGetSiteScriptsResponse": {
"type": "object",
"properties": {
"pageInfo": {
"$ref": "#/definitions/paginationPageInfo"
},
"results": {
"type": "array",
"items": {
"$ref": "#/definitions/cdnSiteScript"
},
"description": "The requested serverless scripts"
}
},
"description": "The result from a request to retrieve all EdgeEngine scripts on a CDN site"
},
"cdnGetSitesResponse": {
"type": "object",
"properties": {
"pageInfo": {
"$ref": "#/definitions/paginationPageInfo"
},
"results": {
"type": "array",
"items": {
"$ref": "#/definitions/cdnSite"
},
"description": "The requested CDN sites"
}
},
"description": "The response from a request to retrieve all CDN sites on a stack"
},
"cdnHostname": {
"type": "object",
"properties": {
"domain": {
"type": "string",
"description": "A host's domain name"
}
},
"description": "An individual hostname"
},
"cdnHttpVerificationDetails": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "Path to the verification file"
},
"contentType": {
"type": "string",
"description": "Response content type"
},
"body": {
"type": "string",
"description": "Body content of response"
}
},
"description": "HTTP-based domain ownership verification details"
},
"cdnPop": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "A StackPath POP's IATA formatted location code"
},
"name": {
"type": "string",
"description": "A StackPath POP's name"
},
"latitude": {
"type": "number",
"format": "float",
"description": "A StackPath POP's latitude coordinates"
},
"longitude": {
"type": "number",
"format": "float",
"description": "A StackPath POP's longitude coordinates"
}
},
"description": "A point of presence responsible for serving content to a geographic location\n\nPOPs contain edge nodes responsible for CDN, WAF, monitoring, and all other StackPath product offerings."
},
"cdnPopScanReport": {
"type": "object",
"properties": {
"popCode": {
"type": "string",
"description": "The IATA formatted location code of the StackPath POP that produced a scan report"
},
"connectMs": {
"type": "number",
"format": "float",
"description": "The amount of time in milliseconds that a POP scan took to perform an initial connection handshake"
},
"dnsMs": {
"type": "number",
"format": "float",
"description": "The amount of time in milliseconds that a POP scan took to resolve the target's DNS entry"
},
"downloadMs": {
"type": "number",
"format": "float",
"description": "The amount of time in milliseconds that a POP scan took to download the target's contents"
},
"firstByteMs": {
"type": "number",
"format": "float",
"description": "The amount of time in milliseconds that a POP scan took from initial connection to starting to receive the target's contents"
},
"sslMs": {
"type": "number",
"format": "float",
"description": "The amount of time in milliseconds that a POP scan took to perform an SSL handshake"
},
"totalMs": {
"type": "number",
"format": "float",
"description": "The total amount of time in milliseconds that a POP scan took to complete"
}
},
"description": "The result of a network scan from a StackPath point of presence to a origin"
},
"cdnPurgeContentRequest": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/definitions/PurgeContentRequestItem"
},
"description": "The items to purge from the CDN"
}
},
"title": ""
},
"cdnPurgeContentResponse": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The purge request's ID\n\nUse this ID to request completion of the purge request."
}
},
"description": "The response from a request to purge content from the CDN"
},
"cdnRequestCertificateRequest": {
"type": "object",
"properties": {
"hosts": {
"type": "array",
"items": {
"type": "string"
},
"description": "An optional list of delivery domains that will be included as subject alternative names on the certificate\n\nIf no hosts are provided, all delivery domains on the site will be included with the first one in the list being used as the common name. If hosts are provided, the first entry will be used as the common name.\n\nAll entries in the list are validated against the existing delivery domains for the provided site."
},
"verificationMethod": {
"$ref": "#/definitions/cdnCertificateVerificationMethod"
}
},
"title": ""
},
"cdnRequestCertificateResponse": {
"type": "object",
"properties": {
"certificate": {
"$ref": "#/definitions/cdnCertificate"
},
"verificationRequirements": {
"type": "array",
"items": {
"$ref": "#/definitions/cdnVerificationRequirements"
},
"description": "The certificate's verification requirements"
}
},
"description": "The response from a request to provision an SSL certificate for a CDN site"
},
"cdnScanOriginRequest": {
"type": "object",
"properties": {
"domain": {
"type": "string",
"description": "The URL to scan"
}
},
"title": ""
},
"cdnScanOriginResponse": {
"type": "object",
"properties": {
"ipAddress": {
"type": "string",
"description": "The IP address that was scanned"
},
"hostname": {
"type": "string",
"description": "The hostname that was scanned"
},
"sslDetails": {
"$ref": "#/definitions/ScanOriginResponseOriginScanSSLDetails"
},
"domainInUse": {
"type": "boolean",
"format": "boolean",
"description": "Whether or not the scanned domain is already in use on the StackPath platform"
}
},
"description": "The response from a request to scan a URL from the StackPath edge network"
},
"cdnScope": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "A CDN site scope's unique identifier"
},
"platform": {
"type": "string",
"description": "A CDN site scope's platform\n\nScope platforms are used internally by StackPath for metrics collection and billing purposes. Typically, most site scope platforms have the value \"CDS\"."
},
"path": {
"type": "string",
"description": "The HTTP request path that is handled by a scope"
}
},
"description": "A CDN site scope\n\nScopes hold a CDN site's configuration. Every site has at least one \"root\" scope that handles primary configuration."
},
"cdnScopeOrigin": {
"type": "object",
"properties": {
"priority": {
"type": "integer",
"format": "int32",
"description": "An origin's priority to it's CDN site scope\n\nIf a CDN scope is powered by more than one origin, then the one with the lower priority number takes higher precedence."
},
"origin": {
"$ref": "#/definitions/schemacdnOrigin"
}
},
"description": "A relationship between a CDN site's configuration scope and an origin"
},
"cdnScopeRule": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "An EdgeRule's unique identifier"
},
"name": {
"type": "string",
"description": "An EdgeRule's name"
},
"slug": {
"type": "string",
"description": "A human and machine readable name for an EdgeRule"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "The date an EdgeRule was created"
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "The date an EdgeRule was last updated"
}
},
"description": "A EdgeRule associated with a CDN site\n\nEdgeRules can modify incoming HTTP requests to a CDN site before they're sent to the origin."
},
"cdnSite": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "A CDN site's unique identifier"
},
"stackId": {
"type": "string",
"description": "The ID of the stack to which a CDN site belongs"
},
"label": {
"type": "string",
"description": "A CDN site's name\n\nSite names correspond to their fully-qualified domain name."
},
"status": {
"type": "string",
"description": "A CDN site's internal state\n\nSite status is controlled by StackPath as sites are provisioned and managed by StackPath's accounting and security teams."
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "The date that a CDN site was created"
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "The date that a CDN site was last updated"
},
"features": {
"type": "array",
"items": {
"$ref": "#/definitions/cdnSiteFeature"
},
"description": "A CDN site's associated features\n\nFeatures control how StackPath provisions and configures a site."
},
"enabled": {
"type": "boolean",
"format": "boolean",
"description": "Whether or not a site's CDN service is enabled"
},
"type": {
"$ref": "#/definitions/SiteTypeValue"
}
},
"description": "A CDN site"
},
"cdnSiteCertificate": {
"type": "object",
"properties": {
"valid": {
"type": "boolean",
"format": "boolean",
"description": "Whether or not a site's SSL certificate is valid\n\nAn SSL certificate is valid when a hostname associated with the site is covered by the certificate."
},
"certificate": {
"$ref": "#/definitions/cdnCertificate"
}
},
"description": "An SSL certificate and its relationship with its associated site"
},
"cdnSiteFeature": {
"type": "string",
"enum": [
"UNKNOWN",
"CDN",
"WAF"
],
"default": "UNKNOWN",
"description": "The features available to CDN sites\n\nMultiple products can be served on a single CDN site. Features control how those products are managed on the StackPath backend.\n\n - UNKNOWN: StackPath is unable to determine a site's feature\n - CDN: A site has CDN caching abilities\n - WAF: A site is protected by the StackPath Web Application Firewall"
},
"cdnSiteScript": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "A serverless script's unique identifier"
},
"stackId": {
"type": "string",
"description": "The ID of the stack to which a serverless script's site belongs"
},
"siteId": {
"type": "string",
"description": "The ID of the site to which a serverless script belongs"
},
"name": {
"type": "string",
"description": "A serverless script's name"
},
"version": {
"type": "string",
"description": "A serverless script's version number\n\nVersion numbers start at 1 and are incremented every time the script is updated."
},
"code": {
"type": "string",
"format": "byte",
"description": "The contents of a serverless script"
},
"paths": {
"type": "array",
"items": {
"type": "string"
},
"description": "The URL paths that incoming requests should answer with a serverless script\n\nEvery serverless script needs at least one path, and paths must be unique."
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "The date a serverless script was created"
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "The date a serverless script was last updated"
}
},
"description": "A serverless script\n\nServerless scripts are hosted and executed on StackPath's edge nodes."
},
"cdnUpdateCertificateRequest": {
"type": "object",
"properties": {
"certificate": {
"type": "string",
"description": "A PEM PKCS #7 formatted SSL certificate"
},
"key": {
"type": "string",
"description": "A PEM PKCS #7 formatted private key\n\nPrivate keys are sent directly to the edge nodes and are not stored elsewhere on StackPath's systems."
},
"caBundle": {
"type": "string",
"description": "A PEM PKCS #7 formatted certificate authority bundle"
}
},
"title": ""
},
"cdnUpdateCertificateResponse": {
"type": "object",
"properties": {
"certificate": {
"$ref": "#/definitions/cdnCertificate"
}
},
"description": "The response from a request to update an SSL certificate"
},
"cdnUpdateOriginRequest": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "The origin's new HTTP request path"
},
"hostname": {
"type": "string",
"description": "The origin's new HTTP request hostname"
},
"port": {
"type": "integer",
"format": "int32",
"description": "The origin's new HTTP request port\n\nSet this to 0 to remove this value"
},
"securePort": {
"type": "integer",
"format": "int32",
"description": "The origin's new HTTPS request port\n\nSet this to 0 to remove this value"
}
},
"title": ""
},
"cdnUpdateOriginResponse": {
"type": "object",
"properties": {
"origin": {
"$ref": "#/definitions/schemacdnOrigin"
}
},
"description": "The response from a request to update an origin"
},
"cdnUpdateScopeConfigurationRequest": {
"type": "object",
"properties": {
"configuration": {
"$ref": "#/definitions/custconfConfiguration"
}
},
"title": ""
},
"cdnUpdateScopeConfigurationResponse": {
"type": "object",
"properties": {
"configuration": {
"$ref": "#/definitions/custconfConfiguration"
}
},
"description": "The response from a request to update a CDN site scope's configuration"
},
"cdnUpdateScopeRuleConfigurationRequest": {
"type": "object",
"properties": {
"configuration": {
"$ref": "#/definitions/custconfConfiguration"
}
},
"title": ""
},
"cdnUpdateScopeRuleConfigurationResponse": {
"type": "object",
"properties": {
"configuration": {
"$ref": "#/definitions/custconfConfiguration"
}
},
"description": "The response request to update an EdgeRule's configuration"
},
"cdnUpdateSiteCertificateHostsRequest": {
"type": "object",
"properties": {
"hosts": {
"type": "array",
"items": {
"type": "string"
},
"description": "The SSL certificated common and SAN hosts"
}
},
"title": ""
},
"cdnUpdateSiteScriptRequest": {
"type": "object",
"properties": {
"code": {
"type": "string",
"format": "byte",
"description": "The new contents of the serverless script"
},
"paths": {
"type": "array",
"items": {
"type": "string"
},
"description": "The HTTP request paths that are handled by the serverless script"
}
},
"title": ""
},
"cdnUpdateSiteScriptResponse": {
"type": "object",
"properties": {
"script": {
"$ref": "#/definitions/cdnSiteScript"
}
},
"description": "The response from a request to update an EdgeEngine script"
},
"cdnVerificationRequirements": {
"type": "object",
"properties": {
"dnsVerificationDetails": {
"$ref": "#/definitions/cdnDnsVerificationDetails"
},
"httpVerificationDetails": {
"$ref": "#/definitions/cdnHttpVerificationDetails"
},
"verificationMethod": {
"$ref": "#/definitions/cdnCertificateVerificationMethod"
}
},
"description": "Conditions that must be met to verify ownership of a domain for SSL certificate provisioning"
},
"cdncustconfOrigin": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"host": {
"type": "string"
},
"originPullHeaders": {
"type": "string",
"description": "String of values delimited by a '|' character."
},
"originCacheHeaders": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAccessLogs": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "Enable/Disable access logs"
},
"custconfAccessLogsConfig": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"extraLogFields": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "Access log settings"
},
"custconfAuthACL": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"accessCode": {
"$ref": "#/definitions/AuthACLAccessCodeEnumWrapperValue"
},
"ipList": {
"type": "string",
"description": "String of values delimited by a ',' character. This is a list of IP addresses considered for this policy."
},
"protocol": {
"$ref": "#/definitions/custconfAuthACLProtocolEnumWrapperValue"
},
"clientIPSrc": {
"$ref": "#/definitions/AuthACLClientIPSrcEnumWrapperValue"
},
"header": {
"type": "string",
"description": "This allows you to specify the name of a HTTP request header which will contain the client IP address to use for this policy."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "IP address restrictions allow you to configure your CDN container to grant or deny a specific IP addresses or range of IP addresses from accessing content cached in a directory in your CDN container."
},
"custconfAuthACLProtocolEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"http",
"https",
"both"
],
"default": "UNKNOWN"
},
"custconfAuthGeo": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"code": {
"$ref": "#/definitions/AuthGeoCodeEnumWrapperValue"
},
"values": {
"type": "string",
"description": "String of values delimited by a ',' character. These are the region codes you are targeting for this policy. The values that can be supplied within this field are those that are supported by the MaxMind® GeoIP database."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "Geographic restrictions allow you to restrict content to end users in specific locations. The IP address of incoming requests is checked against a current list of IP allocations to countries and to states within the US. If an end user's IP address is not found in the list, they are allowed access to the content by default. The feature has both an Include and an Exclude list which are used to target the allowed audience."
},
"custconfAuthHttpBasic": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"bindingPoint": {
"type": "string",
"description": "This is a URL to a resource on the authentication server responsible for authentication of users."
},
"realm": {
"type": "string",
"description": "This is the authentication realm given back to the user on requests which do not contain the authentication credentials. Browsers typically display this value to the user when the login credentials are requested."
},
"ttl": {
"type": "number",
"format": "int64",
"description": "This is the number of seconds the authentication session will be cached by the browsers. After this time, browsers will be asked to present the user credentials again for re-authentication."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "HTTP basic authentication policies allow you to control access to your content by requiring the end user to enter a valid username and password before gaining access to content."
},
"custconfAuthReferer": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"referer": {
"type": "string",
"description": "String of values delimited by a '|' character. This is a list of domains authorized to access content from this path in the container. You may use wildcards to specify multiple websites hosted on the same domain."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "HTTP Referrer restriction policies allow you to limit access to your published CDN URLs based on the HTTP Referrer header submitted by the browser. This restriction policy prevents your content from being easily distributed on unauthorized websites (also known as hot linking or deep linking). Once this policy is applied to your CDN container, websites that are not listed in this policy will be denied access to the content cached at this location."
},
"custconfAuthUrlAsymmetricSignTlu": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"expireParameterName": {
"type": "string"
},
"keyIdParameterName": {
"type": "string"
},
"algorithmIdParameterName": {
"type": "string"
},
"digestParameterName": {
"type": "string"
},
"publicKeyIdMap": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"algorithmIdMap": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/custconfAuthUrlAsymmetricSignTluAlgorithmIdMapEnumWrapperValue"
}
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAuthUrlAsymmetricSignTluAlgorithmIdMapEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"hmacsha1",
"hmacsha256"
],
"default": "UNKNOWN"
},
"custconfAuthUrlSign": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"tokenField": {
"type": "string",
"description": "This is the name of the query string parameter that will be used by the publisher to specify the signature for the URL."
},
"ignoreFieldsAfterToken": {
"type": "boolean",
"format": "boolean",
"description": "Select this option if you want StackPath to exclude query string parameters specified after the passphrase in the validation process."
},
"passPhraseField": {
"type": "string",
"description": "This is the name of the query string parameter that contains the value of the secret. This query string parameter is only used during the generation and validation of a URL signature and should not be present in the published URL."
},
"passPhrase": {
"type": "string",
"description": "The shared secret used during the signing process. This value should only be known by StackPath and systems authorized to sign your content."
},
"expiresField": {
"type": "string",
"description": "This is the name of the query string parameter that contains the Epoch time after which the URL is considered invalid."
},
"ipAddressField": {
"type": "string",
"description": "This is a query string parameter that contains an IPv4 address to which the published URL will be restricted."
},
"uriLengthField": {
"type": "string",
"description": "This is a query string parameter used to limit the number of characters in the path that should be considered when validating the URL signature. This feature allows you to reuse the same signature on all assets stored in the same cache path. Setting this value to 0 will strip off the filename in the URL (leaving the trailing slash) when calculating the checksum."
},
"userAgentField": {
"type": "string",
"description": "This is a query string parameter used to restrict the published URL to a specific user agent. Publishers can use this feature during the signing process to ensure that only a specific user agent can access the published content. You do not need to specify the user agent on the published URL. StackPath will use the HTTP User-Agent header value during signature validation."
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "URL Signing policies allow you to restrict access to your content by configuring a \"shared secret\" with StackPath. This \"shared secret\" is used to apply an MD5 hashing algorithm on the URL to validate the signature supplied on the request. Since the \"shared secret\" is only known by the publisher and StackPath, URL signatures cannot be generated by unauthorized users."
},
"custconfAuthUrlSignAliCloudA": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"passPhrase": {
"type": "string"
},
"tokenField": {
"type": "string"
},
"includeParamsBeforeToken": {
"type": "boolean",
"format": "boolean"
},
"expirationExtension": {
"type": "number",
"format": "int64"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAuthUrlSignAliCloudB": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"passPhrase": {
"type": "string"
},
"expirationExtension": {
"type": "number",
"format": "int64"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAuthUrlSignAliCloudC": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"passPhrase": {
"type": "string"
},
"expirationExtension": {
"type": "number",
"format": "int64"
},
"tokenField": {
"type": "string"
},
"expireField": {
"type": "string"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAuthUrlSignHmacTlu": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"expireParameterName": {
"type": "string"
},
"keyIdParameterName": {
"type": "string"
},
"algorithmIdParameterName": {
"type": "string"
},
"digestParameterName": {
"type": "string"
},
"symmetricKeyIdMap": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"algorithmIdMap": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/custconfAuthUrlSignHmacTluAlgorithmIdMapEnumWrapperValue"
}
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAuthUrlSignHmacTluAlgorithmIdMapEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"hmacsha1",
"hmacsha256"
],
"default": "UNKNOWN"
},
"custconfAuthUrlSignIq": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"secretKey": {
"type": "string"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAwsSignedOriginPullV4": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"bucketIdentifier": {
"type": "string"
},
"accessKeyId": {
"type": "string"
},
"secretAccessKey": {
"type": "string"
},
"awsRegion": {
"type": "string"
},
"awsService": {
"type": "string"
},
"expireTimeSeconds": {
"type": "number",
"format": "int64"
},
"signedHeaders": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"authenticationType": {
"$ref": "#/definitions/custconfAwsSignedOriginPullV4AuthenticationTypeEnumWrapperValue"
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAwsSignedOriginPullV4AuthenticationTypeEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"query",
"header"
],
"default": "UNKNOWN"
},
"custconfAwsSignedS3PostV4": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"bucketIdentifier": {
"type": "string"
},
"accessKeyId": {
"type": "string"
},
"secretAccessKey": {
"type": "string"
},
"awsRegion": {
"type": "string"
},
"awsService": {
"type": "string"
},
"expireTimeSeconds": {
"type": "number",
"format": "int64"
},
"signedHeaders": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"authenticationType": {
"$ref": "#/definitions/custconfAwsSignedS3PostV4AuthenticationTypeEnumWrapperValue"
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAwsSignedS3PostV4AuthenticationTypeEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"query",
"header"
],
"default": "UNKNOWN"
},
"custconfBandWidthLimit": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"rule": {
"type": "string",
"description": "String of values delimited by a '|' character. These are pattern match rules to use for applying rate limiting on requests."
},
"values": {
"type": "string",
"description": "These are the initial bytes (ri) and the sustained rate (rs) query string parameters to use for this rule. Example: ri=100,rs=1000"
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The pattern based bandwidth throttling policy allows you to limit the transfer rate of assets to end users based on a set of rules matching the request's HTTP User-Agent and/or the path. Each rule must be expressed in the following format: <User-Agent Pattern>:<path pattern 1, path pattern 2>. For example, the pattern: \"Mozilla*:*.mp3,*dir*.exe|*IE*:*.jpg,*.zip|*ios 6*:* \" will match all MP3 files and EXE files containing the substring \"dir\" that are requested by a User-Agent containing the substring \"Mozilla,\" all JPG and ZIP files requested by a User-Agent containing the substring \"IE,\" and all requests made by User-Agents containing the substring \"ios 6.\""
},
"custconfBandwidthRateLimit": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"initialBurstName": {
"type": "string"
},
"sustainedRateName": {
"type": "string"
},
"initialBurstUnits": {
"$ref": "#/definitions/BandwidthRateLimitInitialBurstUnitsEnumWrapperValue"
},
"sustainedRateUnits": {
"$ref": "#/definitions/BandwidthRateLimitSustainedRateUnitsEnumWrapperValue"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfBypassCache": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"cookieFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "Bypass content caching on filter match"
},
"custconfCacheControl": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"statusCodeMatch": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"maxAge": {
"type": "integer",
"format": "int32",
"description": "The client TTL controls the lifetime of the asset in the browser's cache. The value entered here will be sent to the browser in the Cache-Control max-age directive for HTTP 1.1 clients and the Expires header for HTTP 1.0 clients."
},
"mustRevalidate": {
"type": "boolean",
"format": "boolean",
"description": "Selecting this option instructs the CDN caching servers to insert the must-revalidate directive on all HTTP responses sent to clients."
},
"synchronizeMaxAge": {
"type": "boolean",
"format": "boolean",
"description": "Selecting this option allows the CDN to synchronize the Max-Age header it sends to clients with the remaining TTL of the asset in the cache. This allows assets to expire from the browser cache at the same time they expire from the CDN."
},
"override": {
"type": "string",
"description": "This allows you to specify a custom Cache-Control header to be used by the CDN on all HTTP responses targeted by this policy. Note: Do not include the header name (Cache-Control) in this field. Only the value of the header should be specified."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The browser caching policy allows you to control the browser caching behavior of your assets independently from the CDN cache. For example, this policy allows you to set lower or higher TTLs for the browser than those of the CDN cache."
},
"custconfCacheKeyModification": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"normalizeKeyPathToLowerCase": {
"type": "boolean",
"format": "boolean",
"description": "When set, purges and requests for a file will be case insensitive. This setting is useful if you have a case insensitive origin server and would like to avoid duplicating assets."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The Cache Key Modification policy allows for manipulation of the way the cache uniquely stores assets."
},
"custconfClientRequestModification": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"urlPattern": {
"type": "string"
},
"urlRewrite": {
"type": "string"
},
"headerPattern": {
"type": "string"
},
"headerRewrite": {
"type": "string"
},
"addHeaders": {
"type": "string",
"description": "String of values delimited by a '|' character. This is the static HTTP header you want inserted into the CDN request. Start value with \"append:\", \"replace:\" or \"create:\" which defines if Header will be added, replaced or create if not exists. Default is append."
},
"flowControl": {
"$ref": "#/definitions/custconfClientRequestModificationFlowControlEnumWrapperValue"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"cookieFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfClientRequestModificationFlowControlEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"next",
"break"
],
"default": "UNKNOWN"
},
"custconfClientRequestQueueLogLevelEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"debug",
"info",
"warning",
"error",
"crit"
],
"default": "UNKNOWN"
},
"custconfClientResponseModification": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"statusCodeRewrite": {
"type": "number",
"format": "int64"
},
"headerPattern": {
"type": "string"
},
"headerRewrite": {
"type": "string"
},
"addHeaders": {
"type": "string",
"description": "String of values delimited by a '|' character. This is the static HTTP header you want inserted into the CDN response. Start value with \"append:\", \"replace:\" or \"create:\" which defines if Header will be added, replaced or create if not exists. Default is append."
},
"flowControl": {
"$ref": "#/definitions/custconfClientResponseModificationFlowControlEnumWrapperValue"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfClientResponseModificationFlowControlEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"next",
"break"
],
"default": "UNKNOWN"
},
"custconfClientResponseQueueLogLevelEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"debug",
"info",
"warning",
"error",
"crit"
],
"default": "UNKNOWN"
},
"custconfCompression": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"gzip": {
"type": "string",
"description": "String of values delimited by a ',' character. The list of file extensions you want the caching servers to use to identify the content you want compressed before delivering it to end users"
},
"mime": {
"type": "string",
"description": "String of values delimited by a ',' character. A list of rules based on MIME types you want the caching servers to use to identify content you want compressed before delivering it to end users."
},
"level": {
"type": "string"
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The compression policy allows you to provide a list of file extensions you want the CDN caching servers to automatically compress before delivering content to end users. This policy is typically used when your origin server does not support compression or you are unable to configure your origin to compress your files. If your origin is configured to already compress files, you should consider adding the Compressed Origin Pull policy to your host, which will enable the CDN caching server to request compressed (gzip) version of your assets. The compressed origin pull policy can be found in the Origin Pull policies list. Please note that our caching servers schedule the compression of files, and typically you do not see the compressed delivery until the file has been requested several times. Typically, this list is comprised of text files like javascript, html and CSS files. You should not include file extensions that match media files (images, videos, or audio files) or any other file format that includes a built in compression algorithm. Attempting to further compress these types of files usually results in a larger file being delivered to end users."
},
"custconfConfiguration": {
"type": "object",
"properties": {
"accessLogs": {
"$ref": "#/definitions/custconfAccessLogs"
},
"accessLogsConfig": {
"$ref": "#/definitions/custconfAccessLogsConfig"
},
"authACL": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfAuthACL"
},
"description": "IP address restrictions allow you to configure your CDN container to grant or deny a specific IP addresses or range of IP addresses from accessing content cached in a directory in your CDN container."
},
"authGeo": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfAuthGeo"
},
"description": "Geographic restrictions allow you to restrict content to end users in specific locations. The IP address of incoming requests is checked against a current list of IP allocations to countries and to states within the US. If an end user's IP address is not found in the list, they are allowed access to the content by default. The feature has both an Include and an Exclude list which are used to target the allowed audience."
},
"authHttpBasic": {
"$ref": "#/definitions/custconfAuthHttpBasic"
},
"authReferer": {
"$ref": "#/definitions/custconfAuthReferer"
},
"authUrlSign": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfAuthUrlSign"
},
"description": "URL Signing policies allow you to restrict access to your content by configuring a \"shared secret\" with StackPath. This \"shared secret\" is used to apply an MD5 hashing algorithm on the URL to validate the signature supplied on the request. Since the \"shared secret\" is only known by the publisher and StackPath, URL signatures cannot be generated by unauthorized users."
},
"authUrlSignAliCloudA": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfAuthUrlSignAliCloudA"
}
},
"authUrlSignAliCloudB": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfAuthUrlSignAliCloudB"
}
},
"authUrlSignAliCloudC": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfAuthUrlSignAliCloudC"
}
},
"authUrlSignHmacTlu": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfAuthUrlSignHmacTlu"
}
},
"authUrlSignIq": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfAuthUrlSignIq"
}
},
"authUrlAsymmetricSignTlu": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfAuthUrlAsymmetricSignTlu"
}
},
"bandWidthLimit": {
"$ref": "#/definitions/custconfBandWidthLimit"
},
"bandwidthRateLimit": {
"$ref": "#/definitions/custconfBandwidthRateLimit"
},
"bypassCache": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfBypassCache"
},
"description": "Bypass content caching on filter match"
},
"cacheControl": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfCacheControl"
},
"description": "The browser caching policy allows you to control the browser caching behavior of your assets independently from the CDN cache. For example, this policy allows you to set lower or higher TTLs for the browser than those of the CDN cache."
},
"cacheKeyModification": {
"$ref": "#/definitions/custconfCacheKeyModification"
},
"clientRequestModification": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfClientRequestModification"
}
},
"clientResponseModification": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfClientResponseModification"
}
},
"compression": {
"$ref": "#/definitions/custconfCompression"
},
"contentDispositionByURL": {
"$ref": "#/definitions/custconfContentDispositionByURL"
},
"contentDispositionByHeader": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfContentDispositionByHeader"
},
"description": "The content disposition by HTTP header match policy allows you to control the Content-Disposition delivered by the CDN using a pattern match against the value of any HTTP header present in the request. If you are using URL query string parameters to control the Content-Disposition header (using the Content Disposition by URL policy) then the Content-Disposition header generated by this policy will not be used on that specific request. A typical use case for this policy is to set a different Content-Disposition header based on the User-Agent in the request."
},
"customer": {
"$ref": "#/definitions/custconfCustomer"
},
"customHeader": {
"$ref": "#/definitions/custconfCustomHeader"
},
"customMimeType": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfCustomMimeType"
},
"description": "The custom mime type policy allows you to map file extensions to specific mime types for the CDN caching servers to use when delivering assets. The mime types you map using this policy may also be limited to specific response codes to address scenarios in which the mime type changes based on the response code."
},
"dynamicCacheRule": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfDynamicCacheRule"
},
"description": "Client response based on Rules."
},
"dynamicContent": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfDynamicContent"
},
"description": "The dynamic content caching policy allows you to specify a set of query string and/or HTTP header key/value pairs that should create a unique cache entry for a given URL. This policy is useful when your origin returns unique content for the same URL based on a set of query string parameters provided in the request."
},
"failSafeOriginPull": {
"$ref": "#/definitions/custconfFailSafeOriginPull"
},
"farAheadRangeProxy": {
"$ref": "#/definitions/custconfFarAheadRangeProxy"
},
"fileSegmentation": {
"$ref": "#/definitions/custconfFileSegmentation"
},
"flvPseudoStreaming": {
"$ref": "#/definitions/custconfFlvPseudoStreaming"
},
"gzipOriginPull": {
"$ref": "#/definitions/custconfGzipOriginPull"
},
"httpMethods": {
"$ref": "#/definitions/custconfHttpMethods"
},
"origin": {
"type": "array",
"items": {
"$ref": "#/definitions/cdncustconfOrigin"
}
},
"originPersistentConnections": {
"$ref": "#/definitions/custconfOriginPersistentConnections"
},
"originPull": {
"$ref": "#/definitions/custconfOriginPull"
},
"originPullCacheExtension": {
"$ref": "#/definitions/custconfOriginPullCacheExtension"
},
"originPullHost": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfOriginPullHost"
}
},
"originPullProtocol": {
"$ref": "#/definitions/custconfOriginPullProtocol"
},
"originPullLogs": {
"$ref": "#/definitions/custconfOriginPullLogs"
},
"originPullLogsConfig": {
"$ref": "#/definitions/custconfOriginPullLogsConfig"
},
"originPullPolicy": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfOriginPullPolicy"
},
"description": "The CDN caching policy allows you to control how your origin's content is cached on the CDN."
},
"originRequestModification": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfOriginRequestModification"
}
},
"originResponseModification": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfOriginResponseModification"
}
},
"queryStrParam": {
"$ref": "#/definitions/custconfQueryStrParam"
},
"receiptLogsConfig": {
"$ref": "#/definitions/custconfReceiptLogsConfig"
},
"redirectExceptions": {
"$ref": "#/definitions/custconfRedirectExceptions"
},
"redirectMappings": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfRedirectMappings"
},
"description": "The response code redirection policy allows you to map cache response codes to an HTTP redirect response. When this policy is applied to a host, the caching servers will redirect clients to the URL specified in this policy instead of delivering the response code you mapped in the policy."
},
"responseHeader": {
"$ref": "#/definitions/custconfResponseHeader"
},
"originPullResumeDownload": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfOriginPullResumeDownload"
},
"description": "The CDN attempts to resume downloading Origin Pulls once it successfully reads all the headers of a positive response under certain conditions by sending subsequent origin range requests for the remaining body. The response must be a 2xx to a GET request for the full file or a single range (not multi-range). The response must contain the Last-Modified and ETag headers."
},
"robotsTxt": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfRobotsTxt"
}
},
"awsSignedOriginPullV4": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfAwsSignedOriginPullV4"
}
},
"awsSignedS3PostV4": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfAwsSignedS3PostV4"
}
},
"staticHeader": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfStaticHeader"
},
"description": "The static header injection policy allows you to insert headers into the CDN request and response processor."
},
"timePseudoStreaming": {
"$ref": "#/definitions/custconfTimePseudoStreaming"
},
"http2Support": {
"$ref": "#/definitions/custconfHttp2Support"
},
"vHost": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfVHost"
},
"description": "A hostname policy allows you to specify an alternate domain name that you want to use to access content from your CDN container."
}
}
},
"custconfContentDispositionByHeader": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"headerFieldName": {
"type": "string",
"description": "The setting allows you to specify the name of the HTTP header you'd like to use in the pattern match for this policy."
},
"headerValueMatch": {
"type": "string",
"description": "String of values delimited by a ',' character. A list of glob patterns that apply this policy if any of them match against the value of the header specified."
},
"defaultType": {
"$ref": "#/definitions/ContentDispositionByHeaderDefaultTypeEnumWrapperValue"
},
"overrideOriginHeader": {
"type": "boolean",
"format": "boolean",
"description": "This setting allows you to force the Content-Disposition generated by the CDN for this policy to override the Content-Disposition header cached from your origin."
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "The content disposition by HTTP header match policy allows you to control the Content-Disposition delivered by the CDN using a pattern match against the value of any HTTP header present in the request. If you are using URL query string parameters to control the Content-Disposition header (using the Content Disposition by URL policy) then the Content-Disposition header generated by this policy will not be used on that specific request. A typical use case for this policy is to set a different Content-Disposition header based on the User-Agent in the request."
},
"custconfContentDispositionByURL": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"dispositionNameQSParam": {
"type": "string",
"description": "This is the name of the query string parameter which contains the file name to use in the Content-Disposition header. This setting is typically used by customers to configure a \"friendly name\" for URLs that have obfuscated file names."
},
"dispositionTypeQSParam": {
"type": "string",
"description": "This is the name of the query string parameter which contains the disposition type to use in the Content-Disposition header. Typically, this value is set to attachment if you want the browser to present the user with a \"File Download\" dialog box and set to inline if you want the browser to render the content inline (play an audio/video file instead of downloading it)."
},
"dispositionOverrideQSParam": {
"type": "string",
"description": "This setting allows you to define a query string parameter that when present in the URL contains a string that should be used for the Content-Disposition header. The string specified in the URL will completely replace the value the CDN would have used based on other policies defined for the Content-Disposition header."
},
"overrideOriginHeader": {
"type": "boolean",
"format": "boolean",
"description": "This setting allows you to force the Content-Disposition generated by the CDN for this policy to override the Content-Disposition header cached from your origin."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The content disposition by URL policy allows you to control Content-Disposition HTTP header delivered by the CDN caching servers. The policy gives you control over each of the header directives and allows you to specify a URL pattern match for determining when to apply the policy. Please note this policy takes precedence over all the other content disposition policies."
},
"custconfCustomHeader": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"xForwardedForAuth": {
"type": "string",
"description": "This is the name of the X-Forwarded-For header you want the CDN to use when making requests to your basic authorization server."
},
"xForwardedForOrigin": {
"type": "string",
"description": "This is the name of the X-Forwarded-For header you want the CDN to use when making requests to your origin server."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The X-Forwarded-For header policy allows you to override the name of the X-Forwarded-For header the CDN sends to your origin."
},
"custconfCustomMimeType": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"code": {
"type": "string",
"description": "String of values delimited by a ',' character. A comma separated list of status codes that apply to this policy"
},
"extensionMap": {
"type": "string",
"description": "String of values delimited by a ',' character. This is a comma separated list of file extension and mime type pairs that describe the mime type mapping for the CDN caching servers. The file extension and mime type values should be delimited by a colon (:). For example, to map files ending with jpg to the image/jpeg mime type and files ending with png to image/png, set this value to: jpg:image/jpeg,png:image/png."
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "The custom mime type policy allows you to map file extensions to specific mime types for the CDN caching servers to use when delivering assets. The mime types you map using this policy may also be limited to specific response codes to address scenarios in which the mime type changes based on the response code."
},
"custconfCustomer": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"accessLogFields": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"opLogFields": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"receiptLogFields": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfDynamicCacheRule": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"statusCode": {
"type": "number",
"format": "int64",
"description": "Status code to return"
},
"headers": {
"type": "string",
"description": "String of values delimited by a '|' character. Pipe delimited ('|') list of headers to add to response"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "Client response based on Rules."
},
"custconfDynamicContent": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"queryParams": {
"type": "string",
"description": "String of values delimited by a ',' character. A comma separated list of query string parameters you want to include in the cache key generation. NOTE: This list is ignored when the Key Location is set to header."
},
"headerFields": {
"type": "string",
"description": "String of values delimited by a ',' character. A comma-separated list of glob patterns that represent HTTP request headers you want included in the cache key generation. Via the use of a colon ':', users can define each glob pattern to match a header name only, or the pattern can be used to match both the header name and value. A pattern without a colon ':' is treated as a header name ONLY match. If the pattern matches the header, then all values are used as a part of the cache key. If the pattern contains a colon, the CDN uses the pattern on the left of the colon to match the header. The pattern to the right of the colon is used to match the value. The CDN only uses the header/value as a part of the cache key if both patterns result in a match. Note, no pattern after a colon indicates an empty header (no value).\nSee the fnmatch manpage for acceptable glob patterns."
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "The dynamic content caching policy allows you to specify a set of query string and/or HTTP header key/value pairs that should create a unique cache entry for a given URL. This policy is useful when your origin returns unique content for the same URL based on a set of query string parameters provided in the request."
},
"custconfFailSafeOriginPull": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"statusCodeMatch": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfFarAheadRangeProxy": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"thresholdBytes": {
"type": "number",
"format": "int64"
}
}
},
"custconfFileSegmentation": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean",
"description": "Flag for enabling the File Segmentation Feature."
}
},
"description": "Policy for configuring the feature for downloading and storing files in segments rather than a whole entity."
},
"custconfFlvPseudoStreaming": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"jumpToByteInitialBytesParam": {
"type": "string"
},
"jumpToByteStartOffsetParam": {
"type": "string"
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
}
},
"custconfGzipOriginPull": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean",
"description": "This enables support for compressed origin pull"
}
},
"description": "The compressed origin pull policy allows you to enable the CDN caching servers to request compressed assets from your origin. By enabling this policy, the CDN caching servers send your origin the HTTP Accept-Encoding header with the gzip code (Accept-Encoding: gzip)."
},
"custconfHttp2Support": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean",
"description": "Enable support of HTTP2"
}
},
"description": "Enable support of HTTP2"
},
"custconfHttpMethods": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"passThru": {
"type": "string",
"description": "String of values delimited by a ',' character. This is a comma separated list of HTTP methods you want the CDN to proxy to your origin. A wildcard can be entered to include all methods (excluding HEAD and GET)."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The HTTP methods policy allows you to selectively enable additional HTTP methods you want your CDN container to process. A container automatically is set up to process HTTP GET and HEAD commands, so they should not be explicitly defined in this policy. HTTP methods included in this policy are proxied directly to your origin and not cached by the CDN."
},
"custconfMidTierCachingProtocolEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"http",
"https",
"match"
],
"default": "UNKNOWN"
},
"custconfOriginPersistentConnections": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The origin persistent connection settings are used to enable persistent connections to origins"
},
"custconfOriginPull": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"redirectAction": {
"$ref": "#/definitions/OriginPullRedirectActionEnumWrapperValue"
},
"noQSParams": {
"type": "boolean",
"format": "boolean",
"description": "GFS sends a path without any query string parameters when making external origin requests regardless if any parameters were sent by the User-Agent."
},
"retryMethods": {
"type": "string",
"description": "String of values delimited by a ',' character. List of HTTP Methods that define types of origin pull requests that can be retried if a failure occurs after sending a previous request."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The origin pull settings policy contains a list of settings that control the behavior of origin pull requests."
},
"custconfOriginPullCacheExtension": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"expiredCacheExtension": {
"type": "integer",
"format": "int32",
"description": "This is the number of seconds to extend an asset's TTL when the origin is unavailable. The CDN will continue to retry the origin up to the Origin Unavailable Max TTL."
},
"originUnreachableCacheExtension": {
"type": "integer",
"format": "int32",
"description": "The origin unavailable max TTL value is used by the caching server when your origin is unresponsive or the CDN cannot establish a connection to your origin. Under these conditions, the CDN can continue to serve expired assets from the cache. The value specified in this field establishes a maximum allowable TTL for your expired assets. If your origin connectivity or responsiveness is not corrected within your maximum allowable TTL, the CDN no longer serves your expired assets."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The cache extension policy allows you to define cache revalidation exceptions on expired content. This policy is applied by the CDN caching servers when they are are unable to revalidate an expired asset with your origin due to network connectivity issues or unresponsiveness from your origin."
},
"custconfOriginPullHost": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"originUrl": {
"type": "string"
},
"userName": {
"type": "string"
},
"password": {
"type": "string"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfOriginPullLogs": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "Enable/Disable Origin Pull Logs"
},
"custconfOriginPullLogsConfig": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"extraLogFields": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "Origin Pull Log Settings"
},
"custconfOriginPullPolicy": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"statusCodeMatch": {
"type": "string",
"description": "String of values delimited by a ',' character. This is a pattern match expression for each status code this policy applies to. For example, 2*, 3* applies this policy to all 200 and 300 level HTTP responses from your origin."
},
"expirePolicy": {
"$ref": "#/definitions/OriginPullPolicyExpirePolicyEnumWrapperValue"
},
"expireSeconds": {
"type": "integer",
"format": "int32",
"description": "This is the expiration time used for assets pulled from your origin. When using Cache-Control headers expiration methods, this value is used if your origin doesn't return a max-age directive in the Cache-Control HTTP header. Please note that a value of 0 in this fields instructs the caching server to retain assets for as long as possible."
},
"honorNoStore": {
"type": "boolean",
"format": "boolean",
"description": "This enables the processing of no-store HTTP Cache-Control directives on your container. By enabling this option, responses from your origin containing the no-store directive are not cached. Be aware that requests for non-cacheable assets are always forwarded to your origin and may impose a high request and bandwidth load on your origin."
},
"honorNoCache": {
"type": "boolean",
"format": "boolean",
"description": "This enables the processing of no-cache HTTP Cache-Control directives on your container. By enabling this option, responses from your origin containing the no-cache directive force the CDN to submit every subsequent request to your origin for validation before serving the asset stored in the cache."
},
"honorMustRevalidate": {
"type": "boolean",
"format": "boolean"
},
"noCacheBehavior": {
"$ref": "#/definitions/OriginPullPolicyNoCacheBehaviorEnumWrapperValue"
},
"maxAgeZeroToNoCache": {
"type": "boolean",
"format": "boolean",
"description": "This enables the CDN to apply the no-cache behavior for assets delivered by your origin containing a max-age directive equal to zero."
},
"mustRevalidateToNoCache": {
"type": "boolean",
"format": "boolean",
"description": "This enables the CDN to apply the no-cache behavior for assets delivered by your origin containing the must-revalidate directive."
},
"bypassCacheIdentifier": {
"type": "string",
"description": "This allows you to define a custom directive that, when used by your origin in the Cache-Control response headers, forces the CDN to proxy the request to the end user without caching the result."
},
"forceBypassCache": {
"type": "boolean",
"format": "boolean",
"description": "This forces the CDN to not cache any asset pulled from your origin that would otherwise be stored at this location in the cache. Typically this policy is used to prevent 4XX and 5XX response codes from overwriting a file in the cache when used with corresponding Origin Status Code Match setting. If bypass cache behavior is desired for all assets at a scope, Origin Pull Queue Behavior in the Origin Pull Settings also needs to be set to NOCACHE for that scope."
},
"httpHeaders": {
"type": "string",
"description": "String of values delimited by a ',' character. This is the list of your origin's HTTP headers that you want the CDN to cache and deliver to end users."
},
"honorPrivate": {
"type": "boolean",
"format": "boolean",
"description": "This enables the processing of private HTTP Cache-Control directives on your container. By enabling this option, responses from your origin containing the private directive are not cached. Be aware that requests for non-cacheable assets are always forwarded to your origin and may impose a high request and bandwidth load on your origin."
},
"honorSMaxAge": {
"type": "boolean",
"format": "boolean",
"description": "This enables the processing of s-maxage HTTP Cache-Control directives on your container. By enabling this option, the s-maxage HTTP Cache-Control directive in the responses from your origin takes precedence over the max-age directive. If both max-age and s-maxage need to be preserved in the client response, the Cache-Control header must be added to the \"Http Header Caching\" setting."
},
"updateHttpHeadersOn304Response": {
"type": "boolean",
"format": "boolean"
},
"defaultCacheBehavior": {
"$ref": "#/definitions/OriginPullPolicyDefaultCacheBehaviorEnumWrapperValue"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"contentTypeFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "The CDN caching policy allows you to control how your origin's content is cached on the CDN."
},
"custconfOriginPullProtocol": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"protocol": {
"$ref": "#/definitions/custconfOriginPullProtocolProtocolEnumWrapperValue"
},
"enableSNI": {
"type": "boolean",
"format": "boolean",
"description": "This key allows you to configure the CDN caching servers to use SNI while making Secured Connection to Origin."
}
},
"description": "The Origin Pull Protocol allows you to configure the CDN caching servers to use secured or non-secured connection to Origin."
},
"custconfOriginPullProtocolProtocolEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"http",
"https",
"match"
],
"default": "UNKNOWN"
},
"custconfOriginPullResumeDownload": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"originalStatusCodeMatch": {
"type": "string",
"description": "String of values delimited by a ',' character. Comma separated list of glob patterns that indicate which origin pulls this policy applies to based on the status code of the original origin response. This feature is limited to 2xx responses, but this policy provides fine control, such as permitting resume of 200 responses by not 206, or for adding a 2xx response code other than 200 or 206."
},
"minimumBodyBytesConsumed": {
"type": "string",
"description": "Minimum number of body bytes that CDN must have consumed during an Origin Pull before encountering an error before it is permitted to attempt resuming the download. This value does not include the headers bytes."
},
"maximumAttempts": {
"type": "number",
"format": "int64",
"description": "Maximum number of times beyond the initial request that the CDN is permitted to attempt resuming an Origin Pull download."
},
"requireOriginRangeSupport": {
"type": "boolean",
"format": "boolean",
"description": "The CDN resumes an Origin Pull even if the origin does not support range requests. If the origin does not support range requests and/or returns a 200 response for the same version given in the original response, the CDN fast-forwards (reads and discards bytes) until it reaches its previous position in the asset."
},
"etagValidation": {
"$ref": "#/definitions/OriginPullResumeDownloadEtagValidationEnumWrapperValue"
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "The CDN attempts to resume downloading Origin Pulls once it successfully reads all the headers of a positive response under certain conditions by sending subsequent origin range requests for the remaining body. The response must be a 2xx to a GET request for the full file or a single range (not multi-range). The response must contain the Last-Modified and ETag headers."
},
"custconfOriginRequestModification": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"urlPattern": {
"type": "string"
},
"urlRewrite": {
"type": "string"
},
"headerPattern": {
"type": "string"
},
"headerRewrite": {
"type": "string"
},
"addHeaders": {
"type": "string",
"description": "String of values delimited by a '|' character. This is the static HTTP header you want inserted into the CDN request. Start value with \"append:\", \"replace:\" or \"create:\" which defines if Header will be added, replaced or create if not exists. Default is append."
},
"flowControl": {
"type": "string"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"cookieFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfOriginRequestQueueLogLevelEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"debug",
"info",
"warning",
"error",
"crit"
],
"default": "UNKNOWN"
},
"custconfOriginResponseModification": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"statusCodeRewrite": {
"type": "number",
"format": "int64"
},
"headerPattern": {
"type": "string"
},
"headerRewrite": {
"type": "string"
},
"addHeaders": {
"type": "string",
"description": "String of values delimited by a '|' character. This is the static HTTP header you want inserted into the CDN response. Start value with \"append:\", \"replace:\" or \"create:\" which defines if Header will be added, replaced or create if not exists. Default is append."
},
"flowControl": {
"$ref": "#/definitions/custconfOriginResponseModificationFlowControlEnumWrapperValue"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfOriginResponseModificationFlowControlEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"next",
"break"
],
"default": "UNKNOWN"
},
"custconfOriginResponseQueueLogLevelEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"debug",
"info",
"warning",
"error",
"crit"
],
"default": "UNKNOWN"
},
"custconfQueryStrParam": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"dispositionName": {
"type": "string",
"description": "This is the name of the query string parameter which contains the name of the file to specify in the Content-Disposition HTTP response header. This setting is typically used by customers to configure a \"friendly name\" for URLs that have obfuscated file names. This setting controls the \"filename\" directive that is part of the Content-Disposition HTTP header."
},
"dispositionType": {
"type": "string",
"description": "This is the name of the query string parameter which contains the disposition type to use in the Content-Disposition HTTP header. Typically, this value is set to \"attachment,\" but you may supply a custom string using this setting."
},
"dispositionOverride": {
"type": "string",
"description": "This setting allows you to completely override the Content-Disposition HTTP header that the CDN caching servers use on a response."
},
"jumpToTimeStart": {
"type": "string",
"description": "This is the name of the query string parameter that indicates to the CDN the start time offset of the video returned. This parameter is part of the jump-to-time feature that is initiated on a per request basis."
},
"jumpToTimeEnd": {
"type": "string",
"description": "This is the name of the query string parameter that indicates to the CDN the end time offset of the video that should be returned. This parameter is part of the jump-to-time feature that is initiated on a per request basis."
},
"jumpToByteInitialBytes": {
"type": "string",
"description": "This is the name of the query string parameter that indicates to the CDN the initial bytes of a video that should be returned before sending the requested byte offset. This parameter is part of the jump-to-byte feature that is initiated on a per request basis."
},
"jumpToByteStartOffset": {
"type": "string",
"description": "This is the name of the query string parameter that indicates to the CDN the specific offset into the video that is being requested. This parameter is part of the jump-to-byte feature that is initiated on a per request basis."
},
"rateLimitInitial": {
"type": "string",
"description": "This is the name of the query string parameter that indicates to the CDN an initial burst rate to use when delivering a file. This parameter is part of the bandwidth limiting feature that is initiated on a per request basis."
},
"rateLimitSustained": {
"type": "string",
"description": "This is the name of the query string parameter that indicates to the CDN the sustained rate being requested for the delivery of a file. This parameter is part of the bandwidth throttling feature that is initiated on a per request basis."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The reserved query string parameters policy describes all the query string parameters the StackPath CDN caching server reserves for special processing of your requests."
},
"custconfReceiptLogsConfig": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"extraLogFields": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "Delivery receipt log settings"
},
"custconfRedirectExceptions": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"redirectAgentCode": {
"type": "string",
"description": "String of values delimited by a ',' character. This is a comma separated list of user agents and redirect code pairs. The user agent and redirect code values are separated by a colon (:), and you may use wildcards in the user agent field. For example, to map assign a 307 status code to all Chrome browsers, you would specify: *chrome*:307."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The redirect response codes policy allows you to specify the HTTP redirect status code the CDN caching server should use when the CDN issues a redirect. Using this policy, you can assign different redirect codes to user agents requesting content."
},
"custconfRedirectMappings": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"code": {
"type": "number",
"format": "int64",
"description": "The HTTP cache response code that applies to this policy."
},
"redirectURL": {
"type": "string",
"description": "The URL that clients would be redirected to when applying this policy."
},
"replacementToken": {
"type": "string",
"description": "A token that will be replaced by the caching server with the URL of the request that triggered the policy. This token can be positioned anywhere in the redirect URL."
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "The response code redirection policy allows you to map cache response codes to an HTTP redirect response. When this policy is applied to a host, the caching servers will redirect clients to the URL specified in this policy instead of delivering the response code you mapped in the policy."
},
"custconfResponseHeader": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"http": {
"type": "string",
"description": "A pipe delimited list of rules that instructs the CDN caching servers to include a content-disposition header. The rules included in this setting must be entered in the following format: Content-Disposition:<User Agent>:<file extension 1>, <file extension 2>. For example, to send the Content-Disposition header for all Mozilla browsers on the delivery of mp3, exe, tar, zip, gz and rar files, you would enter the following in the field: Content-Disposition:Mozilla*:mp3,exe,tar,zip,gz,rar"
},
"enableETag": {
"type": "boolean",
"format": "boolean",
"description": "This gives the ability to disable the ETag header on the response."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The custom HTTP response headers policy allows you to specify a list of HTTP headers you want the CDN caching servers to include in the response to clients."
},
"custconfRobotsTxt": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"file": {
"type": "string",
"format": "base64"
},
"cacheControlHeader": {
"type": "string"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfStaticHeader": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"clientRequest": {
"type": "string",
"description": "This is the static HTTP header you want inserted into the CDN request."
},
"http": {
"type": "string",
"description": "This is the static HTTP header you want inserted into the CDN response."
},
"originPull": {
"type": "string",
"description": "This is the HTTP header you want inserted into the origin pull request."
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "The static header injection policy allows you to insert headers into the CDN request and response processor."
},
"custconfTimePseudoStreaming": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"jumpToTimeStartParam": {
"type": "string",
"description": "The name of the query string parameter that indicates to the CDN the specific time interval of the video that is being requested."
},
"jumpToTimeEndParam": {
"type": "string",
"description": "The name of the query string parameter that indicates to the CDN the end time of the video that should be returned."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The HTTP pseudo-streaming policy enables Flash based video players to support seeking to random locations within a MP4 or FLV file without having to download the entire video. Flash players such as Flowplayer and JWPlayer can be configured to send a query string parameter that indicates to the server the time offset the user advanced the video to. Typically a query string parameter called \"start\" is used by these players."
},
"custconfVHost": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"domain": {
"type": "string",
"description": "This is the hostname you want to enable in this policy. Note: You must configure your container's CNAME record with your DNS provider to enable this hostname to deliver content."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "A hostname policy allows you to specify an alternate domain name that you want to use to access content from your CDN container."
},
"paginationPageInfo": {
"type": "object",
"properties": {
"totalCount": {
"type": "string",
"description": "The total number of items in the dataset"
},
"hasPreviousPage": {
"type": "boolean",
"format": "boolean",
"description": "Whether or not a previous page of data exists"
},
"hasNextPage": {
"type": "boolean",
"format": "boolean",
"description": "Whether or not another page of data is available"
},
"startCursor": {
"type": "string",
"description": "The cursor for the first item in the set of data returned"
},
"endCursor": {
"type": "string",
"description": "The cursor for the last item in the set of data returned"
}
},
"description": "Information about a paginated response\n\nThis is modeled after the GraphQL Relay spec to support both cursor based pagination and traditional offset based pagination."
},
"paginationPageRequest": {
"type": "object",
"properties": {
"first": {
"type": "string",
"description": "The number of items desired"
},
"after": {
"type": "string",
"description": "The cursor value after which data will be returned"
},
"filter": {
"type": "string",
"description": "SQL-style constraint filters"
},
"sortBy": {
"type": "string",
"description": "Sort the response by the given field"
}
},
"description": "Pagination request information\n\nThis is modeled after the GraphQL Relay spec to support both cursor based pagination and traditional offset based pagination."
},
"schemacdnOrigin": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "An origin's unique identifier"
},
"path": {
"type": "string",
"description": "An origin's path\n\nPaths default to \"/\""
},
"hostname": {
"type": "string",
"description": "An origin's hostname or IP address"
},
"port": {
"type": "integer",
"format": "int32",
"description": "The HTTP port to connect to the origin"
},
"securePort": {
"type": "integer",
"format": "int32",
"description": "The HTTPS port to connect to the origin"
},
"dedicated": {
"type": "boolean",
"format": "boolean",
"description": "Whether or not an origin is dedicated to a CDN site\n\nDedicated origins cannot be used by any site other than that to which it is dedicated."
},
"siteId": {
"type": "string",
"description": "The ID of the CDN site to which an origin is dedicated"
}
},
"description": "A CDN site's origin\n\nOrigins are the original sources of the data that is cached by the CDN on request."
},
"stackpath.rpc.BadRequest": {
"allOf": [
{
"$ref": "#/definitions/apiStatusDetail"
},
{
"type": "object",
"properties": {
"fieldViolations": {
"type": "array",
"items": {
"$ref": "#/definitions/stackpath.rpc.BadRequest.FieldViolation"
}
}
}
}
]
},
"stackpath.rpc.BadRequest.FieldViolation": {
"type": "object",
"properties": {
"field": {
"type": "string"
},
"description": {
"type": "string"
}
}
},
"stackpath.rpc.Help": {
"allOf": [
{
"$ref": "#/definitions/apiStatusDetail"
},
{
"type": "object",
"properties": {
"links": {
"type": "array",
"items": {
"$ref": "#/definitions/stackpath.rpc.Help.Link"
}
}
}
}
]
},
"stackpath.rpc.Help.Link": {
"type": "object",
"properties": {
"description": {
"type": "string"
},
"url": {
"type": "string"
}
}
},
"stackpath.rpc.LocalizedMessage": {
"allOf": [
{
"$ref": "#/definitions/apiStatusDetail"
},
{
"type": "object",
"properties": {
"locale": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
]
},
"stackpath.rpc.PreconditionFailure": {
"allOf": [
{
"$ref": "#/definitions/apiStatusDetail"
},
{
"type": "object",
"properties": {
"violations": {
"type": "array",
"items": {
"$ref": "#/definitions/stackpath.rpc.PreconditionFailure.Violation"
}
}
}
}
]
},
"stackpath.rpc.PreconditionFailure.Violation": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"subject": {
"type": "string"
},
"description": {
"type": "string"
}
}
},
"stackpath.rpc.QuotaFailure": {
"allOf": [
{
"$ref": "#/definitions/apiStatusDetail"
},
{
"type": "object",
"properties": {
"violations": {
"type": "array",
"items": {
"$ref": "#/definitions/stackpath.rpc.QuotaFailure.Violation"
}
}
}
}
]
},
"stackpath.rpc.QuotaFailure.Violation": {
"type": "object",
"properties": {
"subject": {
"type": "string"
},
"description": {
"type": "string"
}
}
},
"stackpath.rpc.RequestInfo": {
"allOf": [
{
"$ref": "#/definitions/apiStatusDetail"
},
{
"type": "object",
"properties": {
"requestId": {
"type": "string"
},
"servingData": {
"type": "string"
}
}
}
]
},
"stackpath.rpc.ResourceInfo": {
"allOf": [
{
"$ref": "#/definitions/apiStatusDetail"
},
{
"type": "object",
"properties": {
"resourceType": {
"type": "string"
},
"resourceName": {
"type": "string"
},
"owner": {
"type": "string"
},
"description": {
"type": "string"
}
}
}
]
},
"stackpath.rpc.RetryInfo": {
"allOf": [
{
"$ref": "#/definitions/apiStatusDetail"
},
{
"type": "object",
"properties": {
"retryDelay": {
"type": "string"
}
}
}
]
}
},
"securityDefinitions": {
"oauth2": {
"type": "oauth2",
"flow": "application",
"tokenUrl": "https://gateway.stackpath.com/identity/v1/oauth2/token"
}
},
"security": [
{
"oauth2": []
}
],
"externalDocs": {
"description": "The StackPath API Reference",
"url": "https://stackpath.dev/reference"
},
"x-explorer-enabled": true,
"x-proxy-enabled": true,
"x-samples-enabled": true,
"x-samples-languages": [
"curl",
"node",
"ruby",
"javascript",
"python"
]
}
{
"openapi": "3.0.0",
"info": {
"title": "Content Delivery Network",
"version": "1.0.0",
"contact": {
"name": "StackPath Support",
"url": "https://support.stackpath.com/"
}
},
"paths": {
"/cdn/v1/ips": {
"get": {
"summary": "Get the IP addresses used by the StackPath CDN",
"operationId": "GetCDNIPs",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnGetCDNIPsResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "filter",
"in": "query",
"required": false,
"description": "Whether to search for IPv4, IPv6, or all IP addresses",
"schema": {
"type": "string",
"enum": [
"ALL",
"IPV4",
"IPV6"
],
"default": "ALL"
}
},
{
"name": "response_type",
"in": "query",
"required": false,
"description": "The format to return the result in",
"schema": {
"type": "string",
"enum": [
"JSON",
"PLAIN_TEXT"
],
"default": "JSON"
}
}
],
"tags": [
"Infrastructure"
]
}
},
"/cdn/v1/origins/scan": {
"post": {
"summary": "Scan an origin from the CDN",
"description": "Retrieve information regarding an origin, such as its IP address and whether or not it supports SSL.",
"operationId": "ScanOrigin",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnScanOriginResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnScanOriginRequest"
}
}
},
"required": true
},
"tags": [
"Scan"
]
}
},
"/cdn/v1/pops": {
"get": {
"summary": "Get the StackPath CDN points of presence",
"operationId": "GetPops",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnGetPopsResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"tags": [
"Infrastructure"
]
}
},
"/cdn/v1/pops/closest": {
"get": {
"summary": "Scan a URL from the StackPath edge network and return a performance report",
"description": "Results are ordered with the fastest POP response first",
"operationId": "GetClosestPops",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnGetClosestPopsResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "url",
"description": "The URL to scan.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"tags": [
"Infrastructure"
]
}
},
"/cdn/v1/stacks/{stack_id}/certificates": {
"get": {
"summary": "Get a stack's SSL certificates",
"operationId": "GetCertificates",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnGetCertificatesResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack to retrieve SSL certificates from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "page_request.first",
"description": "The number of items desired.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.after",
"description": "The cursor value after which data will be returned.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.filter",
"description": "SQL-style constraint filters.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.sort_by",
"description": "Sort the response by the given field.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"tags": [
"Delivery"
]
},
"post": {
"summary": "Add an SSL certificate to a stack",
"description": "The certificate is automatically associated with CDN site scope hostnames that match either the certificate's subject or its alternative names.",
"operationId": "CreateCertificate",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnCreateCertificateResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack to create a certificate on",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnCreateCertificateRequest"
}
}
},
"required": true
},
"tags": [
"Delivery"
]
}
},
"/cdn/v1/stacks/{stack_id}/certificates/{certificate_id}": {
"get": {
"summary": "Retrieve an individual SSL certificate",
"operationId": "GetCertificate",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnGetCertificateResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the SSL certificate to retrieve",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "certificate_id",
"description": "The ID of the SSL certificate to retrieve",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"tags": [
"Delivery"
]
},
"delete": {
"summary": "Delete an SSL certificate",
"operationId": "DeleteCertificate",
"responses": {
"204": {
"description": "No content"
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the SSL certificate to delete",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "certificate_id",
"description": "The ID of the SSL certificate to delete",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"tags": [
"Delivery"
]
},
"put": {
"summary": "Update an SSL certificate",
"operationId": "UpdateCertificate",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnUpdateCertificateResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the SSL certificate to update",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "certificate_id",
"description": "The ID of SSL certificate to update",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnUpdateCertificateRequest"
}
}
},
"required": true
},
"tags": [
"Delivery"
]
}
},
"/cdn/v1/stacks/{stack_id}/certificates/{certificate_id}/renew": {
"post": {
"summary": "Issue a renewal for an SSL certificate",
"description": "StackPath automatically renews certificates that are 30 days from expiration. Call this to retry a renewal that previously failed.",
"operationId": "RenewCertificate",
"responses": {
"204": {
"description": "No content"
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the SSL certificate to renew",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "certificate_id",
"description": "The ID of the SSL certificate to renew",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"tags": [
"Delivery"
]
}
},
"/cdn/v1/stacks/{stack_id}/certificates/{certificate_id}/sites": {
"get": {
"summary": "Retrieve the CDN sites associated with an SSL certificate",
"operationId": "GetCertificateSites",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnGetCertificateSitesResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the SSL certificate to retrieve CDN sites for",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "certificate_id",
"description": "The ID of the SSL certificate to retrieve sites for",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "page_request.first",
"description": "The number of items desired.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.after",
"description": "The cursor value after which data will be returned.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.filter",
"description": "SQL-style constraint filters.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.sort_by",
"description": "Sort the response by the given field.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"tags": [
"Delivery"
]
}
},
"/cdn/v1/stacks/{stack_id}/certificates/{certificate_id}/verification_details": {
"get": {
"summary": "Retrieve a CDN site's SSL certificate manual verification details",
"operationId": "GetCertificateVerificationDetails",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnGetCertificateVerificationDetailsResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to retrieve SSL certificate verification details for",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "certificate_id",
"description": "The ID of the site to retrieve SSL certificate verification details for",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"tags": [
"Delivery"
]
}
},
"/cdn/v1/stacks/{stack_id}/metrics": {
"get": {
"summary": "Retrieve request metrics for all CDN sites in a stack",
"description": "If the start and end dates are not provided, the last 24 hours of data will be returned.",
"operationId": "GetMetrics",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnGetMetricsResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack to retrieve CDN metrics for",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "start_date",
"description": "The starting date to retrieve metrics for.",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "end_date",
"description": "The ending date to retrieve metrics for.",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "granularity",
"in": "query",
"required": false,
"description": "The ISO 8601 duration to roll up metrics by",
"schema": {
"type": "string",
"enum": [
"AUTO",
"P1M",
"PT5M",
"PT1H",
"P1D"
],
"default": "AUTO"
}
},
{
"name": "platforms",
"description": "A comma-separated list of billing platforms to filter metrics for.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "pops",
"description": "A comma-separated list of StackPath point of presence location codes to filter metrics for.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "billing_regions",
"description": "A comma-separated list of billing regions to filter metrics for.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "sites",
"description": "A comma-separated list of site IDs to filter metrics for.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "group_by",
"in": "query",
"required": false,
"description": "The field to group metrics by",
"schema": {
"type": "string",
"enum": [
"NONE",
"ACCOUNT",
"SITE",
"PLATFORM",
"POP",
"REGION"
],
"default": "NONE"
}
},
{
"name": "site_type_filter",
"in": "query",
"required": false,
"description": "The type of sites to retrieve metrics for",
"schema": {
"type": "string",
"enum": [
"ALL",
"CDN",
"WAF",
"API",
"EDGE_ENGINE",
"SERVERLESS_EDGE_ENGINE"
],
"default": "ALL"
}
}
],
"tags": [
"Metrics"
]
}
},
"/cdn/v1/stacks/{stack_id}/purge": {
"post": {
"summary": "Purge cached content for all CDN sites on a stack",
"description": "Content is re-cached on the CDN the next time it is requested. Use the returned purge ID to see the status of a purge request.",
"operationId": "PurgeContent",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnPurgeContentResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the sites to purge items from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnPurgeContentRequest"
}
}
},
"required": true
},
"tags": [
"Purge Content"
]
}
},
"/cdn/v1/stacks/{stack_id}/purge/{purge_id}": {
"get": {
"summary": "Retrieve a purge request's status",
"operationId": "GetPurgeStatus",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnGetPurgeStatusResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack the purge request was made against",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "purge_id",
"description": "The ID of the purge request to check the status of",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"tags": [
"Purge Content"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/certificates": {
"get": {
"summary": "Retrieve a site's SSL certificates",
"operationId": "GetSiteCertificates",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnGetSiteCertificatesResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to retrieve SSL certificates for",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site to retrieve SSL certificates for",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "page_request.first",
"description": "The number of items desired.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.after",
"description": "The cursor value after which data will be returned.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.filter",
"description": "SQL-style constraint filters.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.sort_by",
"description": "Sort the response by the given field.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"tags": [
"Delivery"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/certificates/request": {
"post": {
"summary": "Request an SSL certificate for a CDN site",
"description": "The optional list of hosts should be delivery domains for the site. If no hosts parameter is provided, all delivery domains for a site will be included in the SAN field. If the hosts parameter is provided, then the first entry in the list will be used as the certificate's common name.",
"operationId": "RequestCertificate",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnRequestCertificateResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to request an SSL certificate for",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site to request an SSL certificate for",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnRequestCertificateRequest"
}
}
},
"required": true
},
"tags": [
"Delivery"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/certificates/{certificate_id}": {
"put": {
"summary": "Associate a CDN site with an SSL certificate",
"description": "Association is performed without validating if the site has a hostname covered by the certificate. This is useful for preparation work required for getting a site ready for traffic.\n\nIf a certificate is uploaded which contains hostnames for sites, it will automatically be connected to those sites. If a hostname is added to a site which is covered by an SSL certificate, it will automatically be connected to the certificate.",
"operationId": "ConnectSiteToCertificate",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnConnectSiteToCertificateResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to attach an SSL certificate to",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site to attach an SSL certificate to",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "certificate_id",
"description": "The ID of the SSL certificate to attach to a CDN site",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"tags": [
"Delivery"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/certificates/{certificate_id}/hosts": {
"put": {
"summary": "Update an SSL certificate's hosts",
"description": "Updating hosts issues a new certificate.",
"operationId": "UpdateSiteCertificateHosts",
"responses": {
"204": {
"description": "No content"
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the SSL certificate to update hosts on",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site containing the SSL certificate to update hosts on",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "certificate_id",
"description": "The ID of the SSL certificate to update hosts on",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnUpdateSiteCertificateHostsRequest"
}
}
},
"required": true
},
"tags": [
"Delivery"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/dns/targets": {
"get": {
"summary": "Retrieve a CDN site's DNS CNAME targets",
"description": "A site's hostname should point to these CNAME targets in order for traffic to be sent through StackPath's edge nodes.",
"operationId": "GetSiteDnsTargets",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnGetSiteDnsTargetsResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to retrieve DNS CNAME targets from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site to retrieve DNS CNAME targets from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"tags": [
"Delivery"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/scopes": {
"get": {
"summary": "Retrieve a CDN site's scopes",
"operationId": "GetSiteScopes",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnGetSiteScopesResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to retrieve scopes from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site to retrieve scopes from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "page_request.first",
"description": "The number of items desired.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.after",
"description": "The cursor value after which data will be returned.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.filter",
"description": "SQL-style constraint filters.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.sort_by",
"description": "Sort the response by the given field.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "disable_transparent_mode",
"description": "Whether or not to retrieve the site's CDN scope or its WAF scope. When true, this call removes the hostname from a CDN site's scope instead of loading from a CDN site's WAF scope, if the site has WAF service.",
"in": "query",
"required": false,
"schema": {
"type": "boolean",
"format": "boolean"
}
}
],
"tags": [
"Configuration"
]
},
"post": {
"summary": "Create a new CDN site scope",
"operationId": "CreateScope",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnCreateScopeResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to create a scope on",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site to create a scope on",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnCreateScopeRequest"
}
}
},
"required": true
},
"tags": [
"Configuration"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/scopes/{scope_id}": {
"delete": {
"summary": "Delete a CDN site scope",
"operationId": "DeleteScope",
"responses": {
"204": {
"description": "No content"
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site containing the scope to delete",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site containing the scope to delete",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "scope_id",
"description": "The ID of the scope to delete",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"tags": [
"Configuration"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/scopes/{scope_id}/configuration": {
"get": {
"summary": "Retrieve a CDN site's scope configuration",
"operationId": "GetScopeConfiguration",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnGetScopeConfigurationResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to retrieve a scope configuration from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site to retrieve a scope configuration from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "scope_id",
"description": "The ID of the scope whose configuration to retrieve",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"tags": [
"Configuration"
]
},
"patch": {
"summary": "Update a CDN site's scope configuration",
"operationId": "UpdateScopeConfiguration",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnUpdateScopeConfigurationResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site containing the scope to update",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site containing the scope to update",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "scope_id",
"description": "The ID of the scope to update",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnUpdateScopeConfigurationRequest"
}
}
},
"required": true
},
"tags": [
"Configuration"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/scopes/{scope_id}/hostnames": {
"get": {
"summary": "Retrieve the hostnames configured on a CDN site's scope",
"description": "Hostnames allow the CDN to recognize an HTTP request and associate it with a CDN site.",
"operationId": "GetScopeHostnames",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnGetScopeHostnamesResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site containing the scope to retrieve hostnames from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site containing the scope to retrieve hostnames from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "scope_id",
"description": "The ID of the scope to retrieve hostnames from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "page_request.first",
"description": "The number of items desired.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.after",
"description": "The cursor value after which data will be returned.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.filter",
"description": "SQL-style constraint filters.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.sort_by",
"description": "Sort the response by the given field.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "disable_transparent_mode",
"description": "Whether or not to load hostnames from a CDN site's CDN scope or its WAF scope. When true, this call loads scope hostnames from a CDN site's scope instead of loading from a CDN site's WAF scope, if the site has WAF service.",
"in": "query",
"required": false,
"schema": {
"type": "boolean",
"format": "boolean"
}
}
],
"tags": [
"Configuration"
]
},
"post": {
"summary": "Add a hostname to a CDN site's scope",
"operationId": "CreateScopeHostname",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnCreateScopeHostnameResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site containing the scope to add a hostname to",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site containing the scope to add a hostname to",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "scope_id",
"description": "The ID of the scope to add a hostname to",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnCreateScopeHostnameRequest"
}
}
},
"required": true
},
"tags": [
"Configuration"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/scopes/{scope_id}/hostnames/{domain}": {
"delete": {
"summary": "Remove a hostname from a CDN site's scope",
"operationId": "DeleteScopeHostname",
"responses": {
"204": {
"description": "No content"
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site containing the scope to remove a hostname from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site containing the scope to remove a hostname from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "scope_id",
"description": "The ID of the scope to remove a hostname from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "domain",
"description": "The hostname to remove from a scope",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "disable_transparent_mode",
"description": "Whether or not to remove the hostname from a CDN site's CDN scope or its WAF scope. When true, this call removes the hostname from a CDN site's scope instead of loading from a CDN site's WAF scope, if the site has WAF service.",
"in": "query",
"required": false,
"schema": {
"type": "boolean",
"format": "boolean"
}
}
],
"tags": [
"Configuration"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/scopes/{scope_id}/origins": {
"get": {
"summary": "Retrieve the origins behind a CDN site's scope",
"operationId": "GetScopeOrigins",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnGetScopeOriginsResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site containing the scope to retrieve origins from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site containing the scope to retrieve origins from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "scope_id",
"description": "The ID of the scope to retrieve origins from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "page_request.first",
"description": "The number of items desired.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.after",
"description": "The cursor value after which data will be returned.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.filter",
"description": "SQL-style constraint filters.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.sort_by",
"description": "Sort the response by the given field.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"tags": [
"Configuration"
]
},
"post": {
"summary": "Connect an origin to a CDN site's scope",
"description": "The origin is automatically created if necessary. When the request contains a priority which an origin already associated with the scope has set, the existing origin is disconnected. The priority of an origin already associated with a scope can be modified via this endpoint.",
"operationId": "ConnectScopeToOrigin",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnConnectScopeToOriginResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site containing the scope to associate an origin with",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site containing the scope to associate an origin with",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "scope_id",
"description": "The ID of the scope to associate an origin with",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnConnectScopeToOriginRequest"
}
}
},
"required": true
},
"tags": [
"Configuration"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/scopes/{scope_id}/origins/{origin_id}": {
"delete": {
"summary": "Disconnect an origin from CDN site's scope",
"operationId": "DisconnectScopeFromOrigin",
"responses": {
"204": {
"description": "No content"
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site containing the scope to remove an origin from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site containing the scope to remove an origin from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "scope_id",
"description": "The ID of the scope to remove an origin from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "origin_id",
"description": "The ID of the origin to remove from a scope",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"tags": [
"Configuration"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/scopes/{scope_id}/rules": {
"get": {
"summary": "Retrieve all EdgeRules on a CDN site scope",
"operationId": "GetScopeRules",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnGetScopeRulesResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to retrieve EdgeRules from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site to retrieve EdgeRules from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "scope_id",
"description": "The ID of the CDN site scope to retrieve EdgeRules from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "page_request.first",
"description": "The number of items desired.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.after",
"description": "The cursor value after which data will be returned.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.filter",
"description": "SQL-style constraint filters.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.sort_by",
"description": "Sort the response by the given field.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"tags": [
"EdgeRules"
]
},
"post": {
"summary": "Create an EdgeRule on a CDN site scope",
"operationId": "CreateScopeRule",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnCreateScopeRuleResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to create an EdgeRule on",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site to create an EdgeRule on",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "scope_id",
"description": "The ID of the CDN site scope to create an EdgeRule on",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnCreateScopeRuleRequest"
}
}
},
"required": true
},
"tags": [
"EdgeRules"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/scopes/{scope_id}/rules/{rule_id}": {
"get": {
"summary": "Retrieve an individual EdgeRule from a CDN site scope",
"operationId": "GetScopeRule",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnGetScopeRuleResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to retrieve an EdgeRule from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site to retrieve an EdgeRule from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "scope_id",
"description": "The ID of the CDN site scope to retrieve an EdgeRule from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "rule_id",
"description": "The ID of the EdgeRule to retrieve",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"tags": [
"EdgeRules"
]
},
"delete": {
"summary": "Delete an EdgeRule",
"operationId": "DeleteScopeRule",
"responses": {
"204": {
"description": "No content"
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to delete an EdgeRule from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site to delete an EdgeRule from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "scope_id",
"description": "The ID of the CDN site scope to delete an EdgeRule from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "rule_id",
"description": "The ID of the EdgeRule to delete",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"tags": [
"EdgeRules"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/scopes/{scope_id}/rules/{rule_id}/configuration": {
"get": {
"summary": "Retrieve an EdgeRule's configuration",
"operationId": "GetScopeRuleConfiguration",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnGetScopeRuleConfigurationResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to retrieve an EdgeRule's configuration from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site to retrieve an EdgeRule's configuration from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "scope_id",
"description": "The ID of the CDN site scope to retrieve an EdgeRule's configuration from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "rule_id",
"description": "The ID of the EdgeRule to retrieve configuration for",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"tags": [
"EdgeRules"
]
},
"patch": {
"summary": "Update an EdgeRule's configuration",
"operationId": "UpdateScopeRuleConfiguration",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnUpdateScopeRuleConfigurationResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to update an EdgeRule's configuration for",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site to update an EdgeRule's configuration for",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "scope_id",
"description": "The ID of the CDN site scope to update an EdgeRule's configuration for",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "rule_id",
"description": "The ID of the EdgeRule to update configuration for",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnUpdateScopeRuleConfigurationRequest"
}
}
},
"required": true
},
"tags": [
"EdgeRules"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/scripts": {
"get": {
"summary": "Get all serverless scripts",
"operationId": "GetSiteScripts",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnGetSiteScriptsResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack to get serverless scripts from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site to get serverless scripts from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "page_request.first",
"description": "The number of items desired.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.after",
"description": "The cursor value after which data will be returned.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.filter",
"description": "SQL-style constraint filters.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.sort_by",
"description": "Sort the response by the given field.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"tags": [
"Serverless Scripting"
]
},
"post": {
"summary": "Create a serverless script",
"operationId": "CreateSiteScript",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnCreateSiteScriptResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack to create a serverless script on",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site to create a serverless script on",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnCreateSiteScriptRequest"
}
}
},
"required": true
},
"tags": [
"Serverless Scripting"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/scripts/{script_id}": {
"get": {
"summary": "Get a serverless script",
"operationId": "GetSiteScript",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnGetSiteScriptResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack to get the serverless script from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site to get the serverless script from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "script_id",
"description": "The ID of the serverless script to get",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "script_version",
"description": "The version of the serverless script to get",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"tags": [
"Serverless Scripting"
]
},
"delete": {
"summary": "Delete a serverless script",
"operationId": "DeleteSiteScript",
"responses": {
"204": {
"description": "No content"
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack to delete the serverless script from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site to delete the serverless script from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "script_id",
"description": "The ID of the serverless script to delete",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"tags": [
"Serverless Scripting"
]
},
"patch": {
"summary": "Update a serverless script",
"operationId": "UpdateSiteScript",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnUpdateSiteScriptResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack with the serverless script to update",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site with the serverless script to update",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "script_id",
"description": "The ID of the serverless script to update",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnUpdateSiteScriptRequest"
}
}
},
"required": true
},
"tags": [
"Serverless Scripting"
]
}
},
"/cdn/v1/stacks/{stack_id}/sites/{site_id}/scripts/{script_id}/{script_version}": {
"get": {
"summary": "Get a version of a serverless script",
"operationId": "GetSiteScript2",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cdnGetSiteScriptResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/apiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack to get the serverless script from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site to get the serverless script from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "script_id",
"description": "The ID of the serverless script to get",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "script_version",
"description": "The version of the serverless script to get",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"tags": [
"Serverless Scripting"
]
}
}
},
"security": [
{
"oauth2": []
}
],
"externalDocs": {
"description": "The StackPath API Reference",
"url": "https://stackpath.dev/reference"
},
"x-explorer-enabled": true,
"x-proxy-enabled": true,
"x-samples-enabled": true,
"x-samples-languages": [
"curl",
"node",
"ruby",
"javascript",
"python"
],
"servers": [
{
"url": "https://gateway.stackpath.com"
}
],
"components": {
"securitySchemes": {
"oauth2": {
"type": "oauth2",
"flows": {
"clientCredentials": {
"tokenUrl": "https://gateway.stackpath.com/identity/v1/oauth2/token",
"scopes": {}
}
}
}
},
"schemas": {
"AuthACLAccessCodeEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"allow",
"deny"
],
"default": "UNKNOWN"
},
"AuthACLClientIPSrcEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"socket",
"header"
],
"default": "UNKNOWN"
},
"AuthGeoCodeEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"countryCode",
"region",
"subdivisionCodes",
"city",
"postalCode",
"continentCode",
"timeZone",
"dmaCode",
"areaCode"
],
"default": "UNKNOWN"
},
"AuthUrlSignAKv2HashStrategyEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"sha1",
"sha256",
"md5"
],
"default": "UNKNOWN"
},
"AuthUrlSignL3TimeFormatEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"epoch",
"datetime"
],
"default": "UNKNOWN"
},
"BandwidthRateLimitInitialBurstUnitsEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"byte",
"kilobyte"
],
"default": "UNKNOWN"
},
"BandwidthRateLimitSustainedRateUnitsEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"kilobit",
"kilobyte"
],
"default": "UNKNOWN"
},
"BillableRegionsEnabledRegionsEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"us",
"eu",
"sa",
"as",
"oc"
],
"default": "UNKNOWN"
},
"ClientRequestQueueIpListAccessCodeEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"allow",
"deny"
],
"default": "UNKNOWN"
},
"ContentDispositionByHeaderDefaultTypeEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"attachment",
"inline"
],
"default": "UNKNOWN"
},
"CreateSiteRequestTypeEnum": {
"type": "string",
"enum": [
"CDN",
"WAF",
"API"
],
"default": "CDN",
"description": "The CDN site's type\n\nA site's type determines how StackPath delivers content to incoming HTTP(S) requests.\n\n - CDN: The site is a CDN only site\n - WAF: The site is either a standalone WAF site or a WAF site with attached CDN service\n - API: The site is an API delivery site. API delivery sites are powered by both the WAF and CDN and have custom rulesets for each."
},
"DnsOverrideTypeEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"A",
"AAAA",
"CNAME"
],
"default": "UNKNOWN"
},
"FileSegmentationInitialOriginRequestBehaviorEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"range",
"full"
],
"default": "UNKNOWN"
},
"GetCDNIPsRequestIPFilter": {
"type": "string",
"enum": [
"ALL",
"IPV4",
"IPV6"
],
"default": "ALL",
"description": "The kinds of IP addresses that can be retrieved\n\n- ALL: Retrieve all IP address types\n - IPV4: Retrieve only IPv4 addresses\n - IPV6: Retrieve only IPv6 addresses"
},
"GetCDNIPsRequestResponseType": {
"type": "string",
"enum": [
"JSON",
"PLAIN_TEXT"
],
"default": "JSON",
"description": "The response formats that can be retrieved\n\n- JSON: Return a JSON serialized response\n - PLAIN_TEXT: Return a plain text response with one IP address on each line"
},
"GetMetricsRequestMetricsGranularity": {
"type": "string",
"enum": [
"AUTO",
"P1M",
"PT5M",
"PT1H",
"P1D"
],
"default": "AUTO",
"description": "The time intervals that metrics can be rounded to\n\n- AUTO: StackPath will choose the granularity based on start and end dates\n - P1M: Retrieve metrics per month\n - PT5M: Retrieve metrics per five minute intervals\n - PT1H: Retrieve metrics per hour\n - P1D: Retrieve metrics per day"
},
"GetMetricsRequestMetricsGroupBy": {
"type": "string",
"enum": [
"NONE",
"ACCOUNT",
"SITE",
"PLATFORM",
"POP",
"REGION"
],
"default": "NONE",
"description": "Fields that metrics can be grouped to\n\n- NONE: Don't group metrics\n - ACCOUNT: Group metrics by StackPath account\n - SITE: Group metrics by site\n - PLATFORM: Group metrics by scope billing platform\n - POP: Group metrics by StackPath point of presence\n - REGION: Group metrics by geographical region"
},
"GetMetricsRequestSiteTypeFilter": {
"type": "string",
"enum": [
"ALL",
"CDN",
"WAF",
"API",
"EDGE_ENGINE",
"SERVERLESS_EDGE_ENGINE"
],
"default": "ALL",
"description": "The different kind of sites that metrics can be retrieved for\n\n- ALL: Retrieve metrics for all site types\n - CDN: Retrieve metrics for CDN sites only\n - WAF: Retrieve metrics for WAF sites only\n - API: Retrieve metrics for API sites only\n - EDGE_ENGINE: DEPRECATED: Retrieve metrics for sites with serverless scripts only\n - SERVERLESS_EDGE_ENGINE: Retrieve metrics for sites with serverless scripts only"
},
"GetMetricsResponseMetricSample": {
"type": "object",
"properties": {
"values": {
"type": "array",
"items": {
"type": "number",
"format": "double"
},
"description": "An individual data point"
}
},
"description": "The data points associated with a series of metrics"
},
"GetMetricsResponseMetricSeries": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "The type of data in the analytics set"
},
"key": {
"type": "string",
"description": "A graphable key for the type of data in the analytics set"
},
"metrics": {
"type": "array",
"items": {
"type": "string"
},
"description": "Descriptions of the CDN metrics' samples"
},
"samples": {
"type": "array",
"items": {
"$ref": "#/components/schemas/GetMetricsResponseMetricSample"
},
"description": "The CDN metrics' data points"
}
},
"description": "A series of analytics data suitable for a graph"
},
"HashTypeClassEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"HOST",
"MEDIA"
],
"default": "UNKNOWN"
},
"MidTierCachingRequestFormatEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"internal",
"external"
],
"default": "UNKNOWN"
},
"OriginPullDefaultBehaviorEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"dedup",
"nocache",
"nostore"
],
"default": "UNKNOWN"
},
"OriginPullPolicyDefaultCacheBehaviorEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"bypass",
"ttl"
],
"default": "UNKNOWN"
},
"OriginPullPolicyExpirePolicyEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"CACHE_CONTROL",
"INGEST",
"LAST_MODIFY",
"NEVER_EXPIRE",
"DO_NOT_CACHE"
],
"default": "UNKNOWN"
},
"OriginPullPolicyNoCacheBehaviorEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"legacy",
"spec"
],
"default": "UNKNOWN"
},
"OriginPullRedirectActionEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"follow",
"proxy"
],
"default": "UNKNOWN"
},
"OriginPullResumeDownloadEtagValidationEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"DO_NOT_USE",
"OPTIONAL",
"REQUIRED"
],
"default": "UNKNOWN"
},
"OriginPullShieldBehaviorEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"redirect",
"tlb"
],
"default": "UNKNOWN"
},
"OriginPullShieldPermissibleShieldInternalErrorsEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"NONE",
"CONNECTION_ONLY",
"WRITE_ONLY",
"WRITE_READ",
"ALL"
],
"default": "UNKNOWN"
},
"PurgeContentRequestItem": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The URL at which to delete content"
},
"recursive": {
"type": "boolean",
"format": "boolean",
"description": "Whether or not to recursively delete content from the CDN"
},
"invalidateOnly": {
"type": "boolean",
"format": "boolean",
"description": "Whether or not to mark the asset as expired and re-validate instead of deleting"
},
"purgeAllDynamic": {
"type": "boolean",
"format": "boolean",
"description": "Whether or not to purge dynamic versions of assets\n\nThis is ignored if recursive is true."
},
"headers": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of HTTP request headers used to construct a cache key to purge content by. These headers must be configured in the site configuration's _DynamicContent.headerFields_ property."
},
"purgeSelector": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PurgeContentRequestPurgeSelector"
},
"description": "A key/value pair definition of content to purge from the CDN"
}
},
"title": ""
},
"PurgeContentRequestPurgeSelector": {
"type": "object",
"properties": {
"selectorType": {
"$ref": "#/components/schemas/PurgeContentRequestPurgeSelectorType"
},
"selectorName": {
"type": "string",
"description": "The name of the type of content to purge\n\nFor example, the name of the HTTP response header. Names are case sensitive."
},
"selectorValue": {
"type": "string",
"description": "The value of the content to purge\n\nFor example, the value of the HTTP response header. Values are case sensitive and may be wild-carded, but cannot match a \"/\"."
},
"selectorValueDelimiter": {
"type": "string",
"description": "The delimiter to separate multiple values with\n\nDefaults to \",\"."
}
},
"description": "A key/value pair definition of content to purge from the CDN"
},
"PurgeContentRequestPurgeSelectorType": {
"type": "string",
"enum": [
"HEADER",
"TAG"
],
"default": "HEADER",
"description": "The kinds of content that can be purged from the CDN\n\n- HEADER: Purge content based on an HTTP response header\n - TAG: Purge content based on an X-TAG HTTP header value. Purging by tag can be useful when content on the origin is tagged."
},
"RequestFilterUrlInputEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"FULL_URL",
"FULL_FILE_PATH",
"FULL_FILE_PATH_LEGACY"
],
"default": "UNKNOWN"
},
"ScanOriginResponseOriginScanSSLDetails": {
"type": "object",
"properties": {
"valid": {
"type": "boolean",
"format": "boolean",
"description": "Whether or not the scanned domain has a valid SSL certificate"
},
"error": {
"type": "string",
"description": "Errors encountered processing HTTPS requests to the scanned domain"
}
},
"description": "SSL details in an origin scan response"
},
"SiteTypeValue": {
"type": "string",
"enum": [
"UNKNOWN",
"CDN",
"WAF",
"API"
],
"default": "UNKNOWN",
"description": "A CDN site's type\n\nA site's type determines how StackPath delivers content to incoming HTTP(S) requests.\n\n - UNKNOWN: StackPath is unable to determine a site's type\n - CDN: A site is CDN only site\n - WAF: A site is either a standalone WAF site or a WAF site with attached CDN service\n - API: A site is an API delivery site. API delivery sites are powered by both the WAF and CDN and have custom rulesets for each."
},
"TlsMinVersionEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"TLSv1_0",
"TLSv1_1",
"TLSv1_2"
],
"default": "UNKNOWN"
},
"VaryHeaderFieldProxyBehaviorEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"whole",
"filtered",
"none"
],
"default": "UNKNOWN"
},
"apiStatus": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32"
},
"error": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"$ref": "#/components/schemas/apiStatusDetail"
}
}
}
},
"apiStatusDetail": {
"type": "object",
"properties": {
"@type": {
"type": "string"
}
},
"required": [
"@type"
],
"discriminator": {
"propertyName": "@type"
}
},
"cdnCertificate": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "A certificate's unique ID"
},
"fingerprint": {
"type": "string",
"description": "A unique hash of a certificate's contents"
},
"commonName": {
"type": "string",
"description": "A certificate's common name, or the primary domain name the certificate is used for"
},
"issuer": {
"type": "string",
"description": "The name of the certificate's issuing certificate authority"
},
"caBundle": {
"type": "string",
"description": "A PEM PKCS #7 formatted certificate authority bundle"
},
"trusted": {
"type": "boolean",
"format": "boolean",
"description": "Whether or not the certificate's authority is trusted by a web browser"
},
"expirationDate": {
"type": "string",
"format": "date-time",
"description": "The date an SSL certificate will expire"
},
"createDate": {
"type": "string",
"format": "date-time",
"description": "The date an SSL certificate was created"
},
"updateDate": {
"type": "string",
"format": "date-time",
"description": "The date an SSL certificate was last updated"
},
"subjectAlternativeNames": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of Subject Alternative Names in the certificate\n\nCertificates for multiple domains define their domains in certificate's SAN list."
},
"status": {
"$ref": "#/components/schemas/cdnCertificateStatus"
},
"providerManaged": {
"type": "boolean",
"format": "boolean",
"description": "Whether a certificate is managed by StackPath or the end user"
}
},
"description": "An SSL certificate"
},
"cdnCertificateStatus": {
"type": "string",
"enum": [
"UNKNOWN",
"PENDING",
"EXPIRED",
"FAILED",
"PENDING_VERIFICATION",
"ACTIVE",
"INACTIVE"
],
"default": "UNKNOWN",
"description": "A StackPath-provided certificate's status\n\n- UNKNOWN: StackPath is unable to determine the certificate's status. This is the default status for end-user provided certificates.\n - PENDING: The certificate is provisioning\n - EXPIRED: The certificate has expired\n - FAILED: The certificate failed to provision\n - PENDING_VERIFICATION: The certificate is pending domain verification by the end user\n - ACTIVE: The certificate is valid and is in use by one or more hosts\n - INACTIVE: The certificate is valid but is not in use by any hosts"
},
"cdnCertificateVerificationMethod": {
"type": "string",
"enum": [
"DNS",
"HTTP"
],
"default": "DNS",
"description": "The Certificate Verification Method\n\nVerification method used to validate a requested certificate on a site\n\n - DNS: Verify a certificate using DNS records\n - HTTP: Verify a certificate by using HTTP validation. This will require all hosts in the certificate point to the site's stackpathcdn.com delivery domain or IP address"
},
"cdnConnectScopeToOriginRequest": {
"type": "object",
"properties": {
"origin": {
"$ref": "#/components/schemas/cdnConnectScopeToOriginRequestOrigin"
},
"priority": {
"type": "integer",
"format": "int32",
"description": "The origin's priority to the scope\n\nIf a CDN scope is powered by more than one origin, then the one with the lower priority number takes higher precedence."
},
"originId": {
"type": "string",
"description": "The ID of an existing origin to associate with a scope\n\nThis is useful for connecting to a shared origin."
}
},
"title": ""
},
"cdnConnectScopeToOriginRequestOrigin": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "The origin's path\n\nPaths default to \"/\""
},
"hostname": {
"type": "string",
"description": "The origin's hostname or IP address"
},
"port": {
"type": "integer",
"format": "int32",
"description": "The HTTP port to connect to the origin"
},
"securePort": {
"type": "integer",
"format": "int32",
"description": "The HTTPS port to connect to the origin"
}
},
"description": "A new origin"
},
"cdnConnectScopeToOriginResponse": {
"type": "object",
"properties": {
"scopeOrigin": {
"$ref": "#/components/schemas/cdnScopeOrigin"
}
},
"description": "The response from a request to associate an origin with a CDN site scope"
},
"cdnConnectSiteToCertificateResponse": {
"type": "object",
"properties": {
"siteCertificate": {
"$ref": "#/components/schemas/cdnSiteCertificate"
}
},
"description": "The response to a request to associate an SSL certificate with a CDN site"
},
"cdnCreateCertificateRequest": {
"type": "object",
"properties": {
"certificate": {
"type": "string",
"description": "A PEM PKCS #7 formatted SSL certificate"
},
"key": {
"type": "string",
"description": "A PEM PKCS #7 formatted private key\n\nPrivate keys are sent directly to the edge nodes and are not stored elsewhere on StackPath's systems."
},
"caBundle": {
"type": "string",
"description": "A PEM PKCS #7 formatted certificate authority bundle"
}
},
"title": ""
},
"cdnCreateCertificateResponse": {
"type": "object",
"properties": {
"certificate": {
"$ref": "#/components/schemas/cdnCertificate"
}
},
"description": "The response from a request to add an SSL certificate to a stack"
},
"cdnCreateScopeHostnameRequest": {
"type": "object",
"properties": {
"domain": {
"type": "string",
"description": "The hostname to add to a scope"
},
"disableTransparentMode": {
"type": "boolean",
"format": "boolean",
"description": "Whether or not to add the hostname to a CDN site's CDN scope or its WAF scope\n\nWhen true, this call adds the hostname to a CDN site's scope instead of loading from a CDN site's WAF scope, if the site has WAF service."
}
},
"title": ""
},
"cdnCreateScopeHostnameResponse": {
"type": "object",
"properties": {
"hostname": {
"$ref": "#/components/schemas/cdnHostname"
}
},
"description": "The response from a request to add a hostname to a CDN site scope"
},
"cdnCreateScopeRequest": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "The HTTP request path the scope should respond to"
},
"platform": {
"type": "string",
"description": "The StackPath billing platform to create the scope on"
}
},
"title": ""
},
"cdnCreateScopeResponse": {
"type": "object",
"properties": {
"scope": {
"$ref": "#/components/schemas/cdnScope"
}
},
"description": "The response from a request to create a CDN site scope"
},
"cdnCreateScopeRuleRequest": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the new EdgeRule"
},
"slug": {
"type": "string",
"description": "A programmatic name of the new EdgeRule"
},
"configuration": {
"$ref": "#/components/schemas/custconfConfiguration"
}
},
"title": ""
},
"cdnCreateScopeRuleResponse": {
"type": "object",
"properties": {
"rule": {
"$ref": "#/components/schemas/cdnScopeRule"
},
"configuration": {
"$ref": "#/components/schemas/custconfConfiguration"
}
},
"description": "The response from a request to create a new EdgeRule"
},
"cdnCreateSiteRequest": {
"type": "object",
"properties": {
"domain": {
"type": "string",
"description": "The new CDN site's name, typically the domain name of the site"
},
"origin": {
"$ref": "#/components/schemas/cdnCreateSiteRequestOrigin"
},
"features": {
"type": "array",
"items": {
"$ref": "#/components/schemas/cdnCreateSiteRequestFeature"
},
"description": "The new CDN site's associated features"
},
"type": {
"$ref": "#/components/schemas/CreateSiteRequestTypeEnum"
},
"configuration": {
"$ref": "#/components/schemas/custconfConfiguration"
}
},
"title": ""
},
"cdnCreateSiteRequestFeature": {
"type": "string",
"enum": [
"CDN",
"WAF"
],
"default": "CDN",
"description": "The features available to the new CDN site\n\nMultiple products can served on a single CDN site. Features control how those products are managed on the StackPath backend.\n\n - CDN: The site will have CDN caching abilities\n - WAF: The site is protected by the StackPath Web Application Firewall"
},
"cdnCreateSiteRequestOrigin": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "The origin's path\n\nPaths default to \"/\""
},
"hostname": {
"type": "string",
"description": "The origin's hostname or IP address"
},
"port": {
"type": "integer",
"format": "int32",
"description": "The HTTP port to connect to the origin"
},
"securePort": {
"type": "integer",
"format": "int32",
"description": "The HTTPS port to connect to the origin"
}
},
"description": "The new site's origin"
},
"cdnCreateSiteResponse": {
"type": "object",
"properties": {
"site": {
"$ref": "#/components/schemas/cdnSite"
}
},
"description": "The response from a request to create a new CDN site"
},
"cdnCreateSiteScriptRequest": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the new serverless script"
},
"code": {
"type": "string",
"format": "byte",
"description": "The contents of the new serverless script"
},
"paths": {
"type": "array",
"items": {
"type": "string"
},
"description": "The HTTP request paths that are handled by the new serverless script"
}
},
"title": ""
},
"cdnCreateSiteScriptResponse": {
"type": "object",
"properties": {
"script": {
"$ref": "#/components/schemas/cdnSiteScript"
}
},
"description": "The response from a request to create a new EdgeEngine script"
},
"cdnDnsRecord": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the network node to which a zone resource record pertains\n\nUse the value \"@\" to denote current root domain name."
},
"type": {
"type": "string",
"description": "A zone record's type\n\nZone record types describe the zone record's behavior. For instance, a zone record's type can say that the record is a name to IP address value, a name alias, or which mail exchanger is responsible for the domain. See https://support.stackpath.com/hc/en-us/articles/360001085563-What-DNS-record-types-does-StackPath-support for more information."
},
"class": {
"type": "string",
"description": "A zone record's class code\n\nThis is typically \"IN\" for Internet related resource records."
},
"ttl": {
"type": "integer",
"format": "int32",
"description": "A zone record's time to live\n\nA record's TTL is the number of seconds that the record should be cached by DNS resolvers. Use lower TTL values if you expect zone records to change often. Use higher TTL values for records that won't change to prevent extra DNS lookups by clients."
},
"data": {
"type": "string",
"description": "A zone record's value\n\nExpected data formats can vary depending on the zone record's type."
}
},
"description": "A DNS record\n\nA dns record describes an individual piece of DNS functionality in a DNS zone."
},
"cdnDnsVerificationDetails": {
"type": "object",
"properties": {
"dnsRecords": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of DNS records that will validate domain ownership"
},
"records": {
"type": "array",
"items": {
"$ref": "#/components/schemas/cdnDnsRecord"
},
"description": "A list of parsed dns records required for SSL verification"
}
},
"description": "DNS-based domain ownership verification details"
},
"cdnGetCDNIPsResponse": {
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "string"
},
"description": "The requested IP addresses"
}
},
"description": "The response from a request to retrieve IP addresses used by the StackPath edge network"
},
"cdnGetCertificateResponse": {
"type": "object",
"properties": {
"certificate": {
"$ref": "#/components/schemas/cdnCertificate"
}
},
"description": "The response from a request to retrieve an individual SSL certificate on a stack"
},
"cdnGetCertificateSitesResponse": {
"type": "object",
"properties": {
"pageInfo": {
"$ref": "#/components/schemas/paginationPageInfo"
},
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/cdnSite"
},
"description": "The requested CDN sites"
}
},
"description": "The response from a request to retrieve CDN sites associated with an SSL certificate"
},
"cdnGetCertificateVerificationDetailsResponse": {
"type": "object",
"properties": {
"manualVerificationRequired": {
"type": "boolean",
"format": "boolean",
"description": "Whether or not the end user must provide their own certificate verification"
},
"verificationRequirements": {
"type": "array",
"items": {
"$ref": "#/components/schemas/cdnVerificationRequirements"
},
"description": "An SSL certificate's verification requirements"
}
},
"description": "The response from a request to retrieve an SSL certificate's manual verification details"
},
"cdnGetCertificatesResponse": {
"type": "object",
"properties": {
"pageInfo": {
"$ref": "#/components/schemas/paginationPageInfo"
},
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/cdnCertificate"
},
"description": "The requested SSL certificates"
}
},
"description": "The response from a request to retrieve a stack's SSL certificates"
},
"cdnGetClosestPopsResponse": {
"type": "object",
"properties": {
"result": {
"type": "array",
"items": {
"$ref": "#/components/schemas/cdnPopScanReport"
},
"description": "Results of the scan"
}
},
"description": "The response from a request to scan a URL from the StackPath edge network"
},
"cdnGetMetricsResponse": {
"type": "object",
"properties": {
"series": {
"type": "array",
"items": {
"$ref": "#/components/schemas/GetMetricsResponseMetricSeries"
},
"description": "The requested CDN metrics"
}
},
"description": "The response from a request to retrieve CDN metrics from a stack"
},
"cdnGetOriginResponse": {
"type": "object",
"properties": {
"origin": {
"$ref": "#/components/schemas/schemacdnOrigin"
}
},
"description": "The response from a request to retrieve an individual origin"
},
"cdnGetOriginsResponse": {
"type": "object",
"properties": {
"pageInfo": {
"$ref": "#/components/schemas/paginationPageInfo"
},
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/schemacdnOrigin"
},
"description": "The requested origins"
}
},
"description": "The response from a request to retrieve all origins on a stack"
},
"cdnGetPopsResponse": {
"type": "object",
"properties": {
"pageInfo": {
"$ref": "#/components/schemas/paginationPageInfo"
},
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/cdnPop"
},
"description": "The requested StackPath points of presence"
}
},
"description": "The response from a request to retrieve the StackPath's points of presence"
},
"cdnGetPurgeStatusResponse": {
"type": "object",
"properties": {
"progress": {
"type": "number",
"format": "float",
"description": "The purge request's progress, ranging from 0.0 to 1.0"
}
},
"description": "The response from a request to retrieve the status of a purge request"
},
"cdnGetScopeConfigurationResponse": {
"type": "object",
"properties": {
"configuration": {
"$ref": "#/components/schemas/custconfConfiguration"
}
},
"description": "The response from a request to retrieve a CDN site scope's configuration"
},
"cdnGetScopeHostnamesResponse": {
"type": "object",
"properties": {
"pageInfo": {
"$ref": "#/components/schemas/paginationPageInfo"
},
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/cdnHostname"
},
"description": "The requested scope hostnames"
}
},
"description": "The response from a request to retrieve a CDN site scope's associated hostnames"
},
"cdnGetScopeOriginsResponse": {
"type": "object",
"properties": {
"pageInfo": {
"$ref": "#/components/schemas/paginationPageInfo"
},
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/cdnScopeOrigin"
},
"description": "The requested scope's origins"
}
},
"description": "The response from a request to retrieve a CDN site scope's origins"
},
"cdnGetScopeRuleConfigurationResponse": {
"type": "object",
"properties": {
"configuration": {
"$ref": "#/components/schemas/custconfConfiguration"
}
},
"description": "The response from a request to retrieve an EdgeRule's configuration"
},
"cdnGetScopeRuleResponse": {
"type": "object",
"properties": {
"rule": {
"$ref": "#/components/schemas/cdnScopeRule"
}
},
"description": "The response from a request to retrieve an individual EdgeRule"
},
"cdnGetScopeRulesResponse": {
"type": "object",
"properties": {
"pageInfo": {
"$ref": "#/components/schemas/paginationPageInfo"
},
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/cdnScopeRule"
},
"description": "The requested EdgeRules"
}
},
"description": "The response from request to retrieve the EdgeRules on a CDN site's scope"
},
"cdnGetSiteCertificatesResponse": {
"type": "object",
"properties": {
"pageInfo": {
"$ref": "#/components/schemas/paginationPageInfo"
},
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/cdnSiteCertificate"
},
"description": "The requested SSL certificates"
}
},
"description": "The response from a request to retrieve a CDN site's SSL certificates"
},
"cdnGetSiteDnsTargetsResponse": {
"type": "object",
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "The requested DNS CNAME targets\n\nA site's hostname should point to these CNAME targets in order for traffic to be sent through StackPath's edge nodes."
}
},
"description": "The response from a request to retrieve a CDN site's DNS CNAME targets"
},
"cdnGetSiteResponse": {
"type": "object",
"properties": {
"site": {
"$ref": "#/components/schemas/cdnSite"
}
},
"description": "The response from a request to retrieve an individual CDN site"
},
"cdnGetSiteScopesResponse": {
"type": "object",
"properties": {
"pageInfo": {
"$ref": "#/components/schemas/paginationPageInfo"
},
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/cdnScope"
},
"description": "The requested scopes"
}
},
"description": "The response from request to a CDN site's scopes"
},
"cdnGetSiteScriptResponse": {
"type": "object",
"properties": {
"script": {
"$ref": "#/components/schemas/cdnSiteScript"
}
},
"description": "The result from a request to retrieve an EdgeEngine script"
},
"cdnGetSiteScriptsResponse": {
"type": "object",
"properties": {
"pageInfo": {
"$ref": "#/components/schemas/paginationPageInfo"
},
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/cdnSiteScript"
},
"description": "The requested serverless scripts"
}
},
"description": "The result from a request to retrieve all EdgeEngine scripts on a CDN site"
},
"cdnGetSitesResponse": {
"type": "object",
"properties": {
"pageInfo": {
"$ref": "#/components/schemas/paginationPageInfo"
},
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/cdnSite"
},
"description": "The requested CDN sites"
}
},
"description": "The response from a request to retrieve all CDN sites on a stack"
},
"cdnHostname": {
"type": "object",
"properties": {
"domain": {
"type": "string",
"description": "A host's domain name"
}
},
"description": "An individual hostname"
},
"cdnHttpVerificationDetails": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "Path to the verification file"
},
"contentType": {
"type": "string",
"description": "Response content type"
},
"body": {
"type": "string",
"description": "Body content of response"
}
},
"description": "HTTP-based domain ownership verification details"
},
"cdnPop": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "A StackPath POP's IATA formatted location code"
},
"name": {
"type": "string",
"description": "A StackPath POP's name"
},
"latitude": {
"type": "number",
"format": "float",
"description": "A StackPath POP's latitude coordinates"
},
"longitude": {
"type": "number",
"format": "float",
"description": "A StackPath POP's longitude coordinates"
}
},
"description": "A point of presence responsible for serving content to a geographic location\n\nPOPs contain edge nodes responsible for CDN, WAF, monitoring, and all other StackPath product offerings."
},
"cdnPopScanReport": {
"type": "object",
"properties": {
"popCode": {
"type": "string",
"description": "The IATA formatted location code of the StackPath POP that produced a scan report"
},
"connectMs": {
"type": "number",
"format": "float",
"description": "The amount of time in milliseconds that a POP scan took to perform an initial connection handshake"
},
"dnsMs": {
"type": "number",
"format": "float",
"description": "The amount of time in milliseconds that a POP scan took to resolve the target's DNS entry"
},
"downloadMs": {
"type": "number",
"format": "float",
"description": "The amount of time in milliseconds that a POP scan took to download the target's contents"
},
"firstByteMs": {
"type": "number",
"format": "float",
"description": "The amount of time in milliseconds that a POP scan took from initial connection to starting to receive the target's contents"
},
"sslMs": {
"type": "number",
"format": "float",
"description": "The amount of time in milliseconds that a POP scan took to perform an SSL handshake"
},
"totalMs": {
"type": "number",
"format": "float",
"description": "The total amount of time in milliseconds that a POP scan took to complete"
}
},
"description": "The result of a network scan from a StackPath point of presence to a origin"
},
"cdnPurgeContentRequest": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PurgeContentRequestItem"
},
"description": "The items to purge from the CDN"
}
},
"title": ""
},
"cdnPurgeContentResponse": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The purge request's ID\n\nUse this ID to request completion of the purge request."
}
},
"description": "The response from a request to purge content from the CDN"
},
"cdnRequestCertificateRequest": {
"type": "object",
"properties": {
"hosts": {
"type": "array",
"items": {
"type": "string"
},
"description": "An optional list of delivery domains that will be included as subject alternative names on the certificate\n\nIf no hosts are provided, all delivery domains on the site will be included with the first one in the list being used as the common name. If hosts are provided, the first entry will be used as the common name.\n\nAll entries in the list are validated against the existing delivery domains for the provided site."
},
"verificationMethod": {
"$ref": "#/components/schemas/cdnCertificateVerificationMethod"
}
},
"title": ""
},
"cdnRequestCertificateResponse": {
"type": "object",
"properties": {
"certificate": {
"$ref": "#/components/schemas/cdnCertificate"
},
"verificationRequirements": {
"type": "array",
"items": {
"$ref": "#/components/schemas/cdnVerificationRequirements"
},
"description": "The certificate's verification requirements"
}
},
"description": "The response from a request to provision an SSL certificate for a CDN site"
},
"cdnScanOriginRequest": {
"type": "object",
"properties": {
"domain": {
"type": "string",
"description": "The URL to scan"
}
},
"title": ""
},
"cdnScanOriginResponse": {
"type": "object",
"properties": {
"ipAddress": {
"type": "string",
"description": "The IP address that was scanned"
},
"hostname": {
"type": "string",
"description": "The hostname that was scanned"
},
"sslDetails": {
"$ref": "#/components/schemas/ScanOriginResponseOriginScanSSLDetails"
},
"domainInUse": {
"type": "boolean",
"format": "boolean",
"description": "Whether or not the scanned domain is already in use on the StackPath platform"
}
},
"description": "The response from a request to scan a URL from the StackPath edge network"
},
"cdnScope": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "A CDN site scope's unique identifier"
},
"platform": {
"type": "string",
"description": "A CDN site scope's platform\n\nScope platforms are used internally by StackPath for metrics collection and billing purposes. Typically, most site scope platforms have the value \"CDS\"."
},
"path": {
"type": "string",
"description": "The HTTP request path that is handled by a scope"
}
},
"description": "A CDN site scope\n\nScopes hold a CDN site's configuration. Every site has at least one \"root\" scope that handles primary configuration."
},
"cdnScopeOrigin": {
"type": "object",
"properties": {
"priority": {
"type": "integer",
"format": "int32",
"description": "An origin's priority to it's CDN site scope\n\nIf a CDN scope is powered by more than one origin, then the one with the lower priority number takes higher precedence."
},
"origin": {
"$ref": "#/components/schemas/schemacdnOrigin"
}
},
"description": "A relationship between a CDN site's configuration scope and an origin"
},
"cdnScopeRule": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "An EdgeRule's unique identifier"
},
"name": {
"type": "string",
"description": "An EdgeRule's name"
},
"slug": {
"type": "string",
"description": "A human and machine readable name for an EdgeRule"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "The date an EdgeRule was created"
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "The date an EdgeRule was last updated"
}
},
"description": "A EdgeRule associated with a CDN site\n\nEdgeRules can modify incoming HTTP requests to a CDN site before they're sent to the origin."
},
"cdnSite": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "A CDN site's unique identifier"
},
"stackId": {
"type": "string",
"description": "The ID of the stack to which a CDN site belongs"
},
"label": {
"type": "string",
"description": "A CDN site's name\n\nSite names correspond to their fully-qualified domain name."
},
"status": {
"type": "string",
"description": "A CDN site's internal state\n\nSite status is controlled by StackPath as sites are provisioned and managed by StackPath's accounting and security teams."
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "The date that a CDN site was created"
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "The date that a CDN site was last updated"
},
"features": {
"type": "array",
"items": {
"$ref": "#/components/schemas/cdnSiteFeature"
},
"description": "A CDN site's associated features\n\nFeatures control how StackPath provisions and configures a site."
},
"enabled": {
"type": "boolean",
"format": "boolean",
"description": "Whether or not a site's CDN service is enabled"
},
"type": {
"$ref": "#/components/schemas/SiteTypeValue"
}
},
"description": "A CDN site"
},
"cdnSiteCertificate": {
"type": "object",
"properties": {
"valid": {
"type": "boolean",
"format": "boolean",
"description": "Whether or not a site's SSL certificate is valid\n\nAn SSL certificate is valid when a hostname associated with the site is covered by the certificate."
},
"certificate": {
"$ref": "#/components/schemas/cdnCertificate"
}
},
"description": "An SSL certificate and its relationship with its associated site"
},
"cdnSiteFeature": {
"type": "string",
"enum": [
"UNKNOWN",
"CDN",
"WAF"
],
"default": "UNKNOWN",
"description": "The features available to CDN sites\n\nMultiple products can be served on a single CDN site. Features control how those products are managed on the StackPath backend.\n\n - UNKNOWN: StackPath is unable to determine a site's feature\n - CDN: A site has CDN caching abilities\n - WAF: A site is protected by the StackPath Web Application Firewall"
},
"cdnSiteScript": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "A serverless script's unique identifier"
},
"stackId": {
"type": "string",
"description": "The ID of the stack to which a serverless script's site belongs"
},
"siteId": {
"type": "string",
"description": "The ID of the site to which a serverless script belongs"
},
"name": {
"type": "string",
"description": "A serverless script's name"
},
"version": {
"type": "string",
"description": "A serverless script's version number\n\nVersion numbers start at 1 and are incremented every time the script is updated."
},
"code": {
"type": "string",
"format": "byte",
"description": "The contents of a serverless script"
},
"paths": {
"type": "array",
"items": {
"type": "string"
},
"description": "The URL paths that incoming requests should answer with a serverless script\n\nEvery serverless script needs at least one path, and paths must be unique."
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "The date a serverless script was created"
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "The date a serverless script was last updated"
}
},
"description": "A serverless script\n\nServerless scripts are hosted and executed on StackPath's edge nodes."
},
"cdnUpdateCertificateRequest": {
"type": "object",
"properties": {
"certificate": {
"type": "string",
"description": "A PEM PKCS #7 formatted SSL certificate"
},
"key": {
"type": "string",
"description": "A PEM PKCS #7 formatted private key\n\nPrivate keys are sent directly to the edge nodes and are not stored elsewhere on StackPath's systems."
},
"caBundle": {
"type": "string",
"description": "A PEM PKCS #7 formatted certificate authority bundle"
}
},
"title": ""
},
"cdnUpdateCertificateResponse": {
"type": "object",
"properties": {
"certificate": {
"$ref": "#/components/schemas/cdnCertificate"
}
},
"description": "The response from a request to update an SSL certificate"
},
"cdnUpdateOriginRequest": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "The origin's new HTTP request path"
},
"hostname": {
"type": "string",
"description": "The origin's new HTTP request hostname"
},
"port": {
"type": "integer",
"format": "int32",
"description": "The origin's new HTTP request port\n\nSet this to 0 to remove this value"
},
"securePort": {
"type": "integer",
"format": "int32",
"description": "The origin's new HTTPS request port\n\nSet this to 0 to remove this value"
}
},
"title": ""
},
"cdnUpdateOriginResponse": {
"type": "object",
"properties": {
"origin": {
"$ref": "#/components/schemas/schemacdnOrigin"
}
},
"description": "The response from a request to update an origin"
},
"cdnUpdateScopeConfigurationRequest": {
"type": "object",
"properties": {
"configuration": {
"$ref": "#/components/schemas/custconfConfiguration"
}
},
"title": ""
},
"cdnUpdateScopeConfigurationResponse": {
"type": "object",
"properties": {
"configuration": {
"$ref": "#/components/schemas/custconfConfiguration"
}
},
"description": "The response from a request to update a CDN site scope's configuration"
},
"cdnUpdateScopeRuleConfigurationRequest": {
"type": "object",
"properties": {
"configuration": {
"$ref": "#/components/schemas/custconfConfiguration"
}
},
"title": ""
},
"cdnUpdateScopeRuleConfigurationResponse": {
"type": "object",
"properties": {
"configuration": {
"$ref": "#/components/schemas/custconfConfiguration"
}
},
"description": "The response request to update an EdgeRule's configuration"
},
"cdnUpdateSiteCertificateHostsRequest": {
"type": "object",
"properties": {
"hosts": {
"type": "array",
"items": {
"type": "string"
},
"description": "The SSL certificated common and SAN hosts"
}
},
"title": ""
},
"cdnUpdateSiteScriptRequest": {
"type": "object",
"properties": {
"code": {
"type": "string",
"format": "byte",
"description": "The new contents of the serverless script"
},
"paths": {
"type": "array",
"items": {
"type": "string"
},
"description": "The HTTP request paths that are handled by the serverless script"
}
},
"title": ""
},
"cdnUpdateSiteScriptResponse": {
"type": "object",
"properties": {
"script": {
"$ref": "#/components/schemas/cdnSiteScript"
}
},
"description": "The response from a request to update an EdgeEngine script"
},
"cdnVerificationRequirements": {
"type": "object",
"properties": {
"dnsVerificationDetails": {
"$ref": "#/components/schemas/cdnDnsVerificationDetails"
},
"httpVerificationDetails": {
"$ref": "#/components/schemas/cdnHttpVerificationDetails"
},
"verificationMethod": {
"$ref": "#/components/schemas/cdnCertificateVerificationMethod"
}
},
"description": "Conditions that must be met to verify ownership of a domain for SSL certificate provisioning"
},
"cdncustconfOrigin": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"host": {
"type": "string"
},
"originPullHeaders": {
"type": "string",
"description": "String of values delimited by a '|' character."
},
"originCacheHeaders": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAccessLogs": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "Enable/Disable access logs"
},
"custconfAccessLogsConfig": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"extraLogFields": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "Access log settings"
},
"custconfAuthACL": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"accessCode": {
"$ref": "#/components/schemas/AuthACLAccessCodeEnumWrapperValue"
},
"ipList": {
"type": "string",
"description": "String of values delimited by a ',' character. This is a list of IP addresses considered for this policy."
},
"protocol": {
"$ref": "#/components/schemas/custconfAuthACLProtocolEnumWrapperValue"
},
"clientIPSrc": {
"$ref": "#/components/schemas/AuthACLClientIPSrcEnumWrapperValue"
},
"header": {
"type": "string",
"description": "This allows you to specify the name of a HTTP request header which will contain the client IP address to use for this policy."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "IP address restrictions allow you to configure your CDN container to grant or deny a specific IP addresses or range of IP addresses from accessing content cached in a directory in your CDN container."
},
"custconfAuthACLProtocolEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"http",
"https",
"both"
],
"default": "UNKNOWN"
},
"custconfAuthGeo": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"code": {
"$ref": "#/components/schemas/AuthGeoCodeEnumWrapperValue"
},
"values": {
"type": "string",
"description": "String of values delimited by a ',' character. These are the region codes you are targeting for this policy. The values that can be supplied within this field are those that are supported by the MaxMind® GeoIP database."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "Geographic restrictions allow you to restrict content to end users in specific locations. The IP address of incoming requests is checked against a current list of IP allocations to countries and to states within the US. If an end user's IP address is not found in the list, they are allowed access to the content by default. The feature has both an Include and an Exclude list which are used to target the allowed audience."
},
"custconfAuthHttpBasic": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"bindingPoint": {
"type": "string",
"description": "This is a URL to a resource on the authentication server responsible for authentication of users."
},
"realm": {
"type": "string",
"description": "This is the authentication realm given back to the user on requests which do not contain the authentication credentials. Browsers typically display this value to the user when the login credentials are requested."
},
"ttl": {
"type": "number",
"format": "int64",
"description": "This is the number of seconds the authentication session will be cached by the browsers. After this time, browsers will be asked to present the user credentials again for re-authentication."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "HTTP basic authentication policies allow you to control access to your content by requiring the end user to enter a valid username and password before gaining access to content."
},
"custconfAuthReferer": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"referer": {
"type": "string",
"description": "String of values delimited by a '|' character. This is a list of domains authorized to access content from this path in the container. You may use wildcards to specify multiple websites hosted on the same domain."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "HTTP Referrer restriction policies allow you to limit access to your published CDN URLs based on the HTTP Referrer header submitted by the browser. This restriction policy prevents your content from being easily distributed on unauthorized websites (also known as hot linking or deep linking). Once this policy is applied to your CDN container, websites that are not listed in this policy will be denied access to the content cached at this location."
},
"custconfAuthUrlAsymmetricSignTlu": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"expireParameterName": {
"type": "string"
},
"keyIdParameterName": {
"type": "string"
},
"algorithmIdParameterName": {
"type": "string"
},
"digestParameterName": {
"type": "string"
},
"publicKeyIdMap": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"algorithmIdMap": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/custconfAuthUrlAsymmetricSignTluAlgorithmIdMapEnumWrapperValue"
}
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAuthUrlAsymmetricSignTluAlgorithmIdMapEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"hmacsha1",
"hmacsha256"
],
"default": "UNKNOWN"
},
"custconfAuthUrlSign": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"tokenField": {
"type": "string",
"description": "This is the name of the query string parameter that will be used by the publisher to specify the signature for the URL."
},
"ignoreFieldsAfterToken": {
"type": "boolean",
"format": "boolean",
"description": "Select this option if you want StackPath to exclude query string parameters specified after the passphrase in the validation process."
},
"passPhraseField": {
"type": "string",
"description": "This is the name of the query string parameter that contains the value of the secret. This query string parameter is only used during the generation and validation of a URL signature and should not be present in the published URL."
},
"passPhrase": {
"type": "string",
"description": "The shared secret used during the signing process. This value should only be known by StackPath and systems authorized to sign your content."
},
"expiresField": {
"type": "string",
"description": "This is the name of the query string parameter that contains the Epoch time after which the URL is considered invalid."
},
"ipAddressField": {
"type": "string",
"description": "This is a query string parameter that contains an IPv4 address to which the published URL will be restricted."
},
"uriLengthField": {
"type": "string",
"description": "This is a query string parameter used to limit the number of characters in the path that should be considered when validating the URL signature. This feature allows you to reuse the same signature on all assets stored in the same cache path. Setting this value to 0 will strip off the filename in the URL (leaving the trailing slash) when calculating the checksum."
},
"userAgentField": {
"type": "string",
"description": "This is a query string parameter used to restrict the published URL to a specific user agent. Publishers can use this feature during the signing process to ensure that only a specific user agent can access the published content. You do not need to specify the user agent on the published URL. StackPath will use the HTTP User-Agent header value during signature validation."
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "URL Signing policies allow you to restrict access to your content by configuring a \"shared secret\" with StackPath. This \"shared secret\" is used to apply an MD5 hashing algorithm on the URL to validate the signature supplied on the request. Since the \"shared secret\" is only known by the publisher and StackPath, URL signatures cannot be generated by unauthorized users."
},
"custconfAuthUrlSignAliCloudA": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"passPhrase": {
"type": "string"
},
"tokenField": {
"type": "string"
},
"includeParamsBeforeToken": {
"type": "boolean",
"format": "boolean"
},
"expirationExtension": {
"type": "number",
"format": "int64"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAuthUrlSignAliCloudB": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"passPhrase": {
"type": "string"
},
"expirationExtension": {
"type": "number",
"format": "int64"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAuthUrlSignAliCloudC": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"passPhrase": {
"type": "string"
},
"expirationExtension": {
"type": "number",
"format": "int64"
},
"tokenField": {
"type": "string"
},
"expireField": {
"type": "string"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAuthUrlSignHmacTlu": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"expireParameterName": {
"type": "string"
},
"keyIdParameterName": {
"type": "string"
},
"algorithmIdParameterName": {
"type": "string"
},
"digestParameterName": {
"type": "string"
},
"symmetricKeyIdMap": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"algorithmIdMap": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/custconfAuthUrlSignHmacTluAlgorithmIdMapEnumWrapperValue"
}
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAuthUrlSignHmacTluAlgorithmIdMapEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"hmacsha1",
"hmacsha256"
],
"default": "UNKNOWN"
},
"custconfAuthUrlSignIq": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"secretKey": {
"type": "string"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAwsSignedOriginPullV4": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"bucketIdentifier": {
"type": "string"
},
"accessKeyId": {
"type": "string"
},
"secretAccessKey": {
"type": "string"
},
"awsRegion": {
"type": "string"
},
"awsService": {
"type": "string"
},
"expireTimeSeconds": {
"type": "number",
"format": "int64"
},
"signedHeaders": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"authenticationType": {
"$ref": "#/components/schemas/custconfAwsSignedOriginPullV4AuthenticationTypeEnumWrapperValue"
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAwsSignedOriginPullV4AuthenticationTypeEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"query",
"header"
],
"default": "UNKNOWN"
},
"custconfAwsSignedS3PostV4": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"bucketIdentifier": {
"type": "string"
},
"accessKeyId": {
"type": "string"
},
"secretAccessKey": {
"type": "string"
},
"awsRegion": {
"type": "string"
},
"awsService": {
"type": "string"
},
"expireTimeSeconds": {
"type": "number",
"format": "int64"
},
"signedHeaders": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"authenticationType": {
"$ref": "#/components/schemas/custconfAwsSignedS3PostV4AuthenticationTypeEnumWrapperValue"
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAwsSignedS3PostV4AuthenticationTypeEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"query",
"header"
],
"default": "UNKNOWN"
},
"custconfBandWidthLimit": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"rule": {
"type": "string",
"description": "String of values delimited by a '|' character. These are pattern match rules to use for applying rate limiting on requests."
},
"values": {
"type": "string",
"description": "These are the initial bytes (ri) and the sustained rate (rs) query string parameters to use for this rule. Example: ri=100,rs=1000"
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The pattern based bandwidth throttling policy allows you to limit the transfer rate of assets to end users based on a set of rules matching the request's HTTP User-Agent and/or the path. Each rule must be expressed in the following format: <User-Agent Pattern>:<path pattern 1, path pattern 2>. For example, the pattern: \"Mozilla*:*.mp3,*dir*.exe|*IE*:*.jpg,*.zip|*ios 6*:* \" will match all MP3 files and EXE files containing the substring \"dir\" that are requested by a User-Agent containing the substring \"Mozilla,\" all JPG and ZIP files requested by a User-Agent containing the substring \"IE,\" and all requests made by User-Agents containing the substring \"ios 6.\""
},
"custconfBandwidthRateLimit": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"initialBurstName": {
"type": "string"
},
"sustainedRateName": {
"type": "string"
},
"initialBurstUnits": {
"$ref": "#/components/schemas/BandwidthRateLimitInitialBurstUnitsEnumWrapperValue"
},
"sustainedRateUnits": {
"$ref": "#/components/schemas/BandwidthRateLimitSustainedRateUnitsEnumWrapperValue"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfBypassCache": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"cookieFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "Bypass content caching on filter match"
},
"custconfCacheControl": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"statusCodeMatch": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"maxAge": {
"type": "integer",
"format": "int32",
"description": "The client TTL controls the lifetime of the asset in the browser's cache. The value entered here will be sent to the browser in the Cache-Control max-age directive for HTTP 1.1 clients and the Expires header for HTTP 1.0 clients."
},
"mustRevalidate": {
"type": "boolean",
"format": "boolean",
"description": "Selecting this option instructs the CDN caching servers to insert the must-revalidate directive on all HTTP responses sent to clients."
},
"synchronizeMaxAge": {
"type": "boolean",
"format": "boolean",
"description": "Selecting this option allows the CDN to synchronize the Max-Age header it sends to clients with the remaining TTL of the asset in the cache. This allows assets to expire from the browser cache at the same time they expire from the CDN."
},
"override": {
"type": "string",
"description": "This allows you to specify a custom Cache-Control header to be used by the CDN on all HTTP responses targeted by this policy. Note: Do not include the header name (Cache-Control) in this field. Only the value of the header should be specified."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The browser caching policy allows you to control the browser caching behavior of your assets independently from the CDN cache. For example, this policy allows you to set lower or higher TTLs for the browser than those of the CDN cache."
},
"custconfCacheKeyModification": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"normalizeKeyPathToLowerCase": {
"type": "boolean",
"format": "boolean",
"description": "When set, purges and requests for a file will be case insensitive. This setting is useful if you have a case insensitive origin server and would like to avoid duplicating assets."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The Cache Key Modification policy allows for manipulation of the way the cache uniquely stores assets."
},
"custconfClientRequestModification": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"urlPattern": {
"type": "string"
},
"urlRewrite": {
"type": "string"
},
"headerPattern": {
"type": "string"
},
"headerRewrite": {
"type": "string"
},
"addHeaders": {
"type": "string",
"description": "String of values delimited by a '|' character. This is the static HTTP header you want inserted into the CDN request. Start value with \"append:\", \"replace:\" or \"create:\" which defines if Header will be added, replaced or create if not exists. Default is append."
},
"flowControl": {
"$ref": "#/components/schemas/custconfClientRequestModificationFlowControlEnumWrapperValue"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"cookieFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfClientRequestModificationFlowControlEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"next",
"break"
],
"default": "UNKNOWN"
},
"custconfClientRequestQueueLogLevelEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"debug",
"info",
"warning",
"error",
"crit"
],
"default": "UNKNOWN"
},
"custconfClientResponseModification": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"statusCodeRewrite": {
"type": "number",
"format": "int64"
},
"headerPattern": {
"type": "string"
},
"headerRewrite": {
"type": "string"
},
"addHeaders": {
"type": "string",
"description": "String of values delimited by a '|' character. This is the static HTTP header you want inserted into the CDN response. Start value with \"append:\", \"replace:\" or \"create:\" which defines if Header will be added, replaced or create if not exists. Default is append."
},
"flowControl": {
"$ref": "#/components/schemas/custconfClientResponseModificationFlowControlEnumWrapperValue"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfClientResponseModificationFlowControlEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"next",
"break"
],
"default": "UNKNOWN"
},
"custconfClientResponseQueueLogLevelEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"debug",
"info",
"warning",
"error",
"crit"
],
"default": "UNKNOWN"
},
"custconfCompression": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"gzip": {
"type": "string",
"description": "String of values delimited by a ',' character. The list of file extensions you want the caching servers to use to identify the content you want compressed before delivering it to end users"
},
"mime": {
"type": "string",
"description": "String of values delimited by a ',' character. A list of rules based on MIME types you want the caching servers to use to identify content you want compressed before delivering it to end users."
},
"level": {
"type": "string"
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The compression policy allows you to provide a list of file extensions you want the CDN caching servers to automatically compress before delivering content to end users. This policy is typically used when your origin server does not support compression or you are unable to configure your origin to compress your files. If your origin is configured to already compress files, you should consider adding the Compressed Origin Pull policy to your host, which will enable the CDN caching server to request compressed (gzip) version of your assets. The compressed origin pull policy can be found in the Origin Pull policies list. Please note that our caching servers schedule the compression of files, and typically you do not see the compressed delivery until the file has been requested several times. Typically, this list is comprised of text files like javascript, html and CSS files. You should not include file extensions that match media files (images, videos, or audio files) or any other file format that includes a built in compression algorithm. Attempting to further compress these types of files usually results in a larger file being delivered to end users."
},
"custconfConfiguration": {
"type": "object",
"properties": {
"accessLogs": {
"$ref": "#/components/schemas/custconfAccessLogs"
},
"accessLogsConfig": {
"$ref": "#/components/schemas/custconfAccessLogsConfig"
},
"authACL": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfAuthACL"
},
"description": "IP address restrictions allow you to configure your CDN container to grant or deny a specific IP addresses or range of IP addresses from accessing content cached in a directory in your CDN container."
},
"authGeo": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfAuthGeo"
},
"description": "Geographic restrictions allow you to restrict content to end users in specific locations. The IP address of incoming requests is checked against a current list of IP allocations to countries and to states within the US. If an end user's IP address is not found in the list, they are allowed access to the content by default. The feature has both an Include and an Exclude list which are used to target the allowed audience."
},
"authHttpBasic": {
"$ref": "#/components/schemas/custconfAuthHttpBasic"
},
"authReferer": {
"$ref": "#/components/schemas/custconfAuthReferer"
},
"authUrlSign": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfAuthUrlSign"
},
"description": "URL Signing policies allow you to restrict access to your content by configuring a \"shared secret\" with StackPath. This \"shared secret\" is used to apply an MD5 hashing algorithm on the URL to validate the signature supplied on the request. Since the \"shared secret\" is only known by the publisher and StackPath, URL signatures cannot be generated by unauthorized users."
},
"authUrlSignAliCloudA": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfAuthUrlSignAliCloudA"
}
},
"authUrlSignAliCloudB": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfAuthUrlSignAliCloudB"
}
},
"authUrlSignAliCloudC": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfAuthUrlSignAliCloudC"
}
},
"authUrlSignHmacTlu": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfAuthUrlSignHmacTlu"
}
},
"authUrlSignIq": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfAuthUrlSignIq"
}
},
"authUrlAsymmetricSignTlu": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfAuthUrlAsymmetricSignTlu"
}
},
"bandWidthLimit": {
"$ref": "#/components/schemas/custconfBandWidthLimit"
},
"bandwidthRateLimit": {
"$ref": "#/components/schemas/custconfBandwidthRateLimit"
},
"bypassCache": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfBypassCache"
},
"description": "Bypass content caching on filter match"
},
"cacheControl": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfCacheControl"
},
"description": "The browser caching policy allows you to control the browser caching behavior of your assets independently from the CDN cache. For example, this policy allows you to set lower or higher TTLs for the browser than those of the CDN cache."
},
"cacheKeyModification": {
"$ref": "#/components/schemas/custconfCacheKeyModification"
},
"clientRequestModification": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfClientRequestModification"
}
},
"clientResponseModification": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfClientResponseModification"
}
},
"compression": {
"$ref": "#/components/schemas/custconfCompression"
},
"contentDispositionByURL": {
"$ref": "#/components/schemas/custconfContentDispositionByURL"
},
"contentDispositionByHeader": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfContentDispositionByHeader"
},
"description": "The content disposition by HTTP header match policy allows you to control the Content-Disposition delivered by the CDN using a pattern match against the value of any HTTP header present in the request. If you are using URL query string parameters to control the Content-Disposition header (using the Content Disposition by URL policy) then the Content-Disposition header generated by this policy will not be used on that specific request. A typical use case for this policy is to set a different Content-Disposition header based on the User-Agent in the request."
},
"customer": {
"$ref": "#/components/schemas/custconfCustomer"
},
"customHeader": {
"$ref": "#/components/schemas/custconfCustomHeader"
},
"customMimeType": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfCustomMimeType"
},
"description": "The custom mime type policy allows you to map file extensions to specific mime types for the CDN caching servers to use when delivering assets. The mime types you map using this policy may also be limited to specific response codes to address scenarios in which the mime type changes based on the response code."
},
"dynamicCacheRule": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfDynamicCacheRule"
},
"description": "Client response based on Rules."
},
"dynamicContent": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfDynamicContent"
},
"description": "The dynamic content caching policy allows you to specify a set of query string and/or HTTP header key/value pairs that should create a unique cache entry for a given URL. This policy is useful when your origin returns unique content for the same URL based on a set of query string parameters provided in the request."
},
"failSafeOriginPull": {
"$ref": "#/components/schemas/custconfFailSafeOriginPull"
},
"farAheadRangeProxy": {
"$ref": "#/components/schemas/custconfFarAheadRangeProxy"
},
"fileSegmentation": {
"$ref": "#/components/schemas/custconfFileSegmentation"
},
"flvPseudoStreaming": {
"$ref": "#/components/schemas/custconfFlvPseudoStreaming"
},
"gzipOriginPull": {
"$ref": "#/components/schemas/custconfGzipOriginPull"
},
"httpMethods": {
"$ref": "#/components/schemas/custconfHttpMethods"
},
"origin": {
"type": "array",
"items": {
"$ref": "#/components/schemas/cdncustconfOrigin"
}
},
"originPersistentConnections": {
"$ref": "#/components/schemas/custconfOriginPersistentConnections"
},
"originPull": {
"$ref": "#/components/schemas/custconfOriginPull"
},
"originPullCacheExtension": {
"$ref": "#/components/schemas/custconfOriginPullCacheExtension"
},
"originPullHost": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfOriginPullHost"
}
},
"originPullProtocol": {
"$ref": "#/components/schemas/custconfOriginPullProtocol"
},
"originPullLogs": {
"$ref": "#/components/schemas/custconfOriginPullLogs"
},
"originPullLogsConfig": {
"$ref": "#/components/schemas/custconfOriginPullLogsConfig"
},
"originPullPolicy": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfOriginPullPolicy"
},
"description": "The CDN caching policy allows you to control how your origin's content is cached on the CDN."
},
"originRequestModification": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfOriginRequestModification"
}
},
"originResponseModification": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfOriginResponseModification"
}
},
"queryStrParam": {
"$ref": "#/components/schemas/custconfQueryStrParam"
},
"receiptLogsConfig": {
"$ref": "#/components/schemas/custconfReceiptLogsConfig"
},
"redirectExceptions": {
"$ref": "#/components/schemas/custconfRedirectExceptions"
},
"redirectMappings": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfRedirectMappings"
},
"description": "The response code redirection policy allows you to map cache response codes to an HTTP redirect response. When this policy is applied to a host, the caching servers will redirect clients to the URL specified in this policy instead of delivering the response code you mapped in the policy."
},
"responseHeader": {
"$ref": "#/components/schemas/custconfResponseHeader"
},
"originPullResumeDownload": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfOriginPullResumeDownload"
},
"description": "The CDN attempts to resume downloading Origin Pulls once it successfully reads all the headers of a positive response under certain conditions by sending subsequent origin range requests for the remaining body. The response must be a 2xx to a GET request for the full file or a single range (not multi-range). The response must contain the Last-Modified and ETag headers."
},
"robotsTxt": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfRobotsTxt"
}
},
"awsSignedOriginPullV4": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfAwsSignedOriginPullV4"
}
},
"awsSignedS3PostV4": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfAwsSignedS3PostV4"
}
},
"staticHeader": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfStaticHeader"
},
"description": "The static header injection policy allows you to insert headers into the CDN request and response processor."
},
"timePseudoStreaming": {
"$ref": "#/components/schemas/custconfTimePseudoStreaming"
},
"http2Support": {
"$ref": "#/components/schemas/custconfHttp2Support"
},
"vHost": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfVHost"
},
"description": "A hostname policy allows you to specify an alternate domain name that you want to use to access content from your CDN container."
}
}
},
"custconfContentDispositionByHeader": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"headerFieldName": {
"type": "string",
"description": "The setting allows you to specify the name of the HTTP header you'd like to use in the pattern match for this policy."
},
"headerValueMatch": {
"type": "string",
"description": "String of values delimited by a ',' character. A list of glob patterns that apply this policy if any of them match against the value of the header specified."
},
"defaultType": {
"$ref": "#/components/schemas/ContentDispositionByHeaderDefaultTypeEnumWrapperValue"
},
"overrideOriginHeader": {
"type": "boolean",
"format": "boolean",
"description": "This setting allows you to force the Content-Disposition generated by the CDN for this policy to override the Content-Disposition header cached from your origin."
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "The content disposition by HTTP header match policy allows you to control the Content-Disposition delivered by the CDN using a pattern match against the value of any HTTP header present in the request. If you are using URL query string parameters to control the Content-Disposition header (using the Content Disposition by URL policy) then the Content-Disposition header generated by this policy will not be used on that specific request. A typical use case for this policy is to set a different Content-Disposition header based on the User-Agent in the request."
},
"custconfContentDispositionByURL": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"dispositionNameQSParam": {
"type": "string",
"description": "This is the name of the query string parameter which contains the file name to use in the Content-Disposition header. This setting is typically used by customers to configure a \"friendly name\" for URLs that have obfuscated file names."
},
"dispositionTypeQSParam": {
"type": "string",
"description": "This is the name of the query string parameter which contains the disposition type to use in the Content-Disposition header. Typically, this value is set to attachment if you want the browser to present the user with a \"File Download\" dialog box and set to inline if you want the browser to render the content inline (play an audio/video file instead of downloading it)."
},
"dispositionOverrideQSParam": {
"type": "string",
"description": "This setting allows you to define a query string parameter that when present in the URL contains a string that should be used for the Content-Disposition header. The string specified in the URL will completely replace the value the CDN would have used based on other policies defined for the Content-Disposition header."
},
"overrideOriginHeader": {
"type": "boolean",
"format": "boolean",
"description": "This setting allows you to force the Content-Disposition generated by the CDN for this policy to override the Content-Disposition header cached from your origin."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The content disposition by URL policy allows you to control Content-Disposition HTTP header delivered by the CDN caching servers. The policy gives you control over each of the header directives and allows you to specify a URL pattern match for determining when to apply the policy. Please note this policy takes precedence over all the other content disposition policies."
},
"custconfCustomHeader": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"xForwardedForAuth": {
"type": "string",
"description": "This is the name of the X-Forwarded-For header you want the CDN to use when making requests to your basic authorization server."
},
"xForwardedForOrigin": {
"type": "string",
"description": "This is the name of the X-Forwarded-For header you want the CDN to use when making requests to your origin server."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The X-Forwarded-For header policy allows you to override the name of the X-Forwarded-For header the CDN sends to your origin."
},
"custconfCustomMimeType": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"code": {
"type": "string",
"description": "String of values delimited by a ',' character. A comma separated list of status codes that apply to this policy"
},
"extensionMap": {
"type": "string",
"description": "String of values delimited by a ',' character. This is a comma separated list of file extension and mime type pairs that describe the mime type mapping for the CDN caching servers. The file extension and mime type values should be delimited by a colon (:). For example, to map files ending with jpg to the image/jpeg mime type and files ending with png to image/png, set this value to: jpg:image/jpeg,png:image/png."
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "The custom mime type policy allows you to map file extensions to specific mime types for the CDN caching servers to use when delivering assets. The mime types you map using this policy may also be limited to specific response codes to address scenarios in which the mime type changes based on the response code."
},
"custconfCustomer": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"accessLogFields": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"opLogFields": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"receiptLogFields": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfDynamicCacheRule": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"statusCode": {
"type": "number",
"format": "int64",
"description": "Status code to return"
},
"headers": {
"type": "string",
"description": "String of values delimited by a '|' character. Pipe delimited ('|') list of headers to add to response"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "Client response based on Rules."
},
"custconfDynamicContent": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"queryParams": {
"type": "string",
"description": "String of values delimited by a ',' character. A comma separated list of query string parameters you want to include in the cache key generation. NOTE: This list is ignored when the Key Location is set to header."
},
"headerFields": {
"type": "string",
"description": "String of values delimited by a ',' character. A comma-separated list of glob patterns that represent HTTP request headers you want included in the cache key generation. Via the use of a colon ':', users can define each glob pattern to match a header name only, or the pattern can be used to match both the header name and value. A pattern without a colon ':' is treated as a header name ONLY match. If the pattern matches the header, then all values are used as a part of the cache key. If the pattern contains a colon, the CDN uses the pattern on the left of the colon to match the header. The pattern to the right of the colon is used to match the value. The CDN only uses the header/value as a part of the cache key if both patterns result in a match. Note, no pattern after a colon indicates an empty header (no value).\nSee the fnmatch manpage for acceptable glob patterns."
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "The dynamic content caching policy allows you to specify a set of query string and/or HTTP header key/value pairs that should create a unique cache entry for a given URL. This policy is useful when your origin returns unique content for the same URL based on a set of query string parameters provided in the request."
},
"custconfFailSafeOriginPull": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"statusCodeMatch": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfFarAheadRangeProxy": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"thresholdBytes": {
"type": "number",
"format": "int64"
}
}
},
"custconfFileSegmentation": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean",
"description": "Flag for enabling the File Segmentation Feature."
}
},
"description": "Policy for configuring the feature for downloading and storing files in segments rather than a whole entity."
},
"custconfFlvPseudoStreaming": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"jumpToByteInitialBytesParam": {
"type": "string"
},
"jumpToByteStartOffsetParam": {
"type": "string"
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
}
},
"custconfGzipOriginPull": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean",
"description": "This enables support for compressed origin pull"
}
},
"description": "The compressed origin pull policy allows you to enable the CDN caching servers to request compressed assets from your origin. By enabling this policy, the CDN caching servers send your origin the HTTP Accept-Encoding header with the gzip code (Accept-Encoding: gzip)."
},
"custconfHttp2Support": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean",
"description": "Enable support of HTTP2"
}
},
"description": "Enable support of HTTP2"
},
"custconfHttpMethods": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"passThru": {
"type": "string",
"description": "String of values delimited by a ',' character. This is a comma separated list of HTTP methods you want the CDN to proxy to your origin. A wildcard can be entered to include all methods (excluding HEAD and GET)."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The HTTP methods policy allows you to selectively enable additional HTTP methods you want your CDN container to process. A container automatically is set up to process HTTP GET and HEAD commands, so they should not be explicitly defined in this policy. HTTP methods included in this policy are proxied directly to your origin and not cached by the CDN."
},
"custconfMidTierCachingProtocolEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"http",
"https",
"match"
],
"default": "UNKNOWN"
},
"custconfOriginPersistentConnections": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The origin persistent connection settings are used to enable persistent connections to origins"
},
"custconfOriginPull": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"redirectAction": {
"$ref": "#/components/schemas/OriginPullRedirectActionEnumWrapperValue"
},
"noQSParams": {
"type": "boolean",
"format": "boolean",
"description": "GFS sends a path without any query string parameters when making external origin requests regardless if any parameters were sent by the User-Agent."
},
"retryMethods": {
"type": "string",
"description": "String of values delimited by a ',' character. List of HTTP Methods that define types of origin pull requests that can be retried if a failure occurs after sending a previous request."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The origin pull settings policy contains a list of settings that control the behavior of origin pull requests."
},
"custconfOriginPullCacheExtension": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"expiredCacheExtension": {
"type": "integer",
"format": "int32",
"description": "This is the number of seconds to extend an asset's TTL when the origin is unavailable. The CDN will continue to retry the origin up to the Origin Unavailable Max TTL."
},
"originUnreachableCacheExtension": {
"type": "integer",
"format": "int32",
"description": "The origin unavailable max TTL value is used by the caching server when your origin is unresponsive or the CDN cannot establish a connection to your origin. Under these conditions, the CDN can continue to serve expired assets from the cache. The value specified in this field establishes a maximum allowable TTL for your expired assets. If your origin connectivity or responsiveness is not corrected within your maximum allowable TTL, the CDN no longer serves your expired assets."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The cache extension policy allows you to define cache revalidation exceptions on expired content. This policy is applied by the CDN caching servers when they are are unable to revalidate an expired asset with your origin due to network connectivity issues or unresponsiveness from your origin."
},
"custconfOriginPullHost": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"originUrl": {
"type": "string"
},
"userName": {
"type": "string"
},
"password": {
"type": "string"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfOriginPullLogs": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "Enable/Disable Origin Pull Logs"
},
"custconfOriginPullLogsConfig": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"extraLogFields": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "Origin Pull Log Settings"
},
"custconfOriginPullPolicy": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"statusCodeMatch": {
"type": "string",
"description": "String of values delimited by a ',' character. This is a pattern match expression for each status code this policy applies to. For example, 2*, 3* applies this policy to all 200 and 300 level HTTP responses from your origin."
},
"expirePolicy": {
"$ref": "#/components/schemas/OriginPullPolicyExpirePolicyEnumWrapperValue"
},
"expireSeconds": {
"type": "integer",
"format": "int32",
"description": "This is the expiration time used for assets pulled from your origin. When using Cache-Control headers expiration methods, this value is used if your origin doesn't return a max-age directive in the Cache-Control HTTP header. Please note that a value of 0 in this fields instructs the caching server to retain assets for as long as possible."
},
"honorNoStore": {
"type": "boolean",
"format": "boolean",
"description": "This enables the processing of no-store HTTP Cache-Control directives on your container. By enabling this option, responses from your origin containing the no-store directive are not cached. Be aware that requests for non-cacheable assets are always forwarded to your origin and may impose a high request and bandwidth load on your origin."
},
"honorNoCache": {
"type": "boolean",
"format": "boolean",
"description": "This enables the processing of no-cache HTTP Cache-Control directives on your container. By enabling this option, responses from your origin containing the no-cache directive force the CDN to submit every subsequent request to your origin for validation before serving the asset stored in the cache."
},
"honorMustRevalidate": {
"type": "boolean",
"format": "boolean"
},
"noCacheBehavior": {
"$ref": "#/components/schemas/OriginPullPolicyNoCacheBehaviorEnumWrapperValue"
},
"maxAgeZeroToNoCache": {
"type": "boolean",
"format": "boolean",
"description": "This enables the CDN to apply the no-cache behavior for assets delivered by your origin containing a max-age directive equal to zero."
},
"mustRevalidateToNoCache": {
"type": "boolean",
"format": "boolean",
"description": "This enables the CDN to apply the no-cache behavior for assets delivered by your origin containing the must-revalidate directive."
},
"bypassCacheIdentifier": {
"type": "string",
"description": "This allows you to define a custom directive that, when used by your origin in the Cache-Control response headers, forces the CDN to proxy the request to the end user without caching the result."
},
"forceBypassCache": {
"type": "boolean",
"format": "boolean",
"description": "This forces the CDN to not cache any asset pulled from your origin that would otherwise be stored at this location in the cache. Typically this policy is used to prevent 4XX and 5XX response codes from overwriting a file in the cache when used with corresponding Origin Status Code Match setting. If bypass cache behavior is desired for all assets at a scope, Origin Pull Queue Behavior in the Origin Pull Settings also needs to be set to NOCACHE for that scope."
},
"httpHeaders": {
"type": "string",
"description": "String of values delimited by a ',' character. This is the list of your origin's HTTP headers that you want the CDN to cache and deliver to end users."
},
"honorPrivate": {
"type": "boolean",
"format": "boolean",
"description": "This enables the processing of private HTTP Cache-Control directives on your container. By enabling this option, responses from your origin containing the private directive are not cached. Be aware that requests for non-cacheable assets are always forwarded to your origin and may impose a high request and bandwidth load on your origin."
},
"honorSMaxAge": {
"type": "boolean",
"format": "boolean",
"description": "This enables the processing of s-maxage HTTP Cache-Control directives on your container. By enabling this option, the s-maxage HTTP Cache-Control directive in the responses from your origin takes precedence over the max-age directive. If both max-age and s-maxage need to be preserved in the client response, the Cache-Control header must be added to the \"Http Header Caching\" setting."
},
"updateHttpHeadersOn304Response": {
"type": "boolean",
"format": "boolean"
},
"defaultCacheBehavior": {
"$ref": "#/components/schemas/OriginPullPolicyDefaultCacheBehaviorEnumWrapperValue"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"contentTypeFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "The CDN caching policy allows you to control how your origin's content is cached on the CDN."
},
"custconfOriginPullProtocol": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"protocol": {
"$ref": "#/components/schemas/custconfOriginPullProtocolProtocolEnumWrapperValue"
},
"enableSNI": {
"type": "boolean",
"format": "boolean",
"description": "This key allows you to configure the CDN caching servers to use SNI while making Secured Connection to Origin."
}
},
"description": "The Origin Pull Protocol allows you to configure the CDN caching servers to use secured or non-secured connection to Origin."
},
"custconfOriginPullProtocolProtocolEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"http",
"https",
"match"
],
"default": "UNKNOWN"
},
"custconfOriginPullResumeDownload": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"originalStatusCodeMatch": {
"type": "string",
"description": "String of values delimited by a ',' character. Comma separated list of glob patterns that indicate which origin pulls this policy applies to based on the status code of the original origin response. This feature is limited to 2xx responses, but this policy provides fine control, such as permitting resume of 200 responses by not 206, or for adding a 2xx response code other than 200 or 206."
},
"minimumBodyBytesConsumed": {
"type": "string",
"description": "Minimum number of body bytes that CDN must have consumed during an Origin Pull before encountering an error before it is permitted to attempt resuming the download. This value does not include the headers bytes."
},
"maximumAttempts": {
"type": "number",
"format": "int64",
"description": "Maximum number of times beyond the initial request that the CDN is permitted to attempt resuming an Origin Pull download."
},
"requireOriginRangeSupport": {
"type": "boolean",
"format": "boolean",
"description": "The CDN resumes an Origin Pull even if the origin does not support range requests. If the origin does not support range requests and/or returns a 200 response for the same version given in the original response, the CDN fast-forwards (reads and discards bytes) until it reaches its previous position in the asset."
},
"etagValidation": {
"$ref": "#/components/schemas/OriginPullResumeDownloadEtagValidationEnumWrapperValue"
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "The CDN attempts to resume downloading Origin Pulls once it successfully reads all the headers of a positive response under certain conditions by sending subsequent origin range requests for the remaining body. The response must be a 2xx to a GET request for the full file or a single range (not multi-range). The response must contain the Last-Modified and ETag headers."
},
"custconfOriginRequestModification": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"urlPattern": {
"type": "string"
},
"urlRewrite": {
"type": "string"
},
"headerPattern": {
"type": "string"
},
"headerRewrite": {
"type": "string"
},
"addHeaders": {
"type": "string",
"description": "String of values delimited by a '|' character. This is the static HTTP header you want inserted into the CDN request. Start value with \"append:\", \"replace:\" or \"create:\" which defines if Header will be added, replaced or create if not exists. Default is append."
},
"flowControl": {
"type": "string"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"cookieFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfOriginRequestQueueLogLevelEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"debug",
"info",
"warning",
"error",
"crit"
],
"default": "UNKNOWN"
},
"custconfOriginResponseModification": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"statusCodeRewrite": {
"type": "number",
"format": "int64"
},
"headerPattern": {
"type": "string"
},
"headerRewrite": {
"type": "string"
},
"addHeaders": {
"type": "string",
"description": "String of values delimited by a '|' character. This is the static HTTP header you want inserted into the CDN response. Start value with \"append:\", \"replace:\" or \"create:\" which defines if Header will be added, replaced or create if not exists. Default is append."
},
"flowControl": {
"$ref": "#/components/schemas/custconfOriginResponseModificationFlowControlEnumWrapperValue"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfOriginResponseModificationFlowControlEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"next",
"break"
],
"default": "UNKNOWN"
},
"custconfOriginResponseQueueLogLevelEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"debug",
"info",
"warning",
"error",
"crit"
],
"default": "UNKNOWN"
},
"custconfQueryStrParam": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"dispositionName": {
"type": "string",
"description": "This is the name of the query string parameter which contains the name of the file to specify in the Content-Disposition HTTP response header. This setting is typically used by customers to configure a \"friendly name\" for URLs that have obfuscated file names. This setting controls the \"filename\" directive that is part of the Content-Disposition HTTP header."
},
"dispositionType": {
"type": "string",
"description": "This is the name of the query string parameter which contains the disposition type to use in the Content-Disposition HTTP header. Typically, this value is set to \"attachment,\" but you may supply a custom string using this setting."
},
"dispositionOverride": {
"type": "string",
"description": "This setting allows you to completely override the Content-Disposition HTTP header that the CDN caching servers use on a response."
},
"jumpToTimeStart": {
"type": "string",
"description": "This is the name of the query string parameter that indicates to the CDN the start time offset of the video returned. This parameter is part of the jump-to-time feature that is initiated on a per request basis."
},
"jumpToTimeEnd": {
"type": "string",
"description": "This is the name of the query string parameter that indicates to the CDN the end time offset of the video that should be returned. This parameter is part of the jump-to-time feature that is initiated on a per request basis."
},
"jumpToByteInitialBytes": {
"type": "string",
"description": "This is the name of the query string parameter that indicates to the CDN the initial bytes of a video that should be returned before sending the requested byte offset. This parameter is part of the jump-to-byte feature that is initiated on a per request basis."
},
"jumpToByteStartOffset": {
"type": "string",
"description": "This is the name of the query string parameter that indicates to the CDN the specific offset into the video that is being requested. This parameter is part of the jump-to-byte feature that is initiated on a per request basis."
},
"rateLimitInitial": {
"type": "string",
"description": "This is the name of the query string parameter that indicates to the CDN an initial burst rate to use when delivering a file. This parameter is part of the bandwidth limiting feature that is initiated on a per request basis."
},
"rateLimitSustained": {
"type": "string",
"description": "This is the name of the query string parameter that indicates to the CDN the sustained rate being requested for the delivery of a file. This parameter is part of the bandwidth throttling feature that is initiated on a per request basis."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The reserved query string parameters policy describes all the query string parameters the StackPath CDN caching server reserves for special processing of your requests."
},
"custconfReceiptLogsConfig": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"extraLogFields": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "Delivery receipt log settings"
},
"custconfRedirectExceptions": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"redirectAgentCode": {
"type": "string",
"description": "String of values delimited by a ',' character. This is a comma separated list of user agents and redirect code pairs. The user agent and redirect code values are separated by a colon (:), and you may use wildcards in the user agent field. For example, to map assign a 307 status code to all Chrome browsers, you would specify: *chrome*:307."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The redirect response codes policy allows you to specify the HTTP redirect status code the CDN caching server should use when the CDN issues a redirect. Using this policy, you can assign different redirect codes to user agents requesting content."
},
"custconfRedirectMappings": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"code": {
"type": "number",
"format": "int64",
"description": "The HTTP cache response code that applies to this policy."
},
"redirectURL": {
"type": "string",
"description": "The URL that clients would be redirected to when applying this policy."
},
"replacementToken": {
"type": "string",
"description": "A token that will be replaced by the caching server with the URL of the request that triggered the policy. This token can be positioned anywhere in the redirect URL."
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "The response code redirection policy allows you to map cache response codes to an HTTP redirect response. When this policy is applied to a host, the caching servers will redirect clients to the URL specified in this policy instead of delivering the response code you mapped in the policy."
},
"custconfResponseHeader": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"http": {
"type": "string",
"description": "A pipe delimited list of rules that instructs the CDN caching servers to include a content-disposition header. The rules included in this setting must be entered in the following format: Content-Disposition:<User Agent>:<file extension 1>, <file extension 2>. For example, to send the Content-Disposition header for all Mozilla browsers on the delivery of mp3, exe, tar, zip, gz and rar files, you would enter the following in the field: Content-Disposition:Mozilla*:mp3,exe,tar,zip,gz,rar"
},
"enableETag": {
"type": "boolean",
"format": "boolean",
"description": "This gives the ability to disable the ETag header on the response."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The custom HTTP response headers policy allows you to specify a list of HTTP headers you want the CDN caching servers to include in the response to clients."
},
"custconfRobotsTxt": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"file": {
"type": "string",
"format": "base64"
},
"cacheControlHeader": {
"type": "string"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfStaticHeader": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"clientRequest": {
"type": "string",
"description": "This is the static HTTP header you want inserted into the CDN request."
},
"http": {
"type": "string",
"description": "This is the static HTTP header you want inserted into the CDN response."
},
"originPull": {
"type": "string",
"description": "This is the HTTP header you want inserted into the origin pull request."
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "The static header injection policy allows you to insert headers into the CDN request and response processor."
},
"custconfTimePseudoStreaming": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"jumpToTimeStartParam": {
"type": "string",
"description": "The name of the query string parameter that indicates to the CDN the specific time interval of the video that is being requested."
},
"jumpToTimeEndParam": {
"type": "string",
"description": "The name of the query string parameter that indicates to the CDN the end time of the video that should be returned."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The HTTP pseudo-streaming policy enables Flash based video players to support seeking to random locations within a MP4 or FLV file without having to download the entire video. Flash players such as Flowplayer and JWPlayer can be configured to send a query string parameter that indicates to the server the time offset the user advanced the video to. Typically a query string parameter called \"start\" is used by these players."
},
"custconfVHost": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"domain": {
"type": "string",
"description": "This is the hostname you want to enable in this policy. Note: You must configure your container's CNAME record with your DNS provider to enable this hostname to deliver content."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "A hostname policy allows you to specify an alternate domain name that you want to use to access content from your CDN container."
},
"paginationPageInfo": {
"type": "object",
"properties": {
"totalCount": {
"type": "string",
"description": "The total number of items in the dataset"
},
"hasPreviousPage": {
"type": "boolean",
"format": "boolean",
"description": "Whether or not a previous page of data exists"
},
"hasNextPage": {
"type": "boolean",
"format": "boolean",
"description": "Whether or not another page of data is available"
},
"startCursor": {
"type": "string",
"description": "The cursor for the first item in the set of data returned"
},
"endCursor": {
"type": "string",
"description": "The cursor for the last item in the set of data returned"
}
},
"description": "Information about a paginated response\n\nThis is modeled after the GraphQL Relay spec to support both cursor based pagination and traditional offset based pagination."
},
"paginationPageRequest": {
"type": "object",
"properties": {
"first": {
"type": "string",
"description": "The number of items desired"
},
"after": {
"type": "string",
"description": "The cursor value after which data will be returned"
},
"filter": {
"type": "string",
"description": "SQL-style constraint filters"
},
"sortBy": {
"type": "string",
"description": "Sort the response by the given field"
}
},
"description": "Pagination request information\n\nThis is modeled after the GraphQL Relay spec to support both cursor based pagination and traditional offset based pagination."
},
"schemacdnOrigin": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "An origin's unique identifier"
},
"path": {
"type": "string",
"description": "An origin's path\n\nPaths default to \"/\""
},
"hostname": {
"type": "string",
"description": "An origin's hostname or IP address"
},
"port": {
"type": "integer",
"format": "int32",
"description": "The HTTP port to connect to the origin"
},
"securePort": {
"type": "integer",
"format": "int32",
"description": "The HTTPS port to connect to the origin"
},
"dedicated": {
"type": "boolean",
"format": "boolean",
"description": "Whether or not an origin is dedicated to a CDN site\n\nDedicated origins cannot be used by any site other than that to which it is dedicated."
},
"siteId": {
"type": "string",
"description": "The ID of the CDN site to which an origin is dedicated"
}
},
"description": "A CDN site's origin\n\nOrigins are the original sources of the data that is cached by the CDN on request."
},
"stackpath.rpc.BadRequest": {
"allOf": [
{
"$ref": "#/components/schemas/apiStatusDetail"
},
{
"type": "object",
"properties": {
"fieldViolations": {
"type": "array",
"items": {
"$ref": "#/components/schemas/stackpath.rpc.BadRequest.FieldViolation"
}
}
}
}
]
},
"stackpath.rpc.BadRequest.FieldViolation": {
"type": "object",
"properties": {
"field": {
"type": "string"
},
"description": {
"type": "string"
}
}
},
"stackpath.rpc.Help": {
"allOf": [
{
"$ref": "#/components/schemas/apiStatusDetail"
},
{
"type": "object",
"properties": {
"links": {
"type": "array",
"items": {
"$ref": "#/components/schemas/stackpath.rpc.Help.Link"
}
}
}
}
]
},
"stackpath.rpc.Help.Link": {
"type": "object",
"properties": {
"description": {
"type": "string"
},
"url": {
"type": "string"
}
}
},
"stackpath.rpc.LocalizedMessage": {
"allOf": [
{
"$ref": "#/components/schemas/apiStatusDetail"
},
{
"type": "object",
"properties": {
"locale": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
]
},
"stackpath.rpc.PreconditionFailure": {
"allOf": [
{
"$ref": "#/components/schemas/apiStatusDetail"
},
{
"type": "object",
"properties": {
"violations": {
"type": "array",
"items": {
"$ref": "#/components/schemas/stackpath.rpc.PreconditionFailure.Violation"
}
}
}
}
]
},
"stackpath.rpc.PreconditionFailure.Violation": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"subject": {
"type": "string"
},
"description": {
"type": "string"
}
}
},
"stackpath.rpc.QuotaFailure": {
"allOf": [
{
"$ref": "#/components/schemas/apiStatusDetail"
},
{
"type": "object",
"properties": {
"violations": {
"type": "array",
"items": {
"$ref": "#/components/schemas/stackpath.rpc.QuotaFailure.Violation"
}
}
}
}
]
},
"stackpath.rpc.QuotaFailure.Violation": {
"type": "object",
"properties": {
"subject": {
"type": "string"
},
"description": {
"type": "string"
}
}
},
"stackpath.rpc.RequestInfo": {
"allOf": [
{
"$ref": "#/components/schemas/apiStatusDetail"
},
{
"type": "object",
"properties": {
"requestId": {
"type": "string"
},
"servingData": {
"type": "string"
}
}
}
]
},
"stackpath.rpc.ResourceInfo": {
"allOf": [
{
"$ref": "#/components/schemas/apiStatusDetail"
},
{
"type": "object",
"properties": {
"resourceType": {
"type": "string"
},
"resourceName": {
"type": "string"
},
"owner": {
"type": "string"
},
"description": {
"type": "string"
}
}
}
]
},
"stackpath.rpc.RetryInfo": {
"allOf": [
{
"$ref": "#/components/schemas/apiStatusDetail"
},
{
"type": "object",
"properties": {
"retryDelay": {
"type": "string"
}
}
}
]
}
}
}
}
{
"swagger": "2.0",
"info": {
"title": "Sites",
"version": "1.0.0",
"contact": {
"name": "StackPath Support",
"url": "https://support.stackpath.com/"
}
},
"host": "gateway.stackpath.com",
"schemes": [
"https"
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"paths": {
"/delivery/v1/stacks/{stack_id}/certificates/{certificate_id}/recheck": {
"post": {
"summary": "Recheck a certificate's verification details while being issued. This will only work for Stackpath free site certificates.",
"operationId": "RecheckCertificateVerification",
"responses": {
"204": {
"description": "No content"
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the certificate to recheck",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "certificate_id",
"description": "The ID of the certificate to recheck",
"in": "path",
"required": true,
"type": "string"
}
],
"tags": [
"Delivery"
]
}
},
"/delivery/v1/stacks/{stack_id}/metrics": {
"get": {
"summary": "Retrieve request metrics for all sites in a stack",
"description": "If the start and end dates are not provided, the last 24 hours of data will be returned.",
"operationId": "GetMetrics",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/prometheusMetrics"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack to retrieve CDN metrics for",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "start_date",
"description": "The starting date to retrieve metrics for.",
"in": "query",
"required": false,
"type": "string",
"format": "date-time"
},
{
"name": "end_date",
"description": "The ending date to retrieve metrics for.",
"in": "query",
"required": false,
"type": "string",
"format": "date-time"
},
{
"name": "granularity",
"in": "query",
"required": false,
"type": "string",
"enum": [
"AUTO",
"PT5M",
"PT1H",
"P1D",
"P1M"
],
"default": "AUTO"
},
{
"name": "status_categories",
"description": "A comma-separated list of 1 digit http status codes categories to filter by.",
"in": "query",
"required": false,
"type": "array",
"items": {
"type": "string"
}
},
{
"name": "status_codes",
"description": "A comma-separated list of 3 digit http status codes to filter by.",
"in": "query",
"required": false,
"type": "array",
"items": {
"type": "string"
}
},
{
"name": "sites",
"description": "A comma-separated list of site IDs to filter metrics for.",
"in": "query",
"required": false,
"type": "array",
"items": {
"type": "string"
}
},
{
"name": "group_by",
"in": "query",
"required": false,
"type": "string",
"enum": [
"NONE",
"SITE",
"PLATFORM",
"POP",
"REGION",
"STATUS",
"STATUS_CATEGORY"
],
"default": "NONE"
},
{
"name": "billing_regions",
"description": "A comma-separated list of billing regions to filter metrics for.",
"in": "query",
"required": false,
"type": "array",
"items": {
"type": "string"
}
},
{
"name": "pops",
"description": "A comma-separated list of StackPath point of presence location codes to filter metrics for.",
"in": "query",
"required": false,
"type": "array",
"items": {
"type": "string"
}
},
{
"name": "platforms",
"description": "A comma-separated list of billing platforms to filter metrics for.",
"in": "query",
"required": false,
"type": "array",
"items": {
"type": "string"
}
},
{
"name": "site_type_filter",
"description": "A filter to retrieve metrics by site type.",
"in": "query",
"required": false,
"type": "array",
"items": {
"type": "string",
"enum": [
"ALL",
"CDN",
"WAF",
"API",
"SERVERLESS_EDGE_ENGINE"
]
}
},
{
"name": "metric_type",
"in": "query",
"required": false,
"type": "string",
"enum": [
"TRANSFER",
"STATUS_CODE"
],
"default": "TRANSFER"
}
],
"tags": [
"Metrics"
]
}
},
"/delivery/v1/stacks/{stack_id}/origins": {
"get": {
"summary": "Retrieve a stack's site origins",
"operationId": "GetOrigins",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/deliveryGetOriginsResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack to retrieve origins from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "page_request.first",
"description": "The number of items desired.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.after",
"description": "The cursor value after which data will be returned.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.filter",
"description": "SQL-style constraint filters.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.sort_by",
"description": "Sort the response by the given field.",
"in": "query",
"required": false,
"type": "string"
}
],
"tags": [
"Origins"
]
}
},
"/delivery/v1/stacks/{stack_id}/origins/{origin_id}": {
"get": {
"summary": "Get an origin",
"operationId": "GetOrigin",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/deliveryGetOriginResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the origin",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "origin_id",
"description": "The ID of the origin",
"in": "path",
"required": true,
"type": "string"
}
],
"tags": [
"Origins"
]
},
"patch": {
"summary": "Update an origin",
"operationId": "UpdateOrigin",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/deliveryUpdateOriginResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the origin to update",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "origin_id",
"description": "The ID of the origin to update",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/deliveryUpdateOriginRequest"
}
}
],
"tags": [
"Origins"
]
}
},
"/delivery/v1/stacks/{stack_id}/sites": {
"get": {
"summary": "Retrieve all sites in a stack",
"operationId": "GetSites",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/deliveryGetSitesResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack to retrieve sites from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "page_request.first",
"description": "The number of items desired.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.after",
"description": "The cursor value after which data will be returned.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.filter",
"description": "SQL-style constraint filters.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.sort_by",
"description": "Sort the response by the given field.",
"in": "query",
"required": false,
"type": "string"
}
],
"tags": [
"Sites"
]
},
"post": {
"summary": "Create a site",
"operationId": "CreateSite",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/deliveryCreateSiteResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack to create a new site on",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/deliveryCreateSiteRequest"
}
}
],
"tags": [
"Sites"
]
}
},
"/delivery/v1/stacks/{stack_id}/sites/{site_id}": {
"get": {
"summary": "Retrieve an individual site",
"operationId": "GetSite",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/deliveryGetSiteResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to retrieve",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site to retrieve",
"in": "path",
"required": true,
"type": "string"
}
],
"tags": [
"Sites"
]
},
"delete": {
"summary": "Delete a site",
"operationId": "DeleteSite",
"responses": {
"204": {
"description": "No content"
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to delete",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site to delete",
"in": "path",
"required": true,
"type": "string"
}
],
"tags": [
"Sites"
]
}
},
"/delivery/v1/stacks/{stack_id}/sites/{site_id}/cdn": {
"delete": {
"summary": "Disable a site's CDN service",
"operationId": "DisableSiteCDN",
"responses": {
"204": {
"description": "No content"
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to disable CDN on",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site to disable CDN on",
"in": "path",
"required": true,
"type": "string"
}
],
"tags": [
"Site Features"
]
},
"post": {
"summary": "Enable a site's CDN service",
"operationId": "EnableSiteCDN",
"responses": {
"204": {
"description": "No content"
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to enable CDN on",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site to enable CDN on",
"in": "path",
"required": true,
"type": "string"
}
],
"tags": [
"Site Features"
]
}
},
"/delivery/v1/stacks/{stack_id}/sites/{site_id}/delivery_domains": {
"get": {
"summary": "Retrieve the delivery domains configured on a site",
"description": "Delivery domains allow the CDN to recognize an HTTP request and associate it with a site.",
"operationId": "GetSiteDeliveryDomains2",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/deliveryGetSiteDeliveryDomainsResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to retrieve delivery domains from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site containing the delivery domains",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "page_request.first",
"description": "The number of items desired.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.after",
"description": "The cursor value after which data will be returned.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.filter",
"description": "SQL-style constraint filters.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.sort_by",
"description": "Sort the response by the given field.",
"in": "query",
"required": false,
"type": "string"
}
],
"tags": [
"Delivery Domains"
]
},
"post": {
"summary": "Add a delivery domain to a site",
"operationId": "CreateSiteDeliveryDomain",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/deliveryCreateSiteDeliveryDomainResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site containing the site to add a delivery domain to",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site to add a delivery domain to",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/deliveryCreateSiteDeliveryDomainRequest"
}
}
],
"tags": [
"Delivery Domains"
]
}
},
"/delivery/v1/stacks/{stack_id}/sites/{site_id}/delivery_domains/{domain}": {
"delete": {
"summary": "Remove a delivery domain from a site",
"operationId": "DeleteSiteDeliveryDomain",
"responses": {
"204": {
"description": "No content"
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site containing the delivery domain from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site to remove a delivery domain from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "domain",
"description": "The delivery domain to remove from a site",
"in": "path",
"required": true,
"type": "string"
}
],
"tags": [
"Delivery Domains"
]
}
},
"/delivery/v1/stacks/{stack_id}/sites/{site_id}/scopes/{scope_id}/origins": {
"get": {
"summary": "Retrieve the origins behind a site's scope",
"operationId": "GetScopeOrigins",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/deliveryGetScopeOriginsResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site containing the scope to retrieve origins from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site containing the scope to retrieve origins from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "scope_id",
"description": "The ID of the scope to retrieve origins from",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "page_request.first",
"description": "The number of items desired.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.after",
"description": "The cursor value after which data will be returned.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.filter",
"description": "SQL-style constraint filters.",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "page_request.sort_by",
"description": "Sort the response by the given field.",
"in": "query",
"required": false,
"type": "string"
}
],
"tags": [
"Origins"
]
},
"post": {
"summary": "Connect an origin to a CDN site's scope",
"description": "The origin is automatically created if necessary. When the request contains a priority which an origin already associated with the scope has set, the existing origin is disconnected. The priority of an origin already associated with a scope can be modified via this endpoint.",
"operationId": "ConnectScopeToOrigin",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/deliveryConnectScopeToOriginResponse"
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site containing the scope to associate an origin with",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site containing the scope to associate an origin with",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "scope_id",
"description": "The ID of the scope to associate an origin with",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/deliveryConnectScopeToOriginRequest"
}
}
],
"tags": [
"Origins"
]
}
},
"/delivery/v1/stacks/{stack_id}/sites/{site_id}/scripting": {
"delete": {
"summary": "Disable a site's serverless scripting service",
"operationId": "DisableSiteEdgeEngine2",
"responses": {
"204": {
"description": "No content"
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack to disable serverless scripting on",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site to disable serverless scripting on",
"in": "path",
"required": true,
"type": "string"
}
],
"tags": [
"Site Features"
]
},
"post": {
"summary": "Enable a site's serverless scripting service",
"operationId": "EnableSiteEdgeEngine2",
"responses": {
"204": {
"description": "No content"
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack to enable serverless scripting on",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site to enable serverless scripting on",
"in": "path",
"required": true,
"type": "string"
}
],
"tags": [
"Site Features"
]
}
},
"/delivery/v1/stacks/{stack_id}/sites/{site_id}/waf": {
"delete": {
"summary": "Disable a site's WAF service",
"operationId": "DisableSiteWAF",
"responses": {
"204": {
"description": "No content"
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to disable WAF on",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site to disable WAF on",
"in": "path",
"required": true,
"type": "string"
}
],
"tags": [
"Site Features"
]
},
"post": {
"summary": "Enable a site's WAF service",
"operationId": "EnableSiteWAF",
"responses": {
"204": {
"description": "No content"
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"500": {
"description": "Internal server error.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
},
"default": {
"description": "Default error structure.",
"schema": {
"$ref": "#/definitions/stackpathapiStatus"
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to enable WAF on",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "site_id",
"description": "The ID of the site to enable WAF on",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/deliveryEnableSiteWAFRequest"
}
}
],
"tags": [
"Site Features"
]
}
}
},
"definitions": {
"AuthACLAccessCodeEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"allow",
"deny"
],
"default": "UNKNOWN"
},
"AuthACLClientIPSrcEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"socket",
"header"
],
"default": "UNKNOWN"
},
"AuthGeoCodeEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"countryCode",
"region",
"subdivisionCodes",
"city",
"postalCode",
"continentCode",
"timeZone",
"dmaCode",
"areaCode"
],
"default": "UNKNOWN"
},
"AuthUrlSignAKv2HashStrategyEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"sha1",
"sha256",
"md5"
],
"default": "UNKNOWN"
},
"AuthUrlSignL3TimeFormatEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"epoch",
"datetime"
],
"default": "UNKNOWN"
},
"BandwidthRateLimitInitialBurstUnitsEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"byte",
"kilobyte"
],
"default": "UNKNOWN"
},
"BandwidthRateLimitSustainedRateUnitsEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"kilobit",
"kilobyte"
],
"default": "UNKNOWN"
},
"BillableRegionsEnabledRegionsEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"us",
"eu",
"sa",
"as",
"oc"
],
"default": "UNKNOWN"
},
"ClientRequestQueueIpListAccessCodeEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"allow",
"deny"
],
"default": "UNKNOWN"
},
"ContentDispositionByHeaderDefaultTypeEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"attachment",
"inline"
],
"default": "UNKNOWN"
},
"DataMatrix": {
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/definitions/DataMatrixResult"
},
"description": "A data point's value"
}
},
"description": "A set of time series containing a range of data points over time for each time series"
},
"DataMatrixResult": {
"type": "object",
"properties": {
"metric": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "The data points' labels"
},
"values": {
"type": "array",
"items": {
"$ref": "#/definitions/MetricsDataValue"
},
"description": "Time series data point values"
}
},
"description": "Time series containing a range of data points over time for each time series"
},
"DataVector": {
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/definitions/DataVectorResult"
},
"description": "A data point's value"
}
},
"description": "A set of time series containing a single sample for each time series, all sharing the same timestamp"
},
"DataVectorResult": {
"type": "object",
"properties": {
"metric": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "The data points' labels"
},
"value": {
"$ref": "#/definitions/MetricsDataValue"
}
},
"description": "Time series containing a single sample for each time series, all sharing the same timestamp"
},
"DnsOverrideTypeEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"A",
"AAAA",
"CNAME"
],
"default": "UNKNOWN"
},
"FileSegmentationInitialOriginRequestBehaviorEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"range",
"full"
],
"default": "UNKNOWN"
},
"GetMetricsRequestMetricType": {
"type": "string",
"enum": [
"TRANSFER",
"STATUS_CODE"
],
"default": "TRANSFER",
"description": "The different type of metrics that can be requested\n\n- TRANSFER: Retrieve transfer metrics\n - STATUS_CODE: Retrieve status code metrics"
},
"GetMetricsRequestMetricsGranularity": {
"type": "string",
"enum": [
"AUTO",
"PT5M",
"PT1H",
"P1D",
"P1M"
],
"default": "AUTO",
"description": "The time intervals that metrics can be rounded to\n\n- AUTO: StackPath will choose the granularity based on start and end dates\n - PT5M: Retrieve metrics per five minute intervals\n - PT1H: Retrieve metrics per hour\n - P1D: Retrieve metrics per day\n - P1M: Retrieve metrics per month"
},
"GetMetricsRequestMetricsGroupBy": {
"type": "string",
"enum": [
"NONE",
"SITE",
"PLATFORM",
"POP",
"REGION",
"STATUS",
"STATUS_CATEGORY"
],
"default": "NONE",
"description": "Fields that metrics can be grouped to\n\n- NONE: Don't group metrics\n - SITE: Group metrics by site\n - PLATFORM: Group metrics by scope billing platform\n - POP: Group metrics by StackPath point of presence\n - REGION: Group metrics by geographical region\n - STATUS: Group metrics by response status code. Note: This group can only be used with metric_type STATUS\n - STATUS_CATEGORY: Group metrics by response status code category (i.e 2xx, 4xx). Note: This group can only be used with metric_type STATUS"
},
"GetMetricsRequestSiteFeatureFilter": {
"type": "string",
"enum": [
"ALL",
"CDN",
"WAF",
"API",
"SERVERLESS_EDGE_ENGINE"
],
"default": "ALL",
"description": "The different kind of features that metrics can be retrieved for\n\n- ALL: Retrieve all metrics a site\n - CDN: Retrieve metrics only for the CDN feature on a site\n - WAF: Retrieve metrics only for the WAF feature on a site\n - API: Retrieve metrics only for the API feature on a site\n - SERVERLESS_EDGE_ENGINE: Retrieve metrics only for the serverless scripting feature on a site"
},
"HashTypeClassEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"HOST",
"MEDIA"
],
"default": "UNKNOWN"
},
"MetricsData": {
"type": "object",
"properties": {
"matrix": {
"$ref": "#/definitions/DataMatrix"
},
"vector": {
"$ref": "#/definitions/DataVector"
}
},
"description": "The data points in a metrics collection"
},
"MetricsDataValue": {
"type": "object",
"properties": {
"unixTime": {
"type": "string",
"description": "The time that a data point was recorded"
},
"value": {
"type": "string",
"description": "A data point's value"
}
},
"description": "An individual metric data point"
},
"MidTierCachingRequestFormatEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"internal",
"external"
],
"default": "UNKNOWN"
},
"OriginPullDefaultBehaviorEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"dedup",
"nocache",
"nostore"
],
"default": "UNKNOWN"
},
"OriginPullPolicyDefaultCacheBehaviorEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"bypass",
"ttl"
],
"default": "UNKNOWN"
},
"OriginPullPolicyExpirePolicyEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"CACHE_CONTROL",
"INGEST",
"LAST_MODIFY",
"NEVER_EXPIRE",
"DO_NOT_CACHE"
],
"default": "UNKNOWN"
},
"OriginPullPolicyNoCacheBehaviorEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"legacy",
"spec"
],
"default": "UNKNOWN"
},
"OriginPullRedirectActionEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"follow",
"proxy"
],
"default": "UNKNOWN"
},
"OriginPullResumeDownloadEtagValidationEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"DO_NOT_USE",
"OPTIONAL",
"REQUIRED"
],
"default": "UNKNOWN"
},
"OriginPullShieldBehaviorEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"redirect",
"tlb"
],
"default": "UNKNOWN"
},
"OriginPullShieldPermissibleShieldInternalErrorsEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"NONE",
"CONNECTION_ONLY",
"WRITE_ONLY",
"WRITE_READ",
"ALL"
],
"default": "UNKNOWN"
},
"RequestFilterUrlInputEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"FULL_URL",
"FULL_FILE_PATH",
"FULL_FILE_PATH_LEGACY"
],
"default": "UNKNOWN"
},
"TlsMinVersionEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"TLSv1_0",
"TLSv1_1",
"TLSv1_2"
],
"default": "UNKNOWN"
},
"VaryHeaderFieldProxyBehaviorEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"whole",
"filtered",
"none"
],
"default": "UNKNOWN"
},
"apiStatusDetail": {
"type": "object",
"properties": {
"@type": {
"type": "string"
}
},
"required": [
"@type"
],
"discriminator": "@type"
},
"cdncustconfOrigin": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"host": {
"type": "string"
},
"originPullHeaders": {
"type": "string",
"description": "String of values delimited by a '|' character."
},
"originCacheHeaders": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAccessLogs": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "Enable/Disable access logs"
},
"custconfAccessLogsConfig": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"extraLogFields": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "Access log settings"
},
"custconfAuthACL": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"accessCode": {
"$ref": "#/definitions/AuthACLAccessCodeEnumWrapperValue"
},
"ipList": {
"type": "string",
"description": "String of values delimited by a ',' character. This is a list of IP addresses considered for this policy."
},
"protocol": {
"$ref": "#/definitions/custconfAuthACLProtocolEnumWrapperValue"
},
"clientIPSrc": {
"$ref": "#/definitions/AuthACLClientIPSrcEnumWrapperValue"
},
"header": {
"type": "string",
"description": "This allows you to specify the name of a HTTP request header which will contain the client IP address to use for this policy."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "IP address restrictions allow you to configure your CDN container to grant or deny a specific IP addresses or range of IP addresses from accessing content cached in a directory in your CDN container."
},
"custconfAuthACLProtocolEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"http",
"https",
"both"
],
"default": "UNKNOWN"
},
"custconfAuthGeo": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"code": {
"$ref": "#/definitions/AuthGeoCodeEnumWrapperValue"
},
"values": {
"type": "string",
"description": "String of values delimited by a ',' character. These are the region codes you are targeting for this policy. The values that can be supplied within this field are those that are supported by the MaxMind® GeoIP database."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "Geographic restrictions allow you to restrict content to end users in specific locations. The IP address of incoming requests is checked against a current list of IP allocations to countries and to states within the US. If an end user's IP address is not found in the list, they are allowed access to the content by default. The feature has both an Include and an Exclude list which are used to target the allowed audience."
},
"custconfAuthHttpBasic": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"bindingPoint": {
"type": "string",
"description": "This is a URL to a resource on the authentication server responsible for authentication of users."
},
"realm": {
"type": "string",
"description": "This is the authentication realm given back to the user on requests which do not contain the authentication credentials. Browsers typically display this value to the user when the login credentials are requested."
},
"ttl": {
"type": "number",
"format": "int64",
"description": "This is the number of seconds the authentication session will be cached by the browsers. After this time, browsers will be asked to present the user credentials again for re-authentication."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "HTTP basic authentication policies allow you to control access to your content by requiring the end user to enter a valid username and password before gaining access to content."
},
"custconfAuthReferer": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"referer": {
"type": "string",
"description": "String of values delimited by a '|' character. This is a list of domains authorized to access content from this path in the container. You may use wildcards to specify multiple websites hosted on the same domain."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "HTTP Referrer restriction policies allow you to limit access to your published CDN URLs based on the HTTP Referrer header submitted by the browser. This restriction policy prevents your content from being easily distributed on unauthorized websites (also known as hot linking or deep linking). Once this policy is applied to your CDN container, websites that are not listed in this policy will be denied access to the content cached at this location."
},
"custconfAuthUrlAsymmetricSignTlu": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"expireParameterName": {
"type": "string"
},
"keyIdParameterName": {
"type": "string"
},
"algorithmIdParameterName": {
"type": "string"
},
"digestParameterName": {
"type": "string"
},
"publicKeyIdMap": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"algorithmIdMap": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/custconfAuthUrlAsymmetricSignTluAlgorithmIdMapEnumWrapperValue"
}
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAuthUrlAsymmetricSignTluAlgorithmIdMapEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"hmacsha1",
"hmacsha256"
],
"default": "UNKNOWN"
},
"custconfAuthUrlSign": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"tokenField": {
"type": "string",
"description": "This is the name of the query string parameter that will be used by the publisher to specify the signature for the URL."
},
"ignoreFieldsAfterToken": {
"type": "boolean",
"format": "boolean",
"description": "Select this option if you want StackPath to exclude query string parameters specified after the passphrase in the validation process."
},
"passPhraseField": {
"type": "string",
"description": "This is the name of the query string parameter that contains the value of the secret. This query string parameter is only used during the generation and validation of a URL signature and should not be present in the published URL."
},
"passPhrase": {
"type": "string",
"description": "The shared secret used during the signing process. This value should only be known by StackPath and systems authorized to sign your content."
},
"expiresField": {
"type": "string",
"description": "This is the name of the query string parameter that contains the Epoch time after which the URL is considered invalid."
},
"ipAddressField": {
"type": "string",
"description": "This is a query string parameter that contains an IPv4 address to which the published URL will be restricted."
},
"uriLengthField": {
"type": "string",
"description": "This is a query string parameter used to limit the number of characters in the path that should be considered when validating the URL signature. This feature allows you to reuse the same signature on all assets stored in the same cache path. Setting this value to 0 will strip off the filename in the URL (leaving the trailing slash) when calculating the checksum."
},
"userAgentField": {
"type": "string",
"description": "This is a query string parameter used to restrict the published URL to a specific user agent. Publishers can use this feature during the signing process to ensure that only a specific user agent can access the published content. You do not need to specify the user agent on the published URL. StackPath will use the HTTP User-Agent header value during signature validation."
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "URL Signing policies allow you to restrict access to your content by configuring a \"shared secret\" with StackPath. This \"shared secret\" is used to apply an MD5 hashing algorithm on the URL to validate the signature supplied on the request. Since the \"shared secret\" is only known by the publisher and StackPath, URL signatures cannot be generated by unauthorized users."
},
"custconfAuthUrlSignAliCloudA": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"passPhrase": {
"type": "string"
},
"tokenField": {
"type": "string"
},
"includeParamsBeforeToken": {
"type": "boolean",
"format": "boolean"
},
"expirationExtension": {
"type": "number",
"format": "int64"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAuthUrlSignAliCloudB": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"passPhrase": {
"type": "string"
},
"expirationExtension": {
"type": "number",
"format": "int64"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAuthUrlSignAliCloudC": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"passPhrase": {
"type": "string"
},
"expirationExtension": {
"type": "number",
"format": "int64"
},
"tokenField": {
"type": "string"
},
"expireField": {
"type": "string"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAuthUrlSignHmacTlu": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"expireParameterName": {
"type": "string"
},
"keyIdParameterName": {
"type": "string"
},
"algorithmIdParameterName": {
"type": "string"
},
"digestParameterName": {
"type": "string"
},
"symmetricKeyIdMap": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"algorithmIdMap": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/custconfAuthUrlSignHmacTluAlgorithmIdMapEnumWrapperValue"
}
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAuthUrlSignHmacTluAlgorithmIdMapEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"hmacsha1",
"hmacsha256"
],
"default": "UNKNOWN"
},
"custconfAuthUrlSignIq": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"secretKey": {
"type": "string"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAwsSignedOriginPullV4": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"bucketIdentifier": {
"type": "string"
},
"accessKeyId": {
"type": "string"
},
"secretAccessKey": {
"type": "string"
},
"awsRegion": {
"type": "string"
},
"awsService": {
"type": "string"
},
"expireTimeSeconds": {
"type": "number",
"format": "int64"
},
"signedHeaders": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"authenticationType": {
"$ref": "#/definitions/custconfAwsSignedOriginPullV4AuthenticationTypeEnumWrapperValue"
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAwsSignedOriginPullV4AuthenticationTypeEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"query",
"header"
],
"default": "UNKNOWN"
},
"custconfAwsSignedS3PostV4": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"bucketIdentifier": {
"type": "string"
},
"accessKeyId": {
"type": "string"
},
"secretAccessKey": {
"type": "string"
},
"awsRegion": {
"type": "string"
},
"awsService": {
"type": "string"
},
"expireTimeSeconds": {
"type": "number",
"format": "int64"
},
"signedHeaders": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"authenticationType": {
"$ref": "#/definitions/custconfAwsSignedS3PostV4AuthenticationTypeEnumWrapperValue"
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAwsSignedS3PostV4AuthenticationTypeEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"query",
"header"
],
"default": "UNKNOWN"
},
"custconfBandWidthLimit": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"rule": {
"type": "string",
"description": "String of values delimited by a '|' character. These are pattern match rules to use for applying rate limiting on requests."
},
"values": {
"type": "string",
"description": "These are the initial bytes (ri) and the sustained rate (rs) query string parameters to use for this rule. Example: ri=100,rs=1000"
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The pattern based bandwidth throttling policy allows you to limit the transfer rate of assets to end users based on a set of rules matching the request's HTTP User-Agent and/or the path. Each rule must be expressed in the following format: <User-Agent Pattern>:<path pattern 1, path pattern 2>. For example, the pattern: \"Mozilla*:*.mp3,*dir*.exe|*IE*:*.jpg,*.zip|*ios 6*:* \" will match all MP3 files and EXE files containing the substring \"dir\" that are requested by a User-Agent containing the substring \"Mozilla,\" all JPG and ZIP files requested by a User-Agent containing the substring \"IE,\" and all requests made by User-Agents containing the substring \"ios 6.\""
},
"custconfBandwidthRateLimit": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"initialBurstName": {
"type": "string"
},
"sustainedRateName": {
"type": "string"
},
"initialBurstUnits": {
"$ref": "#/definitions/BandwidthRateLimitInitialBurstUnitsEnumWrapperValue"
},
"sustainedRateUnits": {
"$ref": "#/definitions/BandwidthRateLimitSustainedRateUnitsEnumWrapperValue"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfBypassCache": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"cookieFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "Bypass content caching on filter match"
},
"custconfCacheControl": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"statusCodeMatch": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"maxAge": {
"type": "integer",
"format": "int32",
"description": "The client TTL controls the lifetime of the asset in the browser's cache. The value entered here will be sent to the browser in the Cache-Control max-age directive for HTTP 1.1 clients and the Expires header for HTTP 1.0 clients."
},
"mustRevalidate": {
"type": "boolean",
"format": "boolean",
"description": "Selecting this option instructs the CDN caching servers to insert the must-revalidate directive on all HTTP responses sent to clients."
},
"synchronizeMaxAge": {
"type": "boolean",
"format": "boolean",
"description": "Selecting this option allows the CDN to synchronize the Max-Age header it sends to clients with the remaining TTL of the asset in the cache. This allows assets to expire from the browser cache at the same time they expire from the CDN."
},
"override": {
"type": "string",
"description": "This allows you to specify a custom Cache-Control header to be used by the CDN on all HTTP responses targeted by this policy. Note: Do not include the header name (Cache-Control) in this field. Only the value of the header should be specified."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The browser caching policy allows you to control the browser caching behavior of your assets independently from the CDN cache. For example, this policy allows you to set lower or higher TTLs for the browser than those of the CDN cache."
},
"custconfCacheKeyModification": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"normalizeKeyPathToLowerCase": {
"type": "boolean",
"format": "boolean",
"description": "When set, purges and requests for a file will be case insensitive. This setting is useful if you have a case insensitive origin server and would like to avoid duplicating assets."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The Cache Key Modification policy allows for manipulation of the way the cache uniquely stores assets."
},
"custconfClientRequestModification": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"urlPattern": {
"type": "string"
},
"urlRewrite": {
"type": "string"
},
"headerPattern": {
"type": "string"
},
"headerRewrite": {
"type": "string"
},
"addHeaders": {
"type": "string",
"description": "String of values delimited by a '|' character. This is the static HTTP header you want inserted into the CDN request. Start value with \"append:\", \"replace:\" or \"create:\" which defines if Header will be added, replaced or create if not exists. Default is append."
},
"flowControl": {
"$ref": "#/definitions/custconfClientRequestModificationFlowControlEnumWrapperValue"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"cookieFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfClientRequestModificationFlowControlEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"next",
"break"
],
"default": "UNKNOWN"
},
"custconfClientRequestQueueLogLevelEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"debug",
"info",
"warning",
"error",
"crit"
],
"default": "UNKNOWN"
},
"custconfClientResponseModification": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"statusCodeRewrite": {
"type": "number",
"format": "int64"
},
"headerPattern": {
"type": "string"
},
"headerRewrite": {
"type": "string"
},
"addHeaders": {
"type": "string",
"description": "String of values delimited by a '|' character. This is the static HTTP header you want inserted into the CDN response. Start value with \"append:\", \"replace:\" or \"create:\" which defines if Header will be added, replaced or create if not exists. Default is append."
},
"flowControl": {
"$ref": "#/definitions/custconfClientResponseModificationFlowControlEnumWrapperValue"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfClientResponseModificationFlowControlEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"next",
"break"
],
"default": "UNKNOWN"
},
"custconfClientResponseQueueLogLevelEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"debug",
"info",
"warning",
"error",
"crit"
],
"default": "UNKNOWN"
},
"custconfCompression": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"gzip": {
"type": "string",
"description": "String of values delimited by a ',' character. The list of file extensions you want the caching servers to use to identify the content you want compressed before delivering it to end users"
},
"mime": {
"type": "string",
"description": "String of values delimited by a ',' character. A list of rules based on MIME types you want the caching servers to use to identify content you want compressed before delivering it to end users."
},
"level": {
"type": "string"
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The compression policy allows you to provide a list of file extensions you want the CDN caching servers to automatically compress before delivering content to end users. This policy is typically used when your origin server does not support compression or you are unable to configure your origin to compress your files. If your origin is configured to already compress files, you should consider adding the Compressed Origin Pull policy to your host, which will enable the CDN caching server to request compressed (gzip) version of your assets. The compressed origin pull policy can be found in the Origin Pull policies list. Please note that our caching servers schedule the compression of files, and typically you do not see the compressed delivery until the file has been requested several times. Typically, this list is comprised of text files like javascript, html and CSS files. You should not include file extensions that match media files (images, videos, or audio files) or any other file format that includes a built in compression algorithm. Attempting to further compress these types of files usually results in a larger file being delivered to end users."
},
"custconfConfiguration": {
"type": "object",
"properties": {
"accessLogs": {
"$ref": "#/definitions/custconfAccessLogs"
},
"accessLogsConfig": {
"$ref": "#/definitions/custconfAccessLogsConfig"
},
"authACL": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfAuthACL"
},
"description": "IP address restrictions allow you to configure your CDN container to grant or deny a specific IP addresses or range of IP addresses from accessing content cached in a directory in your CDN container."
},
"authGeo": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfAuthGeo"
},
"description": "Geographic restrictions allow you to restrict content to end users in specific locations. The IP address of incoming requests is checked against a current list of IP allocations to countries and to states within the US. If an end user's IP address is not found in the list, they are allowed access to the content by default. The feature has both an Include and an Exclude list which are used to target the allowed audience."
},
"authHttpBasic": {
"$ref": "#/definitions/custconfAuthHttpBasic"
},
"authReferer": {
"$ref": "#/definitions/custconfAuthReferer"
},
"authUrlSign": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfAuthUrlSign"
},
"description": "URL Signing policies allow you to restrict access to your content by configuring a \"shared secret\" with StackPath. This \"shared secret\" is used to apply an MD5 hashing algorithm on the URL to validate the signature supplied on the request. Since the \"shared secret\" is only known by the publisher and StackPath, URL signatures cannot be generated by unauthorized users."
},
"authUrlSignAliCloudA": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfAuthUrlSignAliCloudA"
}
},
"authUrlSignAliCloudB": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfAuthUrlSignAliCloudB"
}
},
"authUrlSignAliCloudC": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfAuthUrlSignAliCloudC"
}
},
"authUrlSignHmacTlu": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfAuthUrlSignHmacTlu"
}
},
"authUrlSignIq": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfAuthUrlSignIq"
}
},
"authUrlAsymmetricSignTlu": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfAuthUrlAsymmetricSignTlu"
}
},
"bandWidthLimit": {
"$ref": "#/definitions/custconfBandWidthLimit"
},
"bandwidthRateLimit": {
"$ref": "#/definitions/custconfBandwidthRateLimit"
},
"bypassCache": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfBypassCache"
},
"description": "Bypass content caching on filter match"
},
"cacheControl": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfCacheControl"
},
"description": "The browser caching policy allows you to control the browser caching behavior of your assets independently from the CDN cache. For example, this policy allows you to set lower or higher TTLs for the browser than those of the CDN cache."
},
"cacheKeyModification": {
"$ref": "#/definitions/custconfCacheKeyModification"
},
"clientRequestModification": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfClientRequestModification"
}
},
"clientResponseModification": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfClientResponseModification"
}
},
"compression": {
"$ref": "#/definitions/custconfCompression"
},
"contentDispositionByURL": {
"$ref": "#/definitions/custconfContentDispositionByURL"
},
"contentDispositionByHeader": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfContentDispositionByHeader"
},
"description": "The content disposition by HTTP header match policy allows you to control the Content-Disposition delivered by the CDN using a pattern match against the value of any HTTP header present in the request. If you are using URL query string parameters to control the Content-Disposition header (using the Content Disposition by URL policy) then the Content-Disposition header generated by this policy will not be used on that specific request. A typical use case for this policy is to set a different Content-Disposition header based on the User-Agent in the request."
},
"customer": {
"$ref": "#/definitions/custconfCustomer"
},
"customHeader": {
"$ref": "#/definitions/custconfCustomHeader"
},
"customMimeType": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfCustomMimeType"
},
"description": "The custom mime type policy allows you to map file extensions to specific mime types for the CDN caching servers to use when delivering assets. The mime types you map using this policy may also be limited to specific response codes to address scenarios in which the mime type changes based on the response code."
},
"dynamicCacheRule": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfDynamicCacheRule"
},
"description": "Client response based on Rules."
},
"dynamicContent": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfDynamicContent"
},
"description": "The dynamic content caching policy allows you to specify a set of query string and/or HTTP header key/value pairs that should create a unique cache entry for a given URL. This policy is useful when your origin returns unique content for the same URL based on a set of query string parameters provided in the request."
},
"failSafeOriginPull": {
"$ref": "#/definitions/custconfFailSafeOriginPull"
},
"farAheadRangeProxy": {
"$ref": "#/definitions/custconfFarAheadRangeProxy"
},
"fileSegmentation": {
"$ref": "#/definitions/custconfFileSegmentation"
},
"flvPseudoStreaming": {
"$ref": "#/definitions/custconfFlvPseudoStreaming"
},
"gzipOriginPull": {
"$ref": "#/definitions/custconfGzipOriginPull"
},
"httpMethods": {
"$ref": "#/definitions/custconfHttpMethods"
},
"origin": {
"type": "array",
"items": {
"$ref": "#/definitions/cdncustconfOrigin"
}
},
"originPersistentConnections": {
"$ref": "#/definitions/custconfOriginPersistentConnections"
},
"originPull": {
"$ref": "#/definitions/custconfOriginPull"
},
"originPullCacheExtension": {
"$ref": "#/definitions/custconfOriginPullCacheExtension"
},
"originPullHost": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfOriginPullHost"
}
},
"originPullProtocol": {
"$ref": "#/definitions/custconfOriginPullProtocol"
},
"originPullLogs": {
"$ref": "#/definitions/custconfOriginPullLogs"
},
"originPullLogsConfig": {
"$ref": "#/definitions/custconfOriginPullLogsConfig"
},
"originPullPolicy": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfOriginPullPolicy"
},
"description": "The CDN caching policy allows you to control how your origin's content is cached on the CDN."
},
"originRequestModification": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfOriginRequestModification"
}
},
"originResponseModification": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfOriginResponseModification"
}
},
"queryStrParam": {
"$ref": "#/definitions/custconfQueryStrParam"
},
"receiptLogsConfig": {
"$ref": "#/definitions/custconfReceiptLogsConfig"
},
"redirectExceptions": {
"$ref": "#/definitions/custconfRedirectExceptions"
},
"redirectMappings": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfRedirectMappings"
},
"description": "The response code redirection policy allows you to map cache response codes to an HTTP redirect response. When this policy is applied to a host, the caching servers will redirect clients to the URL specified in this policy instead of delivering the response code you mapped in the policy."
},
"responseHeader": {
"$ref": "#/definitions/custconfResponseHeader"
},
"originPullResumeDownload": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfOriginPullResumeDownload"
},
"description": "The CDN attempts to resume downloading Origin Pulls once it successfully reads all the headers of a positive response under certain conditions by sending subsequent origin range requests for the remaining body. The response must be a 2xx to a GET request for the full file or a single range (not multi-range). The response must contain the Last-Modified and ETag headers."
},
"robotsTxt": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfRobotsTxt"
}
},
"awsSignedOriginPullV4": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfAwsSignedOriginPullV4"
}
},
"awsSignedS3PostV4": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfAwsSignedS3PostV4"
}
},
"staticHeader": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfStaticHeader"
},
"description": "The static header injection policy allows you to insert headers into the CDN request and response processor."
},
"timePseudoStreaming": {
"$ref": "#/definitions/custconfTimePseudoStreaming"
},
"http2Support": {
"$ref": "#/definitions/custconfHttp2Support"
},
"vHost": {
"type": "array",
"items": {
"$ref": "#/definitions/custconfVHost"
},
"description": "A hostname policy allows you to specify an alternate domain name that you want to use to access content from your CDN container."
}
}
},
"custconfContentDispositionByHeader": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"headerFieldName": {
"type": "string",
"description": "The setting allows you to specify the name of the HTTP header you'd like to use in the pattern match for this policy."
},
"headerValueMatch": {
"type": "string",
"description": "String of values delimited by a ',' character. A list of glob patterns that apply this policy if any of them match against the value of the header specified."
},
"defaultType": {
"$ref": "#/definitions/ContentDispositionByHeaderDefaultTypeEnumWrapperValue"
},
"overrideOriginHeader": {
"type": "boolean",
"format": "boolean",
"description": "This setting allows you to force the Content-Disposition generated by the CDN for this policy to override the Content-Disposition header cached from your origin."
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "The content disposition by HTTP header match policy allows you to control the Content-Disposition delivered by the CDN using a pattern match against the value of any HTTP header present in the request. If you are using URL query string parameters to control the Content-Disposition header (using the Content Disposition by URL policy) then the Content-Disposition header generated by this policy will not be used on that specific request. A typical use case for this policy is to set a different Content-Disposition header based on the User-Agent in the request."
},
"custconfContentDispositionByURL": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"dispositionNameQSParam": {
"type": "string",
"description": "This is the name of the query string parameter which contains the file name to use in the Content-Disposition header. This setting is typically used by customers to configure a \"friendly name\" for URLs that have obfuscated file names."
},
"dispositionTypeQSParam": {
"type": "string",
"description": "This is the name of the query string parameter which contains the disposition type to use in the Content-Disposition header. Typically, this value is set to attachment if you want the browser to present the user with a \"File Download\" dialog box and set to inline if you want the browser to render the content inline (play an audio/video file instead of downloading it)."
},
"dispositionOverrideQSParam": {
"type": "string",
"description": "This setting allows you to define a query string parameter that when present in the URL contains a string that should be used for the Content-Disposition header. The string specified in the URL will completely replace the value the CDN would have used based on other policies defined for the Content-Disposition header."
},
"overrideOriginHeader": {
"type": "boolean",
"format": "boolean",
"description": "This setting allows you to force the Content-Disposition generated by the CDN for this policy to override the Content-Disposition header cached from your origin."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The content disposition by URL policy allows you to control Content-Disposition HTTP header delivered by the CDN caching servers. The policy gives you control over each of the header directives and allows you to specify a URL pattern match for determining when to apply the policy. Please note this policy takes precedence over all the other content disposition policies."
},
"custconfCustomHeader": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"xForwardedForAuth": {
"type": "string",
"description": "This is the name of the X-Forwarded-For header you want the CDN to use when making requests to your basic authorization server."
},
"xForwardedForOrigin": {
"type": "string",
"description": "This is the name of the X-Forwarded-For header you want the CDN to use when making requests to your origin server."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The X-Forwarded-For header policy allows you to override the name of the X-Forwarded-For header the CDN sends to your origin."
},
"custconfCustomMimeType": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"code": {
"type": "string",
"description": "String of values delimited by a ',' character. A comma separated list of status codes that apply to this policy"
},
"extensionMap": {
"type": "string",
"description": "String of values delimited by a ',' character. This is a comma separated list of file extension and mime type pairs that describe the mime type mapping for the CDN caching servers. The file extension and mime type values should be delimited by a colon (:). For example, to map files ending with jpg to the image/jpeg mime type and files ending with png to image/png, set this value to: jpg:image/jpeg,png:image/png."
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "The custom mime type policy allows you to map file extensions to specific mime types for the CDN caching servers to use when delivering assets. The mime types you map using this policy may also be limited to specific response codes to address scenarios in which the mime type changes based on the response code."
},
"custconfCustomer": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"accessLogFields": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"opLogFields": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"receiptLogFields": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfDynamicCacheRule": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"statusCode": {
"type": "number",
"format": "int64",
"description": "Status code to return"
},
"headers": {
"type": "string",
"description": "String of values delimited by a '|' character. Pipe delimited ('|') list of headers to add to response"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "Client response based on Rules."
},
"custconfDynamicContent": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"queryParams": {
"type": "string",
"description": "String of values delimited by a ',' character. A comma separated list of query string parameters you want to include in the cache key generation. NOTE: This list is ignored when the Key Location is set to header."
},
"headerFields": {
"type": "string",
"description": "String of values delimited by a ',' character. A comma-separated list of glob patterns that represent HTTP request headers you want included in the cache key generation. Via the use of a colon ':', users can define each glob pattern to match a header name only, or the pattern can be used to match both the header name and value. A pattern without a colon ':' is treated as a header name ONLY match. If the pattern matches the header, then all values are used as a part of the cache key. If the pattern contains a colon, the CDN uses the pattern on the left of the colon to match the header. The pattern to the right of the colon is used to match the value. The CDN only uses the header/value as a part of the cache key if both patterns result in a match. Note, no pattern after a colon indicates an empty header (no value).\nSee the fnmatch manpage for acceptable glob patterns."
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "The dynamic content caching policy allows you to specify a set of query string and/or HTTP header key/value pairs that should create a unique cache entry for a given URL. This policy is useful when your origin returns unique content for the same URL based on a set of query string parameters provided in the request."
},
"custconfFailSafeOriginPull": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"statusCodeMatch": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfFarAheadRangeProxy": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"thresholdBytes": {
"type": "number",
"format": "int64"
}
}
},
"custconfFileSegmentation": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean",
"description": "Flag for enabling the File Segmentation Feature."
}
},
"description": "Policy for configuring the feature for downloading and storing files in segments rather than a whole entity."
},
"custconfFlvPseudoStreaming": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"jumpToByteInitialBytesParam": {
"type": "string"
},
"jumpToByteStartOffsetParam": {
"type": "string"
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
}
},
"custconfGzipOriginPull": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean",
"description": "This enables support for compressed origin pull"
}
},
"description": "The compressed origin pull policy allows you to enable the CDN caching servers to request compressed assets from your origin. By enabling this policy, the CDN caching servers send your origin the HTTP Accept-Encoding header with the gzip code (Accept-Encoding: gzip)."
},
"custconfHttp2Support": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean",
"description": "Enable support of HTTP2"
}
},
"description": "Enable support of HTTP2"
},
"custconfHttpMethods": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"passThru": {
"type": "string",
"description": "String of values delimited by a ',' character. This is a comma separated list of HTTP methods you want the CDN to proxy to your origin. A wildcard can be entered to include all methods (excluding HEAD and GET)."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The HTTP methods policy allows you to selectively enable additional HTTP methods you want your CDN container to process. A container automatically is set up to process HTTP GET and HEAD commands, so they should not be explicitly defined in this policy. HTTP methods included in this policy are proxied directly to your origin and not cached by the CDN."
},
"custconfMidTierCachingProtocolEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"http",
"https",
"match"
],
"default": "UNKNOWN"
},
"custconfOriginPersistentConnections": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The origin persistent connection settings are used to enable persistent connections to origins"
},
"custconfOriginPull": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"redirectAction": {
"$ref": "#/definitions/OriginPullRedirectActionEnumWrapperValue"
},
"noQSParams": {
"type": "boolean",
"format": "boolean",
"description": "GFS sends a path without any query string parameters when making external origin requests regardless if any parameters were sent by the User-Agent."
},
"retryMethods": {
"type": "string",
"description": "String of values delimited by a ',' character. List of HTTP Methods that define types of origin pull requests that can be retried if a failure occurs after sending a previous request."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The origin pull settings policy contains a list of settings that control the behavior of origin pull requests."
},
"custconfOriginPullCacheExtension": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"expiredCacheExtension": {
"type": "integer",
"format": "int32",
"description": "This is the number of seconds to extend an asset's TTL when the origin is unavailable. The CDN will continue to retry the origin up to the Origin Unavailable Max TTL."
},
"originUnreachableCacheExtension": {
"type": "integer",
"format": "int32",
"description": "The origin unavailable max TTL value is used by the caching server when your origin is unresponsive or the CDN cannot establish a connection to your origin. Under these conditions, the CDN can continue to serve expired assets from the cache. The value specified in this field establishes a maximum allowable TTL for your expired assets. If your origin connectivity or responsiveness is not corrected within your maximum allowable TTL, the CDN no longer serves your expired assets."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The cache extension policy allows you to define cache revalidation exceptions on expired content. This policy is applied by the CDN caching servers when they are are unable to revalidate an expired asset with your origin due to network connectivity issues or unresponsiveness from your origin."
},
"custconfOriginPullHost": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"originUrl": {
"type": "string"
},
"userName": {
"type": "string"
},
"password": {
"type": "string"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfOriginPullLogs": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "Enable/Disable Origin Pull Logs"
},
"custconfOriginPullLogsConfig": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"extraLogFields": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "Origin Pull Log Settings"
},
"custconfOriginPullPolicy": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"statusCodeMatch": {
"type": "string",
"description": "String of values delimited by a ',' character. This is a pattern match expression for each status code this policy applies to. For example, 2*, 3* applies this policy to all 200 and 300 level HTTP responses from your origin."
},
"expirePolicy": {
"$ref": "#/definitions/OriginPullPolicyExpirePolicyEnumWrapperValue"
},
"expireSeconds": {
"type": "integer",
"format": "int32",
"description": "This is the expiration time used for assets pulled from your origin. When using Cache-Control headers expiration methods, this value is used if your origin doesn't return a max-age directive in the Cache-Control HTTP header. Please note that a value of 0 in this fields instructs the caching server to retain assets for as long as possible."
},
"honorNoStore": {
"type": "boolean",
"format": "boolean",
"description": "This enables the processing of no-store HTTP Cache-Control directives on your container. By enabling this option, responses from your origin containing the no-store directive are not cached. Be aware that requests for non-cacheable assets are always forwarded to your origin and may impose a high request and bandwidth load on your origin."
},
"honorNoCache": {
"type": "boolean",
"format": "boolean",
"description": "This enables the processing of no-cache HTTP Cache-Control directives on your container. By enabling this option, responses from your origin containing the no-cache directive force the CDN to submit every subsequent request to your origin for validation before serving the asset stored in the cache."
},
"honorMustRevalidate": {
"type": "boolean",
"format": "boolean"
},
"noCacheBehavior": {
"$ref": "#/definitions/OriginPullPolicyNoCacheBehaviorEnumWrapperValue"
},
"maxAgeZeroToNoCache": {
"type": "boolean",
"format": "boolean",
"description": "This enables the CDN to apply the no-cache behavior for assets delivered by your origin containing a max-age directive equal to zero."
},
"mustRevalidateToNoCache": {
"type": "boolean",
"format": "boolean",
"description": "This enables the CDN to apply the no-cache behavior for assets delivered by your origin containing the must-revalidate directive."
},
"bypassCacheIdentifier": {
"type": "string",
"description": "This allows you to define a custom directive that, when used by your origin in the Cache-Control response headers, forces the CDN to proxy the request to the end user without caching the result."
},
"forceBypassCache": {
"type": "boolean",
"format": "boolean",
"description": "This forces the CDN to not cache any asset pulled from your origin that would otherwise be stored at this location in the cache. Typically this policy is used to prevent 4XX and 5XX response codes from overwriting a file in the cache when used with corresponding Origin Status Code Match setting. If bypass cache behavior is desired for all assets at a scope, Origin Pull Queue Behavior in the Origin Pull Settings also needs to be set to NOCACHE for that scope."
},
"httpHeaders": {
"type": "string",
"description": "String of values delimited by a ',' character. This is the list of your origin's HTTP headers that you want the CDN to cache and deliver to end users."
},
"honorPrivate": {
"type": "boolean",
"format": "boolean",
"description": "This enables the processing of private HTTP Cache-Control directives on your container. By enabling this option, responses from your origin containing the private directive are not cached. Be aware that requests for non-cacheable assets are always forwarded to your origin and may impose a high request and bandwidth load on your origin."
},
"honorSMaxAge": {
"type": "boolean",
"format": "boolean",
"description": "This enables the processing of s-maxage HTTP Cache-Control directives on your container. By enabling this option, the s-maxage HTTP Cache-Control directive in the responses from your origin takes precedence over the max-age directive. If both max-age and s-maxage need to be preserved in the client response, the Cache-Control header must be added to the \"Http Header Caching\" setting."
},
"updateHttpHeadersOn304Response": {
"type": "boolean",
"format": "boolean"
},
"defaultCacheBehavior": {
"$ref": "#/definitions/OriginPullPolicyDefaultCacheBehaviorEnumWrapperValue"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"contentTypeFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "The CDN caching policy allows you to control how your origin's content is cached on the CDN."
},
"custconfOriginPullProtocol": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"protocol": {
"$ref": "#/definitions/custconfOriginPullProtocolProtocolEnumWrapperValue"
},
"enableSNI": {
"type": "boolean",
"format": "boolean",
"description": "This key allows you to configure the CDN caching servers to use SNI while making Secured Connection to Origin."
}
},
"description": "The Origin Pull Protocol allows you to configure the CDN caching servers to use secured or non-secured connection to Origin."
},
"custconfOriginPullProtocolProtocolEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"http",
"https",
"match"
],
"default": "UNKNOWN"
},
"custconfOriginPullResumeDownload": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"originalStatusCodeMatch": {
"type": "string",
"description": "String of values delimited by a ',' character. Comma separated list of glob patterns that indicate which origin pulls this policy applies to based on the status code of the original origin response. This feature is limited to 2xx responses, but this policy provides fine control, such as permitting resume of 200 responses by not 206, or for adding a 2xx response code other than 200 or 206."
},
"minimumBodyBytesConsumed": {
"type": "string",
"description": "Minimum number of body bytes that CDN must have consumed during an Origin Pull before encountering an error before it is permitted to attempt resuming the download. This value does not include the headers bytes."
},
"maximumAttempts": {
"type": "number",
"format": "int64",
"description": "Maximum number of times beyond the initial request that the CDN is permitted to attempt resuming an Origin Pull download."
},
"requireOriginRangeSupport": {
"type": "boolean",
"format": "boolean",
"description": "The CDN resumes an Origin Pull even if the origin does not support range requests. If the origin does not support range requests and/or returns a 200 response for the same version given in the original response, the CDN fast-forwards (reads and discards bytes) until it reaches its previous position in the asset."
},
"etagValidation": {
"$ref": "#/definitions/OriginPullResumeDownloadEtagValidationEnumWrapperValue"
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "The CDN attempts to resume downloading Origin Pulls once it successfully reads all the headers of a positive response under certain conditions by sending subsequent origin range requests for the remaining body. The response must be a 2xx to a GET request for the full file or a single range (not multi-range). The response must contain the Last-Modified and ETag headers."
},
"custconfOriginRequestModification": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"urlPattern": {
"type": "string"
},
"urlRewrite": {
"type": "string"
},
"headerPattern": {
"type": "string"
},
"headerRewrite": {
"type": "string"
},
"addHeaders": {
"type": "string",
"description": "String of values delimited by a '|' character. This is the static HTTP header you want inserted into the CDN request. Start value with \"append:\", \"replace:\" or \"create:\" which defines if Header will be added, replaced or create if not exists. Default is append."
},
"flowControl": {
"type": "string"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"cookieFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfOriginRequestQueueLogLevelEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"debug",
"info",
"warning",
"error",
"crit"
],
"default": "UNKNOWN"
},
"custconfOriginResponseModification": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"statusCodeRewrite": {
"type": "number",
"format": "int64"
},
"headerPattern": {
"type": "string"
},
"headerRewrite": {
"type": "string"
},
"addHeaders": {
"type": "string",
"description": "String of values delimited by a '|' character. This is the static HTTP header you want inserted into the CDN response. Start value with \"append:\", \"replace:\" or \"create:\" which defines if Header will be added, replaced or create if not exists. Default is append."
},
"flowControl": {
"$ref": "#/definitions/custconfOriginResponseModificationFlowControlEnumWrapperValue"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfOriginResponseModificationFlowControlEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"next",
"break"
],
"default": "UNKNOWN"
},
"custconfOriginResponseQueueLogLevelEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"debug",
"info",
"warning",
"error",
"crit"
],
"default": "UNKNOWN"
},
"custconfQueryStrParam": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"dispositionName": {
"type": "string",
"description": "This is the name of the query string parameter which contains the name of the file to specify in the Content-Disposition HTTP response header. This setting is typically used by customers to configure a \"friendly name\" for URLs that have obfuscated file names. This setting controls the \"filename\" directive that is part of the Content-Disposition HTTP header."
},
"dispositionType": {
"type": "string",
"description": "This is the name of the query string parameter which contains the disposition type to use in the Content-Disposition HTTP header. Typically, this value is set to \"attachment,\" but you may supply a custom string using this setting."
},
"dispositionOverride": {
"type": "string",
"description": "This setting allows you to completely override the Content-Disposition HTTP header that the CDN caching servers use on a response."
},
"jumpToTimeStart": {
"type": "string",
"description": "This is the name of the query string parameter that indicates to the CDN the start time offset of the video returned. This parameter is part of the jump-to-time feature that is initiated on a per request basis."
},
"jumpToTimeEnd": {
"type": "string",
"description": "This is the name of the query string parameter that indicates to the CDN the end time offset of the video that should be returned. This parameter is part of the jump-to-time feature that is initiated on a per request basis."
},
"jumpToByteInitialBytes": {
"type": "string",
"description": "This is the name of the query string parameter that indicates to the CDN the initial bytes of a video that should be returned before sending the requested byte offset. This parameter is part of the jump-to-byte feature that is initiated on a per request basis."
},
"jumpToByteStartOffset": {
"type": "string",
"description": "This is the name of the query string parameter that indicates to the CDN the specific offset into the video that is being requested. This parameter is part of the jump-to-byte feature that is initiated on a per request basis."
},
"rateLimitInitial": {
"type": "string",
"description": "This is the name of the query string parameter that indicates to the CDN an initial burst rate to use when delivering a file. This parameter is part of the bandwidth limiting feature that is initiated on a per request basis."
},
"rateLimitSustained": {
"type": "string",
"description": "This is the name of the query string parameter that indicates to the CDN the sustained rate being requested for the delivery of a file. This parameter is part of the bandwidth throttling feature that is initiated on a per request basis."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The reserved query string parameters policy describes all the query string parameters the StackPath CDN caching server reserves for special processing of your requests."
},
"custconfReceiptLogsConfig": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"extraLogFields": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "Delivery receipt log settings"
},
"custconfRedirectExceptions": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"redirectAgentCode": {
"type": "string",
"description": "String of values delimited by a ',' character. This is a comma separated list of user agents and redirect code pairs. The user agent and redirect code values are separated by a colon (:), and you may use wildcards in the user agent field. For example, to map assign a 307 status code to all Chrome browsers, you would specify: *chrome*:307."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The redirect response codes policy allows you to specify the HTTP redirect status code the CDN caching server should use when the CDN issues a redirect. Using this policy, you can assign different redirect codes to user agents requesting content."
},
"custconfRedirectMappings": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"code": {
"type": "number",
"format": "int64",
"description": "The HTTP cache response code that applies to this policy."
},
"redirectURL": {
"type": "string",
"description": "The URL that clients would be redirected to when applying this policy."
},
"replacementToken": {
"type": "string",
"description": "A token that will be replaced by the caching server with the URL of the request that triggered the policy. This token can be positioned anywhere in the redirect URL."
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "The response code redirection policy allows you to map cache response codes to an HTTP redirect response. When this policy is applied to a host, the caching servers will redirect clients to the URL specified in this policy instead of delivering the response code you mapped in the policy."
},
"custconfResponseHeader": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"http": {
"type": "string",
"description": "A pipe delimited list of rules that instructs the CDN caching servers to include a content-disposition header. The rules included in this setting must be entered in the following format: Content-Disposition:<User Agent>:<file extension 1>, <file extension 2>. For example, to send the Content-Disposition header for all Mozilla browsers on the delivery of mp3, exe, tar, zip, gz and rar files, you would enter the following in the field: Content-Disposition:Mozilla*:mp3,exe,tar,zip,gz,rar"
},
"enableETag": {
"type": "boolean",
"format": "boolean",
"description": "This gives the ability to disable the ETag header on the response."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The custom HTTP response headers policy allows you to specify a list of HTTP headers you want the CDN caching servers to include in the response to clients."
},
"custconfRobotsTxt": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"file": {
"type": "string",
"format": "base64"
},
"cacheControlHeader": {
"type": "string"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfStaticHeader": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"clientRequest": {
"type": "string",
"description": "This is the static HTTP header you want inserted into the CDN request."
},
"http": {
"type": "string",
"description": "This is the static HTTP header you want inserted into the CDN response."
},
"originPull": {
"type": "string",
"description": "This is the HTTP header you want inserted into the origin pull request."
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "The static header injection policy allows you to insert headers into the CDN request and response processor."
},
"custconfTimePseudoStreaming": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"jumpToTimeStartParam": {
"type": "string",
"description": "The name of the query string parameter that indicates to the CDN the specific time interval of the video that is being requested."
},
"jumpToTimeEndParam": {
"type": "string",
"description": "The name of the query string parameter that indicates to the CDN the end time of the video that should be returned."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The HTTP pseudo-streaming policy enables Flash based video players to support seeking to random locations within a MP4 or FLV file without having to download the entire video. Flash players such as Flowplayer and JWPlayer can be configured to send a query string parameter that indicates to the server the time offset the user advanced the video to. Typically a query string parameter called \"start\" is used by these players."
},
"custconfVHost": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"domain": {
"type": "string",
"description": "This is the hostname you want to enable in this policy. Note: You must configure your container's CNAME record with your DNS provider to enable this hostname to deliver content."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "A hostname policy allows you to specify an alternate domain name that you want to use to access content from your CDN container."
},
"deliveryAWSS3Origin": {
"type": "object",
"properties": {
"bucketName": {
"type": "string",
"description": "The AWS S3 bucket name"
},
"bucketRegion": {
"type": "string",
"description": "The AWS S3 bucket region"
},
"authentication": {
"$ref": "#/definitions/deliveryOriginAuthentication"
}
},
"description": "AWS S3 bucket as origin"
},
"deliveryBasicAuthentication": {
"type": "object",
"properties": {
"username": {
"type": "string",
"description": "The username to be used when authenticating with the origin."
},
"password": {
"type": "string",
"description": "The password to be used when authenticating with the origin."
}
},
"description": "Basic HTTP authentication"
},
"deliveryConnectScopeToOriginRequest": {
"type": "object",
"properties": {
"origin": {
"$ref": "#/definitions/deliveryConnectScopeToOriginRequestOrigin"
},
"priority": {
"type": "integer",
"format": "int32",
"description": "The origin's priority to the scope\n\nIf more than one origin powers a CDN scope, then the one with the lower priority number takes higher precedence. When there is an origin already in place, the following rules are followed:\n\n- If an origin ID is provided, then the current origin at that priority is disconnected in favor of the new one.\n- If an origin is provided and the current origin at the given priority is dedicated, then the origin is updated in place.\n- If an origin is provided and no dedicated origin exists, the origin is created and connected to the scope."
},
"originId": {
"type": "string",
"description": "The ID of an existing origin to associate with a scope\n\nThis is useful for connecting to a shared origin."
}
},
"description": "A request to associate an origin with a CDN site scope"
},
"deliveryConnectScopeToOriginRequestOrigin": {
"type": "object",
"properties": {
"http": {
"$ref": "#/definitions/deliveryHTTPOrigin"
},
"stackpathStorage": {
"$ref": "#/definitions/deliveryStackPathStorageOrigin"
},
"s3Storage": {
"$ref": "#/definitions/deliveryAWSS3Origin"
},
"googleCloudStorage": {
"$ref": "#/definitions/deliveryGoogleStorageOrigin"
}
},
"description": "A new origin"
},
"deliveryConnectScopeToOriginResponse": {
"type": "object",
"properties": {
"scopeOrigin": {
"$ref": "#/definitions/deliveryScopeOrigin"
}
},
"description": "The response from a request to associate an origin with a CDN site scope"
},
"deliveryCreateSiteDeliveryDomainRequest": {
"type": "object",
"properties": {
"domain": {
"type": "string",
"description": "The delivery domain to add to a site"
}
},
"title": ""
},
"deliveryCreateSiteDeliveryDomainResponse": {
"type": "object",
"properties": {
"domain": {
"$ref": "#/definitions/schemadeliveryDeliveryDomain"
}
},
"description": "The response from a request to add a hostname to a CDN site scope"
},
"deliveryCreateSiteRequest": {
"type": "object",
"properties": {
"domain": {
"type": "string",
"description": "The site's domain name"
},
"origin": {
"$ref": "#/definitions/deliveryCreateSiteRequestOrigin"
},
"features": {
"type": "array",
"items": {
"$ref": "#/definitions/deliveryCreateSiteRequestFeature"
},
"description": "A list of features desired on the site"
},
"configuration": {
"$ref": "#/definitions/custconfConfiguration"
},
"apiLoginUrls": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of API login URLs which receive different processing through the WAF than other HTTP requests\n\nAPI login URLs are only applicable to API type sites."
},
"shieldPopCodes": {
"type": "array",
"items": {
"type": "string"
},
"description": "An optional list of StackPath POPs through which to funnel all incoming site requests"
}
},
"title": ""
},
"deliveryCreateSiteRequestFeature": {
"type": "string",
"enum": [
"CDN",
"WAF",
"API",
"SERVERLESS_EDGE_ENGINE"
],
"default": "CDN"
},
"deliveryCreateSiteRequestOrigin": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "The path the site should request from the origin"
},
"hostname": {
"type": "string",
"description": "The origin's fully-qualified domain name"
},
"port": {
"type": "integer",
"format": "int32",
"description": "The TCP port the site should connect to for HTTP requests"
},
"securePort": {
"type": "integer",
"format": "int32",
"description": "The TCP port the site should connect to for HTTPS requests"
},
"hostHeader": {
"type": "string",
"description": "The value of the Host header that the site should set when requesting from the origin"
},
"http": {
"$ref": "#/definitions/deliveryHTTPOrigin"
},
"stackpathStorage": {
"$ref": "#/definitions/deliveryStackPathStorageOrigin"
},
"s3Storage": {
"$ref": "#/definitions/deliveryAWSS3Origin"
},
"googleCloudStorage": {
"$ref": "#/definitions/deliveryGoogleStorageOrigin"
}
},
"description": "The site's origin"
},
"deliveryCreateSiteResponse": {
"type": "object",
"properties": {
"site": {
"$ref": "#/definitions/deliverySite"
}
},
"description": "The response from a request to create a new site"
},
"deliveryEnableSiteWAFRequest": {
"type": "object",
"properties": {
"apiUrls": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of API URLs which receive different processing through the WAF than website requests"
}
},
"title": ""
},
"deliveryGetOriginResponse": {
"type": "object",
"properties": {
"origin": {
"$ref": "#/definitions/schemadeliveryOrigin"
}
},
"description": "The response with the requested origin"
},
"deliveryGetOriginsResponse": {
"type": "object",
"properties": {
"pageInfo": {
"$ref": "#/definitions/paginationPageInfo"
},
"results": {
"type": "array",
"items": {
"$ref": "#/definitions/schemadeliveryOrigin"
},
"description": "The requested origins"
}
},
"description": "The response from a request to retrieve all origins on a stack"
},
"deliveryGetScopeOriginsResponse": {
"type": "object",
"properties": {
"pageInfo": {
"$ref": "#/definitions/paginationPageInfo"
},
"results": {
"type": "array",
"items": {
"$ref": "#/definitions/deliveryScopeOrigin"
},
"description": "The requested scope's origins"
}
},
"description": "The response from a request to retrieve a site scope's origins"
},
"deliveryGetSiteDeliveryDomainsResponse": {
"type": "object",
"properties": {
"pageInfo": {
"$ref": "#/definitions/paginationPageInfo"
},
"results": {
"type": "array",
"items": {
"$ref": "#/definitions/schemadeliveryDeliveryDomain"
},
"description": "The requested site delivery domains"
}
},
"description": "The response from a request to retrieve a site's associated delivery domains"
},
"deliveryGetSiteResponse": {
"type": "object",
"properties": {
"site": {
"$ref": "#/definitions/deliverySite"
}
},
"description": "The response from a request to retrieve a single site"
},
"deliveryGetSitesResponse": {
"type": "object",
"properties": {
"pageInfo": {
"$ref": "#/definitions/paginationPageInfo"
},
"results": {
"type": "array",
"items": {
"$ref": "#/definitions/deliverySite"
},
"description": "The requested sites"
}
},
"description": "The response from a request to retrieve a stack's sites"
},
"deliveryGoogleStorageOrigin": {
"type": "object",
"properties": {
"bucketName": {
"type": "string",
"description": "The Google's Storage bucket name"
}
},
"description": "Google Storage bucket as origin"
},
"deliveryHTTPOrigin": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "The origin's new HTTP request path"
},
"hostname": {
"type": "string",
"description": "The origin's new HTTP request hostname"
},
"port": {
"type": "integer",
"format": "int32",
"description": "The origin's new HTTP request port\n\nSet this to 0 to remove this value"
},
"securePort": {
"type": "integer",
"format": "int32",
"description": "The origin's new HTTPS request port\n\nSet this to 0 to remove this value"
},
"authentication": {
"$ref": "#/definitions/deliveryOriginAuthentication"
},
"verifyCertificate": {
"type": "boolean",
"format": "boolean",
"description": "Enable Certificate Verification while doing SSL OriginPull"
},
"certificateCommonName": {
"type": "string",
"description": "Common Name to validate certificate against. This value needs to be provided when enabling `verify_certificate`"
},
"hostHeader": {
"type": "string",
"description": "The value of the Host header that the site should set when requesting from the origin"
}
},
"description": "HTTP server as origin"
},
"deliveryOriginAuthentication": {
"type": "object",
"properties": {
"basic": {
"$ref": "#/definitions/deliveryBasicAuthentication"
},
"s3": {
"$ref": "#/definitions/deliveryS3Authentication"
}
},
"description": "An origin's authentication method"
},
"deliveryS3Authentication": {
"type": "object",
"properties": {
"accessKey": {
"type": "string",
"description": "The access key"
},
"secretKey": {
"type": "string",
"description": "The secret key"
}
},
"description": "Secret key authentication"
},
"deliveryScopeOrigin": {
"type": "object",
"properties": {
"priority": {
"type": "integer",
"format": "int32",
"description": "An origin's priority to its site scope\n\nIf a CDN scope is powered by more than one origin, then the one with the lower priority number takes higher precedence."
},
"origin": {
"$ref": "#/definitions/schemadeliveryOrigin"
}
},
"description": "A relationship between a site's configuration scope and an origin"
},
"deliverySite": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "A site's unique identifier"
},
"stackId": {
"type": "string",
"description": "The ID of the stack to which a site belongs"
},
"label": {
"type": "string",
"description": "The site's name"
},
"status": {
"type": "string",
"description": "The site's status"
},
"features": {
"type": "array",
"items": {
"$ref": "#/definitions/deliverySiteFeature"
},
"description": "A site's features\n\nSite features control how its content is delivered to end users."
},
"apiLoginUrls": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of API login URLs which receive different processing through the WAF than other API requests\n\nAPI login URLs are only applicable to API type sites."
},
"shieldPopCodes": {
"type": "array",
"items": {
"type": "string"
},
"description": "An optional list of StackPath POPs through which to funnel all incoming site requests"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "The date a site was created"
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "The date a site was last updated"
},
"apiUrls": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of API URLs which receive different processing through the WAF than website requests"
},
"monitoring": {
"type": "boolean",
"format": "boolean",
"description": "Whether or not a site's WAF service is in a monitor state\n\nSites in WAF monitoring mode accept incoming requests and log but take no action on policy and rule violations."
}
}
},
"deliverySiteFeature": {
"type": "string",
"enum": [
"UNKNOWN",
"CDN",
"WAF",
"API",
"SERVERLESS_EDGE_ENGINE"
],
"default": "UNKNOWN",
"description": "A site feature\n\nA site's feature determines how StackPath delivers content to incoming HTTP(S) requests\n\n - UNKNOWN: StackPath is unable to determine a site's feature\n - CDN: A site has CDN caching\n - WAF: A site has WAF protection\n - API: A site has API-specific protections\n - SERVERLESS_EDGE_ENGINE: A site can serve EdgeEngine serverless scripts"
},
"deliveryStackPathStorageOrigin": {
"type": "object",
"properties": {
"bucketName": {
"type": "string",
"description": "The StackPath's Storage bucket name"
},
"bucketRegion": {
"type": "string",
"description": "The StackPath's Storage bucket region"
},
"authentication": {
"$ref": "#/definitions/deliveryOriginAuthentication"
}
},
"description": "StackPath Storage bucket as origin"
},
"deliveryUpdateOriginRequest": {
"type": "object",
"properties": {
"http": {
"$ref": "#/definitions/deliveryHTTPOrigin"
},
"stackpathStorage": {
"$ref": "#/definitions/deliveryStackPathStorageOrigin"
},
"s3Storage": {
"$ref": "#/definitions/deliveryAWSS3Origin"
},
"googleCloudStorage": {
"$ref": "#/definitions/deliveryGoogleStorageOrigin"
}
},
"title": ""
},
"deliveryUpdateOriginResponse": {
"type": "object",
"properties": {
"origin": {
"$ref": "#/definitions/schemadeliveryOrigin"
}
},
"description": "The response from a request to update an origin"
},
"paginationPageInfo": {
"type": "object",
"properties": {
"totalCount": {
"type": "string",
"description": "The total number of items in the dataset"
},
"hasPreviousPage": {
"type": "boolean",
"format": "boolean",
"description": "Whether or not a previous page of data exists"
},
"hasNextPage": {
"type": "boolean",
"format": "boolean",
"description": "Whether or not another page of data is available"
},
"startCursor": {
"type": "string",
"description": "The cursor for the first item in the set of data returned"
},
"endCursor": {
"type": "string",
"description": "The cursor for the last item in the set of data returned"
}
},
"description": "Information about a paginated response\n\nThis is modeled after the GraphQL Relay spec to support both cursor based pagination and traditional offset based pagination."
},
"paginationPageRequest": {
"type": "object",
"properties": {
"first": {
"type": "string",
"description": "The number of items desired"
},
"after": {
"type": "string",
"description": "The cursor value after which data will be returned"
},
"filter": {
"type": "string",
"description": "SQL-style constraint filters"
},
"sortBy": {
"type": "string",
"description": "Sort the response by the given field"
}
},
"description": "Pagination request information\n\nThis is modeled after the GraphQL Relay spec to support both cursor based pagination and traditional offset based pagination."
},
"prometheusMetrics": {
"type": "object",
"properties": {
"status": {
"$ref": "#/definitions/prometheusMetricsStatus"
},
"data": {
"$ref": "#/definitions/MetricsData"
},
"errorType": {
"type": "string",
"description": "The type of error encountered when querying for metrics"
},
"error": {
"type": "string",
"description": "The error encountered when querying for metrics"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
},
"description": "Warnings encountered when querying for metrics"
}
},
"description": "A collection of metrics"
},
"prometheusMetricsStatus": {
"type": "string",
"enum": [
"SUCCESS",
"ERROR"
],
"default": "SUCCESS",
"description": "A metrics query's resulting status"
},
"schemadeliveryDeliveryDomain": {
"type": "object",
"properties": {
"domain": {
"type": "string",
"description": "A site's domain name"
},
"validatedAt": {
"type": "string",
"format": "date-time",
"description": "The date the domain was validated to be pointing to us"
}
},
"description": "An individual delivery domain"
},
"schemadeliveryOrigin": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "An origin's unique identifier"
},
"stackId": {
"type": "string",
"description": "The stack for which the origin belongs to"
},
"dedicated": {
"type": "boolean",
"format": "boolean",
"description": "Whether or not an origin is dedicated to a CDN site\n\nDedicated origins cannot be used by any site other than that to which it is dedicated."
},
"siteId": {
"type": "string",
"description": "The ID of the CDN site to which an origin is dedicated"
},
"http": {
"$ref": "#/definitions/deliveryHTTPOrigin"
},
"stackpathStorage": {
"$ref": "#/definitions/deliveryStackPathStorageOrigin"
},
"s3Storage": {
"$ref": "#/definitions/deliveryAWSS3Origin"
},
"googleCloudStorage": {
"$ref": "#/definitions/deliveryGoogleStorageOrigin"
}
},
"description": "A CDN site's origin\n\nOrigins are the original sources of the data that is cached by the CDN on request."
},
"stackpath.rpc.BadRequest": {
"allOf": [
{
"$ref": "#/definitions/apiStatusDetail"
},
{
"type": "object",
"properties": {
"fieldViolations": {
"type": "array",
"items": {
"$ref": "#/definitions/stackpath.rpc.BadRequest.FieldViolation"
}
}
}
}
]
},
"stackpath.rpc.BadRequest.FieldViolation": {
"type": "object",
"properties": {
"field": {
"type": "string"
},
"description": {
"type": "string"
}
}
},
"stackpath.rpc.Help": {
"allOf": [
{
"$ref": "#/definitions/apiStatusDetail"
},
{
"type": "object",
"properties": {
"links": {
"type": "array",
"items": {
"$ref": "#/definitions/stackpath.rpc.Help.Link"
}
}
}
}
]
},
"stackpath.rpc.Help.Link": {
"type": "object",
"properties": {
"description": {
"type": "string"
},
"url": {
"type": "string"
}
}
},
"stackpath.rpc.LocalizedMessage": {
"allOf": [
{
"$ref": "#/definitions/apiStatusDetail"
},
{
"type": "object",
"properties": {
"locale": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
]
},
"stackpath.rpc.PreconditionFailure": {
"allOf": [
{
"$ref": "#/definitions/apiStatusDetail"
},
{
"type": "object",
"properties": {
"violations": {
"type": "array",
"items": {
"$ref": "#/definitions/stackpath.rpc.PreconditionFailure.Violation"
}
}
}
}
]
},
"stackpath.rpc.PreconditionFailure.Violation": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"subject": {
"type": "string"
},
"description": {
"type": "string"
}
}
},
"stackpath.rpc.QuotaFailure": {
"allOf": [
{
"$ref": "#/definitions/apiStatusDetail"
},
{
"type": "object",
"properties": {
"violations": {
"type": "array",
"items": {
"$ref": "#/definitions/stackpath.rpc.QuotaFailure.Violation"
}
}
}
}
]
},
"stackpath.rpc.QuotaFailure.Violation": {
"type": "object",
"properties": {
"subject": {
"type": "string"
},
"description": {
"type": "string"
}
}
},
"stackpath.rpc.RequestInfo": {
"allOf": [
{
"$ref": "#/definitions/apiStatusDetail"
},
{
"type": "object",
"properties": {
"requestId": {
"type": "string"
},
"servingData": {
"type": "string"
}
}
}
]
},
"stackpath.rpc.ResourceInfo": {
"allOf": [
{
"$ref": "#/definitions/apiStatusDetail"
},
{
"type": "object",
"properties": {
"resourceType": {
"type": "string"
},
"resourceName": {
"type": "string"
},
"owner": {
"type": "string"
},
"description": {
"type": "string"
}
}
}
]
},
"stackpath.rpc.RetryInfo": {
"allOf": [
{
"$ref": "#/definitions/apiStatusDetail"
},
{
"type": "object",
"properties": {
"retryDelay": {
"type": "string"
}
}
}
]
},
"stackpathapiStatus": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32"
},
"error": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"$ref": "#/definitions/apiStatusDetail"
}
}
}
}
},
"securityDefinitions": {
"oauth2": {
"type": "oauth2",
"flow": "application",
"tokenUrl": "https://gateway.stackpath.com/identity/v1/oauth2/token"
}
},
"security": [
{
"oauth2": []
}
],
"externalDocs": {
"description": "The StackPath API Reference",
"url": "https://stackpath.dev/reference"
},
"x-explorer-enabled": true,
"x-proxy-enabled": true,
"x-samples-enabled": true,
"x-samples-languages": [
"curl",
"node",
"ruby",
"javascript",
"python"
]
}
{
"openapi": "3.0.0",
"info": {
"title": "Sites",
"version": "1.0.0",
"contact": {
"name": "StackPath Support",
"url": "https://support.stackpath.com/"
}
},
"paths": {
"/delivery/v1/stacks/{stack_id}/certificates/{certificate_id}/recheck": {
"post": {
"summary": "Recheck a certificate's verification details while being issued. This will only work for Stackpath free site certificates.",
"operationId": "RecheckCertificateVerification",
"responses": {
"204": {
"description": "No content"
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the certificate to recheck",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "certificate_id",
"description": "The ID of the certificate to recheck",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"tags": [
"Delivery"
]
}
},
"/delivery/v1/stacks/{stack_id}/metrics": {
"get": {
"summary": "Retrieve request metrics for all sites in a stack",
"description": "If the start and end dates are not provided, the last 24 hours of data will be returned.",
"operationId": "GetMetrics",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/prometheusMetrics"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack to retrieve CDN metrics for",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "start_date",
"description": "The starting date to retrieve metrics for.",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "end_date",
"description": "The ending date to retrieve metrics for.",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "granularity",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"AUTO",
"PT5M",
"PT1H",
"P1D",
"P1M"
],
"default": "AUTO"
}
},
{
"name": "status_categories",
"description": "A comma-separated list of 1 digit http status codes categories to filter by.",
"in": "query",
"required": false,
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "status_codes",
"description": "A comma-separated list of 3 digit http status codes to filter by.",
"in": "query",
"required": false,
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "sites",
"description": "A comma-separated list of site IDs to filter metrics for.",
"in": "query",
"required": false,
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "group_by",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"NONE",
"SITE",
"PLATFORM",
"POP",
"REGION",
"STATUS",
"STATUS_CATEGORY"
],
"default": "NONE"
}
},
{
"name": "billing_regions",
"description": "A comma-separated list of billing regions to filter metrics for.",
"in": "query",
"required": false,
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "pops",
"description": "A comma-separated list of StackPath point of presence location codes to filter metrics for.",
"in": "query",
"required": false,
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "platforms",
"description": "A comma-separated list of billing platforms to filter metrics for.",
"in": "query",
"required": false,
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "site_type_filter",
"description": "A filter to retrieve metrics by site type.",
"in": "query",
"required": false,
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"ALL",
"CDN",
"WAF",
"API",
"SERVERLESS_EDGE_ENGINE"
]
}
}
},
{
"name": "metric_type",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"TRANSFER",
"STATUS_CODE"
],
"default": "TRANSFER"
}
}
],
"tags": [
"Metrics"
]
}
},
"/delivery/v1/stacks/{stack_id}/origins": {
"get": {
"summary": "Retrieve a stack's site origins",
"operationId": "GetOrigins",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/deliveryGetOriginsResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack to retrieve origins from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "page_request.first",
"description": "The number of items desired.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.after",
"description": "The cursor value after which data will be returned.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.filter",
"description": "SQL-style constraint filters.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.sort_by",
"description": "Sort the response by the given field.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"tags": [
"Origins"
]
}
},
"/delivery/v1/stacks/{stack_id}/origins/{origin_id}": {
"get": {
"summary": "Get an origin",
"operationId": "GetOrigin",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/deliveryGetOriginResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the origin",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "origin_id",
"description": "The ID of the origin",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"tags": [
"Origins"
]
},
"patch": {
"summary": "Update an origin",
"operationId": "UpdateOrigin",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/deliveryUpdateOriginResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the origin to update",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "origin_id",
"description": "The ID of the origin to update",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/deliveryUpdateOriginRequest"
}
}
},
"required": true
},
"tags": [
"Origins"
]
}
},
"/delivery/v1/stacks/{stack_id}/sites": {
"get": {
"summary": "Retrieve all sites in a stack",
"operationId": "GetSites",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/deliveryGetSitesResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack to retrieve sites from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "page_request.first",
"description": "The number of items desired.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.after",
"description": "The cursor value after which data will be returned.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.filter",
"description": "SQL-style constraint filters.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.sort_by",
"description": "Sort the response by the given field.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"tags": [
"Sites"
]
},
"post": {
"summary": "Create a site",
"operationId": "CreateSite",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/deliveryCreateSiteResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack to create a new site on",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/deliveryCreateSiteRequest"
}
}
},
"required": true
},
"tags": [
"Sites"
]
}
},
"/delivery/v1/stacks/{stack_id}/sites/{site_id}": {
"get": {
"summary": "Retrieve an individual site",
"operationId": "GetSite",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/deliveryGetSiteResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to retrieve",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site to retrieve",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"tags": [
"Sites"
]
},
"delete": {
"summary": "Delete a site",
"operationId": "DeleteSite",
"responses": {
"204": {
"description": "No content"
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to delete",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site to delete",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"tags": [
"Sites"
]
}
},
"/delivery/v1/stacks/{stack_id}/sites/{site_id}/cdn": {
"delete": {
"summary": "Disable a site's CDN service",
"operationId": "DisableSiteCDN",
"responses": {
"204": {
"description": "No content"
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to disable CDN on",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site to disable CDN on",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"tags": [
"Site Features"
]
},
"post": {
"summary": "Enable a site's CDN service",
"operationId": "EnableSiteCDN",
"responses": {
"204": {
"description": "No content"
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to enable CDN on",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site to enable CDN on",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"tags": [
"Site Features"
]
}
},
"/delivery/v1/stacks/{stack_id}/sites/{site_id}/delivery_domains": {
"get": {
"summary": "Retrieve the delivery domains configured on a site",
"description": "Delivery domains allow the CDN to recognize an HTTP request and associate it with a site.",
"operationId": "GetSiteDeliveryDomains2",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/deliveryGetSiteDeliveryDomainsResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to retrieve delivery domains from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site containing the delivery domains",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "page_request.first",
"description": "The number of items desired.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.after",
"description": "The cursor value after which data will be returned.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.filter",
"description": "SQL-style constraint filters.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.sort_by",
"description": "Sort the response by the given field.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"tags": [
"Delivery Domains"
]
},
"post": {
"summary": "Add a delivery domain to a site",
"operationId": "CreateSiteDeliveryDomain",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/deliveryCreateSiteDeliveryDomainResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site containing the site to add a delivery domain to",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site to add a delivery domain to",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/deliveryCreateSiteDeliveryDomainRequest"
}
}
},
"required": true
},
"tags": [
"Delivery Domains"
]
}
},
"/delivery/v1/stacks/{stack_id}/sites/{site_id}/delivery_domains/{domain}": {
"delete": {
"summary": "Remove a delivery domain from a site",
"operationId": "DeleteSiteDeliveryDomain",
"responses": {
"204": {
"description": "No content"
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site containing the delivery domain from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site to remove a delivery domain from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "domain",
"description": "The delivery domain to remove from a site",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"tags": [
"Delivery Domains"
]
}
},
"/delivery/v1/stacks/{stack_id}/sites/{site_id}/scopes/{scope_id}/origins": {
"get": {
"summary": "Retrieve the origins behind a site's scope",
"operationId": "GetScopeOrigins",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/deliveryGetScopeOriginsResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site containing the scope to retrieve origins from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site containing the scope to retrieve origins from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "scope_id",
"description": "The ID of the scope to retrieve origins from",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "page_request.first",
"description": "The number of items desired.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.after",
"description": "The cursor value after which data will be returned.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.filter",
"description": "SQL-style constraint filters.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page_request.sort_by",
"description": "Sort the response by the given field.",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"tags": [
"Origins"
]
},
"post": {
"summary": "Connect an origin to a CDN site's scope",
"description": "The origin is automatically created if necessary. When the request contains a priority which an origin already associated with the scope has set, the existing origin is disconnected. The priority of an origin already associated with a scope can be modified via this endpoint.",
"operationId": "ConnectScopeToOrigin",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/deliveryConnectScopeToOriginResponse"
}
}
}
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site containing the scope to associate an origin with",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site containing the scope to associate an origin with",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "scope_id",
"description": "The ID of the scope to associate an origin with",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/deliveryConnectScopeToOriginRequest"
}
}
},
"required": true
},
"tags": [
"Origins"
]
}
},
"/delivery/v1/stacks/{stack_id}/sites/{site_id}/scripting": {
"delete": {
"summary": "Disable a site's serverless scripting service",
"operationId": "DisableSiteEdgeEngine2",
"responses": {
"204": {
"description": "No content"
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack to disable serverless scripting on",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site to disable serverless scripting on",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"tags": [
"Site Features"
]
},
"post": {
"summary": "Enable a site's serverless scripting service",
"operationId": "EnableSiteEdgeEngine2",
"responses": {
"204": {
"description": "No content"
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack to enable serverless scripting on",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site to enable serverless scripting on",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"tags": [
"Site Features"
]
}
},
"/delivery/v1/stacks/{stack_id}/sites/{site_id}/waf": {
"delete": {
"summary": "Disable a site's WAF service",
"operationId": "DisableSiteWAF",
"responses": {
"204": {
"description": "No content"
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to disable WAF on",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site to disable WAF on",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"tags": [
"Site Features"
]
},
"post": {
"summary": "Enable a site's WAF service",
"operationId": "EnableSiteWAF",
"responses": {
"204": {
"description": "No content"
},
"401": {
"description": "Returned when an unauthorized request is attempted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"500": {
"description": "Internal server error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
},
"default": {
"description": "Default error structure.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/stackpathapiStatus"
}
}
}
}
},
"parameters": [
{
"name": "stack_id",
"description": "The ID of the stack containing the site to enable WAF on",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "site_id",
"description": "The ID of the site to enable WAF on",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/deliveryEnableSiteWAFRequest"
}
}
},
"required": true
},
"tags": [
"Site Features"
]
}
}
},
"security": [
{
"oauth2": []
}
],
"externalDocs": {
"description": "The StackPath API Reference",
"url": "https://stackpath.dev/reference"
},
"x-explorer-enabled": true,
"x-proxy-enabled": true,
"x-samples-enabled": true,
"x-samples-languages": [
"curl",
"node",
"ruby",
"javascript",
"python"
],
"servers": [
{
"url": "https://gateway.stackpath.com"
}
],
"components": {
"securitySchemes": {
"oauth2": {
"type": "oauth2",
"flows": {
"clientCredentials": {
"tokenUrl": "https://gateway.stackpath.com/identity/v1/oauth2/token",
"scopes": {}
}
}
}
},
"schemas": {
"AuthACLAccessCodeEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"allow",
"deny"
],
"default": "UNKNOWN"
},
"AuthACLClientIPSrcEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"socket",
"header"
],
"default": "UNKNOWN"
},
"AuthGeoCodeEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"countryCode",
"region",
"subdivisionCodes",
"city",
"postalCode",
"continentCode",
"timeZone",
"dmaCode",
"areaCode"
],
"default": "UNKNOWN"
},
"AuthUrlSignAKv2HashStrategyEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"sha1",
"sha256",
"md5"
],
"default": "UNKNOWN"
},
"AuthUrlSignL3TimeFormatEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"epoch",
"datetime"
],
"default": "UNKNOWN"
},
"BandwidthRateLimitInitialBurstUnitsEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"byte",
"kilobyte"
],
"default": "UNKNOWN"
},
"BandwidthRateLimitSustainedRateUnitsEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"kilobit",
"kilobyte"
],
"default": "UNKNOWN"
},
"BillableRegionsEnabledRegionsEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"us",
"eu",
"sa",
"as",
"oc"
],
"default": "UNKNOWN"
},
"ClientRequestQueueIpListAccessCodeEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"allow",
"deny"
],
"default": "UNKNOWN"
},
"ContentDispositionByHeaderDefaultTypeEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"attachment",
"inline"
],
"default": "UNKNOWN"
},
"DataMatrix": {
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/DataMatrixResult"
},
"description": "A data point's value"
}
},
"description": "A set of time series containing a range of data points over time for each time series"
},
"DataMatrixResult": {
"type": "object",
"properties": {
"metric": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "The data points' labels"
},
"values": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MetricsDataValue"
},
"description": "Time series data point values"
}
},
"description": "Time series containing a range of data points over time for each time series"
},
"DataVector": {
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/DataVectorResult"
},
"description": "A data point's value"
}
},
"description": "A set of time series containing a single sample for each time series, all sharing the same timestamp"
},
"DataVectorResult": {
"type": "object",
"properties": {
"metric": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "The data points' labels"
},
"value": {
"$ref": "#/components/schemas/MetricsDataValue"
}
},
"description": "Time series containing a single sample for each time series, all sharing the same timestamp"
},
"DnsOverrideTypeEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"A",
"AAAA",
"CNAME"
],
"default": "UNKNOWN"
},
"FileSegmentationInitialOriginRequestBehaviorEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"range",
"full"
],
"default": "UNKNOWN"
},
"GetMetricsRequestMetricType": {
"type": "string",
"enum": [
"TRANSFER",
"STATUS_CODE"
],
"default": "TRANSFER",
"description": "The different type of metrics that can be requested\n\n- TRANSFER: Retrieve transfer metrics\n - STATUS_CODE: Retrieve status code metrics"
},
"GetMetricsRequestMetricsGranularity": {
"type": "string",
"enum": [
"AUTO",
"PT5M",
"PT1H",
"P1D",
"P1M"
],
"default": "AUTO",
"description": "The time intervals that metrics can be rounded to\n\n- AUTO: StackPath will choose the granularity based on start and end dates\n - PT5M: Retrieve metrics per five minute intervals\n - PT1H: Retrieve metrics per hour\n - P1D: Retrieve metrics per day\n - P1M: Retrieve metrics per month"
},
"GetMetricsRequestMetricsGroupBy": {
"type": "string",
"enum": [
"NONE",
"SITE",
"PLATFORM",
"POP",
"REGION",
"STATUS",
"STATUS_CATEGORY"
],
"default": "NONE",
"description": "Fields that metrics can be grouped to\n\n- NONE: Don't group metrics\n - SITE: Group metrics by site\n - PLATFORM: Group metrics by scope billing platform\n - POP: Group metrics by StackPath point of presence\n - REGION: Group metrics by geographical region\n - STATUS: Group metrics by response status code. Note: This group can only be used with metric_type STATUS\n - STATUS_CATEGORY: Group metrics by response status code category (i.e 2xx, 4xx). Note: This group can only be used with metric_type STATUS"
},
"GetMetricsRequestSiteFeatureFilter": {
"type": "string",
"enum": [
"ALL",
"CDN",
"WAF",
"API",
"SERVERLESS_EDGE_ENGINE"
],
"default": "ALL",
"description": "The different kind of features that metrics can be retrieved for\n\n- ALL: Retrieve all metrics a site\n - CDN: Retrieve metrics only for the CDN feature on a site\n - WAF: Retrieve metrics only for the WAF feature on a site\n - API: Retrieve metrics only for the API feature on a site\n - SERVERLESS_EDGE_ENGINE: Retrieve metrics only for the serverless scripting feature on a site"
},
"HashTypeClassEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"HOST",
"MEDIA"
],
"default": "UNKNOWN"
},
"MetricsData": {
"type": "object",
"properties": {
"matrix": {
"$ref": "#/components/schemas/DataMatrix"
},
"vector": {
"$ref": "#/components/schemas/DataVector"
}
},
"description": "The data points in a metrics collection"
},
"MetricsDataValue": {
"type": "object",
"properties": {
"unixTime": {
"type": "string",
"description": "The time that a data point was recorded"
},
"value": {
"type": "string",
"description": "A data point's value"
}
},
"description": "An individual metric data point"
},
"MidTierCachingRequestFormatEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"internal",
"external"
],
"default": "UNKNOWN"
},
"OriginPullDefaultBehaviorEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"dedup",
"nocache",
"nostore"
],
"default": "UNKNOWN"
},
"OriginPullPolicyDefaultCacheBehaviorEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"bypass",
"ttl"
],
"default": "UNKNOWN"
},
"OriginPullPolicyExpirePolicyEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"CACHE_CONTROL",
"INGEST",
"LAST_MODIFY",
"NEVER_EXPIRE",
"DO_NOT_CACHE"
],
"default": "UNKNOWN"
},
"OriginPullPolicyNoCacheBehaviorEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"legacy",
"spec"
],
"default": "UNKNOWN"
},
"OriginPullRedirectActionEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"follow",
"proxy"
],
"default": "UNKNOWN"
},
"OriginPullResumeDownloadEtagValidationEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"DO_NOT_USE",
"OPTIONAL",
"REQUIRED"
],
"default": "UNKNOWN"
},
"OriginPullShieldBehaviorEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"redirect",
"tlb"
],
"default": "UNKNOWN"
},
"OriginPullShieldPermissibleShieldInternalErrorsEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"NONE",
"CONNECTION_ONLY",
"WRITE_ONLY",
"WRITE_READ",
"ALL"
],
"default": "UNKNOWN"
},
"RequestFilterUrlInputEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"FULL_URL",
"FULL_FILE_PATH",
"FULL_FILE_PATH_LEGACY"
],
"default": "UNKNOWN"
},
"TlsMinVersionEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"TLSv1_0",
"TLSv1_1",
"TLSv1_2"
],
"default": "UNKNOWN"
},
"VaryHeaderFieldProxyBehaviorEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"whole",
"filtered",
"none"
],
"default": "UNKNOWN"
},
"apiStatusDetail": {
"type": "object",
"properties": {
"@type": {
"type": "string"
}
},
"required": [
"@type"
],
"discriminator": {
"propertyName": "@type"
}
},
"cdncustconfOrigin": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"host": {
"type": "string"
},
"originPullHeaders": {
"type": "string",
"description": "String of values delimited by a '|' character."
},
"originCacheHeaders": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAccessLogs": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "Enable/Disable access logs"
},
"custconfAccessLogsConfig": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"extraLogFields": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "Access log settings"
},
"custconfAuthACL": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"accessCode": {
"$ref": "#/components/schemas/AuthACLAccessCodeEnumWrapperValue"
},
"ipList": {
"type": "string",
"description": "String of values delimited by a ',' character. This is a list of IP addresses considered for this policy."
},
"protocol": {
"$ref": "#/components/schemas/custconfAuthACLProtocolEnumWrapperValue"
},
"clientIPSrc": {
"$ref": "#/components/schemas/AuthACLClientIPSrcEnumWrapperValue"
},
"header": {
"type": "string",
"description": "This allows you to specify the name of a HTTP request header which will contain the client IP address to use for this policy."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "IP address restrictions allow you to configure your CDN container to grant or deny a specific IP addresses or range of IP addresses from accessing content cached in a directory in your CDN container."
},
"custconfAuthACLProtocolEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"http",
"https",
"both"
],
"default": "UNKNOWN"
},
"custconfAuthGeo": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"code": {
"$ref": "#/components/schemas/AuthGeoCodeEnumWrapperValue"
},
"values": {
"type": "string",
"description": "String of values delimited by a ',' character. These are the region codes you are targeting for this policy. The values that can be supplied within this field are those that are supported by the MaxMind® GeoIP database."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "Geographic restrictions allow you to restrict content to end users in specific locations. The IP address of incoming requests is checked against a current list of IP allocations to countries and to states within the US. If an end user's IP address is not found in the list, they are allowed access to the content by default. The feature has both an Include and an Exclude list which are used to target the allowed audience."
},
"custconfAuthHttpBasic": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"bindingPoint": {
"type": "string",
"description": "This is a URL to a resource on the authentication server responsible for authentication of users."
},
"realm": {
"type": "string",
"description": "This is the authentication realm given back to the user on requests which do not contain the authentication credentials. Browsers typically display this value to the user when the login credentials are requested."
},
"ttl": {
"type": "number",
"format": "int64",
"description": "This is the number of seconds the authentication session will be cached by the browsers. After this time, browsers will be asked to present the user credentials again for re-authentication."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "HTTP basic authentication policies allow you to control access to your content by requiring the end user to enter a valid username and password before gaining access to content."
},
"custconfAuthReferer": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"referer": {
"type": "string",
"description": "String of values delimited by a '|' character. This is a list of domains authorized to access content from this path in the container. You may use wildcards to specify multiple websites hosted on the same domain."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "HTTP Referrer restriction policies allow you to limit access to your published CDN URLs based on the HTTP Referrer header submitted by the browser. This restriction policy prevents your content from being easily distributed on unauthorized websites (also known as hot linking or deep linking). Once this policy is applied to your CDN container, websites that are not listed in this policy will be denied access to the content cached at this location."
},
"custconfAuthUrlAsymmetricSignTlu": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"expireParameterName": {
"type": "string"
},
"keyIdParameterName": {
"type": "string"
},
"algorithmIdParameterName": {
"type": "string"
},
"digestParameterName": {
"type": "string"
},
"publicKeyIdMap": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"algorithmIdMap": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/custconfAuthUrlAsymmetricSignTluAlgorithmIdMapEnumWrapperValue"
}
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAuthUrlAsymmetricSignTluAlgorithmIdMapEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"hmacsha1",
"hmacsha256"
],
"default": "UNKNOWN"
},
"custconfAuthUrlSign": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"tokenField": {
"type": "string",
"description": "This is the name of the query string parameter that will be used by the publisher to specify the signature for the URL."
},
"ignoreFieldsAfterToken": {
"type": "boolean",
"format": "boolean",
"description": "Select this option if you want StackPath to exclude query string parameters specified after the passphrase in the validation process."
},
"passPhraseField": {
"type": "string",
"description": "This is the name of the query string parameter that contains the value of the secret. This query string parameter is only used during the generation and validation of a URL signature and should not be present in the published URL."
},
"passPhrase": {
"type": "string",
"description": "The shared secret used during the signing process. This value should only be known by StackPath and systems authorized to sign your content."
},
"expiresField": {
"type": "string",
"description": "This is the name of the query string parameter that contains the Epoch time after which the URL is considered invalid."
},
"ipAddressField": {
"type": "string",
"description": "This is a query string parameter that contains an IPv4 address to which the published URL will be restricted."
},
"uriLengthField": {
"type": "string",
"description": "This is a query string parameter used to limit the number of characters in the path that should be considered when validating the URL signature. This feature allows you to reuse the same signature on all assets stored in the same cache path. Setting this value to 0 will strip off the filename in the URL (leaving the trailing slash) when calculating the checksum."
},
"userAgentField": {
"type": "string",
"description": "This is a query string parameter used to restrict the published URL to a specific user agent. Publishers can use this feature during the signing process to ensure that only a specific user agent can access the published content. You do not need to specify the user agent on the published URL. StackPath will use the HTTP User-Agent header value during signature validation."
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "URL Signing policies allow you to restrict access to your content by configuring a \"shared secret\" with StackPath. This \"shared secret\" is used to apply an MD5 hashing algorithm on the URL to validate the signature supplied on the request. Since the \"shared secret\" is only known by the publisher and StackPath, URL signatures cannot be generated by unauthorized users."
},
"custconfAuthUrlSignAliCloudA": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"passPhrase": {
"type": "string"
},
"tokenField": {
"type": "string"
},
"includeParamsBeforeToken": {
"type": "boolean",
"format": "boolean"
},
"expirationExtension": {
"type": "number",
"format": "int64"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAuthUrlSignAliCloudB": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"passPhrase": {
"type": "string"
},
"expirationExtension": {
"type": "number",
"format": "int64"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAuthUrlSignAliCloudC": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"passPhrase": {
"type": "string"
},
"expirationExtension": {
"type": "number",
"format": "int64"
},
"tokenField": {
"type": "string"
},
"expireField": {
"type": "string"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAuthUrlSignHmacTlu": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"expireParameterName": {
"type": "string"
},
"keyIdParameterName": {
"type": "string"
},
"algorithmIdParameterName": {
"type": "string"
},
"digestParameterName": {
"type": "string"
},
"symmetricKeyIdMap": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"algorithmIdMap": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/custconfAuthUrlSignHmacTluAlgorithmIdMapEnumWrapperValue"
}
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAuthUrlSignHmacTluAlgorithmIdMapEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"hmacsha1",
"hmacsha256"
],
"default": "UNKNOWN"
},
"custconfAuthUrlSignIq": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"secretKey": {
"type": "string"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAwsSignedOriginPullV4": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"bucketIdentifier": {
"type": "string"
},
"accessKeyId": {
"type": "string"
},
"secretAccessKey": {
"type": "string"
},
"awsRegion": {
"type": "string"
},
"awsService": {
"type": "string"
},
"expireTimeSeconds": {
"type": "number",
"format": "int64"
},
"signedHeaders": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"authenticationType": {
"$ref": "#/components/schemas/custconfAwsSignedOriginPullV4AuthenticationTypeEnumWrapperValue"
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAwsSignedOriginPullV4AuthenticationTypeEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"query",
"header"
],
"default": "UNKNOWN"
},
"custconfAwsSignedS3PostV4": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"bucketIdentifier": {
"type": "string"
},
"accessKeyId": {
"type": "string"
},
"secretAccessKey": {
"type": "string"
},
"awsRegion": {
"type": "string"
},
"awsService": {
"type": "string"
},
"expireTimeSeconds": {
"type": "number",
"format": "int64"
},
"signedHeaders": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"authenticationType": {
"$ref": "#/components/schemas/custconfAwsSignedS3PostV4AuthenticationTypeEnumWrapperValue"
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfAwsSignedS3PostV4AuthenticationTypeEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"query",
"header"
],
"default": "UNKNOWN"
},
"custconfBandWidthLimit": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"rule": {
"type": "string",
"description": "String of values delimited by a '|' character. These are pattern match rules to use for applying rate limiting on requests."
},
"values": {
"type": "string",
"description": "These are the initial bytes (ri) and the sustained rate (rs) query string parameters to use for this rule. Example: ri=100,rs=1000"
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The pattern based bandwidth throttling policy allows you to limit the transfer rate of assets to end users based on a set of rules matching the request's HTTP User-Agent and/or the path. Each rule must be expressed in the following format: <User-Agent Pattern>:<path pattern 1, path pattern 2>. For example, the pattern: \"Mozilla*:*.mp3,*dir*.exe|*IE*:*.jpg,*.zip|*ios 6*:* \" will match all MP3 files and EXE files containing the substring \"dir\" that are requested by a User-Agent containing the substring \"Mozilla,\" all JPG and ZIP files requested by a User-Agent containing the substring \"IE,\" and all requests made by User-Agents containing the substring \"ios 6.\""
},
"custconfBandwidthRateLimit": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"initialBurstName": {
"type": "string"
},
"sustainedRateName": {
"type": "string"
},
"initialBurstUnits": {
"$ref": "#/components/schemas/BandwidthRateLimitInitialBurstUnitsEnumWrapperValue"
},
"sustainedRateUnits": {
"$ref": "#/components/schemas/BandwidthRateLimitSustainedRateUnitsEnumWrapperValue"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfBypassCache": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"cookieFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "Bypass content caching on filter match"
},
"custconfCacheControl": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"statusCodeMatch": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"maxAge": {
"type": "integer",
"format": "int32",
"description": "The client TTL controls the lifetime of the asset in the browser's cache. The value entered here will be sent to the browser in the Cache-Control max-age directive for HTTP 1.1 clients and the Expires header for HTTP 1.0 clients."
},
"mustRevalidate": {
"type": "boolean",
"format": "boolean",
"description": "Selecting this option instructs the CDN caching servers to insert the must-revalidate directive on all HTTP responses sent to clients."
},
"synchronizeMaxAge": {
"type": "boolean",
"format": "boolean",
"description": "Selecting this option allows the CDN to synchronize the Max-Age header it sends to clients with the remaining TTL of the asset in the cache. This allows assets to expire from the browser cache at the same time they expire from the CDN."
},
"override": {
"type": "string",
"description": "This allows you to specify a custom Cache-Control header to be used by the CDN on all HTTP responses targeted by this policy. Note: Do not include the header name (Cache-Control) in this field. Only the value of the header should be specified."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The browser caching policy allows you to control the browser caching behavior of your assets independently from the CDN cache. For example, this policy allows you to set lower or higher TTLs for the browser than those of the CDN cache."
},
"custconfCacheKeyModification": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"normalizeKeyPathToLowerCase": {
"type": "boolean",
"format": "boolean",
"description": "When set, purges and requests for a file will be case insensitive. This setting is useful if you have a case insensitive origin server and would like to avoid duplicating assets."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The Cache Key Modification policy allows for manipulation of the way the cache uniquely stores assets."
},
"custconfClientRequestModification": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"urlPattern": {
"type": "string"
},
"urlRewrite": {
"type": "string"
},
"headerPattern": {
"type": "string"
},
"headerRewrite": {
"type": "string"
},
"addHeaders": {
"type": "string",
"description": "String of values delimited by a '|' character. This is the static HTTP header you want inserted into the CDN request. Start value with \"append:\", \"replace:\" or \"create:\" which defines if Header will be added, replaced or create if not exists. Default is append."
},
"flowControl": {
"$ref": "#/components/schemas/custconfClientRequestModificationFlowControlEnumWrapperValue"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"cookieFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfClientRequestModificationFlowControlEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"next",
"break"
],
"default": "UNKNOWN"
},
"custconfClientRequestQueueLogLevelEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"debug",
"info",
"warning",
"error",
"crit"
],
"default": "UNKNOWN"
},
"custconfClientResponseModification": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"statusCodeRewrite": {
"type": "number",
"format": "int64"
},
"headerPattern": {
"type": "string"
},
"headerRewrite": {
"type": "string"
},
"addHeaders": {
"type": "string",
"description": "String of values delimited by a '|' character. This is the static HTTP header you want inserted into the CDN response. Start value with \"append:\", \"replace:\" or \"create:\" which defines if Header will be added, replaced or create if not exists. Default is append."
},
"flowControl": {
"$ref": "#/components/schemas/custconfClientResponseModificationFlowControlEnumWrapperValue"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfClientResponseModificationFlowControlEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"next",
"break"
],
"default": "UNKNOWN"
},
"custconfClientResponseQueueLogLevelEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"debug",
"info",
"warning",
"error",
"crit"
],
"default": "UNKNOWN"
},
"custconfCompression": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"gzip": {
"type": "string",
"description": "String of values delimited by a ',' character. The list of file extensions you want the caching servers to use to identify the content you want compressed before delivering it to end users"
},
"mime": {
"type": "string",
"description": "String of values delimited by a ',' character. A list of rules based on MIME types you want the caching servers to use to identify content you want compressed before delivering it to end users."
},
"level": {
"type": "string"
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The compression policy allows you to provide a list of file extensions you want the CDN caching servers to automatically compress before delivering content to end users. This policy is typically used when your origin server does not support compression or you are unable to configure your origin to compress your files. If your origin is configured to already compress files, you should consider adding the Compressed Origin Pull policy to your host, which will enable the CDN caching server to request compressed (gzip) version of your assets. The compressed origin pull policy can be found in the Origin Pull policies list. Please note that our caching servers schedule the compression of files, and typically you do not see the compressed delivery until the file has been requested several times. Typically, this list is comprised of text files like javascript, html and CSS files. You should not include file extensions that match media files (images, videos, or audio files) or any other file format that includes a built in compression algorithm. Attempting to further compress these types of files usually results in a larger file being delivered to end users."
},
"custconfConfiguration": {
"type": "object",
"properties": {
"accessLogs": {
"$ref": "#/components/schemas/custconfAccessLogs"
},
"accessLogsConfig": {
"$ref": "#/components/schemas/custconfAccessLogsConfig"
},
"authACL": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfAuthACL"
},
"description": "IP address restrictions allow you to configure your CDN container to grant or deny a specific IP addresses or range of IP addresses from accessing content cached in a directory in your CDN container."
},
"authGeo": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfAuthGeo"
},
"description": "Geographic restrictions allow you to restrict content to end users in specific locations. The IP address of incoming requests is checked against a current list of IP allocations to countries and to states within the US. If an end user's IP address is not found in the list, they are allowed access to the content by default. The feature has both an Include and an Exclude list which are used to target the allowed audience."
},
"authHttpBasic": {
"$ref": "#/components/schemas/custconfAuthHttpBasic"
},
"authReferer": {
"$ref": "#/components/schemas/custconfAuthReferer"
},
"authUrlSign": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfAuthUrlSign"
},
"description": "URL Signing policies allow you to restrict access to your content by configuring a \"shared secret\" with StackPath. This \"shared secret\" is used to apply an MD5 hashing algorithm on the URL to validate the signature supplied on the request. Since the \"shared secret\" is only known by the publisher and StackPath, URL signatures cannot be generated by unauthorized users."
},
"authUrlSignAliCloudA": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfAuthUrlSignAliCloudA"
}
},
"authUrlSignAliCloudB": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfAuthUrlSignAliCloudB"
}
},
"authUrlSignAliCloudC": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfAuthUrlSignAliCloudC"
}
},
"authUrlSignHmacTlu": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfAuthUrlSignHmacTlu"
}
},
"authUrlSignIq": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfAuthUrlSignIq"
}
},
"authUrlAsymmetricSignTlu": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfAuthUrlAsymmetricSignTlu"
}
},
"bandWidthLimit": {
"$ref": "#/components/schemas/custconfBandWidthLimit"
},
"bandwidthRateLimit": {
"$ref": "#/components/schemas/custconfBandwidthRateLimit"
},
"bypassCache": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfBypassCache"
},
"description": "Bypass content caching on filter match"
},
"cacheControl": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfCacheControl"
},
"description": "The browser caching policy allows you to control the browser caching behavior of your assets independently from the CDN cache. For example, this policy allows you to set lower or higher TTLs for the browser than those of the CDN cache."
},
"cacheKeyModification": {
"$ref": "#/components/schemas/custconfCacheKeyModification"
},
"clientRequestModification": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfClientRequestModification"
}
},
"clientResponseModification": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfClientResponseModification"
}
},
"compression": {
"$ref": "#/components/schemas/custconfCompression"
},
"contentDispositionByURL": {
"$ref": "#/components/schemas/custconfContentDispositionByURL"
},
"contentDispositionByHeader": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfContentDispositionByHeader"
},
"description": "The content disposition by HTTP header match policy allows you to control the Content-Disposition delivered by the CDN using a pattern match against the value of any HTTP header present in the request. If you are using URL query string parameters to control the Content-Disposition header (using the Content Disposition by URL policy) then the Content-Disposition header generated by this policy will not be used on that specific request. A typical use case for this policy is to set a different Content-Disposition header based on the User-Agent in the request."
},
"customer": {
"$ref": "#/components/schemas/custconfCustomer"
},
"customHeader": {
"$ref": "#/components/schemas/custconfCustomHeader"
},
"customMimeType": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfCustomMimeType"
},
"description": "The custom mime type policy allows you to map file extensions to specific mime types for the CDN caching servers to use when delivering assets. The mime types you map using this policy may also be limited to specific response codes to address scenarios in which the mime type changes based on the response code."
},
"dynamicCacheRule": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfDynamicCacheRule"
},
"description": "Client response based on Rules."
},
"dynamicContent": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfDynamicContent"
},
"description": "The dynamic content caching policy allows you to specify a set of query string and/or HTTP header key/value pairs that should create a unique cache entry for a given URL. This policy is useful when your origin returns unique content for the same URL based on a set of query string parameters provided in the request."
},
"failSafeOriginPull": {
"$ref": "#/components/schemas/custconfFailSafeOriginPull"
},
"farAheadRangeProxy": {
"$ref": "#/components/schemas/custconfFarAheadRangeProxy"
},
"fileSegmentation": {
"$ref": "#/components/schemas/custconfFileSegmentation"
},
"flvPseudoStreaming": {
"$ref": "#/components/schemas/custconfFlvPseudoStreaming"
},
"gzipOriginPull": {
"$ref": "#/components/schemas/custconfGzipOriginPull"
},
"httpMethods": {
"$ref": "#/components/schemas/custconfHttpMethods"
},
"origin": {
"type": "array",
"items": {
"$ref": "#/components/schemas/cdncustconfOrigin"
}
},
"originPersistentConnections": {
"$ref": "#/components/schemas/custconfOriginPersistentConnections"
},
"originPull": {
"$ref": "#/components/schemas/custconfOriginPull"
},
"originPullCacheExtension": {
"$ref": "#/components/schemas/custconfOriginPullCacheExtension"
},
"originPullHost": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfOriginPullHost"
}
},
"originPullProtocol": {
"$ref": "#/components/schemas/custconfOriginPullProtocol"
},
"originPullLogs": {
"$ref": "#/components/schemas/custconfOriginPullLogs"
},
"originPullLogsConfig": {
"$ref": "#/components/schemas/custconfOriginPullLogsConfig"
},
"originPullPolicy": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfOriginPullPolicy"
},
"description": "The CDN caching policy allows you to control how your origin's content is cached on the CDN."
},
"originRequestModification": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfOriginRequestModification"
}
},
"originResponseModification": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfOriginResponseModification"
}
},
"queryStrParam": {
"$ref": "#/components/schemas/custconfQueryStrParam"
},
"receiptLogsConfig": {
"$ref": "#/components/schemas/custconfReceiptLogsConfig"
},
"redirectExceptions": {
"$ref": "#/components/schemas/custconfRedirectExceptions"
},
"redirectMappings": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfRedirectMappings"
},
"description": "The response code redirection policy allows you to map cache response codes to an HTTP redirect response. When this policy is applied to a host, the caching servers will redirect clients to the URL specified in this policy instead of delivering the response code you mapped in the policy."
},
"responseHeader": {
"$ref": "#/components/schemas/custconfResponseHeader"
},
"originPullResumeDownload": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfOriginPullResumeDownload"
},
"description": "The CDN attempts to resume downloading Origin Pulls once it successfully reads all the headers of a positive response under certain conditions by sending subsequent origin range requests for the remaining body. The response must be a 2xx to a GET request for the full file or a single range (not multi-range). The response must contain the Last-Modified and ETag headers."
},
"robotsTxt": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfRobotsTxt"
}
},
"awsSignedOriginPullV4": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfAwsSignedOriginPullV4"
}
},
"awsSignedS3PostV4": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfAwsSignedS3PostV4"
}
},
"staticHeader": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfStaticHeader"
},
"description": "The static header injection policy allows you to insert headers into the CDN request and response processor."
},
"timePseudoStreaming": {
"$ref": "#/components/schemas/custconfTimePseudoStreaming"
},
"http2Support": {
"$ref": "#/components/schemas/custconfHttp2Support"
},
"vHost": {
"type": "array",
"items": {
"$ref": "#/components/schemas/custconfVHost"
},
"description": "A hostname policy allows you to specify an alternate domain name that you want to use to access content from your CDN container."
}
}
},
"custconfContentDispositionByHeader": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"headerFieldName": {
"type": "string",
"description": "The setting allows you to specify the name of the HTTP header you'd like to use in the pattern match for this policy."
},
"headerValueMatch": {
"type": "string",
"description": "String of values delimited by a ',' character. A list of glob patterns that apply this policy if any of them match against the value of the header specified."
},
"defaultType": {
"$ref": "#/components/schemas/ContentDispositionByHeaderDefaultTypeEnumWrapperValue"
},
"overrideOriginHeader": {
"type": "boolean",
"format": "boolean",
"description": "This setting allows you to force the Content-Disposition generated by the CDN for this policy to override the Content-Disposition header cached from your origin."
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "The content disposition by HTTP header match policy allows you to control the Content-Disposition delivered by the CDN using a pattern match against the value of any HTTP header present in the request. If you are using URL query string parameters to control the Content-Disposition header (using the Content Disposition by URL policy) then the Content-Disposition header generated by this policy will not be used on that specific request. A typical use case for this policy is to set a different Content-Disposition header based on the User-Agent in the request."
},
"custconfContentDispositionByURL": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"dispositionNameQSParam": {
"type": "string",
"description": "This is the name of the query string parameter which contains the file name to use in the Content-Disposition header. This setting is typically used by customers to configure a \"friendly name\" for URLs that have obfuscated file names."
},
"dispositionTypeQSParam": {
"type": "string",
"description": "This is the name of the query string parameter which contains the disposition type to use in the Content-Disposition header. Typically, this value is set to attachment if you want the browser to present the user with a \"File Download\" dialog box and set to inline if you want the browser to render the content inline (play an audio/video file instead of downloading it)."
},
"dispositionOverrideQSParam": {
"type": "string",
"description": "This setting allows you to define a query string parameter that when present in the URL contains a string that should be used for the Content-Disposition header. The string specified in the URL will completely replace the value the CDN would have used based on other policies defined for the Content-Disposition header."
},
"overrideOriginHeader": {
"type": "boolean",
"format": "boolean",
"description": "This setting allows you to force the Content-Disposition generated by the CDN for this policy to override the Content-Disposition header cached from your origin."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The content disposition by URL policy allows you to control Content-Disposition HTTP header delivered by the CDN caching servers. The policy gives you control over each of the header directives and allows you to specify a URL pattern match for determining when to apply the policy. Please note this policy takes precedence over all the other content disposition policies."
},
"custconfCustomHeader": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"xForwardedForAuth": {
"type": "string",
"description": "This is the name of the X-Forwarded-For header you want the CDN to use when making requests to your basic authorization server."
},
"xForwardedForOrigin": {
"type": "string",
"description": "This is the name of the X-Forwarded-For header you want the CDN to use when making requests to your origin server."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The X-Forwarded-For header policy allows you to override the name of the X-Forwarded-For header the CDN sends to your origin."
},
"custconfCustomMimeType": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"code": {
"type": "string",
"description": "String of values delimited by a ',' character. A comma separated list of status codes that apply to this policy"
},
"extensionMap": {
"type": "string",
"description": "String of values delimited by a ',' character. This is a comma separated list of file extension and mime type pairs that describe the mime type mapping for the CDN caching servers. The file extension and mime type values should be delimited by a colon (:). For example, to map files ending with jpg to the image/jpeg mime type and files ending with png to image/png, set this value to: jpg:image/jpeg,png:image/png."
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "The custom mime type policy allows you to map file extensions to specific mime types for the CDN caching servers to use when delivering assets. The mime types you map using this policy may also be limited to specific response codes to address scenarios in which the mime type changes based on the response code."
},
"custconfCustomer": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"accessLogFields": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"opLogFields": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"receiptLogFields": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfDynamicCacheRule": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"statusCode": {
"type": "number",
"format": "int64",
"description": "Status code to return"
},
"headers": {
"type": "string",
"description": "String of values delimited by a '|' character. Pipe delimited ('|') list of headers to add to response"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "Client response based on Rules."
},
"custconfDynamicContent": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"queryParams": {
"type": "string",
"description": "String of values delimited by a ',' character. A comma separated list of query string parameters you want to include in the cache key generation. NOTE: This list is ignored when the Key Location is set to header."
},
"headerFields": {
"type": "string",
"description": "String of values delimited by a ',' character. A comma-separated list of glob patterns that represent HTTP request headers you want included in the cache key generation. Via the use of a colon ':', users can define each glob pattern to match a header name only, or the pattern can be used to match both the header name and value. A pattern without a colon ':' is treated as a header name ONLY match. If the pattern matches the header, then all values are used as a part of the cache key. If the pattern contains a colon, the CDN uses the pattern on the left of the colon to match the header. The pattern to the right of the colon is used to match the value. The CDN only uses the header/value as a part of the cache key if both patterns result in a match. Note, no pattern after a colon indicates an empty header (no value).\nSee the fnmatch manpage for acceptable glob patterns."
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "The dynamic content caching policy allows you to specify a set of query string and/or HTTP header key/value pairs that should create a unique cache entry for a given URL. This policy is useful when your origin returns unique content for the same URL based on a set of query string parameters provided in the request."
},
"custconfFailSafeOriginPull": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"statusCodeMatch": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfFarAheadRangeProxy": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"thresholdBytes": {
"type": "number",
"format": "int64"
}
}
},
"custconfFileSegmentation": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean",
"description": "Flag for enabling the File Segmentation Feature."
}
},
"description": "Policy for configuring the feature for downloading and storing files in segments rather than a whole entity."
},
"custconfFlvPseudoStreaming": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"jumpToByteInitialBytesParam": {
"type": "string"
},
"jumpToByteStartOffsetParam": {
"type": "string"
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
}
},
"custconfGzipOriginPull": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean",
"description": "This enables support for compressed origin pull"
}
},
"description": "The compressed origin pull policy allows you to enable the CDN caching servers to request compressed assets from your origin. By enabling this policy, the CDN caching servers send your origin the HTTP Accept-Encoding header with the gzip code (Accept-Encoding: gzip)."
},
"custconfHttp2Support": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean",
"description": "Enable support of HTTP2"
}
},
"description": "Enable support of HTTP2"
},
"custconfHttpMethods": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"passThru": {
"type": "string",
"description": "String of values delimited by a ',' character. This is a comma separated list of HTTP methods you want the CDN to proxy to your origin. A wildcard can be entered to include all methods (excluding HEAD and GET)."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The HTTP methods policy allows you to selectively enable additional HTTP methods you want your CDN container to process. A container automatically is set up to process HTTP GET and HEAD commands, so they should not be explicitly defined in this policy. HTTP methods included in this policy are proxied directly to your origin and not cached by the CDN."
},
"custconfMidTierCachingProtocolEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"http",
"https",
"match"
],
"default": "UNKNOWN"
},
"custconfOriginPersistentConnections": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The origin persistent connection settings are used to enable persistent connections to origins"
},
"custconfOriginPull": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"redirectAction": {
"$ref": "#/components/schemas/OriginPullRedirectActionEnumWrapperValue"
},
"noQSParams": {
"type": "boolean",
"format": "boolean",
"description": "GFS sends a path without any query string parameters when making external origin requests regardless if any parameters were sent by the User-Agent."
},
"retryMethods": {
"type": "string",
"description": "String of values delimited by a ',' character. List of HTTP Methods that define types of origin pull requests that can be retried if a failure occurs after sending a previous request."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The origin pull settings policy contains a list of settings that control the behavior of origin pull requests."
},
"custconfOriginPullCacheExtension": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"expiredCacheExtension": {
"type": "integer",
"format": "int32",
"description": "This is the number of seconds to extend an asset's TTL when the origin is unavailable. The CDN will continue to retry the origin up to the Origin Unavailable Max TTL."
},
"originUnreachableCacheExtension": {
"type": "integer",
"format": "int32",
"description": "The origin unavailable max TTL value is used by the caching server when your origin is unresponsive or the CDN cannot establish a connection to your origin. Under these conditions, the CDN can continue to serve expired assets from the cache. The value specified in this field establishes a maximum allowable TTL for your expired assets. If your origin connectivity or responsiveness is not corrected within your maximum allowable TTL, the CDN no longer serves your expired assets."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The cache extension policy allows you to define cache revalidation exceptions on expired content. This policy is applied by the CDN caching servers when they are are unable to revalidate an expired asset with your origin due to network connectivity issues or unresponsiveness from your origin."
},
"custconfOriginPullHost": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"originUrl": {
"type": "string"
},
"userName": {
"type": "string"
},
"password": {
"type": "string"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfOriginPullLogs": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "Enable/Disable Origin Pull Logs"
},
"custconfOriginPullLogsConfig": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"extraLogFields": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "Origin Pull Log Settings"
},
"custconfOriginPullPolicy": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"statusCodeMatch": {
"type": "string",
"description": "String of values delimited by a ',' character. This is a pattern match expression for each status code this policy applies to. For example, 2*, 3* applies this policy to all 200 and 300 level HTTP responses from your origin."
},
"expirePolicy": {
"$ref": "#/components/schemas/OriginPullPolicyExpirePolicyEnumWrapperValue"
},
"expireSeconds": {
"type": "integer",
"format": "int32",
"description": "This is the expiration time used for assets pulled from your origin. When using Cache-Control headers expiration methods, this value is used if your origin doesn't return a max-age directive in the Cache-Control HTTP header. Please note that a value of 0 in this fields instructs the caching server to retain assets for as long as possible."
},
"honorNoStore": {
"type": "boolean",
"format": "boolean",
"description": "This enables the processing of no-store HTTP Cache-Control directives on your container. By enabling this option, responses from your origin containing the no-store directive are not cached. Be aware that requests for non-cacheable assets are always forwarded to your origin and may impose a high request and bandwidth load on your origin."
},
"honorNoCache": {
"type": "boolean",
"format": "boolean",
"description": "This enables the processing of no-cache HTTP Cache-Control directives on your container. By enabling this option, responses from your origin containing the no-cache directive force the CDN to submit every subsequent request to your origin for validation before serving the asset stored in the cache."
},
"honorMustRevalidate": {
"type": "boolean",
"format": "boolean"
},
"noCacheBehavior": {
"$ref": "#/components/schemas/OriginPullPolicyNoCacheBehaviorEnumWrapperValue"
},
"maxAgeZeroToNoCache": {
"type": "boolean",
"format": "boolean",
"description": "This enables the CDN to apply the no-cache behavior for assets delivered by your origin containing a max-age directive equal to zero."
},
"mustRevalidateToNoCache": {
"type": "boolean",
"format": "boolean",
"description": "This enables the CDN to apply the no-cache behavior for assets delivered by your origin containing the must-revalidate directive."
},
"bypassCacheIdentifier": {
"type": "string",
"description": "This allows you to define a custom directive that, when used by your origin in the Cache-Control response headers, forces the CDN to proxy the request to the end user without caching the result."
},
"forceBypassCache": {
"type": "boolean",
"format": "boolean",
"description": "This forces the CDN to not cache any asset pulled from your origin that would otherwise be stored at this location in the cache. Typically this policy is used to prevent 4XX and 5XX response codes from overwriting a file in the cache when used with corresponding Origin Status Code Match setting. If bypass cache behavior is desired for all assets at a scope, Origin Pull Queue Behavior in the Origin Pull Settings also needs to be set to NOCACHE for that scope."
},
"httpHeaders": {
"type": "string",
"description": "String of values delimited by a ',' character. This is the list of your origin's HTTP headers that you want the CDN to cache and deliver to end users."
},
"honorPrivate": {
"type": "boolean",
"format": "boolean",
"description": "This enables the processing of private HTTP Cache-Control directives on your container. By enabling this option, responses from your origin containing the private directive are not cached. Be aware that requests for non-cacheable assets are always forwarded to your origin and may impose a high request and bandwidth load on your origin."
},
"honorSMaxAge": {
"type": "boolean",
"format": "boolean",
"description": "This enables the processing of s-maxage HTTP Cache-Control directives on your container. By enabling this option, the s-maxage HTTP Cache-Control directive in the responses from your origin takes precedence over the max-age directive. If both max-age and s-maxage need to be preserved in the client response, the Cache-Control header must be added to the \"Http Header Caching\" setting."
},
"updateHttpHeadersOn304Response": {
"type": "boolean",
"format": "boolean"
},
"defaultCacheBehavior": {
"$ref": "#/components/schemas/OriginPullPolicyDefaultCacheBehaviorEnumWrapperValue"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"contentTypeFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "The CDN caching policy allows you to control how your origin's content is cached on the CDN."
},
"custconfOriginPullProtocol": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"protocol": {
"$ref": "#/components/schemas/custconfOriginPullProtocolProtocolEnumWrapperValue"
},
"enableSNI": {
"type": "boolean",
"format": "boolean",
"description": "This key allows you to configure the CDN caching servers to use SNI while making Secured Connection to Origin."
}
},
"description": "The Origin Pull Protocol allows you to configure the CDN caching servers to use secured or non-secured connection to Origin."
},
"custconfOriginPullProtocolProtocolEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"http",
"https",
"match"
],
"default": "UNKNOWN"
},
"custconfOriginPullResumeDownload": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"originalStatusCodeMatch": {
"type": "string",
"description": "String of values delimited by a ',' character. Comma separated list of glob patterns that indicate which origin pulls this policy applies to based on the status code of the original origin response. This feature is limited to 2xx responses, but this policy provides fine control, such as permitting resume of 200 responses by not 206, or for adding a 2xx response code other than 200 or 206."
},
"minimumBodyBytesConsumed": {
"type": "string",
"description": "Minimum number of body bytes that CDN must have consumed during an Origin Pull before encountering an error before it is permitted to attempt resuming the download. This value does not include the headers bytes."
},
"maximumAttempts": {
"type": "number",
"format": "int64",
"description": "Maximum number of times beyond the initial request that the CDN is permitted to attempt resuming an Origin Pull download."
},
"requireOriginRangeSupport": {
"type": "boolean",
"format": "boolean",
"description": "The CDN resumes an Origin Pull even if the origin does not support range requests. If the origin does not support range requests and/or returns a 200 response for the same version given in the original response, the CDN fast-forwards (reads and discards bytes) until it reaches its previous position in the asset."
},
"etagValidation": {
"$ref": "#/components/schemas/OriginPullResumeDownloadEtagValidationEnumWrapperValue"
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "The CDN attempts to resume downloading Origin Pulls once it successfully reads all the headers of a positive response under certain conditions by sending subsequent origin range requests for the remaining body. The response must be a 2xx to a GET request for the full file or a single range (not multi-range). The response must contain the Last-Modified and ETag headers."
},
"custconfOriginRequestModification": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"urlPattern": {
"type": "string"
},
"urlRewrite": {
"type": "string"
},
"headerPattern": {
"type": "string"
},
"headerRewrite": {
"type": "string"
},
"addHeaders": {
"type": "string",
"description": "String of values delimited by a '|' character. This is the static HTTP header you want inserted into the CDN request. Start value with \"append:\", \"replace:\" or \"create:\" which defines if Header will be added, replaced or create if not exists. Default is append."
},
"flowControl": {
"type": "string"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"cookieFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfOriginRequestQueueLogLevelEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"debug",
"info",
"warning",
"error",
"crit"
],
"default": "UNKNOWN"
},
"custconfOriginResponseModification": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"statusCodeRewrite": {
"type": "number",
"format": "int64"
},
"headerPattern": {
"type": "string"
},
"headerRewrite": {
"type": "string"
},
"addHeaders": {
"type": "string",
"description": "String of values delimited by a '|' character. This is the static HTTP header you want inserted into the CDN response. Start value with \"append:\", \"replace:\" or \"create:\" which defines if Header will be added, replaced or create if not exists. Default is append."
},
"flowControl": {
"$ref": "#/components/schemas/custconfOriginResponseModificationFlowControlEnumWrapperValue"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfOriginResponseModificationFlowControlEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"next",
"break"
],
"default": "UNKNOWN"
},
"custconfOriginResponseQueueLogLevelEnumWrapperValue": {
"type": "string",
"enum": [
"UNKNOWN",
"debug",
"info",
"warning",
"error",
"crit"
],
"default": "UNKNOWN"
},
"custconfQueryStrParam": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"dispositionName": {
"type": "string",
"description": "This is the name of the query string parameter which contains the name of the file to specify in the Content-Disposition HTTP response header. This setting is typically used by customers to configure a \"friendly name\" for URLs that have obfuscated file names. This setting controls the \"filename\" directive that is part of the Content-Disposition HTTP header."
},
"dispositionType": {
"type": "string",
"description": "This is the name of the query string parameter which contains the disposition type to use in the Content-Disposition HTTP header. Typically, this value is set to \"attachment,\" but you may supply a custom string using this setting."
},
"dispositionOverride": {
"type": "string",
"description": "This setting allows you to completely override the Content-Disposition HTTP header that the CDN caching servers use on a response."
},
"jumpToTimeStart": {
"type": "string",
"description": "This is the name of the query string parameter that indicates to the CDN the start time offset of the video returned. This parameter is part of the jump-to-time feature that is initiated on a per request basis."
},
"jumpToTimeEnd": {
"type": "string",
"description": "This is the name of the query string parameter that indicates to the CDN the end time offset of the video that should be returned. This parameter is part of the jump-to-time feature that is initiated on a per request basis."
},
"jumpToByteInitialBytes": {
"type": "string",
"description": "This is the name of the query string parameter that indicates to the CDN the initial bytes of a video that should be returned before sending the requested byte offset. This parameter is part of the jump-to-byte feature that is initiated on a per request basis."
},
"jumpToByteStartOffset": {
"type": "string",
"description": "This is the name of the query string parameter that indicates to the CDN the specific offset into the video that is being requested. This parameter is part of the jump-to-byte feature that is initiated on a per request basis."
},
"rateLimitInitial": {
"type": "string",
"description": "This is the name of the query string parameter that indicates to the CDN an initial burst rate to use when delivering a file. This parameter is part of the bandwidth limiting feature that is initiated on a per request basis."
},
"rateLimitSustained": {
"type": "string",
"description": "This is the name of the query string parameter that indicates to the CDN the sustained rate being requested for the delivery of a file. This parameter is part of the bandwidth throttling feature that is initiated on a per request basis."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The reserved query string parameters policy describes all the query string parameters the StackPath CDN caching server reserves for special processing of your requests."
},
"custconfReceiptLogsConfig": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"extraLogFields": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "Delivery receipt log settings"
},
"custconfRedirectExceptions": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"redirectAgentCode": {
"type": "string",
"description": "String of values delimited by a ',' character. This is a comma separated list of user agents and redirect code pairs. The user agent and redirect code values are separated by a colon (:), and you may use wildcards in the user agent field. For example, to map assign a 307 status code to all Chrome browsers, you would specify: *chrome*:307."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The redirect response codes policy allows you to specify the HTTP redirect status code the CDN caching server should use when the CDN issues a redirect. Using this policy, you can assign different redirect codes to user agents requesting content."
},
"custconfRedirectMappings": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"code": {
"type": "number",
"format": "int64",
"description": "The HTTP cache response code that applies to this policy."
},
"redirectURL": {
"type": "string",
"description": "The URL that clients would be redirected to when applying this policy."
},
"replacementToken": {
"type": "string",
"description": "A token that will be replaced by the caching server with the URL of the request that triggered the policy. This token can be positioned anywhere in the redirect URL."
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "The response code redirection policy allows you to map cache response codes to an HTTP redirect response. When this policy is applied to a host, the caching servers will redirect clients to the URL specified in this policy instead of delivering the response code you mapped in the policy."
},
"custconfResponseHeader": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"http": {
"type": "string",
"description": "A pipe delimited list of rules that instructs the CDN caching servers to include a content-disposition header. The rules included in this setting must be entered in the following format: Content-Disposition:<User Agent>:<file extension 1>, <file extension 2>. For example, to send the Content-Disposition header for all Mozilla browsers on the delivery of mp3, exe, tar, zip, gz and rar files, you would enter the following in the field: Content-Disposition:Mozilla*:mp3,exe,tar,zip,gz,rar"
},
"enableETag": {
"type": "boolean",
"format": "boolean",
"description": "This gives the ability to disable the ETag header on the response."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The custom HTTP response headers policy allows you to specify a list of HTTP headers you want the CDN caching servers to include in the response to clients."
},
"custconfRobotsTxt": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"file": {
"type": "string",
"format": "base64"
},
"cacheControlHeader": {
"type": "string"
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
}
},
"custconfStaticHeader": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"clientRequest": {
"type": "string",
"description": "This is the static HTTP header you want inserted into the CDN request."
},
"http": {
"type": "string",
"description": "This is the static HTTP header you want inserted into the CDN response."
},
"originPull": {
"type": "string",
"description": "This is the HTTP header you want inserted into the origin pull request."
},
"enabled": {
"type": "boolean",
"format": "boolean"
},
"methodFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"pathFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
},
"headerFilter": {
"type": "string",
"description": "String of values delimited by a ',' character."
}
},
"description": "The static header injection policy allows you to insert headers into the CDN request and response processor."
},
"custconfTimePseudoStreaming": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"jumpToTimeStartParam": {
"type": "string",
"description": "The name of the query string parameter that indicates to the CDN the specific time interval of the video that is being requested."
},
"jumpToTimeEndParam": {
"type": "string",
"description": "The name of the query string parameter that indicates to the CDN the end time of the video that should be returned."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "The HTTP pseudo-streaming policy enables Flash based video players to support seeking to random locations within a MP4 or FLV file without having to download the entire video. Flash players such as Flowplayer and JWPlayer can be configured to send a query string parameter that indicates to the server the time offset the user advanced the video to. Typically a query string parameter called \"start\" is used by these players."
},
"custconfVHost": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is used by the API to perform conflict checking"
},
"domain": {
"type": "string",
"description": "This is the hostname you want to enable in this policy. Note: You must configure your container's CNAME record with your DNS provider to enable this hostname to deliver content."
},
"enabled": {
"type": "boolean",
"format": "boolean"
}
},
"description": "A hostname policy allows you to specify an alternate domain name that you want to use to access content from your CDN container."
},
"deliveryAWSS3Origin": {
"type": "object",
"properties": {
"bucketName": {
"type": "string",
"description": "The AWS S3 bucket name"
},
"bucketRegion": {
"type": "string",
"description": "The AWS S3 bucket region"
},
"authentication": {
"$ref": "#/components/schemas/deliveryOriginAuthentication"
}
},
"description": "AWS S3 bucket as origin"
},
"deliveryBasicAuthentication": {
"type": "object",
"properties": {
"username": {
"type": "string",
"description": "The username to be used when authenticating with the origin."
},
"password": {
"type": "string",
"description": "The password to be used when authenticating with the origin."
}
},
"description": "Basic HTTP authentication"
},
"deliveryConnectScopeToOriginRequest": {
"type": "object",
"properties": {
"origin": {
"$ref": "#/components/schemas/deliveryConnectScopeToOriginRequestOrigin"
},
"priority": {
"type": "integer",
"format": "int32",
"description": "The origin's priority to the scope\n\nIf more than one origin powers a CDN scope, then the one with the lower priority number takes higher precedence. When there is an origin already in place, the following rules are followed:\n\n- If an origin ID is provided, then the current origin at that priority is disconnected in favor of the new one.\n- If an origin is provided and the current origin at the given priority is dedicated, then the origin is updated in place.\n- If an origin is provided and no dedicated origin exists, the origin is created and connected to the scope."
},
"originId": {
"type": "string",
"description": "The ID of an existing origin to associate with a scope\n\nThis is useful for connecting to a shared origin."
}
},
"description": "A request to associate an origin with a CDN site scope"
},
"deliveryConnectScopeToOriginRequestOrigin": {
"type": "object",
"properties": {
"http": {
"$ref": "#/components/schemas/deliveryHTTPOrigin"
},
"stackpathStorage": {
"$ref": "#/components/schemas/deliveryStackPathStorageOrigin"
},
"s3Storage": {
"$ref": "#/components/schemas/deliveryAWSS3Origin"
},
"googleCloudStorage": {
"$ref": "#/components/schemas/deliveryGoogleStorageOrigin"
}
},
"description": "A new origin"
},
"deliveryConnectScopeToOriginResponse": {
"type": "object",
"properties": {
"scopeOrigin": {
"$ref": "#/components/schemas/deliveryScopeOrigin"
}
},
"description": "The response from a request to associate an origin with a CDN site scope"
},
"deliveryCreateSiteDeliveryDomainRequest": {
"type": "object",
"properties": {
"domain": {
"type": "string",
"description": "The delivery domain to add to a site"
}
},
"title": ""
},
"deliveryCreateSiteDeliveryDomainResponse": {
"type": "object",
"properties": {
"domain": {
"$ref": "#/components/schemas/schemadeliveryDeliveryDomain"
}
},
"description": "The response from a request to add a hostname to a CDN site scope"
},
"deliveryCreateSiteRequest": {
"type": "object",
"properties": {
"domain": {
"type": "string",
"description": "The site's domain name"
},
"origin": {
"$ref": "#/components/schemas/deliveryCreateSiteRequestOrigin"
},
"features": {
"type": "array",
"items": {
"$ref": "#/components/schemas/deliveryCreateSiteRequestFeature"
},
"description": "A list of features desired on the site"
},
"configuration": {
"$ref": "#/components/schemas/custconfConfiguration"
},
"apiLoginUrls": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of API login URLs which receive different processing through the WAF than other HTTP requests\n\nAPI login URLs are only applicable to API type sites."
},
"shieldPopCodes": {
"type": "array",
"items": {
"type": "string"
},
"description": "An optional list of StackPath POPs through which to funnel all incoming site requests"
}
},
"title": ""
},
"deliveryCreateSiteRequestFeature": {
"type": "string",
"enum": [
"CDN",
"WAF",
"API",
"SERVERLESS_EDGE_ENGINE"
],
"default": "CDN"
},
"deliveryCreateSiteRequestOrigin": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "The path the site should request from the origin"
},
"hostname": {
"type": "string",
"description": "The origin's fully-qualified domain name"
},
"port": {
"type": "integer",
"format": "int32",
"description": "The TCP port the site should connect to for HTTP requests"
},
"securePort": {
"type": "integer",
"format": "int32",
"description": "The TCP port the site should connect to for HTTPS requests"
},
"hostHeader": {
"type": "string",
"description": "The value of the Host header that the site should set when requesting from the origin"
},
"http": {
"$ref": "#/components/schemas/deliveryHTTPOrigin"
},
"stackpathStorage": {
"$ref": "#/components/schemas/deliveryStackPathStorageOrigin"
},
"s3Storage": {
"$ref": "#/components/schemas/deliveryAWSS3Origin"
},
"googleCloudStorage": {
"$ref": "#/components/schemas/deliveryGoogleStorageOrigin"
}
},
"description": "The site's origin"
},
"deliveryCreateSiteResponse": {
"type": "object",
"properties": {
"site": {
"$ref": "#/components/schemas/deliverySite"
}
},
"description": "The response from a request to create a new site"
},
"deliveryEnableSiteWAFRequest": {
"type": "object",
"properties": {
"apiUrls": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of API URLs which receive different processing through the WAF than website requests"
}
},
"title": ""
},
"deliveryGetOriginResponse": {
"type": "object",
"properties": {
"origin": {
"$ref": "#/components/schemas/schemadeliveryOrigin"
}
},
"description": "The response with the requested origin"
},
"deliveryGetOriginsResponse": {
"type": "object",
"properties": {
"pageInfo": {
"$ref": "#/components/schemas/paginationPageInfo"
},
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/schemadeliveryOrigin"
},
"description": "The requested origins"
}
},
"description": "The response from a request to retrieve all origins on a stack"
},
"deliveryGetScopeOriginsResponse": {
"type": "object",
"properties": {
"pageInfo": {
"$ref": "#/components/schemas/paginationPageInfo"
},
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/deliveryScopeOrigin"
},
"description": "The requested scope's origins"
}
},
"description": "The response from a request to retrieve a site scope's origins"
},
"deliveryGetSiteDeliveryDomainsResponse": {
"type": "object",
"properties": {
"pageInfo": {
"$ref": "#/components/schemas/paginationPageInfo"
},
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/schemadeliveryDeliveryDomain"
},
"description": "The requested site delivery domains"
}
},
"description": "The response from a request to retrieve a site's associated delivery domains"
},
"deliveryGetSiteResponse": {
"type": "object",
"properties": {
"site": {
"$ref": "#/components/schemas/deliverySite"
}
},
"description": "The response from a request to retrieve a single site"
},
"deliveryGetSitesResponse": {
"type": "object",
"properties": {
"pageInfo": {
"$ref": "#/components/schemas/paginationPageInfo"
},
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/deliverySite"
},
"description": "The requested sites"
}
},
"description": "The response from a request to retrieve a stack's sites"
},
"deliveryGoogleStorageOrigin": {
"type": "object",
"properties": {
"bucketName": {
"type": "string",
"description": "The Google's Storage bucket name"
}
},
"description": "Google Storage bucket as origin"
},
"deliveryHTTPOrigin": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "The origin's new HTTP request path"
},
"hostname": {
"type": "string",
"description": "The origin's new HTTP request hostname"
},
"port": {
"type": "integer",
"format": "int32",
"description": "The origin's new HTTP request port\n\nSet this to 0 to remove this value"
},
"securePort": {
"type": "integer",
"format": "int32",
"description": "The origin's new HTTPS request port\n\nSet this to 0 to remove this value"
},
"authentication": {
"$ref": "#/components/schemas/deliveryOriginAuthentication"
},
"verifyCertificate": {
"type": "boolean",
"format": "boolean",
"description": "Enable Certificate Verification while doing SSL OriginPull"
},
"certificateCommonName": {
"type": "string",
"description": "Common Name to validate certificate against. This value needs to be provided when enabling `verify_certificate`"
},
"hostHeader": {
"type": "string",
"description": "The value of the Host header that the site should set when requesting from the origin"
}
},
"description": "HTTP server as origin"
},
"deliveryOriginAuthentication": {
"type": "object",
"properties": {
"basic": {
"$ref": "#/components/schemas/deliveryBasicAuthentication"
},
"s3": {
"$ref": "#/components/schemas/deliveryS3Authentication"
}
},
"description": "An origin's authentication method"
},
"deliveryS3Authentication": {
"type": "object",
"properties": {
"accessKey": {
"type": "string",
"description": "The access key"
},
"secretKey": {
"type": "string",
"description": "The secret key"
}
},
"description": "Secret key authentication"
},
"deliveryScopeOrigin": {
"type": "object",
"properties": {
"priority": {
"type": "integer",
"format": "int32",
"description": "An origin's priority to its site scope\n\nIf a CDN scope is powered by more than one origin, then the one with the lower priority number takes higher precedence."
},
"origin": {
"$ref": "#/components/schemas/schemadeliveryOrigin"
}
},
"description": "A relationship between a site's configuration scope and an origin"
},
"deliverySite": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "A site's unique identifier"
},
"stackId": {
"type": "string",
"description": "The ID of the stack to which a site belongs"
},
"label": {
"type": "string",
"description": "The site's name"
},
"status": {
"type": "string",
"description": "The site's status"
},
"features": {
"type": "array",
"items": {
"$ref": "#/components/schemas/deliverySiteFeature"
},
"description": "A site's features\n\nSite features control how its content is delivered to end users."
},
"apiLoginUrls": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of API login URLs which receive different processing through the WAF than other API requests\n\nAPI login URLs are only applicable to API type sites."
},
"shieldPopCodes": {
"type": "array",
"items": {
"type": "string"
},
"description": "An optional list of StackPath POPs through which to funnel all incoming site requests"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "The date a site was created"
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "The date a site was last updated"
},
"apiUrls": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of API URLs which receive different processing through the WAF than website requests"
},
"monitoring": {
"type": "boolean",
"format": "boolean",
"description": "Whether or not a site's WAF service is in a monitor state\n\nSites in WAF monitoring mode accept incoming requests and log but take no action on policy and rule violations."
}
}
},
"deliverySiteFeature": {
"type": "string",
"enum": [
"UNKNOWN",
"CDN",
"WAF",
"API",
"SERVERLESS_EDGE_ENGINE"
],
"default": "UNKNOWN",
"description": "A site feature\n\nA site's feature determines how StackPath delivers content to incoming HTTP(S) requests\n\n - UNKNOWN: StackPath is unable to determine a site's feature\n - CDN: A site has CDN caching\n - WAF: A site has WAF protection\n - API: A site has API-specific protections\n - SERVERLESS_EDGE_ENGINE: A site can serve EdgeEngine serverless scripts"
},
"deliveryStackPathStorageOrigin": {
"type": "object",
"properties": {
"bucketName": {
"type": "string",
"description": "The StackPath's Storage bucket name"
},
"bucketRegion": {
"type": "string",
"description": "The StackPath's Storage bucket region"
},
"authentication": {
"$ref": "#/components/schemas/deliveryOriginAuthentication"
}
},
"description": "StackPath Storage bucket as origin"
},
"deliveryUpdateOriginRequest": {
"type": "object",
"properties": {
"http": {
"$ref": "#/components/schemas/deliveryHTTPOrigin"
},
"stackpathStorage": {
"$ref": "#/components/schemas/deliveryStackPathStorageOrigin"
},
"s3Storage": {
"$ref": "#/components/schemas/deliveryAWSS3Origin"
},
"googleCloudStorage": {
"$ref": "#/components/schemas/deliveryGoogleStorageOrigin"
}
},
"title": ""
},
"deliveryUpdateOriginResponse": {
"type": "object",
"properties": {
"origin": {
"$ref": "#/components/schemas/schemadeliveryOrigin"
}
},
"description": "The response from a request to update an origin"
},
"paginationPageInfo": {
"type": "object",
"properties": {
"totalCount": {
"type": "string",
"description": "The total number of items in the dataset"
},
"hasPreviousPage": {
"type": "boolean",
"format": "boolean",
"description": "Whether or not a previous page of data exists"
},
"hasNextPage": {
"type": "boolean",
"format": "boolean",
"description": "Whether or not another page of data is available"
},
"startCursor": {
"type": "string",
"description": "The cursor for the first item in the set of data returned"
},
"endCursor": {
"type": "string",
"description": "The cursor for the last item in the set of data returned"
}
},
"description": "Information about a paginated response\n\nThis is modeled after the GraphQL Relay spec to support both cursor based pagination and traditional offset based pagination."
},
"paginationPageRequest": {
"type": "object",
"properties": {
"first": {
"type": "string",
"description": "The number of items desired"
},
"after": {
"type": "string",
"description": "The cursor value after which data will be returned"
},
"filter": {
"type": "string",
"description": "SQL-style constraint filters"
},
"sortBy": {
"type": "string",
"description": "Sort the response by the given field"
}
},
"description": "Pagination request information\n\nThis is modeled after the GraphQL Relay spec to support both cursor based pagination and traditional offset based pagination."
},
"prometheusMetrics": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/prometheusMetricsStatus"
},
"data": {
"$ref": "#/components/schemas/MetricsData"
},
"errorType": {
"type": "string",
"description": "The type of error encountered when querying for metrics"
},
"error": {
"type": "string",
"description": "The error encountered when querying for metrics"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
},
"description": "Warnings encountered when querying for metrics"
}
},
"description": "A collection of metrics"
},
"prometheusMetricsStatus": {
"type": "string",
"enum": [
"SUCCESS",
"ERROR"
],
"default": "SUCCESS",
"description": "A metrics query's resulting status"
},
"schemadeliveryDeliveryDomain": {
"type": "object",
"properties": {
"domain": {
"type": "string",
"description": "A site's domain name"
},
"validatedAt": {
"type": "string",
"format": "date-time",
"description": "The date the domain was validated to be pointing to us"
}
},
"description": "An individual delivery domain"
},
"schemadeliveryOrigin": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "An origin's unique identifier"
},
"stackId": {
"type": "string",
"description": "The stack for which the origin belongs to"
},
"dedicated": {
"type": "boolean",
"format": "boolean",
"description": "Whether or not an origin is dedicated to a CDN site\n\nDedicated origins cannot be used by any site other than that to which it is dedicated."
},
"siteId": {
"type": "string",
"description": "The ID of the CDN site to which an origin is dedicated"
},
"http": {
"$ref": "#/components/schemas/deliveryHTTPOrigin"
},
"stackpathStorage": {
"$ref": "#/components/schemas/deliveryStackPathStorageOrigin"
},
"s3Storage": {
"$ref": "#/components/schemas/deliveryAWSS3Origin"
},
"googleCloudStorage": {
"$ref": "#/components/schemas/deliveryGoogleStorageOrigin"
}
},
"description": "A CDN site's origin\n\nOrigins are the original sources of the data that is cached by the CDN on request."
},
"stackpath.rpc.BadRequest": {
"allOf": [
{
"$ref": "#/components/schemas/apiStatusDetail"
},
{
"type": "object",
"properties": {
"fieldViolations": {
"type": "array",
"items": {
"$ref": "#/components/schemas/stackpath.rpc.BadRequest.FieldViolation"
}
}
}
}
]
},
"stackpath.rpc.BadRequest.FieldViolation": {
"type": "object",
"properties": {
"field": {
"type": "string"
},
"description": {
"type": "string"
}
}
},
"stackpath.rpc.Help": {
"allOf": [
{
"$ref": "#/components/schemas/apiStatusDetail"
},
{
"type": "object",
"properties": {
"links": {
"type": "array",
"items": {
"$ref": "#/components/schemas/stackpath.rpc.Help.Link"
}
}
}
}
]
},
"stackpath.rpc.Help.Link": {
"type": "object",
"properties": {
"description": {
"type": "string"
},
"url": {
"type": "string"
}
}
},
"stackpath.rpc.LocalizedMessage": {
"allOf": [
{
"$ref": "#/components/schemas/apiStatusDetail"
},
{
"type": "object",
"properties": {
"locale": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
]
},
"stackpath.rpc.PreconditionFailure": {
"allOf": [
{
"$ref": "#/components/schemas/apiStatusDetail"
},
{
"type": "object",
"properties": {
"violations": {
"type": "array",
"items": {
"$ref": "#/components/schemas/stackpath.rpc.PreconditionFailure.Violation"
}
}
}
}
]
},
"stackpath.rpc.PreconditionFailure.Violation": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"subject": {
"type": "string"
},
"description": {
"type": "string"
}
}
},
"stackpath.rpc.QuotaFailure": {
"allOf": [
{
"$ref": "#/components/schemas/apiStatusDetail"
},
{
"type": "object",
"properties": {
"violations": {
"type": "array",
"items": {
"$ref": "#/components/schemas/stackpath.rpc.QuotaFailure.Violation"
}
}
}
}
]
},
"stackpath.rpc.QuotaFailure.Violation": {
"type": "object",
"properties": {
"subject": {
"type": "string"
},
"description": {
"type": "string"
}
}
},
"stackpath.rpc.RequestInfo": {
"allOf": [
{
"$ref": "#/components/schemas/apiStatusDetail"
},
{
"type": "object",
"properties": {
"requestId": {
"type": "string"
},
"servingData": {
"type": "string"
}
}
}
]
},
"stackpath.rpc.ResourceInfo": {
"allOf": [
{
"$ref": "#/components/schemas/apiStatusDetail"
},
{
"type": "object",
"properties": {
"resourceType": {
"type": "string"
},
"resourceName": {
"type": "string"
},
"owner": {
"type": "string"
},
"description": {
"type": "string"
}
}
}
]
},
"stackpath.rpc.RetryInfo": {
"allOf": [
{
"$ref": "#/components/schemas/apiStatusDetail"
},
{
"type": "object",
"properties": {
"retryDelay": {
"type": "string"
}
}
}
]
},
"stackpathapiStatus": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32"
},
"error": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"$ref": "#/components/schemas/apiStatusDetail"
}
}
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment