API Dokumentation

GET /external-apis

Versioning

This route is provided in version 1.0.0

Authentication

Clients must supply the following data
A JSON Web Token-based API key

Response:

  • Status code 200

  • Headers: []

  • Supported content types are:

    - `application/json`
  • Example (application/json):

{}
  • Example (application/json):
{
    "339f8c49-c0e7-05a0-b258-175a998f1130": {
        "token-authority": [],
        "config": {
            "formats": [
                "Format 1"
            ],
            "type": "gradelist-format"
        },
        "last-alive": "2023-07-31T23:37:55.150705244Z",
        "token-issued": "2023-07-31T23:37:55.150705244Z",
        "token-expires-at": null,
        "token-starts-at": null,
        "public-keys": [],
        "base-url": "https://example.invalid"
    }
}
  • Example (application/json):
{
    "4fbb50f7-b734-e713-f891-5182f8ae9b90": {
        "token-authority": [],
        "config": {
            "formats": [
                "Format 1"
            ],
            "type": "gradelist-format"
        },
        "last-alive": "2023-07-31T23:37:55.150705244Z",
        "token-issued": "2023-07-31T23:37:55.150705244Z",
        "token-expires-at": null,
        "token-starts-at": null,
        "public-keys": [
            {
                "use": "enc",
                "kid": "sample RSA",
                "n": "3P-PU9o9zWBIcPJfIg3vAt9_w_9PgLbDUBmgrg8U9BKDFBXYAp75KQ0-Q0FK68VIG1zJFQox9i-dDGTwcIvQ3bt0BxokeciBwQDa9xsxfS0hCOFWY5ljURZ8oiz0SWHvP_pGKDPeVi_xhkzF8erz4WL14twEkBwvGycrxyB_kIU",
                "e": "AQAB",
                "kty": "RSA"
            }
        ],
        "base-url": "https://example.invalid"
    },
    "339f8c49-c0e7-05a0-b258-175a998f1130": {
        "token-authority": [],
        "config": {
            "formats": [
                "Format 1"
            ],
            "type": "gradelist-format"
        },
        "last-alive": "2023-07-31T23:37:55.150705244Z",
        "token-issued": "2023-07-31T23:37:55.150705244Z",
        "token-expires-at": null,
        "token-starts-at": null,
        "public-keys": [],
        "base-url": "https://example.invalid"
    }
}
  • Example (application/json):
{
    "4fbb50f7-b734-e713-f891-5182f8ae9b90": {
        "token-authority": [],
        "config": {
            "formats": [
                "Format 1"
            ],
            "type": "gradelist-format"
        },
        "last-alive": "2023-07-31T23:37:55.150705244Z",
        "token-issued": "2023-07-31T23:37:55.150705244Z",
        "token-expires-at": null,
        "token-starts-at": null,
        "public-keys": [
            {
                "use": "enc",
                "kid": "sample RSA",
                "n": "3P-PU9o9zWBIcPJfIg3vAt9_w_9PgLbDUBmgrg8U9BKDFBXYAp75KQ0-Q0FK68VIG1zJFQox9i-dDGTwcIvQ3bt0BxokeciBwQDa9xsxfS0hCOFWY5ljURZ8oiz0SWHvP_pGKDPeVi_xhkzF8erz4WL14twEkBwvGycrxyB_kIU",
                "e": "AQAB",
                "kty": "RSA"
            }
        ],
        "base-url": "https://example.invalid"
    },
    "34171e32-2900-d861-1e64-e5f4c8f4b5e5": {
        "token-authority": [],
        "config": {
            "formats": [
                "Format 1"
            ],
            "type": "gradelist-format"
        },
        "last-alive": "2023-07-31T23:37:55.150705244Z",
        "token-issued": "2023-07-31T23:37:55.150705244Z",
        "token-expires-at": null,
        "token-starts-at": null,
        "public-keys": [
            {
                "use": "enc",
                "kid": "sample RSA",
                "n": "3P-PU9o9zWBIcPJfIg3vAt9_w_9PgLbDUBmgrg8U9BKDFBXYAp75KQ0-Q0FK68VIG1zJFQox9i-dDGTwcIvQ3bt0BxokeciBwQDa9xsxfS0hCOFWY5ljURZ8oiz0SWHvP_pGKDPeVi_xhkzF8erz4WL14twEkBwvGycrxyB_kIU",
                "e": "AQAB",
                "kty": "RSA"
            }
        ],
        "base-url": "https://example.invalid"
    },
    "339f8c49-c0e7-05a0-b258-175a998f1130": {
        "token-authority": [],
        "config": {
            "formats": [
                "Format 1"
            ],
            "type": "gradelist-format"
        },
        "last-alive": "2023-07-31T23:37:55.150705244Z",
        "token-issued": "2023-07-31T23:37:55.150705244Z",
        "token-expires-at": null,
        "token-starts-at": null,
        "public-keys": [],
        "base-url": "https://example.invalid"
    }
}
  • Example (application/json):
{
    "4fbb50f7-b734-e713-f891-5182f8ae9b90": {
        "token-authority": [],
        "config": {
            "formats": [
                "Format 1"
            ],
            "type": "gradelist-format"
        },
        "last-alive": "2023-07-31T23:37:55.150705244Z",
        "token-issued": "2023-07-31T23:37:55.150705244Z",
        "token-expires-at": null,
        "token-starts-at": null,
        "public-keys": [
            {
                "use": "enc",
                "kid": "sample RSA",
                "n": "3P-PU9o9zWBIcPJfIg3vAt9_w_9PgLbDUBmgrg8U9BKDFBXYAp75KQ0-Q0FK68VIG1zJFQox9i-dDGTwcIvQ3bt0BxokeciBwQDa9xsxfS0hCOFWY5ljURZ8oiz0SWHvP_pGKDPeVi_xhkzF8erz4WL14twEkBwvGycrxyB_kIU",
                "e": "AQAB",
                "kty": "RSA"
            }
        ],
        "base-url": "https://example.invalid"
    },
    "a3df9fa4-5266-26a8-801c-83a6ed46052d": {
        "token-authority": [],
        "config": {
            "formats": [
                "Format 1",
                "Format 2"
            ],
            "type": "gradelist-format"
        },
        "last-alive": "2023-07-31T23:37:55.150705244Z",
        "token-issued": "2023-07-31T23:37:55.150705244Z",
        "token-expires-at": null,
        "token-starts-at": null,
        "public-keys": [],
        "base-url": "https://example.invalid"
    },
    "34171e32-2900-d861-1e64-e5f4c8f4b5e5": {
        "token-authority": [],
        "config": {
            "formats": [
                "Format 1"
            ],
            "type": "gradelist-format"
        },
        "last-alive": "2023-07-31T23:37:55.150705244Z",
        "token-issued": "2023-07-31T23:37:55.150705244Z",
        "token-expires-at": null,
        "token-starts-at": null,
        "public-keys": [
            {
                "use": "enc",
                "kid": "sample RSA",
                "n": "3P-PU9o9zWBIcPJfIg3vAt9_w_9PgLbDUBmgrg8U9BKDFBXYAp75KQ0-Q0FK68VIG1zJFQox9i-dDGTwcIvQ3bt0BxokeciBwQDa9xsxfS0hCOFWY5ljURZ8oiz0SWHvP_pGKDPeVi_xhkzF8erz4WL14twEkBwvGycrxyB_kIU",
                "e": "AQAB",
                "kty": "RSA"
            }
        ],
        "base-url": "https://example.invalid"
    },
    "339f8c49-c0e7-05a0-b258-175a998f1130": {
        "token-authority": [],
        "config": {
            "formats": [
                "Format 1"
            ],
            "type": "gradelist-format"
        },
        "last-alive": "2023-07-31T23:37:55.150705244Z",
        "token-issued": "2023-07-31T23:37:55.150705244Z",
        "token-expires-at": null,
        "token-starts-at": null,
        "public-keys": [],
        "base-url": "https://example.invalid"
    }
}

POST /external-apis

Bearer restrictions

The behaviour of this route dependes on the restrictions stored for it in the bearer token used for authorization

Bearer token

The behaviour of this route dependes on the exact bearer token used for authorization

Versioning

This route is provided in version 1.0.0

Authentication

Clients must supply the following data
A JSON Web Token-based API key

Request:

  • Supported content types are:

    - `application/json`
  • Symmetric key, Without path (application/json):

{
    "config": {
        "formats": [
            "Format 1"
        ],
        "type": "gradelist-format"
    },
    "public-keys": {
        "keys": [
            {
                "use": "enc",
                "k": "n0RTZ0VtVhk",
                "kid": "sample",
                "kty": "oct"
            }
        ]
    },
    "base-url": "https://example.invalid"
}
  • Symmetric key, Without path (application/json):
{
    "config": {
        "formats": [
            "Format 1",
            "Format 2"
        ],
        "type": "gradelist-format"
    },
    "public-keys": {
        "keys": [
            {
                "use": "enc",
                "k": "n0RTZ0VtVhk",
                "kid": "sample",
                "kty": "oct"
            }
        ]
    },
    "base-url": "https://example.invalid"
}
  • Asymmetric keyset, Without path (application/json):
{
    "config": {
        "formats": [
            "Format 1"
        ],
        "type": "gradelist-format"
    },
    "public-keys": {
        "keys": [
            {
                "use": "enc",
                "kid": "sample RSA",
                "n": "3P-PU9o9zWBIcPJfIg3vAt9_w_9PgLbDUBmgrg8U9BKDFBXYAp75KQ0-Q0FK68VIG1zJFQox9i-dDGTwcIvQ3bt0BxokeciBwQDa9xsxfS0hCOFWY5ljURZ8oiz0SWHvP_pGKDPeVi_xhkzF8erz4WL14twEkBwvGycrxyB_kIU",
                "e": "AQAB",
                "kty": "RSA"
            },
            {
                "qi": "rHI7D1IRPy0JOYc17xMy5inR1l0TsugjP9PgOTBQBNv-ygrGz5SZOSkHg2sXm6qA_QmLrbUhp7BHSiLBr-A9Zw",
                "p": "30RTZ0VtVhkxSkKj2oawAZR6_lmcK6mceaY0fjsiblqIVOj_zKILFzAwtPrCsxZ5wCWwrJSNiAvuFx0AmuwaDQ",
                "use": "enc",
                "kid": "sample RSA",
                "n": "3P-PU9o9zWBIcPJfIg3vAt9_w_9PgLbDUBmgrg8U9BKDFBXYAp75KQ0-Q0FK68VIG1zJFQox9i-dDGTwcIvQ3bt0BxokeciBwQDa9xsxfS0hCOFWY5ljURZ8oiz0SWHvP_pGKDPeVi_xhkzF8erz4WL14twEkBwvGycrxyB_kIU",
                "q": "_WYWkB2soOIaeuPYAvfwm-iTV9JWbepHvwbnxskonruCJP4bIikbokdPE--hvLHK5eBd-4Do8i4SGRqa3X4KWQ",
                "d": "vz_ePlewgiofprbpAySBwb--5tPsblw7e_chqV_d5zaZ_ujEbcg7oX4XcsZvWsf4lc1fKvkOsZkU1OQJe6xTi-MqIPUx2YUOUifgEYMcZWldI_YJPY7zZ6gw7hYBB91Pt9Am8enkJ3_lK_wyJScBX_vVpJNpCIqy_anXNmyYVWE",
                "dp": "mMV7_HI5OmzKmXG4BNOco7gh4OEYR5grheIAkU-NY8129ALq5e8Lf7Zt3aioiTqb3KrtlWmg3rKrHA2wWFGuEQ",
                "e": "AQAB",
                "dq": "Pnaa2z2lXyc9NcvSZLDvq88B-yULTx7wPqOaIMNXcwFvzGSjFaGigTcoxBZO_S-qf032fNfDFGfM6ElJoY2_SQ",
                "kty": "RSA"
            }
        ]
    },
    "base-url": "https://example.invalid"
}
  • Symmetric key, With path (application/json):
{
    "config": {
        "formats": [
            "Format 1"
        ],
        "type": "gradelist-format"
    },
    "public-keys": {
        "keys": [
            {
                "use": "enc",
                "k": "n0RTZ0VtVhk",
                "kid": "sample",
                "kty": "oct"
            }
        ]
    },
    "base-url": "https://example.invalid/api"
}
  • Asymmetric keyset, Without path (application/json):
{
    "config": {
        "formats": [
            "Format 1",
            "Format 2"
        ],
        "type": "gradelist-format"
    },
    "public-keys": {
        "keys": [
            {
                "use": "enc",
                "kid": "sample RSA",
                "n": "3P-PU9o9zWBIcPJfIg3vAt9_w_9PgLbDUBmgrg8U9BKDFBXYAp75KQ0-Q0FK68VIG1zJFQox9i-dDGTwcIvQ3bt0BxokeciBwQDa9xsxfS0hCOFWY5ljURZ8oiz0SWHvP_pGKDPeVi_xhkzF8erz4WL14twEkBwvGycrxyB_kIU",
                "e": "AQAB",
                "kty": "RSA"
            },
            {
                "qi": "rHI7D1IRPy0JOYc17xMy5inR1l0TsugjP9PgOTBQBNv-ygrGz5SZOSkHg2sXm6qA_QmLrbUhp7BHSiLBr-A9Zw",
                "p": "30RTZ0VtVhkxSkKj2oawAZR6_lmcK6mceaY0fjsiblqIVOj_zKILFzAwtPrCsxZ5wCWwrJSNiAvuFx0AmuwaDQ",
                "use": "enc",
                "kid": "sample RSA",
                "n": "3P-PU9o9zWBIcPJfIg3vAt9_w_9PgLbDUBmgrg8U9BKDFBXYAp75KQ0-Q0FK68VIG1zJFQox9i-dDGTwcIvQ3bt0BxokeciBwQDa9xsxfS0hCOFWY5ljURZ8oiz0SWHvP_pGKDPeVi_xhkzF8erz4WL14twEkBwvGycrxyB_kIU",
                "q": "_WYWkB2soOIaeuPYAvfwm-iTV9JWbepHvwbnxskonruCJP4bIikbokdPE--hvLHK5eBd-4Do8i4SGRqa3X4KWQ",
                "d": "vz_ePlewgiofprbpAySBwb--5tPsblw7e_chqV_d5zaZ_ujEbcg7oX4XcsZvWsf4lc1fKvkOsZkU1OQJe6xTi-MqIPUx2YUOUifgEYMcZWldI_YJPY7zZ6gw7hYBB91Pt9Am8enkJ3_lK_wyJScBX_vVpJNpCIqy_anXNmyYVWE",
                "dp": "mMV7_HI5OmzKmXG4BNOco7gh4OEYR5grheIAkU-NY8129ALq5e8Lf7Zt3aioiTqb3KrtlWmg3rKrHA2wWFGuEQ",
                "e": "AQAB",
                "dq": "Pnaa2z2lXyc9NcvSZLDvq88B-yULTx7wPqOaIMNXcwFvzGSjFaGigTcoxBZO_S-qf032fNfDFGfM6ElJoY2_SQ",
                "kty": "RSA"
            }
        ]
    },
    "base-url": "https://example.invalid"
}

Response:

{
    "id": "339f8c49-c0e7-05a0-b258-175a998f1130",
    "info": {
        "token-authority": [],
        "config": {
            "formats": [
                "Format 1"
            ],
            "type": "gradelist-format"
        },
        "last-alive": "2023-07-31T23:37:55.150705244Z",
        "token-issued": "2023-07-31T23:37:55.150705244Z",
        "token-expires-at": null,
        "token-starts-at": null,
        "public-keys": [],
        "base-url": "https://example.invalid"
    }
}
  • Example (application/json, application/json):
{
    "id": "339f8c49-c0e7-05a0-b258-175a998f1130",
    "info": {
        "token-authority": [],
        "config": {
            "formats": [
                "Format 1"
            ],
            "type": "gradelist-format"
        },
        "last-alive": "2023-07-31T23:37:55.150705244Z",
        "token-issued": "2023-07-31T23:37:55.150705244Z",
        "token-expires-at": null,
        "token-starts-at": null,
        "public-keys": [
            {
                "use": "enc",
                "kid": "sample RSA",
                "n": "3P-PU9o9zWBIcPJfIg3vAt9_w_9PgLbDUBmgrg8U9BKDFBXYAp75KQ0-Q0FK68VIG1zJFQox9i-dDGTwcIvQ3bt0BxokeciBwQDa9xsxfS0hCOFWY5ljURZ8oiz0SWHvP_pGKDPeVi_xhkzF8erz4WL14twEkBwvGycrxyB_kIU",
                "e": "AQAB",
                "kty": "RSA"
            }
        ],
        "base-url": "https://example.invalid"
    }
}
  • Example (application/json):
{
    "id": "339f8c49-c0e7-05a0-b258-175a998f1130",
    "info": {
        "token-authority": [],
        "config": {
            "formats": [
                "Format 1",
                "Format 2"
            ],
            "type": "gradelist-format"
        },
        "last-alive": "2023-07-31T23:37:55.150705244Z",
        "token-issued": "2023-07-31T23:37:55.150705244Z",
        "token-expires-at": null,
        "token-starts-at": null,
        "public-keys": [],
        "base-url": "https://example.invalid"
    }
}
  • Example (application/json):
{
    "id": "339f8c49-c0e7-05a0-b258-175a998f1130",
    "info": {
        "token-authority": [],
        "config": {
            "formats": [
                "Format 1",
                "Format 2"
            ],
            "type": "gradelist-format"
        },
        "last-alive": "2023-07-31T23:37:55.150705244Z",
        "token-issued": "2023-07-31T23:37:55.150705244Z",
        "token-expires-at": null,
        "token-starts-at": null,
        "public-keys": [
            {
                "use": "enc",
                "kid": "sample RSA",
                "n": "3P-PU9o9zWBIcPJfIg3vAt9_w_9PgLbDUBmgrg8U9BKDFBXYAp75KQ0-Q0FK68VIG1zJFQox9i-dDGTwcIvQ3bt0BxokeciBwQDa9xsxfS0hCOFWY5ljURZ8oiz0SWHvP_pGKDPeVi_xhkzF8erz4WL14twEkBwvGycrxyB_kIU",
                "e": "AQAB",
                "kty": "RSA"
            }
        ],
        "base-url": "https://example.invalid"
    }
}

DELETE /external-apis/:external-api

Versioning

This route is provided in version 1.0.0

Authentication

Clients must supply the following data
A JSON Web Token-based API key

Captures:

  • external-api: Internal id of the registered external api

Response:

  • Status code 204

  • Headers: []

  • No response body

GET /external-apis/:external-api

Versioning

This route is provided in version 1.0.0

Authentication

Clients must supply the following data
A JSON Web Token-based API key

Captures:

  • external-api: Internal id of the registered external api

Response:

  • Status code 200

  • Headers: []

  • Supported content types are:

    - `application/json`
  • Example (application/json):

{
    "token-authority": [],
    "config": {
        "formats": [
            "Format 1"
        ],
        "type": "gradelist-format"
    },
    "last-alive": "2023-07-31T23:37:55.150705244Z",
    "token-issued": "2023-07-31T23:37:55.150705244Z",
    "token-expires-at": null,
    "token-starts-at": null,
    "public-keys": [],
    "base-url": "https://example.invalid"
}
  • Example (application/json, application/json):
{
    "token-authority": [],
    "config": {
        "formats": [
            "Format 1"
        ],
        "type": "gradelist-format"
    },
    "last-alive": "2023-07-31T23:37:55.150705244Z",
    "token-issued": "2023-07-31T23:37:55.150705244Z",
    "token-expires-at": null,
    "token-starts-at": null,
    "public-keys": [
        {
            "use": "enc",
            "kid": "sample RSA",
            "n": "3P-PU9o9zWBIcPJfIg3vAt9_w_9PgLbDUBmgrg8U9BKDFBXYAp75KQ0-Q0FK68VIG1zJFQox9i-dDGTwcIvQ3bt0BxokeciBwQDa9xsxfS0hCOFWY5ljURZ8oiz0SWHvP_pGKDPeVi_xhkzF8erz4WL14twEkBwvGycrxyB_kIU",
            "e": "AQAB",
            "kty": "RSA"
        }
    ],
    "base-url": "https://example.invalid"
}
  • Example (application/json):
{
    "token-authority": [],
    "config": {
        "formats": [
            "Format 1",
            "Format 2"
        ],
        "type": "gradelist-format"
    },
    "last-alive": "2023-07-31T23:37:55.150705244Z",
    "token-issued": "2023-07-31T23:37:55.150705244Z",
    "token-expires-at": null,
    "token-starts-at": null,
    "public-keys": [],
    "base-url": "https://example.invalid"
}
  • Example (application/json):
{
    "token-authority": [],
    "config": {
        "formats": [
            "Format 1",
            "Format 2"
        ],
        "type": "gradelist-format"
    },
    "last-alive": "2023-07-31T23:37:55.150705244Z",
    "token-issued": "2023-07-31T23:37:55.150705244Z",
    "token-expires-at": null,
    "token-starts-at": null,
    "public-keys": [
        {
            "use": "enc",
            "kid": "sample RSA",
            "n": "3P-PU9o9zWBIcPJfIg3vAt9_w_9PgLbDUBmgrg8U9BKDFBXYAp75KQ0-Q0FK68VIG1zJFQox9i-dDGTwcIvQ3bt0BxokeciBwQDa9xsxfS0hCOFWY5ljURZ8oiz0SWHvP_pGKDPeVi_xhkzF8erz4WL14twEkBwvGycrxyB_kIU",
            "e": "AQAB",
            "kty": "RSA"
        }
    ],
    "base-url": "https://example.invalid"
}

POST /external-apis/:external-api/pong

Versioning

This route is provided in version 1.0.0

Authentication

Clients must supply the following data
A JSON Web Token-based API key

Captures:

  • external-api: Internal id of the registered external api

Response:

  • Status code 200

  • Headers: []

  • Supported content types are:

    - `application/json`
  • Example (application/json, application/json):

{
    "last-alive": "2023-07-31T23:37:55.150705244Z"
}
  • Example (application/json):
{
    "last-alive": "2023-08-02T23:37:56.150705244Z"
}
  • Example (application/json):
{
    "last-alive": "2023-07-29T23:37:54.150705244Z"
}
  • Example (application/json):
{
    "last-alive": "2023-08-04T23:37:57.150705244Z"
}