SAM Models

Typed models of every SAM (Smarter Application Manifest) kind, generated from the Smarter platform’s JSON Schemas.

Each model describes a complete manifest of its kind: apiVersion, kind, metadata, spec and the read-only status. Use them to build manifests in code, with your editor’s completion and Pydantic’s validation, or to read a described manifest with typed fields:

from smarter.models.sam import SAMGuardrail, sam_model

manifest = client.guardrails.describe("pii_redactor")
guardrail = manifest.to_sam()                  # a SAMGuardrail
print(guardrail.spec.config.action)

The models keep fields that they don’t declare, so that a manifest of a newer platform still parses. The platform’s own models also enforce business rules that a JSON Schema can’t express: validate a manifest with smarter.resources.manifests.Manifests.validate() before you rely on it.

Do not edit: run scripts/generate_sam_models.py.

class smarter.models.sam.SAMModel(**extra_data: Any)[source]

Bases: SmarterModel

The base class of the generated SAM models: a SmarterModel, which keeps unknown fields.

Its fields keep the manifest’s own names, e.g. apiVersion and recordLocator.

Its regular expressions use Python’s re, because the platform’s schemas include patterns with look-ahead (e.g. Pydantic’s own pattern of a Decimal), which Pydantic’s default engine doesn’t support. The generated fields’ docstrings, which come from the platform’s field descriptions, are their Pydantic descriptions too (use_attribute_docstrings).

model_config = {'extra': 'allow', 'populate_by_name': True, 'protected_namespaces': (), 'regex_engine': 'python-re', 'use_attribute_docstrings': True}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

to_manifest_dict() → dict[source]

The manifest as a dict, without its read-only status, ready to apply.

Returns:

The manifest.

to_yaml(status: bool | None = False) → str[source]

The manifest as YAML text.

Parameters:

status – True to include the read-only status.

Returns:

The YAML text.

smarter.models.sam.SAM_MODELS: dict[str, type[SAMModel]] = {'Account': <class 'smarter.models.sam.account.SAMAccount'>, 'ApiConnection': <class 'smarter.models.sam.apiconnection.SAMApiConnection'>, 'ApiPlugin': <class 'smarter.models.sam.apiplugin.SAMApiPlugin'>, 'Budget': <class 'smarter.models.sam.budget.SAMBudget'>, 'CustomDomain': <class 'smarter.models.sam.customdomain.SAMCustomDomain'>, 'Guardrail': <class 'smarter.models.sam.guardrail.SAMGuardrail'>, 'ImageSearchPlugin': <class 'smarter.models.sam.imagesearchplugin.SAMImageSearchPlugin'>, 'LLMClient': <class 'smarter.models.sam.llmclient.SAMLLMClient'>, 'LLMHost': <class 'smarter.models.sam.llmhost.SAMLLMHost'>, 'LLMHostCompute': <class 'smarter.models.sam.llmhostcompute.SAMLLMHostCompute'>, 'MCPClient': <class 'smarter.models.sam.mcpclient.SAMMCPClient'>, 'Orchestrator': <class 'smarter.models.sam.orchestrator.SAMOrchestrator'>, 'Plugin': <class 'smarter.models.sam.plugin.SAMPlugin'>, 'Prompt': <class 'smarter.models.sam.prompt.SAMPrompt'>, 'Provider': <class 'smarter.models.sam.provider.SAMProvider'>, 'Proxy': <class 'smarter.models.sam.proxy.SAMProxy'>, 'Secret': <class 'smarter.models.sam.secret.SAMSecret'>, 'SkillPlugin': <class 'smarter.models.sam.skillplugin.SAMSkillPlugin'>, 'SmarterAuthToken': <class 'smarter.models.sam.smarterauthtoken.SAMSmarterAuthToken'>, 'SqlConnection': <class 'smarter.models.sam.sqlconnection.SAMSqlConnection'>, 'SqlPlugin': <class 'smarter.models.sam.sqlplugin.SAMSqlPlugin'>, 'User': <class 'smarter.models.sam.user.SAMUser'>, 'Vectorsearch': <class 'smarter.models.sam.vectorsearch.SAMVectorsearch'>, 'Vectorstore': <class 'smarter.models.sam.vectorstore.SAMVectorstore'>, 'WebsearchPlugin': <class 'smarter.models.sam.websearchplugin.SAMWebsearchPlugin'>}

The model of each kind, by its manifest kind.

class smarter.models.sam.SAMAccount(*, apiVersion: str, kind: str, metadata: SAMAccountMetadata, spec: SAMAccountSpec, status: SAMAccountStatus | None = None, **extra_data: Any)[source]

Bases: SAMModel

Smarter API Manifest - Account.

model_config = {'extra': 'allow', 'populate_by_name': True, 'protected_namespaces': (), 'regex_engine': 'python-re', 'use_attribute_docstrings': True}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

apiVersion: str

ApiVersion[String]: Required.

The API version of the AbstractSAMBase.

kind: str

Kind[String]: Required.

The kind of resource described by the manifest.

metadata: SAMAccountMetadata

Account.metadata[obj]: Required, the Account metadata.

spec: SAMAccountSpec

Account.spec[obj]: Required, the Account specification.

status: SAMAccountStatus | None

Account.status[obj]: Optional, Read-only.

Stateful status information about the Account.

class smarter.models.sam.SAMApiConnection(*, apiVersion: str, kind: str, metadata: SAMConnectionCommonMetadata, spec: SAMApiConnectionSpec, status: SAMConnectionCommonStatus | None = None, **extra_data: Any)[source]

Bases: SAMModel

Smarter API Connection Manifest - ApiConnection Model.

model_config = {'extra': 'allow', 'populate_by_name': True, 'protected_namespaces': (), 'regex_engine': 'python-re', 'use_attribute_docstrings': True}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

apiVersion: str

ApiVersion[String]: Required.

The API version of the AbstractSAMBase.

kind: str

Kind[String]: Required.

The kind of resource described by the manifest.

metadata: SAMConnectionCommonMetadata

Connection.metadata[obj]: Required, the Connection metadata.

spec: SAMApiConnectionSpec

ApiConnection.spec[obj]: Required, the ApiConnection specification.

status: SAMConnectionCommonStatus | None

Connection.status[obj]: Optional, Read-only.

Stateful status information about the Connection.

class smarter.models.sam.SAMApiPlugin(*, apiVersion: str, kind: str, metadata: SAMPluginCommonMetadata, spec: SAMApiPluginSpec, status: SAMPluginCommonStatus | None = None, **extra_data: Any)[source]

Bases: SAMModel

Smarter API Manifest - ApiPlugin Model.

model_config = {'extra': 'allow', 'populate_by_name': True, 'protected_namespaces': (), 'regex_engine': 'python-re', 'use_attribute_docstrings': True}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

apiVersion: str

ApiVersion[String]: Required.

The API version of the AbstractSAMBase.

kind: str

Kind[String]: Required.

The kind of resource described by the manifest.

metadata: SAMPluginCommonMetadata

Plugin.metadata[obj]: Required, the Plugin metadata.

spec: SAMApiPluginSpec

ApiPlugin.spec[obj]: Required, the ApiPlugin specification.

status: SAMPluginCommonStatus | None

Plugin.status[obj]: Optional, Read-only.

Stateful status information about the Plugin.

class smarter.models.sam.SAMBudget(*, apiVersion: str, kind: str, metadata: SAMBudgetMetadata, spec: SAMBudgetSpec, status: SAMBudgetStatus | None = None, **extra_data: Any)[source]

Bases: SAMModel

Smarter API Manifest - Budget.

model_config = {'extra': 'allow', 'populate_by_name': True, 'protected_namespaces': (), 'regex_engine': 'python-re', 'use_attribute_docstrings': True}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

apiVersion: str

ApiVersion[String]: Required.

The API version of the AbstractSAMBase.

kind: str

Kind[String]: Required.

The kind of resource described by the manifest.

metadata: SAMBudgetMetadata

Budget.metadata[obj]: Required, the Budget metadata.

spec: SAMBudgetSpec

Budget.spec[obj]: Required, the Budget specification.

status: SAMBudgetStatus | None

Budget.status[obj]: Optional, Read-only.

Stateful status information about the Budget.

class smarter.models.sam.SAMCustomDomain(*, apiVersion: str, kind: str, metadata: SAMCustomDomainMetadata, spec: SAMCustomDomainSpec, status: SAMCustomDomainStatus | None = None, **extra_data: Any)[source]

Bases: SAMModel

Smarter API Manifest - CustomDomain.

model_config = {'extra': 'allow', 'populate_by_name': True, 'protected_namespaces': (), 'regex_engine': 'python-re', 'use_attribute_docstrings': True}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

apiVersion: str

ApiVersion[String]: Required.

The API version of the AbstractSAMBase.

kind: str

Kind[String]: Required.

The kind of resource described by the manifest.

metadata: SAMCustomDomainMetadata

CustomDomain.metadata[obj]: Required, the CustomDomain metadata.

spec: SAMCustomDomainSpec

CustomDomain.spec[obj]: Required, the CustomDomain specification.

status: SAMCustomDomainStatus | None

CustomDomain.status[obj]: Optional, Read-only.

Stateful status information about the CustomDomain.

class smarter.models.sam.SAMGuardrail(*, apiVersion: str, kind: str, metadata: SAMGuardrailMetadata, spec: SAMGuardrailSpec, status: SAMGuardrailStatus | None = None, **extra_data: Any)[source]

Bases: SAMModel

Smarter API Manifest - Guardrail.

model_config = {'extra': 'allow', 'populate_by_name': True, 'protected_namespaces': (), 'regex_engine': 'python-re', 'use_attribute_docstrings': True}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

apiVersion: str

ApiVersion[String]: Required.

The API version of the AbstractSAMBase.

kind: str

Kind[String]: Required.

The kind of resource described by the manifest.

metadata: SAMGuardrailMetadata

Guardrail.metadata[obj]: Required, the Guardrail metadata.

spec: SAMGuardrailSpec

Guardrail.spec[obj]: Required, the Guardrail specification.

status: SAMGuardrailStatus | None

Guardrail.status[obj]: Optional, Read-only.

Stateful status information about the Guardrail.

class smarter.models.sam.SAMImageSearchPlugin(*, apiVersion: str, kind: str, metadata: SAMPluginCommonMetadata, spec: SAMImageSearchPluginSpec, status: SAMPluginCommonStatus | None = None, **extra_data: Any)[source]

Bases: SAMModel

Smarter API Manifest - ImageSearchPlugin Model.

model_config = {'extra': 'allow', 'populate_by_name': True, 'protected_namespaces': (), 'regex_engine': 'python-re', 'use_attribute_docstrings': True}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

apiVersion: str

ApiVersion[String]: Required.

The API version of the AbstractSAMBase.

kind: str

Kind[String]: Required.

The kind of resource described by the manifest.

metadata: SAMPluginCommonMetadata

Plugin.metadata[obj]: Required, the Plugin metadata.

spec: SAMImageSearchPluginSpec

ImageSearchPlugin.spec[obj]: Required, the ImageSearchPlugin specification.

status: SAMPluginCommonStatus | None

Plugin.status[obj]: Optional, Read-only.

Stateful status information about the Plugin.

class smarter.models.sam.SAMLLMClient(*, apiVersion: str, kind: str, metadata: SAMLLMClientMetadata, spec: SAMLLMClientSpec, status: SAMLLMClientStatus | None = None, **extra_data: Any)[source]

Bases: SAMModel

Smarter API Manifest - LLMClient.

model_config = {'extra': 'allow', 'populate_by_name': True, 'protected_namespaces': (), 'regex_engine': 'python-re', 'use_attribute_docstrings': True}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

apiVersion: str

ApiVersion[String]: Required.

The API version of the AbstractSAMBase.

kind: str

Kind[String]: Required.

The kind of resource described by the manifest.

metadata: SAMLLMClientMetadata

LLMClient.metadata[obj]: Required, the LLMClient metadata.

spec: SAMLLMClientSpec

LLMClient.spec[obj]: Required, the LLMClient specification.

status: SAMLLMClientStatus | None

LLMClient.status[obj]: Optional, Read-only.

Stateful status information about the LLMClient.

class smarter.models.sam.SAMLLMHost(*, apiVersion: str, kind: str, metadata: SAMLLMHostMetadata, spec: SAMLLMHostSpec, status: SAMLLMHostStatus | None = None, **extra_data: Any)[source]

Bases: SAMModel

Smarter API Manifest - LLMHost.

model_config = {'extra': 'allow', 'populate_by_name': True, 'protected_namespaces': (), 'regex_engine': 'python-re', 'use_attribute_docstrings': True}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

apiVersion: str

ApiVersion[String]: Required.

The API version of the AbstractSAMBase.

kind: str

Kind[String]: Required.

The kind of resource described by the manifest.

metadata: SAMLLMHostMetadata

LLMHost.metadata[obj]: Required, the LLMHost metadata.

spec: SAMLLMHostSpec

LLMHost.spec[obj]: Required, the LLMHost specification.

status: SAMLLMHostStatus | None

LLMHost.status[obj]: Optional, Read-only.

Stateful status information about the LLMHost.

class smarter.models.sam.SAMLLMHostCompute(*, apiVersion: str, kind: str, metadata: SAMLLMHostComputeMetadata, spec: SAMLLMHostComputeSpec, status: SAMLLMHostComputeStatus | None = None, **extra_data: Any)[source]

Bases: SAMModel

Smarter API Manifest - LLMHostCompute.

model_config = {'extra': 'allow', 'populate_by_name': True, 'protected_namespaces': (), 'regex_engine': 'python-re', 'use_attribute_docstrings': True}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

apiVersion: str

ApiVersion[String]: Required.

The API version of the AbstractSAMBase.

kind: str

Kind[String]: Required.

The kind of resource described by the manifest.

metadata: SAMLLMHostComputeMetadata

LLMHostCompute.metadata[obj]: Required, the LLMHostCompute metadata.

spec: SAMLLMHostComputeSpec

LLMHostCompute.spec[obj]: Required, the LLMHostCompute specification.

status: SAMLLMHostComputeStatus | None

LLMHostCompute.status[obj]: Optional, Read-only.

Stateful status information about the LLMHostCompute.

class smarter.models.sam.SAMMCPClient(*, apiVersion: str, kind: str, metadata: SAMMCPClientMetadata, spec: SAMMCPClientSpec, status: SAMMCPClientStatus | None = None, **extra_data: Any)[source]

Bases: SAMModel

Smarter API Manifest - MCPClient.

model_config = {'extra': 'allow', 'populate_by_name': True, 'protected_namespaces': (), 'regex_engine': 'python-re', 'use_attribute_docstrings': True}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

apiVersion: str

ApiVersion[String]: Required.

The API version of the AbstractSAMBase.

kind: str

Kind[String]: Required.

The kind of resource described by the manifest.

metadata: SAMMCPClientMetadata

MCPClient.metadata[obj]: Required, the MCPClient metadata.

spec: SAMMCPClientSpec

MCPClient.spec[obj]: Required, the MCPClient specification.

status: SAMMCPClientStatus | None

MCPClient.status[obj]: Optional, Read-only.

Stateful status information about the MCPClient.

class smarter.models.sam.SAMOrchestrator(*, apiVersion: str, kind: str, metadata: SAMOrchestratorMetadata, spec: SAMOrchestratorSpec, status: SAMOrchestratorStatus | None = None, **extra_data: Any)[source]

Bases: SAMModel

Smarter API Manifest - Orchestrator.

model_config = {'extra': 'allow', 'populate_by_name': True, 'protected_namespaces': (), 'regex_engine': 'python-re', 'use_attribute_docstrings': True}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

apiVersion: str

ApiVersion[String]: Required.

The API version of the AbstractSAMBase.

kind: str

Kind[String]: Required.

The kind of resource described by the manifest.

metadata: SAMOrchestratorMetadata

Orchestrator.metadata[obj]: Required, the Orchestrator metadata.

spec: SAMOrchestratorSpec

Orchestrator.spec[obj]: Required, the Orchestrator specification.

status: SAMOrchestratorStatus | None

Orchestrator.status[obj]: Optional, Read-only.

Stateful status information about the Orchestrator.

class smarter.models.sam.SAMPlugin(*, apiVersion: str, kind: str, metadata: SAMPluginCommonMetadata, spec: SAMPluginStaticSpec, status: SAMPluginCommonStatus | None = None, **extra_data: Any)[source]

Bases: SAMModel

Smarter API Manifest - Plugin.

model_config = {'extra': 'allow', 'populate_by_name': True, 'protected_namespaces': (), 'regex_engine': 'python-re', 'use_attribute_docstrings': True}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

apiVersion: str

ApiVersion[String]: Required.

The API version of the AbstractSAMBase.

kind: str

Kind[String]: Required.

The kind of resource described by the manifest.

metadata: SAMPluginCommonMetadata

Plugin.metadata[obj]: Required, the Plugin metadata.

spec: SAMPluginStaticSpec

Plugin.spec[obj]: Required, the Plugin specification.

status: SAMPluginCommonStatus | None

Plugin.status[obj]: Optional, Read-only.

Stateful status information about the Plugin.

class smarter.models.sam.SAMPrompt(*, apiVersion: str, kind: str, metadata: SAMPromptMetadata, spec: SAMPromptSpecConfig, status: SAMPromptStatus | None = None, **extra_data: Any)[source]

Bases: SAMModel

Smarter API Manifest - Prompt.

model_config = {'extra': 'allow', 'populate_by_name': True, 'protected_namespaces': (), 'regex_engine': 'python-re', 'use_attribute_docstrings': True}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

apiVersion: str

ApiVersion[String]: Required.

The API version of the AbstractSAMBase.

kind: str

Kind[String]: Required.

The kind of resource described by the manifest.

metadata: SAMPromptMetadata

Prompt.metadata[obj]: Required, the Prompt metadata.

spec: SAMPromptSpecConfig

Prompt.spec[obj]: Required, the Prompt specification.

status: SAMPromptStatus | None

Prompt.status[obj]: Optional, Read-only.

Stateful status information about the Prompt.

class smarter.models.sam.SAMProvider(*, apiVersion: str, kind: str, metadata: SAMProviderMetadata, spec: SAMProviderSpec, status: SAMProviderStatus | None = None, **extra_data: Any)[source]

Bases: SAMModel

Smarter API Manifest - Account.

model_config = {'extra': 'allow', 'populate_by_name': True, 'protected_namespaces': (), 'regex_engine': 'python-re', 'use_attribute_docstrings': True}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

apiVersion: str

ApiVersion[String]: Required.

The API version of the AbstractSAMBase.

kind: str

Kind[String]: Required.

The kind of resource described by the manifest.

metadata: SAMProviderMetadata

Provider.metadata[obj]: Required, the Provider metadata.

spec: SAMProviderSpec

Provider.spec[obj]: Required, the Provider specification.

status: SAMProviderStatus | None

Provider.status[obj]: Optional, Read-only.

Stateful status information about the Provider.

class smarter.models.sam.SAMProxy(*, apiVersion: str, kind: str, metadata: SAMProxyMetadata, spec: SAMProxySpec, status: SAMProxyStatus | None = None, **extra_data: Any)[source]

Bases: SAMModel

Smarter API Manifest - Proxy.

model_config = {'extra': 'allow', 'populate_by_name': True, 'protected_namespaces': (), 'regex_engine': 'python-re', 'use_attribute_docstrings': True}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

apiVersion: str

ApiVersion[String]: Required.

The API version of the AbstractSAMBase.

kind: str

Kind[String]: Required.

The kind of resource described by the manifest.

metadata: SAMProxyMetadata

Proxy.metadata[obj]: Required, the Proxy metadata.

spec: SAMProxySpec

Proxy.spec[obj]: Required, the Proxy specification.

status: SAMProxyStatus | None

Proxy.status[obj]: Optional, Read-only.

Stateful status information about the Proxy.

class smarter.models.sam.SAMSecret(*, apiVersion: str, kind: str, metadata: SAMSecretMetadata, spec: SAMSecretSpec, status: SAMSecretStatus | None = None, **extra_data: Any)[source]

Bases: SAMModel

Smarter API Manifest - Secret.

model_config = {'extra': 'allow', 'populate_by_name': True, 'protected_namespaces': (), 'regex_engine': 'python-re', 'use_attribute_docstrings': True}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

apiVersion: str

ApiVersion[String]: Required.

The API version of the AbstractSAMBase.

kind: str

Kind[String]: Required.

The kind of resource described by the manifest.

metadata: SAMSecretMetadata

Secret.metadata[obj]: Required, the Secret metadata.

spec: SAMSecretSpec

Secret.spec[obj]: Required, the Secret specification.

status: SAMSecretStatus | None

Secret.status[obj]: Optional, Read-only.

Stateful status information about the Secret.

class smarter.models.sam.SAMSkillPlugin(*, apiVersion: str, kind: str, metadata: SAMPluginCommonMetadata, spec: SAMSkillPluginSpec, status: SAMPluginCommonStatus | None = None, **extra_data: Any)[source]

Bases: SAMModel

Smarter API Manifest - Skill Connection Model.

model_config = {'extra': 'allow', 'populate_by_name': True, 'protected_namespaces': (), 'regex_engine': 'python-re', 'use_attribute_docstrings': True}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

apiVersion: str

ApiVersion[String]: Required.

The API version of the AbstractSAMBase.

kind: str

Kind[String]: Required.

The kind of resource described by the manifest.

metadata: SAMPluginCommonMetadata

Plugin.metadata[obj]: Required, the Plugin metadata.

spec: SAMSkillPluginSpec

SkillPlugin.spec[obj]: Required, the SkillPlugin specification.

status: SAMPluginCommonStatus | None

Plugin.status[obj]: Optional, Read-only.

Stateful status information about the Plugin.

class smarter.models.sam.SAMSmarterAuthToken(*, apiVersion: str, kind: str, metadata: SAMSmarterAuthTokenMetadata, spec: SAMSmarterAuthTokenSpec, status: SAMSmarterAuthTokenStatus | None = None, **extra_data: Any)[source]

Bases: SAMModel

Smarter API Manifest - SmarterAuthToken.

model_config = {'extra': 'allow', 'populate_by_name': True, 'protected_namespaces': (), 'regex_engine': 'python-re', 'use_attribute_docstrings': True}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

apiVersion: str

ApiVersion[String]: Required.

The API version of the AbstractSAMBase.

kind: str

Kind[String]: Required.

The kind of resource described by the manifest.

metadata: SAMSmarterAuthTokenMetadata

SmarterAuthToken.metadata[obj]: Required, the SmarterAuthToken metadata.

spec: SAMSmarterAuthTokenSpec

SmarterAuthToken.spec[obj]: Required, the SmarterAuthToken specification.

status: SAMSmarterAuthTokenStatus | None

SmarterAuthToken.status[obj]: Optional, Read-only.

Stateful status information about the SmarterAuthToken.

class smarter.models.sam.SAMSqlConnection(*, apiVersion: str, kind: str, metadata: SAMConnectionCommonMetadata, spec: SAMSqlConnectionSpec, status: SAMConnectionCommonStatus | None = None, **extra_data: Any)[source]

Bases: SAMModel

Smarter API Manifest - SqlConnection Model.

model_config = {'extra': 'allow', 'populate_by_name': True, 'protected_namespaces': (), 'regex_engine': 'python-re', 'use_attribute_docstrings': True}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

apiVersion: str

ApiVersion[String]: Required.

The API version of the AbstractSAMBase.

kind: str

Kind[String]: Required.

The kind of resource described by the manifest.

metadata: SAMConnectionCommonMetadata

SqlConnection.metadata[obj]: Required, the SqlConnection metadata.

spec: SAMSqlConnectionSpec

SqlConnection.spec[obj]: Required, the SqlConnection specification.

status: SAMConnectionCommonStatus | None

SqlConnection.status[obj]: Optional, Read-only.

Stateful status information about the SqlConnection.

class smarter.models.sam.SAMSqlPlugin(*, apiVersion: str, kind: str, metadata: SAMPluginCommonMetadata, spec: SAMSqlPluginSpec, status: SAMPluginCommonStatus | None = None, **extra_data: Any)[source]

Bases: SAMModel

Smarter API Manifest - Sql Connection Model.

model_config = {'extra': 'allow', 'populate_by_name': True, 'protected_namespaces': (), 'regex_engine': 'python-re', 'use_attribute_docstrings': True}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

apiVersion: str

ApiVersion[String]: Required.

The API version of the AbstractSAMBase.

kind: str

Kind[String]: Required.

The kind of resource described by the manifest.

metadata: SAMPluginCommonMetadata

Plugin.metadata[obj]: Required, the Plugin metadata.

spec: SAMSqlPluginSpec

SqlPlugin.spec[obj]: Required, the SqlPlugin specification.

status: SAMPluginCommonStatus | None

Plugin.status[obj]: Optional, Read-only.

Stateful status information about the Plugin.

class smarter.models.sam.SAMUser(*, apiVersion: str, kind: str, metadata: SAMUserMetadata, spec: SAMUserSpec, status: SAMUserStatus | None = None, **extra_data: Any)[source]

Bases: SAMModel

Smarter API Manifest - User.

model_config = {'extra': 'allow', 'populate_by_name': True, 'protected_namespaces': (), 'regex_engine': 'python-re', 'use_attribute_docstrings': True}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

apiVersion: str

ApiVersion[String]: Required.

The API version of the AbstractSAMBase.

kind: str

Kind[String]: Required.

The kind of resource described by the manifest.

metadata: SAMUserMetadata

User.metadata[obj]: Required, the User metadata.

spec: SAMUserSpec

User.spec[obj]: Required, the User specification.

status: SAMUserStatus | None

User.status[obj]: Optional, Read-only.

Stateful status information about the User.

class smarter.models.sam.SAMVectorsearch(*, apiVersion: str, kind: str, metadata: SAMVectorsearchMetadata, spec: SAMVectorsearchSpec, status: SAMVectorsearchStatus | None = None, **extra_data: Any)[source]

Bases: SAMModel

Smarter API Manifest - Vectorsearch.

model_config = {'extra': 'allow', 'populate_by_name': True, 'protected_namespaces': (), 'regex_engine': 'python-re', 'use_attribute_docstrings': True}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

apiVersion: str

ApiVersion[String]: Required.

The API version of the AbstractSAMBase.

kind: str

Kind[String]: Required.

The kind of resource described by the manifest.

metadata: SAMVectorsearchMetadata

Vectorsearch.metadata[obj]: Required, the Vectorsearch metadata.

spec: SAMVectorsearchSpec

Vectorsearch.spec[obj]: Required, the Vectorsearch specification.

status: SAMVectorsearchStatus | None

Vectorsearch.status[obj]: Optional, Read-only.

Stateful status information about the Vectorsearch.

class smarter.models.sam.SAMVectorstore(*, apiVersion: str, kind: str, metadata: SAMVectorstoreMetadata, spec: SAMVectorstoreSpec, status: SAMVectorstoreStatus | None = None, **extra_data: Any)[source]

Bases: SAMModel

Smarter API Manifest - Vectorstore.

model_config = {'extra': 'allow', 'populate_by_name': True, 'protected_namespaces': (), 'regex_engine': 'python-re', 'use_attribute_docstrings': True}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

apiVersion: str

ApiVersion[String]: Required.

The API version of the AbstractSAMBase.

kind: str

Kind[String]: Required.

The kind of resource described by the manifest.

metadata: SAMVectorstoreMetadata

Vectorstore.metadata[obj]: Required, the Vectorstore metadata.

spec: SAMVectorstoreSpec

Vectorstore.spec[obj]: Required, the Vectorstore specification.

status: SAMVectorstoreStatus | None

Vectorstore.status[obj]: Optional, Read-only.

Stateful status information about the Vectorstore.

class smarter.models.sam.SAMWebsearchPlugin(*, apiVersion: str, kind: str, metadata: SAMPluginCommonMetadata, spec: SAMWebsearchPluginSpec, status: SAMPluginCommonStatus | None = None, **extra_data: Any)[source]

Bases: SAMModel

Smarter API Manifest - WebsearchPlugin Model.

model_config = {'extra': 'allow', 'populate_by_name': True, 'protected_namespaces': (), 'regex_engine': 'python-re', 'use_attribute_docstrings': True}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

apiVersion: str

ApiVersion[String]: Required.

The API version of the AbstractSAMBase.

kind: str

Kind[String]: Required.

The kind of resource described by the manifest.

metadata: SAMPluginCommonMetadata

Plugin.metadata[obj]: Required, the Plugin metadata.

spec: SAMWebsearchPluginSpec

WebsearchPlugin.spec[obj]: Required, the WebsearchPlugin specification.

status: SAMPluginCommonStatus | None

Plugin.status[obj]: Optional, Read-only.

Stateful status information about the Plugin.

smarter.models.sam.sam_model(kind: str) → type[SAMModel][source]

The model of a kind.

Parameters:

kind – The manifest kind, e.g. LLMClient.

Returns:

The model, e.g. SAMLLMClient.

Raises:

KeyError – If the SDK has no model of the kind.

smarter.models.sam.base

The base class of the generated SAM models.

class smarter.models.sam.base.SAMModel(**extra_data: Any)[source]

Bases: SmarterModel

The base class of the generated SAM models: a SmarterModel, which keeps unknown fields.

Its fields keep the manifest’s own names, e.g. apiVersion and recordLocator.

Its regular expressions use Python’s re, because the platform’s schemas include patterns with look-ahead (e.g. Pydantic’s own pattern of a Decimal), which Pydantic’s default engine doesn’t support. The generated fields’ docstrings, which come from the platform’s field descriptions, are their Pydantic descriptions too (use_attribute_docstrings).

model_config = {'extra': 'allow', 'populate_by_name': True, 'protected_namespaces': (), 'regex_engine': 'python-re', 'use_attribute_docstrings': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

to_manifest_dict() → dict[source]

The manifest as a dict, without its read-only status, ready to apply.

Returns:

The manifest.

to_yaml(status: bool | None = False) → str[source]

The manifest as YAML text.

Parameters:

status – True to include the read-only status.

Returns:

The YAML text.

Every kind