flexmeasures.api.v3_0.assets

Functions

flexmeasures.api.v3_0.assets.sensor_term_filter(term: str)
flexmeasures.api.v3_0.assets.validate_asset_chart_type(chart_type: str)

Refuse a chart type an asset cannot be drawn as.

Classes

class flexmeasures.api.v3_0.assets.AssetAPI

This API view exposes generic assets.

_trigger_automation_chain(asset: GenericAsset, automation: Automation) → tuple[dict, int]

Run an automation along with the automations that wait for it (see run_automation_chain).

_trigger_automation_with_ascendants(asset: GenericAsset, automation: Automation, left_out: list[int]) → tuple[dict, int]

Run the automations this one waits for, and then this one (see run_automation_with_ascendants).

asset_sensors(id: int, asset: GenericAsset | None, page: int | None = None, per_page: int | None = None, filter: list[str] | None = None, sort_by: str | None = None, sort_dir: str | None = None)
auditlog(id: int, asset: GenericAsset, page: int | None = None, per_page: int | None = None, filter: list[str] | None = None, sort_by: str | None = None, sort_dir: str | None = None)
copy_assets(id, asset: GenericAsset, account: Account | None = None, parent_asset: GenericAsset | None = None)
delete(id: int, asset: GenericAsset)
delete_automation(id: int, automation_id: int, asset: GenericAsset)
fetch_one(id, asset)
get_automation(id: int, automation_id: int, asset: GenericAsset)
get_automation_run_plan(id: int, automation_id: int, asset: GenericAsset, direction: str)
get_automations(id: int, asset: GenericAsset, include_child_assets: bool = True)
get_automations_across_assets(scope: str)
get_chart(id: int, asset: GenericAsset, **kwargs)
get_chart_annotations(id: int, asset: GenericAsset, **kwargs)
get_chart_data(id: int, asset: GenericAsset, **kwargs)
get_jobs(id: int, asset: GenericAsset, include_child_assets: bool = True, page: int | None = None, per_page: int = 10, sort_by: str = 'enqueued_at', sort_dir: str = 'desc')
get_kpis(id: int, asset: GenericAsset, start, end)
index(fields_in_response: list[str] | None, all_accessible: bool, include_public: bool | None, asset_type: GenericAssetType | None = None, account: Account | None = None, root_asset: GenericAsset | None = None, max_depth: int | None = None, page: int | None = None, per_page: int | None = None, filter: list[str] | None = None, sort_by: str | None = None, sort_dir: str | None = None)
patch(id: int, db_asset: GenericAsset)
patch_automation(automation_data: dict, id: int, automation_id: int, asset: GenericAsset)
post(asset_data: dict)
post_annotation(annotation: Annotation, id: int, asset: GenericAsset)
post_automation(automation_data: dict, id: int, asset: GenericAsset)
public(fields_in_response: list[str] | None)
trigger_automation(id: int, automation_id: int, asset: GenericAsset, with_dependents: bool = False, with_ascendants: bool = False, left_out: list[int] | None = None)
trigger_report(id: int, asset: GenericAsset)
trigger_schedule(asset: GenericAsset, start_of_schedule: datetime, duration: timedelta, resolution: timedelta | None = None, belief_time: datetime | None = None, flex_model: dict | None = None, flex_context: dict | None = None, sequential: bool = False, force_new_job_creation: bool | None = False, **kwargs)
class flexmeasures.api.v3_0.assets.AssetAuditLogPaginationSchema(*, only: Sequence[str] | AbstractSet[str] | None = None, exclude: Sequence[str] | AbstractSet[str] = (), many: bool | None = None, load_only: Sequence[str] | AbstractSet[str] = (), dump_only: Sequence[str] | AbstractSet[str] = (), partial: bool | Sequence[str] | AbstractSet[str] | None = None, unknown: Literal['exclude', 'include', 'raise'] | None = None)
class flexmeasures.api.v3_0.assets.AssetAutomationsQuerySchema(*, only: Sequence[str] | AbstractSet[str] | None = None, exclude: Sequence[str] | AbstractSet[str] = (), many: bool | None = None, load_only: Sequence[str] | AbstractSet[str] = (), dump_only: Sequence[str] | AbstractSet[str] = (), partial: bool | Sequence[str] | AbstractSet[str] | None = None, unknown: Literal['exclude', 'include', 'raise'] | None = None)
class flexmeasures.api.v3_0.assets.AssetChartAnnotationsKwargsSchema(*, only: Sequence[str] | AbstractSet[str] | None = None, exclude: Sequence[str] | AbstractSet[str] = (), many: bool | None = None, load_only: Sequence[str] | AbstractSet[str] = (), dump_only: Sequence[str] | AbstractSet[str] = (), partial: bool | Sequence[str] | AbstractSet[str] | None = None, unknown: Literal['exclude', 'include', 'raise'] | None = None)
class flexmeasures.api.v3_0.assets.AssetChartDataKwargsSchema(*, only: Sequence[str] | AbstractSet[str] | None = None, exclude: Sequence[str] | AbstractSet[str] = (), many: bool | None = None, load_only: Sequence[str] | AbstractSet[str] = (), dump_only: Sequence[str] | AbstractSet[str] = (), partial: bool | Sequence[str] | AbstractSet[str] | None = None, unknown: Literal['exclude', 'include', 'raise'] | None = None)
class flexmeasures.api.v3_0.assets.AssetChartDataOpenAPISchema(*args, **kwargs)

Doc-only variant of AssetChartDataKwargsSchema; see AssetChartOpenAPISchema.

It also hides chart_type, which only the asset page uses for now.

__init__(*args, **kwargs)
class flexmeasures.api.v3_0.assets.AssetChartKwargsSchema(*, only: Sequence[str] | AbstractSet[str] | None = None, exclude: Sequence[str] | AbstractSet[str] = (), many: bool | None = None, load_only: Sequence[str] | AbstractSet[str] = (), dump_only: Sequence[str] | AbstractSet[str] = (), partial: bool | Sequence[str] | AbstractSet[str] | None = None, unknown: Literal['exclude', 'include', 'raise'] | None = None)
class flexmeasures.api.v3_0.assets.AssetChartOpenAPISchema(*args, **kwargs)

Doc-only variant of AssetChartKwargsSchema that hides beliefs_after from the generated OpenAPI/Swagger spec (see BeliefTimeFilterSchema’s docstring for why). Not used for actual request validation – AssetChartKwargsSchema still accepts beliefs_after.

__init__(*args, **kwargs)
class flexmeasures.api.v3_0.assets.AssetJobsQuerySchema(*, only: Sequence[str] | AbstractSet[str] | None = None, exclude: Sequence[str] | AbstractSet[str] = (), many: bool | None = None, load_only: Sequence[str] | AbstractSet[str] = (), dump_only: Sequence[str] | AbstractSet[str] = (), partial: bool | Sequence[str] | AbstractSet[str] | None = None, unknown: Literal['exclude', 'include', 'raise'] | None = None)
class flexmeasures.api.v3_0.assets.AssetTriggerOpenAPISchema(*args, **kwargs)
__init__(*args, **kwargs)
class flexmeasures.api.v3_0.assets.AssetTriggerSchemaV3(*, only: Sequence[str] | AbstractSet[str] | None = None, exclude: Sequence[str] | AbstractSet[str] = (), many: bool | None = None, load_only: Sequence[str] | AbstractSet[str] = (), dump_only: Sequence[str] | AbstractSet[str] = (), partial: bool | Sequence[str] | AbstractSet[str] | None = None, unknown: Literal['exclude', 'include', 'raise'] | None = None)

v3_0-only wrapper around the shared AssetTriggerSchema.

AssetTriggerSchema itself stays canonical (no legacy field-name aliasing) since it’s also used outside the versioned API, e.g. by the CLI. This subclass adds v3_0’s backward compatibility for the legacy force_new_job_creation field name, so it can be deleted in one place, along with the rest of flexmeasures/api/v3_0/, once this API version is sunset – without needing to touch the shared domain schema.

class flexmeasures.api.v3_0.assets.AssetTypesAPI

This API view exposes generic asset types.

index()
class flexmeasures.api.v3_0.assets.CopyAssetSchema(*, only: Sequence[str] | AbstractSet[str] | None = None, exclude: Sequence[str] | AbstractSet[str] = (), many: bool | None = None, load_only: Sequence[str] | AbstractSet[str] = (), dump_only: Sequence[str] | AbstractSet[str] = (), partial: bool | Sequence[str] | AbstractSet[str] | None = None, unknown: Literal['exclude', 'include', 'raise'] | None = None)
resolve_account_and_parent(data, **kwargs)

Resolve the account/parent relationship after loading:

  • If account is explicitly given but parent_asset is not, the copy becomes a top-level asset (no parent) in the given account.

  • If parent_asset is explicitly given but account is not, the copy inherits the account of the parent asset.

  • If both are explicitly given, the copy can belong to a different account than its parent, which is a valid cross-account parent relationship.

  • If neither is given, the original asset’s account and parent are preserved.

class flexmeasures.api.v3_0.assets.KPIKwargsSchema(*, only: Sequence[str] | AbstractSet[str] | None = None, exclude: Sequence[str] | AbstractSet[str] = (), many: bool | None = None, load_only: Sequence[str] | AbstractSet[str] = (), dump_only: Sequence[str] | AbstractSet[str] = (), partial: bool | Sequence[str] | AbstractSet[str] | None = None, unknown: Literal['exclude', 'include', 'raise'] | None = None)