---
sidebar:
  hidden: true
title: roboto.domain.actions.action_record
---
## Module Contents

### Accessibility

```python
class roboto.domain.actions.action_record.Accessibility
```

`from roboto import Accessibility`

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/domain/actions/action_record.py#L24-L38)

Bases: `roboto.compat.StrEnum`

Controls who can query for and invoke an action.

Accessibility levels determine the visibility and usability of actions within the Roboto platform. Actions can be private to an organization or published publicly in the Action Hub.

Future accessibility levels may include: "user" and/or "team".

**Attributes**

- **Accessibility.ActionHub** = `'action_hub'`: All users of Roboto can query for and invoke the action.
- **Accessibility.Organization** = `'organization'`: All members of the organization owning the Action can query for and invoke the action.

### ActionParameter

```python
class roboto.domain.actions.action_record.ActionParameter(/, **data: Any)
```

`from roboto import ActionParameter`

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/domain/actions/action_record.py#L41-L86)

Bases: `pydantic.BaseModel`

A parameter that can be provided to an Action at invocation time.

Action parameters allow customization of action behavior without modifying the action itself. Parameters can be required or optional, have default values, and include descriptions for documentation.

Parameters are validated when an action is invoked, ensuring that required parameters are provided and that values conform to expected types.

**Parameters**

- **data** (`Any`)

**Attributes**

- **ActionParameter.default** (`Any | None`) = `None`: Default value applied for parameter if it is not required and no value is given at invocation.

  Accepts any default value, but coerced to a string.

- **ActionParameter.description** (`str | None`) = `None`: Human-readable description of the parameter.

- **ActionParameter.model_config**: Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

- **ActionParameter.name** (`str`): Name of the parameter.

- **ActionParameter.required** (`bool`) = `False`: Whether this parameter is required at invocation time.

#### ActionParameter.validate_default()

```python
@classmethod
def validate_default(v: Optional[Any]) -> Optional[str]
```

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/domain/actions/action_record.py#L82-L86)

**Parameters**

- **v** (`Optional[Any]`)

**Returns**

- `Optional[str]`

### ActionParameterChangeset

```python
class roboto.domain.actions.action_record.ActionParameterChangeset(/, **data: Any)
```

`from roboto import ActionParameterChangeset`

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/domain/actions/action_record.py#L89-L122)

Bases: `pydantic.BaseModel`

A changeset used to modify Action parameters.

**Parameters**

- **data** (`Any`)

**Attributes**

- **ActionParameterChangeset.put_parameters** (`list[ActionParameter]`) = `None`: Parameters to add or update.
- **ActionParameterChangeset.remove_parameters** (`list[str]`) = `None`: Names of parameters to remove.

#### ActionParameterChangeset.Builder

```python
class Builder
```

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/domain/actions/action_record.py#L98-L119)

##### ActionParameterChangeset.Builder.build()

```python
def build() -> ActionParameterChangeset
```

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/domain/actions/action_record.py#L114-L119)

**Returns**

- `ActionParameterChangeset`

##### ActionParameterChangeset.Builder.put_parameter()

```python
def put_parameter(parameter: ActionParameter) -> ActionParameterChangeset
```

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/domain/actions/action_record.py#L106-L108)

**Parameters**

- **parameter** (`ActionParameter`)

**Returns**

- `ActionParameterChangeset`

##### ActionParameterChangeset.Builder.remove_parameter()

```python
def remove_parameter(parameter_name: str) -> ActionParameterChangeset
```

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/domain/actions/action_record.py#L110-L112)

**Parameters**

- **parameter_name** (`str`)

**Returns**

- `ActionParameterChangeset`

#### ActionParameterChangeset.is_empty()

```python
def is_empty() -> bool
```

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/domain/actions/action_record.py#L121-L122)

**Returns**

- `bool`

### ActionRecord

```python
class roboto.domain.actions.action_record.ActionRecord(**kwargs)
```

`from roboto import ActionRecord`

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/domain/actions/action_record.py#L272-L326)

Bases: `pydantic.BaseModel`

A wire-transmissible representation of an action.

**Attributes**

- **ActionRecord.accessibility** (`Accessibility`)
- **ActionRecord.compute_requirements** (`ComputeRequirements | None`) = `None`
- **ActionRecord.container_parameters** (`ContainerParameters | None`) = `None`
- **ActionRecord.created** (`datetime.datetime`)
- **ActionRecord.created_by** (`str`)
- **ActionRecord.description** (`str | None`) = `None`
- **ActionRecord.digest** (`str | None`) = `None`
- **ActionRecord.inherits** (`ActionReference | None`) = `None`
- **ActionRecord.metadata** (`dict[str, Any]`) = `None`
- **ActionRecord.modified** (`datetime.datetime`)
- **ActionRecord.modified_by** (`str`)
- **ActionRecord.name** (`str`)
- **ActionRecord.org_id** (`str`)
- **ActionRecord.parameters** (`list[ActionParameter]`) = `None`
- **ActionRecord.published** (`datetime.datetime | None`) = `None`
- **ActionRecord.requires_downloaded_inputs** (`bool | None`) = `None`
- **ActionRecord.short_description** (`str | None`) = `None`
- **ActionRecord.tags** (`list[str]`) = `None`
- **ActionRecord.timeout** (`int | None`) = `None`
- **ActionRecord.uri** (`str | None`) = `None`

**Properties**

- **ActionRecord.reference** (`ActionReference`)

#### ActionRecord.compute_digest()

```python
def compute_digest() -> str
```

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/domain/actions/action_record.py#L306-L314)

**Returns**

- `str`

#### ActionRecord.serialize_metadata()

```python
def serialize_metadata(metadata: dict[str, Any]) -> roboto.types.UserMetadata
```

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/domain/actions/action_record.py#L325-L326)

**Parameters**

- **metadata** (`dict[str, Any]`)

**Returns**

- `roboto.types.UserMetadata`

### ActionReference

```python
class roboto.domain.actions.action_record.ActionReference(/, **data: Any)
```

`from roboto import ActionReference`

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/domain/actions/action_record.py#L125-L139)

Bases: `pydantic.BaseModel`

Qualified action reference.

**Parameters**

- **data** (`Any`)

**Attributes**

- **ActionReference.digest** (`str | None`) = `None`
- **ActionReference.name** (`str`)
- **ActionReference.owner** (`str | None`) = `None`

### ComputeRequirements

```python
class roboto.domain.actions.action_record.ComputeRequirements(/, **data: Any)
```

`from roboto import ComputeRequirements`

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/domain/actions/action_record.py#L154-L245)

Bases: `pydantic.BaseModel`

Compute requirements for an action invocation.

**Parameters**

- **data** (`Any`)

**Attributes**

- **ComputeRequirements.gpu** (`Literal[False]`) = `False`: GPU configuration is not yet supported.

- **ComputeRequirements.memory** (`int`) = `None`: Container memory in MiB. Set to 1024 MiB by default.

  The possible values depend on the CPU units chosen, with as little as 512 MiB and as much as 122,800 MiB (120 GiB).

- **ComputeRequirements.model_config**: Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

- **ComputeRequirements.storage** (`int`) = `None`: Container storage in GiB. Set to 21 GiB by default.

  The minimum allowed value is 21 GiB, and the maximum allowed value is 200 GiB (for premium-tier orgs).

- **ComputeRequirements.vCPU** (`int`) = `512`: Container CPU units. Set to 512 by default.

  1024 CPU units equal 1 vCPU.

  Possible values: 256, 512, 1024, 2048, 4096, 8192, 16384.

#### ComputeRequirements.validate_storage_limit()

```python
def validate_storage_limit()
```

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/domain/actions/action_record.py#L188-L191)

#### ComputeRequirements.validate_vcpu_mem_combination()

```python
def validate_vcpu_mem_combination() -> ComputeRequirements
```

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/domain/actions/action_record.py#L194-L223)

**Returns**

- `ComputeRequirements`

### ContainerParameters

```python
class roboto.domain.actions.action_record.ContainerParameters(/, **data: Any)
```

`from roboto import ContainerParameters`

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/domain/actions/action_record.py#L248-L269)

Bases: `pydantic.BaseModel`

Container parameters for an action invocation.

**Parameters**

- **data** (`Any`)

**Attributes**

- **ContainerParameters.command** (`list[str] | None`) = `None`
- **ContainerParameters.entry_point** (`list[str] | None`) = `None`
- **ContainerParameters.env_vars** (`dict[str, str] | None`) = `None`
- **ContainerParameters.model_config**: Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- **ContainerParameters.workdir** (`str | None`) = `None`

### ExecutorContainer

```python
class roboto.domain.actions.action_record.ExecutorContainer(*args, **kwds)
```

`from roboto import ExecutorContainer`

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/domain/actions/action_record.py#L142-L151)

Bases: `enum.Enum`

Type of container running as part of an action invocation

**Attributes**

- **ExecutorContainer.Action** = `'action'`
- **ExecutorContainer.LogRouter** = `'firelens_log_router'`
- **ExecutorContainer.Monitor** = `'monitor'`
- **ExecutorContainer.OutputHandler** = `'output_handler'`
- **ExecutorContainer.Setup** = `'setup'`
