Update openapi spec for stale publishers (#177)

This commit is contained in:
Tim Bruijnzeels
2020-01-21 15:57:00 +01:00
parent b2173f88f6
commit 8d17aaf198
+126 -90
View File
@@ -76,53 +76,53 @@ info:
backgroundColor: #FFFFFF
servers:
- url: https://{domain}:{port}/api/v1
description: Krill server API URL.
variables:
domain:
default: localhost
port:
enum:
- '443'
- '3000'
default: '3000'
- url: https://{domain}:{port}/api/v1
description: Krill server API URL.
variables:
domain:
default: localhost
port:
enum:
- '443'
- '3000'
default: '3000'
tags:
- name: "Publishers"
- name: "Certificate Authorities"
- name: "Key Rolls"
description: |
Krill CAs can have 0 or more 'Resource Classes' under each of its (0 or
more) parents. Krill CAs will talk to all of their parents regularly and
ask them about their resource entitlements. Typically a CA will have one
parent and receive all their resources in a single resource class, but it's
also possible that resources are split into multiple resource classes.
Krill CAs can also have multiple parents and have resource classes under
each of them.
- name: "Publishers"
- name: "Certificate Authorities"
- name: "Key Rolls"
description: |
Krill CAs can have 0 or more 'Resource Classes' under each of its (0 or
more) parents. Krill CAs will talk to all of their parents regularly and
ask them about their resource entitlements. Typically a CA will have one
parent and receive all their resources in a single resource class, but it's
also possible that resources are split into multiple resource classes.
Krill CAs can also have multiple parents and have resource classes under
each of them.
When a krill CA first gets a resource class it will:
- create a pending key pair
- request a certificate
When a krill CA first gets a resource class it will:
- create a pending key pair
- request a certificate
The 'key state' of this resource class is then shown as type "Pending".
The 'key state' of this resource class is then shown as type "Pending".
When the CA receives a certificate for this new pair it will be promoted to
"Active", and publishing of objects will start. I.e. the CA will start
publishing a manifest and CRL, and any configured ROAs for which the
prefixes are held by this class.
When the CA receives a certificate for this new pair it will be promoted to
"Active", and publishing of objects will start. I.e. the CA will start
publishing a manifest and CRL, and any configured ROAs for which the
prefixes are held by this class.
Resource classes in the state 'Active' can be rolled. The following phases
exist in a key roll:
- RollPending
- RollNew
- RollOld
- name: "Route Authorizations"
description: |
Managing Route Authorizations (ROA configs)
- name: "Other"
Resource classes in the state 'Active' can be rolled. The following phases
exist in a key roll:
- RollPending
- RollNew
- RollOld
- name: "Route Authorizations"
description: |
Managing Route Authorizations (ROA configs)
- name: "Other"
security:
- KRILL_AUTH_TOKEN: []
security:
- KRILL_AUTH_TOKEN: []
paths:
/authorized:
@@ -241,6 +241,25 @@ paths:
'500':
$ref: '#/components/responses/GeneralPublicationServerError'
/publishers/stale/{seconds}:
get:
operationId: list_publishers_stale_seconds
tags:
- "Publishers"
summary: List all publishers which have not published for X seconds.
description: |
Lists all publishers which have not published for the given time (seconds). Typically one
might expect updates from Krill publishers every 16 hours.
parameters:
- $ref: '#/components/parameters/seconds'
responses:
'200':
$ref: '#/components/responses/StalePublishers'
'403':
$ref: '#/components/responses/Forbidden'
'500':
$ref: '#/components/responses/GeneralPublicationServerError'
/cas:
get:
operationId: list_cas
@@ -1001,9 +1020,9 @@ externalDocs:
components:
securitySchemes:
KRILL_AUTH_TOKEN:
type: http
scheme: bearer
bearerFormat: KRILL_AUTH_TOKEN
type: http
scheme: bearer
bearerFormat: KRILL_AUTH_TOKEN
parameters:
ca_handle:
@@ -1037,6 +1056,12 @@ components:
type: string
enum: ['json','xml']
required: true
seconds:
in: path
name: seconds
schema:
type: integer
required: true
schemas:
# Types ordered fundamental to complex
@@ -1072,7 +1097,7 @@ components:
base_uri:
type: string
format: uri
rpki_notify:
rpki_notify:
type: string
format: uri
Resources:
@@ -1124,38 +1149,38 @@ components:
$ref: '#/components/schemas/IdCert'
rfc6492:
allOf:
- $ref: '#/components/schemas/rfcCommon'
- type: object
properties:
parent_handle:
$ref: '#/components/schemas/Handle'
child_handle:
$ref: '#/components/schemas/Handle'
service_uri:
$ref: '#/components/schemas/ServiceUri'
- $ref: '#/components/schemas/rfcCommon'
- type: object
properties:
parent_handle:
$ref: '#/components/schemas/Handle'
child_handle:
$ref: '#/components/schemas/Handle'
service_uri:
$ref: '#/components/schemas/ServiceUri'
rfc8181Base:
allOf:
- $ref: '#/components/schemas/rfcCommon'
- type: object
properties:
publisher_handle:
$ref: '#/components/schemas/Handle'
- $ref: '#/components/schemas/rfcCommon'
- type: object
properties:
publisher_handle:
$ref: '#/components/schemas/Handle'
rfc8181:
allOf:
- $ref: '#/components/schemas/rfc8181Base'
- type: object
properties:
service_uri:
$ref: '#/components/schemas/ServiceUri'
repo_info:
$ref: '#/components/schemas/RepoInfo'
- $ref: '#/components/schemas/rfc8181Base'
- type: object
properties:
service_uri:
$ref: '#/components/schemas/ServiceUri'
repo_info:
$ref: '#/components/schemas/RepoInfo'
rfc8183:
allOf:
- $ref: '#/components/schemas/rfcCommon'
- type: object
properties:
child_handle:
$ref: '#/components/schemas/Handle'
- $ref: '#/components/schemas/rfcCommon'
- type: object
properties:
child_handle:
$ref: '#/components/schemas/Handle'
Rfc6492OrEmbedded:
oneOf:
- $ref: '#/components/schemas/embedded'
@@ -1336,8 +1361,8 @@ components:
properties:
handle:
allOf:
- $ref: '#/components/schemas/Handle'
- description: The handle attribute uniquely identifies the new Certificate Authority within this Krill instance.
- $ref: '#/components/schemas/Handle'
- description: The handle attribute uniquely identifies the new Certificate Authority within this Krill instance.
AddCAChildRequest:
type: object
required:
@@ -1347,8 +1372,8 @@ components:
properties:
handle:
allOf:
- $ref: '#/components/schemas/Handle'
- description: The handle attribute uniquely identifies the new Certificate Authority within this Krill instance.
- $ref: '#/components/schemas/Handle'
- description: The handle attribute uniquely identifies the new Certificate Authority within this Krill instance.
resources:
$ref: '#/components/schemas/Resources'
auth:
@@ -1374,8 +1399,8 @@ components:
properties:
handle:
allOf:
- $ref: '#/components/schemas/Handle'
- description: The local handle by which your ca refers to this parent.
- $ref: '#/components/schemas/Handle'
- description: The local handle by which your ca refers to this parent.
contact:
$ref: '#/components/schemas/Rfc6492OrEmbedded'
AddPublisherRequest:
@@ -1829,9 +1854,9 @@ components:
- handle: 'ta'
kind: 'ta'
resources:
asn: 'AS1-AS10'
v4: '10.0.0.0/8'
v6: '::/128'
asn: 'AS1-AS10'
v4: '10.0.0.0/8'
v6: '::/128'
resource_classes:
'0':
name_space: '0'
@@ -1873,8 +1898,8 @@ components:
properties:
handle:
allOf:
- $ref: '#/components/schemas/Handle'
- description: The RFC-8183 handle that uniquely identifies the CA in this Krill instance.
- $ref: '#/components/schemas/Handle'
- description: The RFC-8183 handle that uniquely identifies the CA in this Krill instance.
GetChildCA:
description: Success.
content:
@@ -1959,6 +1984,17 @@ components:
application/json:
schema:
$ref: '#/components/schemas/rfc8181'
StalePublishers:
description: Success.
content:
application/json:
schema:
type: array
items:
type: string
example:
- 'a'
- 'b'
GetRepositoryForCA:
description: Success.
content:
@@ -1968,14 +2004,14 @@ components:
properties:
contact:
oneOf:
- type: object
properties:
embedded:
$ref: '#/components/schemas/RepoInfo'
- type: object
properties:
rfc8181:
$ref: '#/components/schemas/rfc8181'
- type: object
properties:
embedded:
$ref: '#/components/schemas/RepoInfo'
- type: object
properties:
rfc8181:
$ref: '#/components/schemas/rfc8181'
examples:
embedded:
value:
@@ -2066,4 +2102,4 @@ components:
id_cert: '<base64>'
parent_handle: 'ta'
child_handle: 'ca'
service_uri: 'https://localhost:3000/rfc6492/ta'
service_uri: 'https://localhost:3000/rfc6492/ta'