Pydantic Models
Smarter API PluginData Sql Connection Manifest Constants
Smarter API Manifest - User.metadata
- pydantic model smarter.apps.provider.manifest.models.provider.metadata.SAMProviderMetadata[source]
Bases:
AbstractSAMMetadataBaseSmarter API Provider Manifest - Metadata class.
Show JSON schema
{ "title": "SAMProviderMetadata", "description": "Smarter API Provider Manifest - Metadata class.", "type": "object", "properties": { "name": { "description": "The camelCase name of the manifest resource", "title": "Name", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The description for this resource. Be brief. Keep it under 255 characters.", "title": "Description" }, "version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The semantic version of the manifest. Example: 0.1.0", "title": "Version" }, "tags": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "description": "The tags of the manifest. Used for generic resource categorization and search. Example: ['tag1', 'tag2']", "title": "Tags" }, "annotations": { "anyOf": [ { "items": { "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "integer" }, { "type": "number" }, { "type": "boolean" }, { "format": "date", "type": "string" }, { "format": "date-time", "type": "string" }, { "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string" }, { "format": "uuid", "type": "string" }, { "format": "binary", "type": "string" }, { "items": {}, "type": "array" }, { "additionalProperties": true, "type": "object" } ] }, "type": "object" }, "type": "array" }, { "type": "null" } ], "description": "The manifest annotations. Used for storing arbitrary metadata as\n key-value pairs. Example: [{'smarter.sh/test-manifest/project-name': 'Scooby dooby do'}]. The\n key should be a valid url-friendly string. The value accepts\n multi-line string values (YAML block scalars) and various scalar types including\n str, int, float, bool, datetime.date, datetime.datetime, decimal.Decimal, uuid.UUID, bytes, list, dict.\n ", "title": "Annotations" } }, "required": [ "name", "description", "version" ] }
- Config:
from_attributes: bool = True
arbitrary_types_allowed: bool = True
frozen: bool = True
- Fields:
- Validators:
Smarter API Manifest - Plugin.spec
- pydantic model smarter.apps.provider.manifest.models.provider.spec.SAMProviderSpec[source]
Bases:
AbstractSAMSpecBaseSmarter API Api Connection Manifest ApiConnection.spec
Show JSON schema
{ "title": "SAMProviderSpec", "description": "Smarter API Api Connection Manifest ApiConnection.spec", "type": "object", "properties": { "provider": { "$ref": "#/$defs/SAMProviderSpecProvider", "description": "Provider.spec.selector[obj]: the spec for the Provider" } }, "$defs": { "SAMProviderSpecProvider": { "description": "Smarter API - generic API Connection class.", "properties": { "name": { "description": "The name of the Provider. Case sensitive. Must be unique and not empty, with no leading or trailing whitespace and no special characters. examples: 'OpenAI', 'GoogleAI', 'MetaAI'.", "title": "Name", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "A brief description of the Provider.", "title": "Description" }, "base_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "The base URL for the Provider's API.", "title": "Base Url" }, "api_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "The name of the Smarter Secret containing the API key to use for verification tests.", "title": "Api Key" }, "connectivity_test_path": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "", "description": "The URL path to test connectivity with the Provider's API.", "title": "Connectivity Test Path" }, "logo": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "The logo of the Provider.", "title": "Logo" }, "website_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "The website_url URL of the Provider.", "title": "Website Url" }, "contact_email": { "anyOf": [ { "format": "email", "type": "string" }, { "type": "null" } ], "default": null, "description": "The contact email of the Provider.", "title": "Contact Email" }, "support_email": { "anyOf": [ { "format": "email", "type": "string" }, { "type": "null" } ], "default": null, "description": "The support email of the Provider.", "title": "Support Email" }, "terms_of_service_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "The terms of service URL of the Provider.", "title": "Terms Of Service Url" }, "docs_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "The documentation URL of the Provider.", "title": "Docs Url" }, "privacy_policy_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "The privacy policy URL of the Provider.", "title": "Privacy Policy Url" } }, "required": [ "name" ], "title": "SAMProviderSpecProvider", "type": "object" } }, "required": [ "provider" ] }
- Config:
from_attributes: bool = True
arbitrary_types_allowed: bool = True
frozen: bool = True
- Fields:
- Validators:
-
field provider:
SAMProviderSpecProvider[Required] Provider.spec.selector[obj]: the spec for the Provider
- Validated by:
- pydantic model smarter.apps.provider.manifest.models.provider.spec.SAMProviderSpecProvider[source]
Bases:
SmarterBasePydanticModelSmarter API - generic API Connection class.
Show JSON schema
{ "title": "SAMProviderSpecProvider", "description": "Smarter API - generic API Connection class.", "type": "object", "properties": { "name": { "description": "The name of the Provider. Case sensitive. Must be unique and not empty, with no leading or trailing whitespace and no special characters. examples: 'OpenAI', 'GoogleAI', 'MetaAI'.", "title": "Name", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "A brief description of the Provider.", "title": "Description" }, "base_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "The base URL for the Provider's API.", "title": "Base Url" }, "api_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "The name of the Smarter Secret containing the API key to use for verification tests.", "title": "Api Key" }, "connectivity_test_path": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "", "description": "The URL path to test connectivity with the Provider's API.", "title": "Connectivity Test Path" }, "logo": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "The logo of the Provider.", "title": "Logo" }, "website_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "The website_url URL of the Provider.", "title": "Website Url" }, "contact_email": { "anyOf": [ { "format": "email", "type": "string" }, { "type": "null" } ], "default": null, "description": "The contact email of the Provider.", "title": "Contact Email" }, "support_email": { "anyOf": [ { "format": "email", "type": "string" }, { "type": "null" } ], "default": null, "description": "The support email of the Provider.", "title": "Support Email" }, "terms_of_service_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "The terms of service URL of the Provider.", "title": "Terms Of Service Url" }, "docs_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "The documentation URL of the Provider.", "title": "Docs Url" }, "privacy_policy_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "The privacy policy URL of the Provider.", "title": "Privacy Policy Url" } }, "required": [ "name" ] }
- Config:
from_attributes: bool = True
arbitrary_types_allowed: bool = True
frozen: bool = True
- Fields:
- Validators:
-
field api_key:
Optional[str] = None The name of the Smarter Secret containing the API key to use for verification tests.
- Validated by:
-
field connectivity_test_path:
Optional[str] = '' The URL path to test connectivity with the Provider’s API.
- Validated by:
-
field name:
str[Required] The name of the Provider. Case sensitive. Must be unique and not empty, with no leading or trailing whitespace and no special characters. examples: ‘OpenAI’, ‘GoogleAI’, ‘MetaAI’.
- Validated by:
-
field privacy_policy_url:
Optional[str] = None The privacy policy URL of the Provider.
- Validated by:
-
field terms_of_service_url:
Optional[str] = None The terms of service URL of the Provider.
- Validated by:
- validator validate_connectivity_test_path » connectivity_test_path[source]
- validator validate_contact_email » contact_email[source]
- validator validate_privacy_policy_url » privacy_policy_url[source]
- validator validate_support_email » support_email[source]
- validator validate_terms_of_service_url » terms_of_service_url[source]
- validator validate_website » website_url[source]
- smarter.apps.provider.manifest.models.provider.spec.should_log(level)[source]
Check if logging should be done based on the waffle switch.
Smarter API Manifest - Account.status
- pydantic model smarter.apps.provider.manifest.models.provider.status.SAMProviderStatus[source]
Bases:
AbstractSAMStatusBaseSmarter API Provider Manifest - Status class.
Show JSON schema
{ "title": "SAMProviderStatus", "description": "Smarter API Provider Manifest - Status class.", "type": "object", "properties": { "recordLocator": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "recordLocator[String]: An optional identifier used to locate the resource record associated with this manifest. Read only.", "title": "Recordlocator" }, "created": { "description": "The date in which this resource was created. Read only.", "format": "date-time", "title": "Created", "type": "string" }, "modified": { "description": "The date in which this resource was most recently changed. Read only.", "format": "date-time", "title": "Modified", "type": "string" }, "is_active": { "description": "Account.status.is_active: Indicates whether this Account is currently active. Read only.", "title": "Is Active", "type": "boolean" }, "is_flagged": { "description": "Account.status.is_flagged: Indicates whether this Account has been flagged for review. Read only.", "title": "Is Flagged", "type": "boolean" }, "is_deprecated": { "description": "Account.status.is_deprecated: Indicates whether this Account is deprecated. Read only.", "title": "Is Deprecated", "type": "boolean" }, "is_suspended": { "description": "Account.status.is_suspended: Indicates whether this Account is currently suspended. Read only.", "title": "Is Suspended", "type": "boolean" }, "is_verified": { "description": "Account.status.is_verified: Indicates whether this Account has been verified. Read only.", "title": "Is Verified", "type": "boolean" }, "ownership_requested": { "anyOf": [ { "format": "email", "type": "string" }, { "type": "null" } ], "default": null, "description": "Account.status.ownership_requested: The Smarter user that has requested ownership of this Account. Read only.", "title": "Ownership Requested" }, "contact_email_verified": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "default": null, "description": "Account.status.contact_email_verified: The date in which the contact email for this Account was verified. Read only.", "title": "Contact Email Verified" }, "support_email_verified": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "default": null, "description": "Account.status.support_email_verified: The date in which the support email for this Account was verified. Read only.", "title": "Support Email Verified" }, "tos_accepted_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "default": null, "description": "Account.status.tos_accepted_at: The date in which the Terms of Service for this Account were accepted. Read only.", "title": "Tos Accepted At" }, "tos_accepted_by": { "anyOf": [ { "format": "email", "type": "string" }, { "type": "null" } ], "default": null, "description": "Account.status.tos_accepted_by: The Smarter user that accepted the Terms of Service for this Account. Read only.", "title": "Tos Accepted By" }, "can_activate": { "default": true, "description": "Account.status.can_activate: Indicates whether this Account can be activated. Read only.", "title": "Can Activate", "type": "boolean" } }, "required": [ "created", "modified", "is_active", "is_flagged", "is_deprecated", "is_suspended", "is_verified" ] }
- Config:
from_attributes: bool = True
arbitrary_types_allowed: bool = True
frozen: bool = True
- Fields:
- Validators:
-
field can_activate:
bool= True Account.status.can_activate: Indicates whether this Account can be activated. Read only.
- Validated by:
-
field contact_email_verified:
Optional[datetime] = None Account.status.contact_email_verified: The date in which the contact email for this Account was verified. Read only.
- Validated by:
-
field is_active:
bool[Required] Account.status.is_active: Indicates whether this Account is currently active. Read only.
- Validated by:
-
field is_deprecated:
bool[Required] Account.status.is_deprecated: Indicates whether this Account is deprecated. Read only.
- Validated by:
-
field is_flagged:
bool[Required] Account.status.is_flagged: Indicates whether this Account has been flagged for review. Read only.
- Validated by:
-
field is_suspended:
bool[Required] Account.status.is_suspended: Indicates whether this Account is currently suspended. Read only.
- Validated by:
-
field is_verified:
bool[Required] Account.status.is_verified: Indicates whether this Account has been verified. Read only.
- Validated by:
-
field ownership_requested:
Optional[EmailStr] = None Account.status.ownership_requested: The Smarter user that has requested ownership of this Account. Read only.
- Validated by:
-
field support_email_verified:
Optional[datetime] = None Account.status.support_email_verified: The date in which the support email for this Account was verified. Read only.
- Validated by:
-
field tos_accepted_at:
Optional[datetime] = None Account.status.tos_accepted_at: The date in which the Terms of Service for this Account were accepted. Read only.
- Validated by:
Smarter API Account Manifest
- pydantic model smarter.apps.provider.manifest.models.provider.model.SAMProvider[source]
Bases:
AbstractSAMBaseSmarter API Manifest - Account
Show JSON schema
{ "title": "SAMProvider", "description": "Smarter API Manifest - Account", "type": "object", "properties": { "apiVersion": { "description": "apiVersion[String]: Required. The API version of the AbstractSAMBase.", "title": "Apiversion", "type": "string" }, "kind": { "description": "kind[String]: Required. The kind of resource described by the manifest.", "title": "Kind", "type": "string" }, "metadata": { "$ref": "#/$defs/SAMProviderMetadata", "description": "Provider.metadata[obj]: Required, the Provider metadata." }, "spec": { "$ref": "#/$defs/SAMProviderSpec", "description": "Provider.spec[obj]: Required, the Provider specification." }, "status": { "anyOf": [ { "$ref": "#/$defs/SAMProviderStatus" }, { "type": "null" } ], "default": null, "description": "Provider.status[obj]: Optional, Read-only. Stateful status information about the Provider." } }, "$defs": { "SAMProviderMetadata": { "description": "Smarter API Provider Manifest - Metadata class.", "properties": { "name": { "description": "The camelCase name of the manifest resource", "title": "Name", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The description for this resource. Be brief. Keep it under 255 characters.", "title": "Description" }, "version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The semantic version of the manifest. Example: 0.1.0", "title": "Version" }, "tags": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "description": "The tags of the manifest. Used for generic resource categorization and search. Example: ['tag1', 'tag2']", "title": "Tags" }, "annotations": { "anyOf": [ { "items": { "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "integer" }, { "type": "number" }, { "type": "boolean" }, { "format": "date", "type": "string" }, { "format": "date-time", "type": "string" }, { "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string" }, { "format": "uuid", "type": "string" }, { "format": "binary", "type": "string" }, { "items": {}, "type": "array" }, { "additionalProperties": true, "type": "object" } ] }, "type": "object" }, "type": "array" }, { "type": "null" } ], "description": "The manifest annotations. Used for storing arbitrary metadata as\n key-value pairs. Example: [{'smarter.sh/test-manifest/project-name': 'Scooby dooby do'}]. The\n key should be a valid url-friendly string. The value accepts\n multi-line string values (YAML block scalars) and various scalar types including\n str, int, float, bool, datetime.date, datetime.datetime, decimal.Decimal, uuid.UUID, bytes, list, dict.\n ", "title": "Annotations" } }, "required": [ "name", "description", "version" ], "title": "SAMProviderMetadata", "type": "object" }, "SAMProviderSpec": { "description": "Smarter API Api Connection Manifest ApiConnection.spec", "properties": { "provider": { "$ref": "#/$defs/SAMProviderSpecProvider", "description": "Provider.spec.selector[obj]: the spec for the Provider" } }, "required": [ "provider" ], "title": "SAMProviderSpec", "type": "object" }, "SAMProviderSpecProvider": { "description": "Smarter API - generic API Connection class.", "properties": { "name": { "description": "The name of the Provider. Case sensitive. Must be unique and not empty, with no leading or trailing whitespace and no special characters. examples: 'OpenAI', 'GoogleAI', 'MetaAI'.", "title": "Name", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "A brief description of the Provider.", "title": "Description" }, "base_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "The base URL for the Provider's API.", "title": "Base Url" }, "api_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "The name of the Smarter Secret containing the API key to use for verification tests.", "title": "Api Key" }, "connectivity_test_path": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "", "description": "The URL path to test connectivity with the Provider's API.", "title": "Connectivity Test Path" }, "logo": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "The logo of the Provider.", "title": "Logo" }, "website_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "The website_url URL of the Provider.", "title": "Website Url" }, "contact_email": { "anyOf": [ { "format": "email", "type": "string" }, { "type": "null" } ], "default": null, "description": "The contact email of the Provider.", "title": "Contact Email" }, "support_email": { "anyOf": [ { "format": "email", "type": "string" }, { "type": "null" } ], "default": null, "description": "The support email of the Provider.", "title": "Support Email" }, "terms_of_service_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "The terms of service URL of the Provider.", "title": "Terms Of Service Url" }, "docs_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "The documentation URL of the Provider.", "title": "Docs Url" }, "privacy_policy_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "The privacy policy URL of the Provider.", "title": "Privacy Policy Url" } }, "required": [ "name" ], "title": "SAMProviderSpecProvider", "type": "object" }, "SAMProviderStatus": { "description": "Smarter API Provider Manifest - Status class.", "properties": { "recordLocator": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "recordLocator[String]: An optional identifier used to locate the resource record associated with this manifest. Read only.", "title": "Recordlocator" }, "created": { "description": "The date in which this resource was created. Read only.", "format": "date-time", "title": "Created", "type": "string" }, "modified": { "description": "The date in which this resource was most recently changed. Read only.", "format": "date-time", "title": "Modified", "type": "string" }, "is_active": { "description": "Account.status.is_active: Indicates whether this Account is currently active. Read only.", "title": "Is Active", "type": "boolean" }, "is_flagged": { "description": "Account.status.is_flagged: Indicates whether this Account has been flagged for review. Read only.", "title": "Is Flagged", "type": "boolean" }, "is_deprecated": { "description": "Account.status.is_deprecated: Indicates whether this Account is deprecated. Read only.", "title": "Is Deprecated", "type": "boolean" }, "is_suspended": { "description": "Account.status.is_suspended: Indicates whether this Account is currently suspended. Read only.", "title": "Is Suspended", "type": "boolean" }, "is_verified": { "description": "Account.status.is_verified: Indicates whether this Account has been verified. Read only.", "title": "Is Verified", "type": "boolean" }, "ownership_requested": { "anyOf": [ { "format": "email", "type": "string" }, { "type": "null" } ], "default": null, "description": "Account.status.ownership_requested: The Smarter user that has requested ownership of this Account. Read only.", "title": "Ownership Requested" }, "contact_email_verified": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "default": null, "description": "Account.status.contact_email_verified: The date in which the contact email for this Account was verified. Read only.", "title": "Contact Email Verified" }, "support_email_verified": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "default": null, "description": "Account.status.support_email_verified: The date in which the support email for this Account was verified. Read only.", "title": "Support Email Verified" }, "tos_accepted_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "default": null, "description": "Account.status.tos_accepted_at: The date in which the Terms of Service for this Account were accepted. Read only.", "title": "Tos Accepted At" }, "tos_accepted_by": { "anyOf": [ { "format": "email", "type": "string" }, { "type": "null" } ], "default": null, "description": "Account.status.tos_accepted_by: The Smarter user that accepted the Terms of Service for this Account. Read only.", "title": "Tos Accepted By" }, "can_activate": { "default": true, "description": "Account.status.can_activate: Indicates whether this Account can be activated. Read only.", "title": "Can Activate", "type": "boolean" } }, "required": [ "created", "modified", "is_active", "is_flagged", "is_deprecated", "is_suspended", "is_verified" ], "title": "SAMProviderStatus", "type": "object" } }, "required": [ "apiVersion", "kind", "metadata", "spec" ] }
- Config:
from_attributes: bool = True
arbitrary_types_allowed: bool = True
frozen: bool = True
- Fields:
- Validators:
-
field metadata:
SAMProviderMetadata[Required] Provider.metadata[obj]: Required, the Provider metadata.
- Validated by:
-
field spec:
SAMProviderSpec[Required] Provider.spec[obj]: Required, the Provider specification.
- Validated by:
-
field status:
Optional[SAMProviderStatus] = None Provider.status[obj]: Optional, Read-only. Stateful status information about the Provider.
- Validated by: