{
  "openapi": "3.0.4",
  "info": {
    "title": "axes4 Tokengenerator",
    "description": "axes4 Tokengenerator API allows you to request licensing token in jwt format.",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://api.axes4.com/jwtTokenIssuer"
    }
  ],
  "paths": {
    "/v1/ping": {
      "get": {
        "operationId": "v1_ping",
        "responses": {
          "200": {
            "description": "The OK response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/pingResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": [ ]
          }
        ]
      }
    },
    "/v1/token": {
      "post": {
        "operationId": "v1_token",
        "requestBody": {
          "description": "The payload to request a token.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/issueTokenRequest"
              },
              "examples": {
                "IssueTokenRequest example": {
                  "value": "{\"customerIdentifier\":\"CustomerIdentifier\",\"productEnum\":\"axesFlip\",\"version\":\"1-3.*.*\",\"startDate\":\"2025-01-01T00:00:00+00:00\",\"expireDate\":\"2025-06-06T00:00:00+00:00\",\"operatingSystemEnum\":\"Windows\",\"lockingData\":\"base64-lockdata\",\"runtimePolicy\":{\"modeEnum\":\"Flat\",\"parallelWorkerCount\":3,\"instanceGuardDisabled\":false}}"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The OK response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/issueTokenResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": [ ]
          }
        ]
      }
    },
    "/openapi/v3": {
      "get": {
        "operationId": "openapi_v3",
        "responses": {
          "200": {
            "description": "The OK response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "issueTokenRequest": {
        "required": [
          "customerIdentifier",
          "productEnum",
          "version",
          "startDate",
          "expireDate",
          "operatingSystemEnum"
        ],
        "type": "object",
        "properties": {
          "customerIdentifier": {
            "type": "string",
            "description": "An opaque identifier provided by the partner to correlate end customers. This value must remain consistent for the same end customer across requests but does not need to convey any personal or identifying information. The API does not validate or interpret the value beyond using it for correlation."
          },
          "productEnum": {
            "enum": [
              "axesSense",
              "axesFlip",
              "axesWord",
              "axesSlide"
            ],
            "type": "string",
            "description": "Product for which a token is requested."
          },
          "version": {
            "type": "string",
            "description": "Version of the product for which a token is requested. Possible values are exact version '1.2.3' but also ranges '1-3.4-6.7-9', open ranges '1-.2-.3-' and wildcards (non-major '1.*.*') as their combination."
          },
          "startDate": {
            "type": "string",
            "description": "Start date of the requested token.",
            "format": "date-time"
          },
          "expireDate": {
            "type": "string",
            "description": "Expiration date of the requested token.",
            "format": "date-time"
          },
          "operatingSystemEnum": {
            "enum": [
              "Windows",
              "Linux"
            ],
            "type": "string",
            "description": "Operating system of the environment."
          },
          "lockingData": {
            "type": "string",
            "description": "Data used to bind the token to a specific device or environment.",
            "nullable": true
          },
          "runtimePolicy": {
            "$ref": "#/components/schemas/runtimePolicy"
          }
        }
      },
      "issueTokenResponse": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "description": "The issued token in JWT format.",
            "nullable": true
          }
        }
      },
      "pingResult": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "runtimePolicy": {
        "required": [
          "modeEnum",
          "parallelWorkerCount",
          "instanceGuardDisabled"
        ],
        "type": "object",
        "properties": {
          "modeEnum": {
            "enum": [
              "Flat",
              "Hybrid"
            ],
            "type": "string",
            "description": "Product mode."
          },
          "parallelWorkerCount": {
            "type": "integer",
            "description": "Number of max. parallel workers.",
            "format": "int32"
          },
          "instanceGuardDisabled": {
            "type": "boolean",
            "description": "Indicates whether the instance guard is disabled."
          }
        },
        "description": "Policy for the runtime, required when a token for axesFlip is requested.",
        "nullable": true
      }
    },
    "securitySchemes": {
      "ApiKeyAuth": {
        "type": "apiKey",
        "name": "x-api-key",
        "in": "header"
      }
    }
  }
}