Source code for rasenmaeher_api.web.api.product.schema

"""Schema for product mTLS cert signing"""
from pydantic import BaseModel, Field, Extra


[docs] class CertificatesResponse(BaseModel): # pylint: disable=too-few-public-methods """Respond with signed client cert and CA chain"""
[docs] ca: str = Field(description="CA chain, cfssl encoded (newlines -> \\n)")
[docs] certificate: str = Field(description="Signed cert, cfssl encoded (newlines -> \\n)")
[docs] class Config: # pylint: disable=too-few-public-methods """Example values for schema"""
[docs] extra = Extra.forbid
[docs] schema_extra = { "examples": [ { "ca": """-----BEGIN CERTIFICATE-----\\nMIID9...\\n-----END CERTIFICATE-----\\n""", "certificate": """-----BEGIN CERTIFICATE-----\\nMIID9...\\n-----END CERTIFICATE-----\\n""", }, ] }
[docs] class CertificatesRequest(BaseModel): # pylint: disable=too-few-public-methods """Request signed cert"""
[docs] csr: str = Field(description="CSR PEM")
[docs] class Config: # pylint: disable=too-few-public-methods """Example values for schema"""
[docs] extra = Extra.forbid
[docs] schema_extra = { "examples": [ { "csr": """-----BEGIN CERTIFICATE REQUEST----- MIIENzCCAx+gAwIBAgIUYI++L/D00OIhBba4cixT5aJrw+wwDQYJKoZIhvcNAQEL ... 0TdCAC4q4VuW+1FYcLrBkZhJZDnPRn214POSwN5lRmkYfUK40VGBRJMhgaI6Iud/ yiIpfvrcT9M4hJwtVFZy -----END CERTIFICATE REQUEST-----""" }, ] }
[docs] class RevokeRequest(BaseModel): # pylint: disable=too-few-public-methods """Request a cert to be revoked"""
[docs] cert: str = Field(description="Cert PEM")
[docs] class Config: # pylint: disable=too-few-public-methods """Example values for schema"""
[docs] extra = Extra.forbid
[docs] schema_extra = { "examples": [ { "cert": """-----BEGIN CERTIFICATE----- MIID9DCCAtygAwIBAgIUSF7KldQcZ9tc8IHB9zBQnf/1V58wDQYJKoZIhvcNAQEL ... RTM/xsm9FVNDBFy/w5Xu6Xewa5UrHkRtrEsbmhbbc6VLytoQrhgqV6kbFJP8vgFn zPs4ufNJed0= -----END CERTIFICATE-----""" }, ] }