API Plugin Model

Smarter API PluginData Sql Connection Manifest Constants

Smarter API Manifest - Plugin.spec

class smarter.apps.plugin.manifest.models.api_plugin.spec.ApiData(*, endpoint: Annotated[str, MaxLen(max_length=255)], method: Annotated[str, MaxLen(max_length=10)] = 'GET', urlParams: List[UrlParam] | None = None, headers: List[RequestHeader] | None = None, body: dict[str, Any] | list[Any] | None = None, parameters: List[Parameter] | None = None, testValues: List[TestValue] | None = None, limit: Annotated[int | None, Gt(gt=1)] = 100)[source]

Bases: SmarterBasePydanticModel

Smarter API - apiData class.

body: dict[str, Any] | list[Any] | None
endpoint: str
headers: List[RequestHeader] | None
limit: int | None
method: str
model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'from_attributes': True, 'frozen': True}

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

model_post_init(context, /)

This function is meant to behave like a BaseModel method to initialize private attributes.

It takes context as an argument since that’s what pydantic-core passes when calling it.

Return type:

None

Parameters:
  • self – The BaseModel instance.

  • context – The context.

parameters: List[Parameter] | None
testValues: List[TestValue] | None
urlParams: List[UrlParam] | None
classmethod validate_endpoint(v)[source]
classmethod validate_method(v)[source]
class smarter.apps.plugin.manifest.models.api_plugin.spec.SAMApiPluginSpec(*, selector: SAMPluginCommonSpecSelector, prompt: SAMPluginCommonSpecPrompt, connection: str, apiData: ApiData)[source]

Bases: SAMPluginCommonSpec

Smarter API Manifest ApiConnection.spec

apiData: ApiData
class_identifier: ClassVar[str] = 'ApiPlugin.spec'
connection: str
model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'from_attributes': True, 'frozen': True}

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

model_post_init(context, /)

This function is meant to behave like a BaseModel method to initialize private attributes.

It takes context as an argument since that’s what pydantic-core passes when calling it.

Return type:

None

Parameters:
  • self – The BaseModel instance.

  • context – The context.

validate_connection()[source]

Validate that the connection value is a valid cleanstring and that at least 1 record exists in the ApiConnection table with the given name.

If the model includes an authenticated user then also validate that at least 1 record exists in the ApiConnection table with the given name that is accessible by the authenticated user.

Smarter API Plugin Manifest

class smarter.apps.plugin.manifest.models.api_plugin.model.SAMApiPlugin(*, apiVersion: str, kind: str, metadata: SAMPluginCommonMetadata, spec: SAMApiPluginSpec, status: SAMPluginCommonStatus | None = None)[source]

Bases: SAMPluginCommon

Smarter API Manifest - ApiPlugin Model

class_identifier: ClassVar[str] = 'ApiPlugin'
model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'from_attributes': True, 'frozen': True}

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

model_post_init(context, /)

This function is meant to behave like a BaseModel method to initialize private attributes.

It takes context as an argument since that’s what pydantic-core passes when calling it.

Return type:

None

Parameters:
  • self – The BaseModel instance.

  • context – The context.

spec: SAMApiPluginSpec