diff --git a/interfaces/certificate_transfer/interface/v1/schema.py b/interfaces/certificate_transfer/interface/v1/schema.py index 1e2813454..8fe533c83 100644 --- a/interfaces/certificate_transfer/interface/v1/schema.py +++ b/interfaces/certificate_transfer/interface/v1/schema.py @@ -1,9 +1,7 @@ """This file defines the schemas for the provider and requirer sides of the `certificate_transfer` interface. -It exposes two interface_tester.schema_base.DataBagSchema subclasses called: -- ProviderSchema -- RequirerSchema + Examples: - ProviderSchema: + Provider: unit: app: { "certificates": [ @@ -11,16 +9,15 @@ "-----BEGIN CERTIFICATE----- ..." ] } - RequirerSchema: + Requirer: unit: app: """ -from interface_tester.schema_base import DataBagSchema from pydantic import BaseModel, Field -class CertificateTransferProviderAppData(BaseModel): +class ProviderAppData(BaseModel): certificates: set[str] = Field( description="The set of certificates that will be transferred to a requirer" ) @@ -29,19 +26,11 @@ class CertificateTransferProviderAppData(BaseModel): ) -class ProviderSchema(DataBagSchema): - """Provider schema for certificate_transfer.""" - - app: CertificateTransferProviderAppData - - -class CertificateTransferRequirerAppData(BaseModel): +class RequirerAppData(BaseModel): version: int = Field( description="The version of the interface used by this requirer", default=1 ) -class RequirerSchema(DataBagSchema): - """Requirer schema for certificate_transfer.""" - - app: CertificateTransferRequirerAppData +ProviderUnitData = None +RequirerUnitData = None diff --git a/interfaces/tls-certificates/interface/v1/schema.py b/interfaces/tls-certificates/interface/v1/schema.py index 50f09090c..15500ca9e 100644 --- a/interfaces/tls-certificates/interface/v1/schema.py +++ b/interfaces/tls-certificates/interface/v1/schema.py @@ -1,11 +1,7 @@ """This file defines the schemas for the provider and requirer sides of the `tls-certificates` interface. -It exposes two interfaces.schema_base.DataBagSchema subclasses called: -- ProviderSchema -- RequirerSchema - Examples: - ProviderSchema: + Provider: unit: app: { "certificates": [ @@ -41,7 +37,7 @@ "provider_type": "acme" } } - RequirerSchema: + Requirer: unit: { "certificate_signing_requests": [ { @@ -53,8 +49,7 @@ app: """ -from interface_tester.schema_base import DataBagSchema -from pydantic import BaseModel, Field, Json +from pydantic import BaseModel, Field class Certificate(BaseModel): @@ -138,16 +133,16 @@ class Capabilities(BaseModel): ) -class ProviderApplicationData(BaseModel): +class ProviderAppData(BaseModel): """Provider application data model.""" - certificates: Json[list[Certificate]] | None = Field( + certificates: list[Certificate] | None = Field( default=None, description="List of certificates." ) - request_errors: Json[list[RequestError]] | None = Field( + request_errors: list[RequestError] | None = Field( default=None, description="List of request errors." ) - capabilities: Json[Capabilities] | None = Field( + capabilities: Capabilities | None = Field( default=None, description="Best-effort provider capabilities." ) @@ -158,19 +153,11 @@ class RequirerData(BaseModel): The same model is used for the unit and application data. """ - certificate_signing_requests: Json[list[CertificateSigningRequest]] = Field( + certificate_signing_requests: list[CertificateSigningRequest] = Field( description="List of certificate signing requests." ) -class ProviderSchema(DataBagSchema): - """Provider schema for TLS Certificates.""" - - app: ProviderApplicationData # pyright: ignore[reportGeneralTypeIssues,reportIncompatibleVariableOverride] - - -class RequirerSchema(DataBagSchema): - """Requirer schema for TLS Certificates.""" - - app: RequirerData # pyright: ignore[reportGeneralTypeIssues,reportIncompatibleVariableOverride] - unit: RequirerData # pyright: ignore[reportGeneralTypeIssues,reportIncompatibleVariableOverride] +ProviderUnitData = None +RequirerAppData = RequirerData +RequirerUnitData = RequirerData diff --git a/interfaces/vault-autounseal/interface/v0/schema.py b/interfaces/vault-autounseal/interface/v0/schema.py index d00e42197..47e6f1c4b 100644 --- a/interfaces/vault-autounseal/interface/v0/schema.py +++ b/interfaces/vault-autounseal/interface/v0/schema.py @@ -1,15 +1,9 @@ -"""This file defines the schemas for the provider and requirer sides of this relation interface. +"""This file defines the schemas for the provider and requirer sides of this relation interface.""" -It must expose two interfaces.schema_base.DataBagSchema subclasses called: -- ProviderSchema -- RequirerSchema -""" - -from interface_tester.schema_base import DataBagSchema from pydantic import BaseModel, Field -class VaultAutounsealProviderSchema(BaseModel): +class ProviderAppData(BaseModel): """Provider side of the vault-autounseal relation interface.""" address: str = Field(description="The address of the Vault server to connect to.") @@ -27,7 +21,6 @@ class VaultAutounsealProviderSchema(BaseModel): ) -class ProviderSchema(DataBagSchema): - """The schema for the provider side of this interface.""" - - app: VaultAutounsealProviderSchema # type: ignore +ProviderUnitData = None +RequirerAppData = None +RequirerUnitData = None diff --git a/interfaces/vault-kv/interface/v0/schema.py b/interfaces/vault-kv/interface/v0/schema.py index 1dfd12d3c..af7568188 100644 --- a/interfaces/vault-kv/interface/v0/schema.py +++ b/interfaces/vault-kv/interface/v0/schema.py @@ -1,17 +1,11 @@ -"""This file defines the schemas for the provider and requirer sides of this relation interface. - -It must expose two interfaces.schema_base.DataBagSchema subclasses called: -- ProviderSchema -- RequirerSchema -""" +"""This file defines the schemas for the provider and requirer sides of this relation interface.""" from collections.abc import Mapping -from interface_tester.schema_base import DataBagSchema -from pydantic import BaseModel, Field, Json +from pydantic import BaseModel, Field -class VaultKvProviderSchema(BaseModel): +class ProviderAppData(BaseModel): vault_url: str = Field(description="The URL of the Vault server to connect to.") mount: str = Field( description=( @@ -22,7 +16,7 @@ class VaultKvProviderSchema(BaseModel): ca_certificate: str = Field( description="The CA certificate to use when validating the Vault server's certificate." ) - credentials: Json[Mapping[str, str]] = Field( + credentials: Mapping[str, str] = Field( description=( "Mapping of unit name and credentials for that unit." " Credentials are a juju secret containing a 'role-id' and a 'role-secret-id'." @@ -32,7 +26,7 @@ class VaultKvProviderSchema(BaseModel): ) -class AppVaultKvRequirerSchema(BaseModel): +class RequirerAppData(BaseModel): mount_suffix: str = Field( description="Suffix to append to the mount name to get the KV mount." ) @@ -47,7 +41,7 @@ class AppVaultKvRequirerSchema(BaseModel): ) -class UnitVaultKvRequirerSchema(BaseModel): +class RequirerUnitData(BaseModel): egress_subnet: str = Field( description="A string of egress subnets separated by commas, in CIDR notation." ) @@ -58,14 +52,4 @@ class UnitVaultKvRequirerSchema(BaseModel): ) -class ProviderSchema(DataBagSchema): - """The schema for the provider side of this interface.""" - - app: VaultKvProviderSchema - - -class RequirerSchema(DataBagSchema): - """The schema for the requirer side of this interface.""" - - app: AppVaultKvRequirerSchema - unit: UnitVaultKvRequirerSchema +ProviderUnitData = None