> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/dsx-air/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/dsx-air/_mcp/server.

# air_sdk.endpoints.workers

## Classes

| Name                                                                                               | Description                                           |
| -------------------------------------------------------------------------------------------------- | ----------------------------------------------------- |
| [`Worker`](#air_sdkendpointsworkersworker)                                                         | None                                                  |
| [`WorkerClientCertificate`](#air_sdkendpointsworkersworkerclientcertificate)                       | None                                                  |
| [`PEMCertificateData`](#air_sdkendpointsworkerspemcertificatedata)                                 | Certificate data issued for the worker in PEM format. |
| [`WorkerEndpointAPI`](#air_sdkendpointsworkersworkerendpointapi)                                   | None                                                  |
| [`WorkerClientCertificateEndpointAPI`](#air_sdkendpointsworkersworkerclientcertificateendpointapi) | None                                                  |

## Module Contents

```python
class air_sdk.endpoints.workers.Worker
```

**Bases**: `air_sdk.air_model.AirModel`

```python
id: str = field(...)
```

```python
created: datetime.datetime = field(...)
```

```python
modified: datetime.datetime = field(...)
```

```python
fqdn: str
```

```python
fleet: Fleet = field(...)
```

```python
cpu: int = field(...)
```

```python
memory: int = field(...)
```

```python
storage: int = field(...)
```

```python
available: bool
```

```python
cpu_arch: str
```

```python
ip_address: str
```

```python
registration_token: str | None = field(...)
```

```python
get_model_api() -> type[WorkerEndpointAPI]
```

Returns the respective `AirModelAPI` type for this model.

```python
update(
    *,
    fqdn: str | dataclasses._MISSING_TYPE = MISSING,
    ip_address: str | dataclasses._MISSING_TYPE = MISSING,
    cpu: int | dataclasses._MISSING_TYPE = MISSING,
    memory: int | dataclasses._MISSING_TYPE = MISSING,
    storage: int | dataclasses._MISSING_TYPE = MISSING,
    available: bool | dataclasses._MISSING_TYPE = MISSING
) -> None
```

Update specific fields of the worker.

**Example:**

```python
>>> worker = api.workers.get('123e4567-e89b-12d3-a456-426614174000')
>>> worker.update(cpu=16)
```

```python
issue_certificate() -> PEMCertificateData
```

Issue a new client certificate for the worker.

**Example:**

```python
>>> worker = api.workers.get('123e4567-e89b-12d3-a456-426614174000')
>>> cert_data = worker.issue_certificate()
>>> cert, key = cert_data['certificate'], cert_data['private_key']
```

```python
class air_sdk.endpoints.workers.WorkerClientCertificate
```

**Bases**: `air_sdk.air_model.AirModel`

```python
id: str = field(...)
```

```python
worker: Worker = field(...)
```

```python
worker_fqdn: str
```

```python
usable: bool = field(...)
```

```python
expires: datetime.datetime
```

```python
fingerprint: str = field(...)
```

```python
last_used: datetime.datetime | None = field(...)
```

```python
revoked: bool
```

```python
get_model_api() -> type[WorkerClientCertificateEndpointAPI]
```

Returns the respective `AirModelAPI` type for this model.

```python
revoke() -> None
```

Revoke this client certificate.
Once a certificate is revoked, it may no longer be used!

**Example:**

```python
>>> certificates = api.worker_client_certificates.list()
>>> for certificate in certificates:
...     if certificate.fingerprint == '...':
...         certificate.revoke()
```

```python
class air_sdk.endpoints.workers.PEMCertificateData
```

**Bases**: `typing.TypedDict`

Certificate data issued for the worker in PEM format.

```python
certificate: str
```

```python
private_key: str
```

```python
class air_sdk.endpoints.workers.WorkerEndpointAPI
```

**Bases**: `air_sdk.endpoints.mixins.ListApiMixin[air_sdk.endpoints.workers.Worker]`, `air_sdk.endpoints.mixins.CreateApiMixin[air_sdk.endpoints.workers.Worker]`, `air_sdk.endpoints.mixins.GetApiMixin[air_sdk.endpoints.workers.Worker]`, `air_sdk.endpoints.mixins.PatchApiMixin[air_sdk.endpoints.workers.Worker]`, `air_sdk.endpoints.mixins.DeleteApiMixin`, `air_sdk.air_model.BaseEndpointAPI[air_sdk.endpoints.workers.Worker]`

```python
API_PATH = infra/workers/
```

```python
ISSUE_CERTIFICATE_PATH = issue-certificate
```

```python
model
```

```python
list(
    fqdn: str | dataclasses._MISSING_TYPE = MISSING,
    search: str | dataclasses._MISSING_TYPE = MISSING,
    ordering: str | dataclasses._MISSING_TYPE = MISSING,
    **params: Any
) -> IndexableIterator[Worker]
```

List all workers.

**Example:**

```python
>>> for worker in api.workers.list(ordering='fqdn'):
...     print(worker.fqdn)
```

```python
create(
    *,
    fleet: Fleet | PrimaryKey,
    ip_address: str,
    fqdn: str,
    cpu_arch: str | dataclasses._MISSING_TYPE = MISSING
) -> Worker
```

Create a new worker.

**Example:**

```python
>>> fleet = api.fleets.get('123e4567-e89b-12d3-a456-426614174000')
>>> image = api.images.get('456e89ab-cdef-0123-4567-89abcdef0123')
>>> node = api.nodes.create(simulation=sim, image=image, name='my-node')
```

```python
class air_sdk.endpoints.workers.WorkerClientCertificateEndpointAPI
```

**Bases**: `air_sdk.endpoints.mixins.ListApiMixin[air_sdk.endpoints.workers.WorkerClientCertificate]`, `air_sdk.endpoints.mixins.GetApiMixin[air_sdk.endpoints.workers.WorkerClientCertificate]`, `air_sdk.air_model.BaseEndpointAPI[air_sdk.endpoints.workers.WorkerClientCertificate]`

```python
API_PATH = infra/workers/certificates/
```

```python
REVOKE_PATH = revoke
```

```python
model
```

```python
list(
    worker: Worker | PrimaryKey | dataclasses._MISSING_TYPE = MISSING,
    search: str | dataclasses._MISSING_TYPE = MISSING,
    ordering: str | dataclasses._MISSING_TYPE = MISSING,
    **params: Any
) -> Iterator[WorkerClientCertificate]
```

List all worker certificates.

**Example:**

```python
>>> worker = api.workers.get('123e4567-e89b-12d3-a456-426614174000')
>>> for certificate in api.worker_client_certificates.list(worker=worker):
...     print(certificate.fingerprint)
```