openapi: 3.0.0
info:
title: 'Akamai: API Endpoint Definition Access tokens Resources API'
version: '2'
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
servers:
- url: https://{hostname}/api-definitions/v2
tags:
- name: Resources
paths:
/endpoints/{apiEndPointId}/versions/{versionNumber}/resources:
parameters:
- description: The unique identifier for the endpoint version.
example: '{{versionNumber}}'
in: path
name: versionNumber
required: true
schema:
example: 1
type: integer
x-akamai:
file-path: parameters/versionNumber-path.yaml
- description: The unique identifier for the endpoint.
example: '{{apiEndPointId}}'
in: path
name: apiEndPointId
required: true
schema:
example: 1
type: integer
x-akamai:
file-path: parameters/apiEndPointId-path.yaml
post:
description: Creates a resource in an endpoint version. The resource's full URL (concatenated hostname, `basePath`, and `resourcepath`) needs to be unique within the account. You can only create resources for versions that have never been activated on the staging or production network.
operationId: post-resource
summary: Create a resource
tags:
- Resources
externalDocs:
description: See documentation for this operation in Akamai's API Endpoint Definition API
url: https://techdocs.akamai.com/api-definitions/reference/post-resource
requestBody:
required: true
content:
application/json:
example:
apiResourceName: magazine
description: A magazine item within the bookstore API.
resourcePath: /magazine/{magazineId}
apiResourceMethods:
- apiResourceMethod: GET
apiParameters:
- apiParameterLocation: path
apiParameterName: magazineId
apiParameterNotes: null
apiParameterRequired: true
apiParameterRestriction: null
apiParameterType: string
array: false
schema:
additionalProperties: false
description: Contains information about a resource assigned to an endpoint.
type: object
required:
- apiResourceName
- resourcePath
properties:
apiResourceClonedFromId:
description: For cloned resources, the unique identifier for the source resource.
example: '{{apiResourceClonedFromId}}'
nullable: true
type: integer
apiResourceId:
description: The unique identifier for the resource.
example: '{{apiResourceId}}'
type: integer
apiResourceLogicId:
description: The unique identifier for the resource across all endpoint versions.
example: '{{apiResourceLogicId}}'
type: integer
apiResourceMethodNameLists:
description: The list of HTTP methods the resource may respond to.
type: array
items:
type: string
apiResourceMethods:
description: The list of HTTP methods the resource may respond to.
type: array
items:
additionalProperties: false
description: Contains information about an HTTP method to which a resource may respond.
type: object
required:
- apiResourceMethod
properties:
apiParameters:
description: The list of parameter objects assigned to the method.
nullable: true
type: array
items:
additionalProperties: false
description: Contains information about a method's parameter.
type: object
required:
- apiParameterName
- apiParameterType
- apiParameterRequired
- apiParameterLocation
properties:
apiChildParameters:
description: The collection of child JSON members or XML elements for JSON or XML body type parameters.
type: array
items:
description: A further nested endpoint object.
type: object
x-akamai:
file-path: schemas/apiParameterDto-nested.yaml
apiParamLogicId:
description: The unique identifier for the parameter across all endpoint versions.
readOnly: true
type: integer
apiParameterContentType:
description: The content type of the parameter. Only applicable for top level body parameters.
type: string
enum:
- json
- xml
- urlencoded
- json/xml
- any
- none
apiParameterId:
description: The unique identifier for the parameter.
readOnly: true
type: integer
apiParameterLocation:
description: The location of the parameter in an HTTP request, either `query`, `header`, `path`, `cookie`, or `body` for a JSON or XML body type parameter.
type: string
enum:
- query
- body
- header
- path
- cookie
apiParameterName:
description: The name of the parameter. If the corresponding `apiParameterLocation` is `path`, ensure that this value matches the parameter name you specified in the `resourcePath`.
type: string
apiParameterNotes:
description: The description to clarify the parameter's function. If you specify an empty string in the request or omit this member from the object, the JSON response reflects it as `null`.
nullable: true
type: string
apiParameterRequired:
description: Specifies whether the API user needs to specify the parameter. If the corresponding `apiParameterLocation` is `path`, set this member to `true`.
type: boolean
apiParameterRestriction:
additionalProperties: false
description: Contains information about restrictions and XML representation rules specified for the parameter.
nullable: true
type: object
properties:
arrayRestriction:
additionalProperties: false
description: Contains information about array restrictions for array type parameters. Define this object only if you enabled the corresponding `array` member.
nullable: true
type: object
properties:
collectionFormat:
default: csv
description: The format of the array that specifies how you separated array values, either the default `csv` for comma separated values, `ssv` for space separated values, `tsv` for tab separated values, `pipes` for pipe separated values, or `multi` for several parameter instances instead of several values for a single instance.
type: string
enum:
- csv
- ssv
- tsv
- pipes
- multi
maxItems:
description: The maximum allowed number of array items.
type: integer
minItems:
description: The minimum allowed number of array items.
type: integer
uniqueItems:
description: Whether the array contains only unique items.
type: boolean
lengthRestriction:
additionalProperties: false
description: Contains information about length restrictions for string type parameters.
nullable: true
type: object
properties:
lengthMax:
description: The maximum allowed number of characters in the string.
nullable: true
type: integer
lengthMin:
description: The minimum allowed number of characters in the string.
nullable: true
type: integer
numberRangeRestriction:
additionalProperties: false
description: Contains information about range restrictions for number type parameters.
nullable: true
type: object
properties:
numberRangeMax:
description: The maximum range restriction.
nullable: true
type: number
numberRangeMin:
description: The minimum range restriction.
nullable: true
type: number
rangeRestriction:
additionalProperties: false
description: Contains information about range restrictions for integer type parameters.
nullable: true
type: object
properties:
rangeMax:
description: The maximum range restriction.
nullable: true
type: integer
rangeMin:
description: The minimum range restriction.
nullable: true
type: integer
responseRestriction:
additionalProperties: false
type: object
properties:
maxBodySize:
description: Limit how large the response body can be before tripping the firewall action. The default is `SIZE_6K`. You can choose `SIZE_8K`, `SIZE_12K`, or `NO_LIMIT`, which allows a response of any size.
type: string
enum:
- SIZE_6K
- SIZE_8K
- SIZE_12K
- NO_LIMIT
statusCodes:
description: The response status codes to match to a particular response body format. A `null` or empty value means the response body definition applies to any response body.
nullable: true
type: array
items:
type: integer
xmlConversionRule:
additionalProperties: false
description: Contains information about an XML representation of a JSON-encoded parameter.
nullable: true
type: object
properties:
attribute:
default: false
description: Whether the parameter should be represented as an attribute.
type: boolean
name:
description: The name of the parameter in XML. By default, the XML name is the same as the parameter name specified in the API definition.
type: string
namespace:
description: The XML namespace.
type: string
prefix:
description: The prefix for the XML namespace.
type: string
wrapped:
default: false
description: Whether the parameter should be wrapped in a parent XML element.
type: boolean
x-akamai:
file-path: schemas/xmlRestrictionDto.yaml
apiParameterType:
description: The data type of the parameter, either `string`, `integer`, `number`, `boolean`, or `json/xml` for JSON or XML objects.
type: string
enum:
- string
- integer
- number
- boolean
- json/xml
apiResourceMethParamId:
description: The unique identifier for the parameter's parent method.
nullable: true
readOnly: true
type: integer
array:
description: Whether the parameter can express more than one value. This member is only applicable for `apiChildParameters` that you can specify if the corresponding `apiParameterLocation` is `body` and the `apiParameterType` is `json/xml`. If you enable this, also define the `arrayRestriction` member.
type: boolean
pathParamLocationId:
description: The index of a segment that includes a path parameter in a resource path. For example, given a path `\books\{bookId}`, the `books` segment has index `0`, and the path parameter `{bookId}` has index `1`.
nullable: true
type: number
response:
description: Whether the parameter is within a response type.
type: boolean
x-akamai:
file-path: schemas/apiParameterDto.yaml
apiResourceMethod:
description: The core HTTP method to which the resource may respond, either `GET`, `PUT`, `POST`, `DELETE`, `HEAD`, `PATCH`, or `OPTIONS`.
type: string
enum:
- GET
- PUT
- POST
- DELETE
- HEAD
- PATCH
- OPTIONS
apiResourceMethodId:
description: The unique identifier for the resource's allowed method.
nullable: true
readOnly: true
type: integer
apiResourceMethodLogicId:
description: The unique identifier for the resource's method across all endpoint versions.
nullable: true
readOnly: true
type: integer
x-akamai:
file-path: schemas/apiMethodParametersDto.yaml
apiResourceName:
description: The name of the resource.
example: '{{apiResourceName}}'
type: string
createDate:
description: The ISO 6801 timestamp indicating when you created the resource.
example: '{{createDate}}'
format: date-time
type: string
createdBy:
description: The identifier for the user who created the resource.
example: '{{createdBy}}'
type: string
description:
description: The description to clarify the resource's function within the API. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.
example: '{{description}}'
type: string
link:
description: The location of the navigable resource within this API, for use by API clients.
example: '{{link}}'
nullable: true
type: string
lockVersion:
description: The identifier used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.
example: '{{lockVersion}}'
type: number
private:
description: Whether the resource is private. API consumers can access private resources only if they identify with an appropriate API key.
example: '{{private}}'
type: boolean
resourcePath:
description: The URL path relative to the hostnames on which the resource resides. When entering a resource path, you can use curly brackets (`{}`) to define path parameters (for example, `/path/{pathparam}`). If you decide to do so, ensure that the value of the `apiParameterName` member in the corresponding parameter definition matches the name that you specified in the resource path.
example: '{{resourcePath}}'
type: string
updateDate:
description: The ISO 6801 timestamp indicating when you last modified the resource.
example: '{{updateDate}}'
format: date-time
type: string
updatedBy:
description: The identifier for the user who last modified the resource.
example: '{{updatedBy}}'
type: string
x-akamai:
file-path: schemas/apiResourceMethParamsDto.yaml
responses:
'201':
description: Saved API Endpoint Resource data.
content:
application/json:
example:
apiResourceClonedFromId: null
apiResourceId: 2935139
apiResourceLogicId: 126269
apiResourceName: magazine
createDate: 2019-06-17T08:26:59+0000
createdBy: tyamada
description: A magazine item within the bookstore API.
link: null
lockVersion: 0
private: false
resourcePath: /magazine/{magazineId}
updateDate: 2019-06-17T08:26:59+0000
updatedBy: bookstore_admin
apiResourceMethods:
- apiResourceMethod: GET
apiResourceMethodId: 365559
apiResourceMethodLogicId: 205820
apiParameters:
- apiParamLogicId: 588309
apiParameterId: 1223250
apiParameterLocation: path
apiParameterName: magazineId
apiParameterNotes: null
apiParameterRequired: true
apiParameterRestriction: null
apiParameterType: string
apiResourceMethParamId: 500315
array: false
pathParamLocationId: null
apiChildParameters: []
schema:
additionalProperties: false
description: Contains information about a resource assigned to an endpoint.
type: object
required:
- apiResourceName
- resourcePath
properties:
apiResourceClonedFromId:
description: For cloned resources, the unique identifier for the source resource.
nullable: true
type: integer
apiResourceId:
description: The unique identifier for the resource.
type: integer
apiResourceLogicId:
description: The unique identifier for the resource across all endpoint versions.
type: integer
apiResourceMethodNameLists:
description: The list of HTTP methods the resource may respond to.
type: array
items:
type: string
apiResourceMethods:
description: The list of HTTP methods the resource may respond to.
type: array
items:
additionalProperties: false
description: Contains information about an HTTP method to which a resource may respond.
type: object
required:
- apiResourceMethod
properties:
apiParameters:
description: The list of parameter objects assigned to the method.
nullable: true
type: array
items:
additionalProperties: false
description: Contains information about a method's parameter.
type: object
required:
- apiParameterName
- apiParameterType
- apiParameterRequired
- apiParameterLocation
properties:
apiChildParameters:
description: The collection of child JSON members or XML elements for JSON or XML body type parameters.
type: array
items:
description: A further nested endpoint object.
type: object
x-akamai:
file-path: schemas/apiParameterDto-nested.yaml
apiParamLogicId:
description: The unique identifier for the parameter across all endpoint versions.
readOnly: true
type: integer
apiParameterContentType:
description: The content type of the parameter. Only applicable for top level body parameters.
type: string
enum:
- json
- xml
- urlencoded
- json/xml
- any
- none
apiParameterId:
description: The unique identifier for the parameter.
readOnly: true
type: integer
apiParameterLocation:
description: The location of the parameter in an HTTP request, either `query`, `header`, `path`, `cookie`, or `body` for a JSON or XML body type parameter.
type: string
enum:
- query
- body
- header
- path
- cookie
apiParameterName:
description: The name of the parameter. If the corresponding `apiParameterLocation` is `path`, ensure that this value matches the parameter name you specified in the `resourcePath`.
type: string
apiParameterNotes:
description: The description to clarify the parameter's function. If you specify an empty string in the request or omit this member from the object, the JSON response reflects it as `null`.
nullable: true
type: string
apiParameterRequired:
description: Specifies whether the API user needs to specify the parameter. If the corresponding `apiParameterLocation` is `path`, set this member to `true`.
type: boolean
apiParameterRestriction:
additionalProperties: false
description: Contains information about restrictions and XML representation rules specified for the parameter.
nullable: true
type: object
properties:
arrayRestriction:
additionalProperties: false
description: Contains information about array restrictions for array type parameters. Define this object only if you enabled the corresponding `array` member.
nullable: true
type: object
properties:
collectionFormat:
default: csv
description: The format of the array that specifies how you separated array values, either the default `csv` for comma separated values, `ssv` for space separated values, `tsv` for tab separated values, `pipes` for pipe separated values, or `multi` for several parameter instances instead of several values for a single instance.
type: string
enum:
- csv
- ssv
- tsv
- pipes
- multi
maxItems:
description: The maximum allowed number of array items.
type: integer
minItems:
description: The minimum allowed number of array items.
type: integer
uniqueItems:
description: Whether the array contains only unique items.
type: boolean
lengthRestriction:
additionalProperties: false
description: Contains information about length restrictions for string type parameters.
nullable: true
type: object
properties:
lengthMax:
description: The maximum allowed number of characters in the string.
nullable: true
type: integer
lengthMin:
description: The minimum allowed number of characters in the string.
nullable: true
type: integer
numberRangeRestriction:
additionalProperties: false
description: Contains information about range restrictions for number type parameters.
nullable: true
type: object
properties:
numberRangeMax:
description: The maximum range restriction.
nullable: true
type: number
numberRangeMin:
description: The minimum range restriction.
nullable: true
type: number
rangeRestriction:
additionalProperties: false
description: Contains information about range restrictions for integer type parameters.
nullable: true
type: object
properties:
rangeMax:
description: The maximum range restriction.
nullable: true
type: integer
rangeMin:
description: The minimum range restriction.
nullable: true
type: integer
responseRestriction:
additionalProperties: false
type: object
properties:
maxBodySize:
# --- truncated at 32 KB (199 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/akamai/refs/heads/main/openapi/akamai-resources-api-openapi.yml