Skip to main content

prefect.blocks.abstract

Classes

CredentialsBlock

Stores credentials for an external system and exposes a client for interacting with that system. Can also hold config that is tightly coupled to credentials (domain, endpoint, account ID, etc.) Will often be composed with other blocks. Parent block should rely on the client provided by a credentials block for interacting with the corresponding external system. Methods:

adelete

Asynchronously deletes the block document with the specified name. Args:
  • name: The name of the block document to delete.
  • client: The client to use to delete the block document. If not provided, the default client will be injected.

aload

Retrieves data from the block document with the given name for the block type that corresponds with the current class and returns an instantiated version of the current class with the data stored in the block document. If a block document for a given block type is saved with a different schema than the current class calling aload, a warning will be raised. If the current class schema is a subset of the block document schema, the block can be loaded as normal using the default validate = True. If the current class schema is a superset of the block document schema, aload must be called with validate set to False to prevent a validation error. In this case, the block attributes will default to None and must be set manually and saved to a new block document before the block can be used as expected. Args:
  • name: The name or slug of the block document. A block document slug is a string with the format <block_type_slug>/<block_document_name>
  • validate: If False, the block document will be loaded without Pydantic validating the block schema. This is useful if the block schema has changed client-side since the block document referred to by name was saved.
  • client: The client to use to load the block document. If not provided, the default client will be injected.
Raises:
  • ValueError: If the requested block document is not found.
Returns:
  • An instance of the current class hydrated with the data stored in the
  • block document with the specified name.
Examples: Load from a Block subclass with a block document name:
Load from Block with a block document slug:
Migrate a block document to a new schema:

aload_from_ref

Asynchronously retrieves data from the block document by given reference for the block type that corresponds with the current class and returns an instantiated version of the current class with the data stored in the block document. Provided reference can be a block document ID, or a reference data in dictionary format. Supported dictionary reference formats are:
  • {"block_document_id": <block_document_id>}
  • {"block_document_slug": <block_document_slug>}
If a block document for a given block type is saved with a different schema than the current class calling aload_from_ref, a warning will be raised. If the current class schema is a subset of the block document schema, the block can be loaded as normal using the default validate = True. If the current class schema is a superset of the block document schema, aload_from_ref must be called with validate set to False to prevent a validation error. In this case, the block attributes will default to None and must be set manually and saved to a new block document before the block can be used as expected. Args:
  • ref: The reference to the block document. This can be a block document ID, or one of supported dictionary reference formats.
  • validate: If False, the block document will be loaded without Pydantic validating the block schema. This is useful if the block schema has changed client-side since the block document referred to by name was saved.
  • client: The client to use to load the block document. If not provided, the default client will be injected.
Raises:
  • ValueError: If invalid reference format is provided.
  • ValueError: If the requested block document is not found.
Returns:
  • An instance of the current class hydrated with the data stored in the
  • block document with the specified name.

annotation_refers_to_block_class

aregister_type_and_schema

Asynchronously makes block available for configuration with current Prefect API. Recursively registers all nested blocks. Registration is idempotent. Args:
  • client: Optional client to use for registering type and schema with the Prefect API. A new client will be created and used if one is not provided.

asave

Asynchronously saves the values of a block as a block document. Args:
  • name: User specified name to give saved block document which can later be used to load the block document.
  • overwrite: Boolean value specifying if values should be overwritten if a block document with the specified name already exists.
  • client: The client to use to save the block document. If not provided, the default client will be injected.
Returns:
  • The ID of the saved block document.

block_initialization

delete

Deletes the block document with the specified name. This function will dispatch to adelete when called from an async context. Args:
  • name: The name of the block document to delete.
  • client: The client to use to delete the block document. If not provided, the default client will be injected. This is ignored when called from a synchronous context.

get_block_capabilities

Returns the block capabilities for this Block. Recursively collects all block capabilities of all parent classes into a single frozenset.

get_block_class_from_key

Retrieve the block class implementation given a key.

get_block_class_from_schema

Retrieve the block class implementation given a schema.

get_block_placeholder

Returns the block placeholder for the current block which can be used for templating. Returns:
  • The block placeholder for the current block in the format prefect.blocks.{block_type_name}.{block_document_name}
Raises:
  • BlockNotSavedError: Raised if the block has not been saved.
If a block has not been saved, the return value will be None.

get_block_schema_version

get_block_type_name

get_block_type_slug

get_client

Returns a client for interacting with the external system. If a service offers various clients, this method can accept a client_type keyword argument to get the desired client within the service.

get_code_example

Returns the code example for the given block. Attempts to parse code example from the class docstring if an override is not provided.

get_description

Returns the description for the current block. Attempts to parse description from class docstring if an override is not defined.

is_block_class

load

Retrieves data from the block document with the given name for the block type that corresponds with the current class and returns an instantiated version of the current class with the data stored in the block document. If a block document for a given block type is saved with a different schema than the current class calling load, a warning will be raised. If the current class schema is a subset of the block document schema, the block can be loaded as normal using the default validate = True. If the current class schema is a superset of the block document schema, load must be called with validate set to False to prevent a validation error. In this case, the block attributes will default to None and must be set manually and saved to a new block document before the block can be used as expected. Args:
  • name: The name or slug of the block document. A block document slug is a string with the format <block_type_slug>/<block_document_name>
  • validate: If False, the block document will be loaded without Pydantic validating the block schema. This is useful if the block schema has changed client-side since the block document referred to by name was saved.
  • client: The client to use to load the block document. If not provided, the default client will be injected.
Raises:
  • ValueError: If the requested block document is not found.
Returns:
  • An instance of the current class hydrated with the data stored in the
  • block document with the specified name.
Examples: Load from a Block subclass with a block document name:
Load from Block with a block document slug:
Migrate a block document to a new schema:

load_from_ref

Retrieves data from the block document by given reference for the block type that corresponds with the current class and returns an instantiated version of the current class with the data stored in the block document. This function will dispatch to aload_from_ref when called from an async context. Provided reference can be a block document ID, or a reference data in dictionary format. Supported dictionary reference formats are:
  • {"block_document_id": <block_document_id>}
  • {"block_document_slug": <block_document_slug>}
If a block document for a given block type is saved with a different schema than the current class calling load_from_ref, a warning will be raised. If the current class schema is a subset of the block document schema, the block can be loaded as normal using the default validate = True. If the current class schema is a superset of the block document schema, load_from_ref must be called with validate set to False to prevent a validation error. In this case, the block attributes will default to None and must be set manually and saved to a new block document before the block can be used as expected. Args:
  • ref: The reference to the block document. This can be a block document ID, or one of supported dictionary reference formats.
  • validate: If False, the block document will be loaded without Pydantic validating the block schema. This is useful if the block schema has changed client-side since the block document referred to by name was saved.
  • client: The client to use to load the block document. If not provided, the default client will be injected. This is ignored when called from a synchronous context.
Raises:
  • ValueError: If invalid reference format is provided.
  • ValueError: If the requested block document is not found.
Returns:
  • An instance of the current class hydrated with the data stored in the
  • block document with the specified name.

logger

Returns a logger based on whether the CredentialsBlock is called from within a flow or task run context. If a run context is present, the logger property returns a run logger. Else, it returns a default logger labeled with the class’s name. Returns:
  • The run logger or a default logger with the class’s name.

model_dump

model_json_schema

TODO: stop overriding this method - use GenerateSchema in ConfigDict instead?

model_validate

register_type_and_schema

Makes block available for configuration with current Prefect API. Recursively registers all nested blocks. Registration is idempotent. This function will dispatch to aregister_type_and_schema when called from an async context. Args:
  • client: Optional client to use for registering type and schema with the Prefect API. A new client will be created and used if one is not provided. This is ignored when called from a synchronous context.

save

Saves the values of a block as a block document. This function will dispatch to asave when called from an async context. Args:
  • name: User specified name to give saved block document which can later be used to load the block document.
  • overwrite: Boolean value specifying if values should be overwritten if a block document with the specified name already exists.
  • client: The client to use to save the block document. If not provided, the default client will be injected. This is ignored when called from a synchronous context.
Returns:
  • The ID of the saved block document.

ser_model

validate_block_type_slug

Validates that the block_type_slug in the input values matches the expected block type slug for the class. This helps pydantic to correctly discriminate between different Block subclasses when validating Union types of Blocks.

NotificationError

Raised if a notification block fails to send a notification.

NotificationBlock

Block that represents a resource in an external system that is able to send notifications. Methods:

adelete

Asynchronously deletes the block document with the specified name. Args:
  • name: The name of the block document to delete.
  • client: The client to use to delete the block document. If not provided, the default client will be injected.

aload

Retrieves data from the block document with the given name for the block type that corresponds with the current class and returns an instantiated version of the current class with the data stored in the block document. If a block document for a given block type is saved with a different schema than the current class calling aload, a warning will be raised. If the current class schema is a subset of the block document schema, the block can be loaded as normal using the default validate = True. If the current class schema is a superset of the block document schema, aload must be called with validate set to False to prevent a validation error. In this case, the block attributes will default to None and must be set manually and saved to a new block document before the block can be used as expected. Args:
  • name: The name or slug of the block document. A block document slug is a string with the format <block_type_slug>/<block_document_name>
  • validate: If False, the block document will be loaded without Pydantic validating the block schema. This is useful if the block schema has changed client-side since the block document referred to by name was saved.
  • client: The client to use to load the block document. If not provided, the default client will be injected.
Raises:
  • ValueError: If the requested block document is not found.
Returns:
  • An instance of the current class hydrated with the data stored in the
  • block document with the specified name.
Examples: Load from a Block subclass with a block document name:
Load from Block with a block document slug:
Migrate a block document to a new schema:

aload_from_ref

Asynchronously retrieves data from the block document by given reference for the block type that corresponds with the current class and returns an instantiated version of the current class with the data stored in the block document. Provided reference can be a block document ID, or a reference data in dictionary format. Supported dictionary reference formats are:
  • {"block_document_id": <block_document_id>}
  • {"block_document_slug": <block_document_slug>}
If a block document for a given block type is saved with a different schema than the current class calling aload_from_ref, a warning will be raised. If the current class schema is a subset of the block document schema, the block can be loaded as normal using the default validate = True. If the current class schema is a superset of the block document schema, aload_from_ref must be called with validate set to False to prevent a validation error. In this case, the block attributes will default to None and must be set manually and saved to a new block document before the block can be used as expected. Args:
  • ref: The reference to the block document. This can be a block document ID, or one of supported dictionary reference formats.
  • validate: If False, the block document will be loaded without Pydantic validating the block schema. This is useful if the block schema has changed client-side since the block document referred to by name was saved.
  • client: The client to use to load the block document. If not provided, the default client will be injected.
Raises:
  • ValueError: If invalid reference format is provided.
  • ValueError: If the requested block document is not found.
Returns:
  • An instance of the current class hydrated with the data stored in the
  • block document with the specified name.

annotation_refers_to_block_class

aregister_type_and_schema

Asynchronously makes block available for configuration with current Prefect API. Recursively registers all nested blocks. Registration is idempotent. Args:
  • client: Optional client to use for registering type and schema with the Prefect API. A new client will be created and used if one is not provided.

asave

Asynchronously saves the values of a block as a block document. Args:
  • name: User specified name to give saved block document which can later be used to load the block document.
  • overwrite: Boolean value specifying if values should be overwritten if a block document with the specified name already exists.
  • client: The client to use to save the block document. If not provided, the default client will be injected.
Returns:
  • The ID of the saved block document.

block_initialization

delete

Deletes the block document with the specified name. This function will dispatch to adelete when called from an async context. Args:
  • name: The name of the block document to delete.
  • client: The client to use to delete the block document. If not provided, the default client will be injected. This is ignored when called from a synchronous context.

get_block_capabilities

Returns the block capabilities for this Block. Recursively collects all block capabilities of all parent classes into a single frozenset.

get_block_class_from_key

Retrieve the block class implementation given a key.

get_block_class_from_schema

Retrieve the block class implementation given a schema.

get_block_placeholder

Returns the block placeholder for the current block which can be used for templating. Returns:
  • The block placeholder for the current block in the format prefect.blocks.{block_type_name}.{block_document_name}
Raises:
  • BlockNotSavedError: Raised if the block has not been saved.
If a block has not been saved, the return value will be None.

get_block_schema_version

get_block_type_name

get_block_type_slug

get_code_example

Returns the code example for the given block. Attempts to parse code example from the class docstring if an override is not provided.

get_description

Returns the description for the current block. Attempts to parse description from class docstring if an override is not defined.

is_block_class

load

Retrieves data from the block document with the given name for the block type that corresponds with the current class and returns an instantiated version of the current class with the data stored in the block document. If a block document for a given block type is saved with a different schema than the current class calling load, a warning will be raised. If the current class schema is a subset of the block document schema, the block can be loaded as normal using the default validate = True. If the current class schema is a superset of the block document schema, load must be called with validate set to False to prevent a validation error. In this case, the block attributes will default to None and must be set manually and saved to a new block document before the block can be used as expected. Args:
  • name: The name or slug of the block document. A block document slug is a string with the format <block_type_slug>/<block_document_name>
  • validate: If False, the block document will be loaded without Pydantic validating the block schema. This is useful if the block schema has changed client-side since the block document referred to by name was saved.
  • client: The client to use to load the block document. If not provided, the default client will be injected.
Raises:
  • ValueError: If the requested block document is not found.
Returns:
  • An instance of the current class hydrated with the data stored in the
  • block document with the specified name.
Examples: Load from a Block subclass with a block document name:
Load from Block with a block document slug:
Migrate a block document to a new schema:

load_from_ref

Retrieves data from the block document by given reference for the block type that corresponds with the current class and returns an instantiated version of the current class with the data stored in the block document. This function will dispatch to aload_from_ref when called from an async context. Provided reference can be a block document ID, or a reference data in dictionary format. Supported dictionary reference formats are:
  • {"block_document_id": <block_document_id>}
  • {"block_document_slug": <block_document_slug>}
If a block document for a given block type is saved with a different schema than the current class calling load_from_ref, a warning will be raised. If the current class schema is a subset of the block document schema, the block can be loaded as normal using the default validate = True. If the current class schema is a superset of the block document schema, load_from_ref must be called with validate set to False to prevent a validation error. In this case, the block attributes will default to None and must be set manually and saved to a new block document before the block can be used as expected. Args:
  • ref: The reference to the block document. This can be a block document ID, or one of supported dictionary reference formats.
  • validate: If False, the block document will be loaded without Pydantic validating the block schema. This is useful if the block schema has changed client-side since the block document referred to by name was saved.
  • client: The client to use to load the block document. If not provided, the default client will be injected. This is ignored when called from a synchronous context.
Raises:
  • ValueError: If invalid reference format is provided.
  • ValueError: If the requested block document is not found.
Returns:
  • An instance of the current class hydrated with the data stored in the
  • block document with the specified name.

logger

Returns a logger based on whether the NotificationBlock is called from within a flow or task run context. If a run context is present, the logger property returns a run logger. Else, it returns a default logger labeled with the class’s name. Returns:
  • The run logger or a default logger with the class’s name.

model_dump

model_json_schema

TODO: stop overriding this method - use GenerateSchema in ConfigDict instead?

model_validate

notify

Send a notification. Args:
  • body: The body of the notification.
  • subject: The subject of the notification.

raise_on_failure

Context manager that, while active, causes the block to raise errors if it encounters a failure sending notifications.

register_type_and_schema

Makes block available for configuration with current Prefect API. Recursively registers all nested blocks. Registration is idempotent. This function will dispatch to aregister_type_and_schema when called from an async context. Args:
  • client: Optional client to use for registering type and schema with the Prefect API. A new client will be created and used if one is not provided. This is ignored when called from a synchronous context.

save

Saves the values of a block as a block document. This function will dispatch to asave when called from an async context. Args:
  • name: User specified name to give saved block document which can later be used to load the block document.
  • overwrite: Boolean value specifying if values should be overwritten if a block document with the specified name already exists.
  • client: The client to use to save the block document. If not provided, the default client will be injected. This is ignored when called from a synchronous context.
Returns:
  • The ID of the saved block document.

ser_model

validate_block_type_slug

Validates that the block_type_slug in the input values matches the expected block type slug for the class. This helps pydantic to correctly discriminate between different Block subclasses when validating Union types of Blocks.

JobRun

Represents a job run in an external system. Allows waiting for the job run’s completion and fetching its results. Methods:

fetch_result

Retrieve the results of the job run and return them.

logger

Returns a logger based on whether the JobRun is called from within a flow or task run context. If a run context is present, the logger property returns a run logger. Else, it returns a default logger labeled with the class’s name. Returns:
  • The run logger or a default logger with the class’s name.

wait_for_completion

Wait for the job run to complete.

JobBlock

Block that represents an entity in an external service that can trigger a long running execution. Methods:

adelete

Asynchronously deletes the block document with the specified name. Args:
  • name: The name of the block document to delete.
  • client: The client to use to delete the block document. If not provided, the default client will be injected.

aload

Retrieves data from the block document with the given name for the block type that corresponds with the current class and returns an instantiated version of the current class with the data stored in the block document. If a block document for a given block type is saved with a different schema than the current class calling aload, a warning will be raised. If the current class schema is a subset of the block document schema, the block can be loaded as normal using the default validate = True. If the current class schema is a superset of the block document schema, aload must be called with validate set to False to prevent a validation error. In this case, the block attributes will default to None and must be set manually and saved to a new block document before the block can be used as expected. Args:
  • name: The name or slug of the block document. A block document slug is a string with the format <block_type_slug>/<block_document_name>
  • validate: If False, the block document will be loaded without Pydantic validating the block schema. This is useful if the block schema has changed client-side since the block document referred to by name was saved.
  • client: The client to use to load the block document. If not provided, the default client will be injected.
Raises:
  • ValueError: If the requested block document is not found.
Returns:
  • An instance of the current class hydrated with the data stored in the
  • block document with the specified name.
Examples: Load from a Block subclass with a block document name:
Load from Block with a block document slug:
Migrate a block document to a new schema:

aload_from_ref

Asynchronously retrieves data from the block document by given reference for the block type that corresponds with the current class and returns an instantiated version of the current class with the data stored in the block document. Provided reference can be a block document ID, or a reference data in dictionary format. Supported dictionary reference formats are:
  • {"block_document_id": <block_document_id>}
  • {"block_document_slug": <block_document_slug>}
If a block document for a given block type is saved with a different schema than the current class calling aload_from_ref, a warning will be raised. If the current class schema is a subset of the block document schema, the block can be loaded as normal using the default validate = True. If the current class schema is a superset of the block document schema, aload_from_ref must be called with validate set to False to prevent a validation error. In this case, the block attributes will default to None and must be set manually and saved to a new block document before the block can be used as expected. Args:
  • ref: The reference to the block document. This can be a block document ID, or one of supported dictionary reference formats.
  • validate: If False, the block document will be loaded without Pydantic validating the block schema. This is useful if the block schema has changed client-side since the block document referred to by name was saved.
  • client: The client to use to load the block document. If not provided, the default client will be injected.
Raises:
  • ValueError: If invalid reference format is provided.
  • ValueError: If the requested block document is not found.
Returns:
  • An instance of the current class hydrated with the data stored in the
  • block document with the specified name.

annotation_refers_to_block_class

aregister_type_and_schema

Asynchronously makes block available for configuration with current Prefect API. Recursively registers all nested blocks. Registration is idempotent. Args:
  • client: Optional client to use for registering type and schema with the Prefect API. A new client will be created and used if one is not provided.

asave

Asynchronously saves the values of a block as a block document. Args:
  • name: User specified name to give saved block document which can later be used to load the block document.
  • overwrite: Boolean value specifying if values should be overwritten if a block document with the specified name already exists.
  • client: The client to use to save the block document. If not provided, the default client will be injected.
Returns:
  • The ID of the saved block document.

block_initialization

delete

Deletes the block document with the specified name. This function will dispatch to adelete when called from an async context. Args:
  • name: The name of the block document to delete.
  • client: The client to use to delete the block document. If not provided, the default client will be injected. This is ignored when called from a synchronous context.

get_block_capabilities

Returns the block capabilities for this Block. Recursively collects all block capabilities of all parent classes into a single frozenset.

get_block_class_from_key

Retrieve the block class implementation given a key.

get_block_class_from_schema

Retrieve the block class implementation given a schema.

get_block_placeholder

Returns the block placeholder for the current block which can be used for templating. Returns:
  • The block placeholder for the current block in the format prefect.blocks.{block_type_name}.{block_document_name}
Raises:
  • BlockNotSavedError: Raised if the block has not been saved.
If a block has not been saved, the return value will be None.

get_block_schema_version

get_block_type_name

get_block_type_slug

get_code_example

Returns the code example for the given block. Attempts to parse code example from the class docstring if an override is not provided.

get_description

Returns the description for the current block. Attempts to parse description from class docstring if an override is not defined.

is_block_class

load

Retrieves data from the block document with the given name for the block type that corresponds with the current class and returns an instantiated version of the current class with the data stored in the block document. If a block document for a given block type is saved with a different schema than the current class calling load, a warning will be raised. If the current class schema is a subset of the block document schema, the block can be loaded as normal using the default validate = True. If the current class schema is a superset of the block document schema, load must be called with validate set to False to prevent a validation error. In this case, the block attributes will default to None and must be set manually and saved to a new block document before the block can be used as expected. Args:
  • name: The name or slug of the block document. A block document slug is a string with the format <block_type_slug>/<block_document_name>
  • validate: If False, the block document will be loaded without Pydantic validating the block schema. This is useful if the block schema has changed client-side since the block document referred to by name was saved.
  • client: The client to use to load the block document. If not provided, the default client will be injected.
Raises:
  • ValueError: If the requested block document is not found.
Returns:
  • An instance of the current class hydrated with the data stored in the
  • block document with the specified name.
Examples: Load from a Block subclass with a block document name:
Load from Block with a block document slug:
Migrate a block document to a new schema:

load_from_ref

Retrieves data from the block document by given reference for the block type that corresponds with the current class and returns an instantiated version of the current class with the data stored in the block document. This function will dispatch to aload_from_ref when called from an async context. Provided reference can be a block document ID, or a reference data in dictionary format. Supported dictionary reference formats are:
  • {"block_document_id": <block_document_id>}
  • {"block_document_slug": <block_document_slug>}
If a block document for a given block type is saved with a different schema than the current class calling load_from_ref, a warning will be raised. If the current class schema is a subset of the block document schema, the block can be loaded as normal using the default validate = True. If the current class schema is a superset of the block document schema, load_from_ref must be called with validate set to False to prevent a validation error. In this case, the block attributes will default to None and must be set manually and saved to a new block document before the block can be used as expected. Args:
  • ref: The reference to the block document. This can be a block document ID, or one of supported dictionary reference formats.
  • validate: If False, the block document will be loaded without Pydantic validating the block schema. This is useful if the block schema has changed client-side since the block document referred to by name was saved.
  • client: The client to use to load the block document. If not provided, the default client will be injected. This is ignored when called from a synchronous context.
Raises:
  • ValueError: If invalid reference format is provided.
  • ValueError: If the requested block document is not found.
Returns:
  • An instance of the current class hydrated with the data stored in the
  • block document with the specified name.

logger

Returns a logger based on whether the JobBlock is called from within a flow or task run context. If a run context is present, the logger property returns a run logger. Else, it returns a default logger labeled with the class’s name. Returns:
  • The run logger or a default logger with the class’s name.

model_dump

model_json_schema

TODO: stop overriding this method - use GenerateSchema in ConfigDict instead?

model_validate

register_type_and_schema

Makes block available for configuration with current Prefect API. Recursively registers all nested blocks. Registration is idempotent. This function will dispatch to aregister_type_and_schema when called from an async context. Args:
  • client: Optional client to use for registering type and schema with the Prefect API. A new client will be created and used if one is not provided. This is ignored when called from a synchronous context.

save

Saves the values of a block as a block document. This function will dispatch to asave when called from an async context. Args:
  • name: User specified name to give saved block document which can later be used to load the block document.
  • overwrite: Boolean value specifying if values should be overwritten if a block document with the specified name already exists.
  • client: The client to use to save the block document. If not provided, the default client will be injected. This is ignored when called from a synchronous context.
Returns:
  • The ID of the saved block document.

ser_model

trigger

Triggers a job run in an external service and returns a JobRun object to track the execution of the run.

validate_block_type_slug

Validates that the block_type_slug in the input values matches the expected block type slug for the class. This helps pydantic to correctly discriminate between different Block subclasses when validating Union types of Blocks.

DatabaseBlock

An abstract block type that represents a database and provides an interface for interacting with it. Blocks that implement this interface have the option to accept credentials directly via attributes or via a nested CredentialsBlock. Use of a nested credentials block is recommended unless credentials are tightly coupled to database connection configuration. Implementing either sync or async context management on DatabaseBlock implementations is recommended. Methods:

adelete

Asynchronously deletes the block document with the specified name. Args:
  • name: The name of the block document to delete.
  • client: The client to use to delete the block document. If not provided, the default client will be injected.

aload

Retrieves data from the block document with the given name for the block type that corresponds with the current class and returns an instantiated version of the current class with the data stored in the block document. If a block document for a given block type is saved with a different schema than the current class calling aload, a warning will be raised. If the current class schema is a subset of the block document schema, the block can be loaded as normal using the default validate = True. If the current class schema is a superset of the block document schema, aload must be called with validate set to False to prevent a validation error. In this case, the block attributes will default to None and must be set manually and saved to a new block document before the block can be used as expected. Args:
  • name: The name or slug of the block document. A block document slug is a string with the format <block_type_slug>/<block_document_name>
  • validate: If False, the block document will be loaded without Pydantic validating the block schema. This is useful if the block schema has changed client-side since the block document referred to by name was saved.
  • client: The client to use to load the block document. If not provided, the default client will be injected.
Raises:
  • ValueError: If the requested block document is not found.
Returns:
  • An instance of the current class hydrated with the data stored in the
  • block document with the specified name.
Examples: Load from a Block subclass with a block document name:
Load from Block with a block document slug:
Migrate a block document to a new schema:

aload_from_ref

Asynchronously retrieves data from the block document by given reference for the block type that corresponds with the current class and returns an instantiated version of the current class with the data stored in the block document. Provided reference can be a block document ID, or a reference data in dictionary format. Supported dictionary reference formats are:
  • {"block_document_id": <block_document_id>}
  • {"block_document_slug": <block_document_slug>}
If a block document for a given block type is saved with a different schema than the current class calling aload_from_ref, a warning will be raised. If the current class schema is a subset of the block document schema, the block can be loaded as normal using the default validate = True. If the current class schema is a superset of the block document schema, aload_from_ref must be called with validate set to False to prevent a validation error. In this case, the block attributes will default to None and must be set manually and saved to a new block document before the block can be used as expected. Args:
  • ref: The reference to the block document. This can be a block document ID, or one of supported dictionary reference formats.
  • validate: If False, the block document will be loaded without Pydantic validating the block schema. This is useful if the block schema has changed client-side since the block document referred to by name was saved.
  • client: The client to use to load the block document. If not provided, the default client will be injected.
Raises:
  • ValueError: If invalid reference format is provided.
  • ValueError: If the requested block document is not found.
Returns:
  • An instance of the current class hydrated with the data stored in the
  • block document with the specified name.

annotation_refers_to_block_class

aregister_type_and_schema

Asynchronously makes block available for configuration with current Prefect API. Recursively registers all nested blocks. Registration is idempotent. Args:
  • client: Optional client to use for registering type and schema with the Prefect API. A new client will be created and used if one is not provided.

asave

Asynchronously saves the values of a block as a block document. Args:
  • name: User specified name to give saved block document which can later be used to load the block document.
  • overwrite: Boolean value specifying if values should be overwritten if a block document with the specified name already exists.
  • client: The client to use to save the block document. If not provided, the default client will be injected.
Returns:
  • The ID of the saved block document.

block_initialization

delete

Deletes the block document with the specified name. This function will dispatch to adelete when called from an async context. Args:
  • name: The name of the block document to delete.
  • client: The client to use to delete the block document. If not provided, the default client will be injected. This is ignored when called from a synchronous context.

execute

Executes an operation on the database. This method is intended to be used for operations that do not return data, such as INSERT, UPDATE, or DELETE. Args:
  • operation: The SQL query or other operation to be executed.
  • parameters: The parameters for the operation.
  • **execution_kwargs: Additional keyword arguments to pass to execute.

execute_many

Executes multiple operations on the database. This method is intended to be used for operations that do not return data, such as INSERT, UPDATE, or DELETE. Args:
  • operation: The SQL query or other operation to be executed.
  • seq_of_parameters: The sequence of parameters for the operation.
  • **execution_kwargs: Additional keyword arguments to pass to execute.

fetch_all

Fetch all results from the database. Args:
  • operation: The SQL query or other operation to be executed.
  • parameters: The parameters for the operation.
  • **execution_kwargs: Additional keyword arguments to pass to execute.
Returns:
  • A list of tuples containing the data returned by the database, where each row is a tuple and each column is a value in the tuple.

fetch_many

Fetch a limited number of results from the database. Args:
  • operation: The SQL query or other operation to be executed.
  • parameters: The parameters for the operation.
  • size: The number of results to return.
  • **execution_kwargs: Additional keyword arguments to pass to execute.
Returns:
  • A list of tuples containing the data returned by the database, where each row is a tuple and each column is a value in the tuple.

fetch_one

Fetch a single result from the database. Args:
  • operation: The SQL query or other operation to be executed.
  • parameters: The parameters for the operation.
  • **execution_kwargs: Additional keyword arguments to pass to execute.
Returns:
  • A list of tuples containing the data returned by the database, where each row is a tuple and each column is a value in the tuple.

get_block_capabilities

Returns the block capabilities for this Block. Recursively collects all block capabilities of all parent classes into a single frozenset.

get_block_class_from_key

Retrieve the block class implementation given a key.

get_block_class_from_schema

Retrieve the block class implementation given a schema.

get_block_placeholder

Returns the block placeholder for the current block which can be used for templating. Returns:
  • The block placeholder for the current block in the format prefect.blocks.{block_type_name}.{block_document_name}
Raises:
  • BlockNotSavedError: Raised if the block has not been saved.
If a block has not been saved, the return value will be None.

get_block_schema_version

get_block_type_name

get_block_type_slug

get_code_example

Returns the code example for the given block. Attempts to parse code example from the class docstring if an override is not provided.

get_description

Returns the description for the current block. Attempts to parse description from class docstring if an override is not defined.

is_block_class

load

Retrieves data from the block document with the given name for the block type that corresponds with the current class and returns an instantiated version of the current class with the data stored in the block document. If a block document for a given block type is saved with a different schema than the current class calling load, a warning will be raised. If the current class schema is a subset of the block document schema, the block can be loaded as normal using the default validate = True. If the current class schema is a superset of the block document schema, load must be called with validate set to False to prevent a validation error. In this case, the block attributes will default to None and must be set manually and saved to a new block document before the block can be used as expected. Args:
  • name: The name or slug of the block document. A block document slug is a string with the format <block_type_slug>/<block_document_name>
  • validate: If False, the block document will be loaded without Pydantic validating the block schema. This is useful if the block schema has changed client-side since the block document referred to by name was saved.
  • client: The client to use to load the block document. If not provided, the default client will be injected.
Raises:
  • ValueError: If the requested block document is not found.
Returns:
  • An instance of the current class hydrated with the data stored in the
  • block document with the specified name.
Examples: Load from a Block subclass with a block document name:
Load from Block with a block document slug:
Migrate a block document to a new schema:

load_from_ref

Retrieves data from the block document by given reference for the block type that corresponds with the current class and returns an instantiated version of the current class with the data stored in the block document. This function will dispatch to aload_from_ref when called from an async context. Provided reference can be a block document ID, or a reference data in dictionary format. Supported dictionary reference formats are:
  • {"block_document_id": <block_document_id>}
  • {"block_document_slug": <block_document_slug>}
If a block document for a given block type is saved with a different schema than the current class calling load_from_ref, a warning will be raised. If the current class schema is a subset of the block document schema, the block can be loaded as normal using the default validate = True. If the current class schema is a superset of the block document schema, load_from_ref must be called with validate set to False to prevent a validation error. In this case, the block attributes will default to None and must be set manually and saved to a new block document before the block can be used as expected. Args:
  • ref: The reference to the block document. This can be a block document ID, or one of supported dictionary reference formats.
  • validate: If False, the block document will be loaded without Pydantic validating the block schema. This is useful if the block schema has changed client-side since the block document referred to by name was saved.
  • client: The client to use to load the block document. If not provided, the default client will be injected. This is ignored when called from a synchronous context.
Raises:
  • ValueError: If invalid reference format is provided.
  • ValueError: If the requested block document is not found.
Returns:
  • An instance of the current class hydrated with the data stored in the
  • block document with the specified name.

logger

Returns a logger based on whether the DatabaseBlock is called from within a flow or task run context. If a run context is present, the logger property returns a run logger. Else, it returns a default logger labeled with the class’s name. Returns:
  • The run logger or a default logger with the class’s name.

model_dump

model_json_schema

TODO: stop overriding this method - use GenerateSchema in ConfigDict instead?

model_validate

register_type_and_schema

Makes block available for configuration with current Prefect API. Recursively registers all nested blocks. Registration is idempotent. This function will dispatch to aregister_type_and_schema when called from an async context. Args:
  • client: Optional client to use for registering type and schema with the Prefect API. A new client will be created and used if one is not provided. This is ignored when called from a synchronous context.

save

Saves the values of a block as a block document. This function will dispatch to asave when called from an async context. Args:
  • name: User specified name to give saved block document which can later be used to load the block document.
  • overwrite: Boolean value specifying if values should be overwritten if a block document with the specified name already exists.
  • client: The client to use to save the block document. If not provided, the default client will be injected. This is ignored when called from a synchronous context.
Returns:
  • The ID of the saved block document.

ser_model

validate_block_type_slug

Validates that the block_type_slug in the input values matches the expected block type slug for the class. This helps pydantic to correctly discriminate between different Block subclasses when validating Union types of Blocks.

ObjectStorageBlock

Block that represents a resource in an external service that can store objects. Methods:

adelete

Asynchronously deletes the block document with the specified name. Args:
  • name: The name of the block document to delete.
  • client: The client to use to delete the block document. If not provided, the default client will be injected.

aload

Retrieves data from the block document with the given name for the block type that corresponds with the current class and returns an instantiated version of the current class with the data stored in the block document. If a block document for a given block type is saved with a different schema than the current class calling aload, a warning will be raised. If the current class schema is a subset of the block document schema, the block can be loaded as normal using the default validate = True. If the current class schema is a superset of the block document schema, aload must be called with validate set to False to prevent a validation error. In this case, the block attributes will default to None and must be set manually and saved to a new block document before the block can be used as expected. Args:
  • name: The name or slug of the block document. A block document slug is a string with the format <block_type_slug>/<block_document_name>
  • validate: If False, the block document will be loaded without Pydantic validating the block schema. This is useful if the block schema has changed client-side since the block document referred to by name was saved.
  • client: The client to use to load the block document. If not provided, the default client will be injected.
Raises:
  • ValueError: If the requested block document is not found.
Returns:
  • An instance of the current class hydrated with the data stored in the
  • block document with the specified name.
Examples: Load from a Block subclass with a block document name:
Load from Block with a block document slug:
Migrate a block document to a new schema:

aload_from_ref

Asynchronously retrieves data from the block document by given reference for the block type that corresponds with the current class and returns an instantiated version of the current class with the data stored in the block document. Provided reference can be a block document ID, or a reference data in dictionary format. Supported dictionary reference formats are:
  • {"block_document_id": <block_document_id>}
  • {"block_document_slug": <block_document_slug>}
If a block document for a given block type is saved with a different schema than the current class calling aload_from_ref, a warning will be raised. If the current class schema is a subset of the block document schema, the block can be loaded as normal using the default validate = True. If the current class schema is a superset of the block document schema, aload_from_ref must be called with validate set to False to prevent a validation error. In this case, the block attributes will default to None and must be set manually and saved to a new block document before the block can be used as expected. Args:
  • ref: The reference to the block document. This can be a block document ID, or one of supported dictionary reference formats.
  • validate: If False, the block document will be loaded without Pydantic validating the block schema. This is useful if the block schema has changed client-side since the block document referred to by name was saved.
  • client: The client to use to load the block document. If not provided, the default client will be injected.
Raises:
  • ValueError: If invalid reference format is provided.
  • ValueError: If the requested block document is not found.
Returns:
  • An instance of the current class hydrated with the data stored in the
  • block document with the specified name.

annotation_refers_to_block_class

aregister_type_and_schema

Asynchronously makes block available for configuration with current Prefect API. Recursively registers all nested blocks. Registration is idempotent. Args:
  • client: Optional client to use for registering type and schema with the Prefect API. A new client will be created and used if one is not provided.

asave

Asynchronously saves the values of a block as a block document. Args:
  • name: User specified name to give saved block document which can later be used to load the block document.
  • overwrite: Boolean value specifying if values should be overwritten if a block document with the specified name already exists.
  • client: The client to use to save the block document. If not provided, the default client will be injected.
Returns:
  • The ID of the saved block document.

block_initialization

delete

Deletes the block document with the specified name. This function will dispatch to adelete when called from an async context. Args:
  • name: The name of the block document to delete.
  • client: The client to use to delete the block document. If not provided, the default client will be injected. This is ignored when called from a synchronous context.

download_folder_to_path

Downloads a folder from the object storage service to a path. Args:
  • from_folder: The path to the folder to download from.
  • to_folder: The path to download the folder to.
  • **download_kwargs: Additional keyword arguments to pass to download.
Returns:
  • The path that the folder was downloaded to.

download_object_to_file_object

Downloads an object from the object storage service to a file-like object, which can be a BytesIO object or a BufferedWriter. Args:
  • from_path: The path to download from.
  • to_file_object: The file-like object to download to.
  • **download_kwargs: Additional keyword arguments to pass to download.
Returns:
  • The file-like object that the object was downloaded to.

download_object_to_path

Downloads an object from the object storage service to a path. Args:
  • from_path: The path to download from.
  • to_path: The path to download to.
  • **download_kwargs: Additional keyword arguments to pass to download.
Returns:
  • The path that the object was downloaded to.

get_block_capabilities

Returns the block capabilities for this Block. Recursively collects all block capabilities of all parent classes into a single frozenset.

get_block_class_from_key

Retrieve the block class implementation given a key.

get_block_class_from_schema

Retrieve the block class implementation given a schema.

get_block_placeholder

Returns the block placeholder for the current block which can be used for templating. Returns:
  • The block placeholder for the current block in the format prefect.blocks.{block_type_name}.{block_document_name}
Raises:
  • BlockNotSavedError: Raised if the block has not been saved.
If a block has not been saved, the return value will be None.

get_block_schema_version

get_block_type_name

get_block_type_slug

get_code_example

Returns the code example for the given block. Attempts to parse code example from the class docstring if an override is not provided.

get_description

Returns the description for the current block. Attempts to parse description from class docstring if an override is not defined.

is_block_class

load

Retrieves data from the block document with the given name for the block type that corresponds with the current class and returns an instantiated version of the current class with the data stored in the block document. If a block document for a given block type is saved with a different schema than the current class calling load, a warning will be raised. If the current class schema is a subset of the block document schema, the block can be loaded as normal using the default validate = True. If the current class schema is a superset of the block document schema, load must be called with validate set to False to prevent a validation error. In this case, the block attributes will default to None and must be set manually and saved to a new block document before the block can be used as expected. Args:
  • name: The name or slug of the block document. A block document slug is a string with the format <block_type_slug>/<block_document_name>
  • validate: If False, the block document will be loaded without Pydantic validating the block schema. This is useful if the block schema has changed client-side since the block document referred to by name was saved.
  • client: The client to use to load the block document. If not provided, the default client will be injected.
Raises:
  • ValueError: If the requested block document is not found.
Returns:
  • An instance of the current class hydrated with the data stored in the
  • block document with the specified name.
Examples: Load from a Block subclass with a block document name:
Load from Block with a block document slug:
Migrate a block document to a new schema:

load_from_ref

Retrieves data from the block document by given reference for the block type that corresponds with the current class and returns an instantiated version of the current class with the data stored in the block document. This function will dispatch to aload_from_ref when called from an async context. Provided reference can be a block document ID, or a reference data in dictionary format. Supported dictionary reference formats are:
  • {"block_document_id": <block_document_id>}
  • {"block_document_slug": <block_document_slug>}
If a block document for a given block type is saved with a different schema than the current class calling load_from_ref, a warning will be raised. If the current class schema is a subset of the block document schema, the block can be loaded as normal using the default validate = True. If the current class schema is a superset of the block document schema, load_from_ref must be called with validate set to False to prevent a validation error. In this case, the block attributes will default to None and must be set manually and saved to a new block document before the block can be used as expected. Args:
  • ref: The reference to the block document. This can be a block document ID, or one of supported dictionary reference formats.
  • validate: If False, the block document will be loaded without Pydantic validating the block schema. This is useful if the block schema has changed client-side since the block document referred to by name was saved.
  • client: The client to use to load the block document. If not provided, the default client will be injected. This is ignored when called from a synchronous context.
Raises:
  • ValueError: If invalid reference format is provided.
  • ValueError: If the requested block document is not found.
Returns:
  • An instance of the current class hydrated with the data stored in the
  • block document with the specified name.

logger

Returns a logger based on whether the ObjectStorageBlock is called from within a flow or task run context. If a run context is present, the logger property returns a run logger. Else, it returns a default logger labeled with the class’s name. Returns:
  • The run logger or a default logger with the class’s name.

model_dump

model_json_schema

TODO: stop overriding this method - use GenerateSchema in ConfigDict instead?

model_validate

register_type_and_schema

Makes block available for configuration with current Prefect API. Recursively registers all nested blocks. Registration is idempotent. This function will dispatch to aregister_type_and_schema when called from an async context. Args:
  • client: Optional client to use for registering type and schema with the Prefect API. A new client will be created and used if one is not provided. This is ignored when called from a synchronous context.

save

Saves the values of a block as a block document. This function will dispatch to asave when called from an async context. Args:
  • name: User specified name to give saved block document which can later be used to load the block document.
  • overwrite: Boolean value specifying if values should be overwritten if a block document with the specified name already exists.
  • client: The client to use to save the block document. If not provided, the default client will be injected. This is ignored when called from a synchronous context.
Returns:
  • The ID of the saved block document.

ser_model

upload_from_file_object

Uploads an object to the object storage service from a file-like object, which can be a BytesIO object or a BufferedReader. Args:
  • from_file_object: The file-like object to upload from.
  • to_path: The path to upload the object to.
  • **upload_kwargs: Additional keyword arguments to pass to upload.
Returns:
  • The path that the object was uploaded to.

upload_from_folder

Uploads a folder to the object storage service from a path. Args:
  • from_folder: The path to the folder to upload from.
  • to_folder: The path to upload the folder to.
  • **upload_kwargs: Additional keyword arguments to pass to upload.
Returns:
  • The path that the folder was uploaded to.

upload_from_path

Uploads an object from a path to the object storage service. Args:
  • from_path: The path to the file to upload from.
  • to_path: The path to upload the file to.
  • **upload_kwargs: Additional keyword arguments to pass to upload.
Returns:
  • The path that the object was uploaded to.

validate_block_type_slug

Validates that the block_type_slug in the input values matches the expected block type slug for the class. This helps pydantic to correctly discriminate between different Block subclasses when validating Union types of Blocks.

SecretBlock

Block that represents a resource that can store and retrieve secrets. Methods:

adelete

Asynchronously deletes the block document with the specified name. Args:
  • name: The name of the block document to delete.
  • client: The client to use to delete the block document. If not provided, the default client will be injected.

aload

Retrieves data from the block document with the given name for the block type that corresponds with the current class and returns an instantiated version of the current class with the data stored in the block document. If a block document for a given block type is saved with a different schema than the current class calling aload, a warning will be raised. If the current class schema is a subset of the block document schema, the block can be loaded as normal using the default validate = True. If the current class schema is a superset of the block document schema, aload must be called with validate set to False to prevent a validation error. In this case, the block attributes will default to None and must be set manually and saved to a new block document before the block can be used as expected. Args:
  • name: The name or slug of the block document. A block document slug is a string with the format <block_type_slug>/<block_document_name>
  • validate: If False, the block document will be loaded without Pydantic validating the block schema. This is useful if the block schema has changed client-side since the block document referred to by name was saved.
  • client: The client to use to load the block document. If not provided, the default client will be injected.
Raises:
  • ValueError: If the requested block document is not found.
Returns:
  • An instance of the current class hydrated with the data stored in the
  • block document with the specified name.
Examples: Load from a Block subclass with a block document name:
Load from Block with a block document slug:
Migrate a block document to a new schema:

aload_from_ref

Asynchronously retrieves data from the block document by given reference for the block type that corresponds with the current class and returns an instantiated version of the current class with the data stored in the block document. Provided reference can be a block document ID, or a reference data in dictionary format. Supported dictionary reference formats are:
  • {"block_document_id": <block_document_id>}
  • {"block_document_slug": <block_document_slug>}
If a block document for a given block type is saved with a different schema than the current class calling aload_from_ref, a warning will be raised. If the current class schema is a subset of the block document schema, the block can be loaded as normal using the default validate = True. If the current class schema is a superset of the block document schema, aload_from_ref must be called with validate set to False to prevent a validation error. In this case, the block attributes will default to None and must be set manually and saved to a new block document before the block can be used as expected. Args:
  • ref: The reference to the block document. This can be a block document ID, or one of supported dictionary reference formats.
  • validate: If False, the block document will be loaded without Pydantic validating the block schema. This is useful if the block schema has changed client-side since the block document referred to by name was saved.
  • client: The client to use to load the block document. If not provided, the default client will be injected.
Raises:
  • ValueError: If invalid reference format is provided.
  • ValueError: If the requested block document is not found.
Returns:
  • An instance of the current class hydrated with the data stored in the
  • block document with the specified name.

annotation_refers_to_block_class

aregister_type_and_schema

Asynchronously makes block available for configuration with current Prefect API. Recursively registers all nested blocks. Registration is idempotent. Args:
  • client: Optional client to use for registering type and schema with the Prefect API. A new client will be created and used if one is not provided.

asave

Asynchronously saves the values of a block as a block document. Args:
  • name: User specified name to give saved block document which can later be used to load the block document.
  • overwrite: Boolean value specifying if values should be overwritten if a block document with the specified name already exists.
  • client: The client to use to save the block document. If not provided, the default client will be injected.
Returns:
  • The ID of the saved block document.

block_initialization

delete

Deletes the block document with the specified name. This function will dispatch to adelete when called from an async context. Args:
  • name: The name of the block document to delete.
  • client: The client to use to delete the block document. If not provided, the default client will be injected. This is ignored when called from a synchronous context.

get_block_capabilities

Returns the block capabilities for this Block. Recursively collects all block capabilities of all parent classes into a single frozenset.

get_block_class_from_key

Retrieve the block class implementation given a key.

get_block_class_from_schema

Retrieve the block class implementation given a schema.

get_block_placeholder

Returns the block placeholder for the current block which can be used for templating. Returns:
  • The block placeholder for the current block in the format prefect.blocks.{block_type_name}.{block_document_name}
Raises:
  • BlockNotSavedError: Raised if the block has not been saved.
If a block has not been saved, the return value will be None.

get_block_schema_version

get_block_type_name

get_block_type_slug

get_code_example

Returns the code example for the given block. Attempts to parse code example from the class docstring if an override is not provided.

get_description

Returns the description for the current block. Attempts to parse description from class docstring if an override is not defined.

is_block_class

load

Retrieves data from the block document with the given name for the block type that corresponds with the current class and returns an instantiated version of the current class with the data stored in the block document. If a block document for a given block type is saved with a different schema than the current class calling load, a warning will be raised. If the current class schema is a subset of the block document schema, the block can be loaded as normal using the default validate = True. If the current class schema is a superset of the block document schema, load must be called with validate set to False to prevent a validation error. In this case, the block attributes will default to None and must be set manually and saved to a new block document before the block can be used as expected. Args:
  • name: The name or slug of the block document. A block document slug is a string with the format <block_type_slug>/<block_document_name>
  • validate: If False, the block document will be loaded without Pydantic validating the block schema. This is useful if the block schema has changed client-side since the block document referred to by name was saved.
  • client: The client to use to load the block document. If not provided, the default client will be injected.
Raises:
  • ValueError: If the requested block document is not found.
Returns:
  • An instance of the current class hydrated with the data stored in the
  • block document with the specified name.
Examples: Load from a Block subclass with a block document name:
Load from Block with a block document slug:
Migrate a block document to a new schema:

load_from_ref

Retrieves data from the block document by given reference for the block type that corresponds with the current class and returns an instantiated version of the current class with the data stored in the block document. This function will dispatch to aload_from_ref when called from an async context. Provided reference can be a block document ID, or a reference data in dictionary format. Supported dictionary reference formats are:
  • {"block_document_id": <block_document_id>}
  • {"block_document_slug": <block_document_slug>}
If a block document for a given block type is saved with a different schema than the current class calling load_from_ref, a warning will be raised. If the current class schema is a subset of the block document schema, the block can be loaded as normal using the default validate = True. If the current class schema is a superset of the block document schema, load_from_ref must be called with validate set to False to prevent a validation error. In this case, the block attributes will default to None and must be set manually and saved to a new block document before the block can be used as expected. Args:
  • ref: The reference to the block document. This can be a block document ID, or one of supported dictionary reference formats.
  • validate: If False, the block document will be loaded without Pydantic validating the block schema. This is useful if the block schema has changed client-side since the block document referred to by name was saved.
  • client: The client to use to load the block document. If not provided, the default client will be injected. This is ignored when called from a synchronous context.
Raises:
  • ValueError: If invalid reference format is provided.
  • ValueError: If the requested block document is not found.
Returns:
  • An instance of the current class hydrated with the data stored in the
  • block document with the specified name.

logger

Returns a logger based on whether the SecretBlock is called from within a flow or task run context. If a run context is present, the logger property returns a run logger. Else, it returns a default logger labeled with the class’s name. Returns:
  • The run logger or a default logger with the class’s name.

model_dump

model_json_schema

TODO: stop overriding this method - use GenerateSchema in ConfigDict instead?

model_validate

read_secret

Reads the configured secret from the secret storage service. Returns:
  • The secret data.

register_type_and_schema

Makes block available for configuration with current Prefect API. Recursively registers all nested blocks. Registration is idempotent. This function will dispatch to aregister_type_and_schema when called from an async context. Args:
  • client: Optional client to use for registering type and schema with the Prefect API. A new client will be created and used if one is not provided. This is ignored when called from a synchronous context.

save

Saves the values of a block as a block document. This function will dispatch to asave when called from an async context. Args:
  • name: User specified name to give saved block document which can later be used to load the block document.
  • overwrite: Boolean value specifying if values should be overwritten if a block document with the specified name already exists.
  • client: The client to use to save the block document. If not provided, the default client will be injected. This is ignored when called from a synchronous context.
Returns:
  • The ID of the saved block document.

ser_model

validate_block_type_slug

Validates that the block_type_slug in the input values matches the expected block type slug for the class. This helps pydantic to correctly discriminate between different Block subclasses when validating Union types of Blocks.

write_secret

Writes secret data to the configured secret in the secret storage service. Args:
  • secret_data: The secret data to write.
Returns:
  • The key of the secret that can be used for retrieval.