air_sdk.endpoints.user_configs

View as Markdown

Stub file for user_configs endpoint type hints.

Classes

NameDescription
UserConfigUserConfig model representing cloud-init configurations.
UserConfigEndpointAPIAPI interface for managing UserConfig resources.

Module Contents

class air_sdk.endpoints.user_configs.UserConfig

Bases: air_sdk.bc.BaseCompatMixin, air_sdk.air_model.AirModel

UserConfig model representing cloud-init configurations.

The string representation shows: id, name, kind

Constants: KIND_CLOUD_INIT_USER_DATA: Constant for user-data kind KIND_CLOUD_INIT_META_DATA: Constant for meta-data kind

id: str

Unique identifier for the user config

name: str

Human-readable name of the user config

kind: str

Type of cloud-init config (user-data or meta-data)

content: str | None

The cloud-init script content (lazy-loaded)

KIND_CLOUD_INIT_USER_DATA: str
KIND_CLOUD_INIT_META_DATA: str
get_model_api() -> type[UserConfigEndpointAPI]
model_api: UserConfigEndpointAPI
update(
*,
name: str | None = ...,
content: str | None = ...
) -> None

Update specific fields of the user config.

Parameters:

  • name – New name for the user config
  • content – New cloud-init script content

Example:

>>> user_config = api.user_configs.get('config-id')
>>> user_config.update(name='Updated Config')
>>> user_config.update(content='#cloud-config\n...')
refresh() -> None

Refresh the user config from the API, loading all fields including content.

Example:

>>> user_config.refresh()
>>> print(user_config.content)
delete() -> None

Delete this user config from the system.

Example:

>>> user_config.delete()
class air_sdk.endpoints.user_configs.UserConfigEndpointAPI

Bases: air_sdk.bc.UserConfigEndpointAPICompatMixin, air_sdk.air_model.BaseEndpointAPI[air_sdk.endpoints.user_configs.UserConfig]

API interface for managing UserConfig resources.

Provides methods for CRUD operations on user configs (cloud-init configurations).

API_PATH: str
list(
*,
kind: str | None = ...,
limit: int | None = ...,
offset: int | None = ...,
ordering: str | None = ...,
search: str | None = ...

List user configs with optional filtering and pagination.

Parameters:

  • kind – Filter by config kind (user-data or meta-data)
  • limit – Maximum number of results to return
  • offset – Number of results to skip
  • ordering – Field to order results by (prefix with ’-’ for descending)
  • search – Search term to filter results

Yields:

UserConfig instances

Example:

>>> # List all user configs
>>> for config in api.user_configs.list():
... print(config.name)
>>>
>>> # Filter by kind
>>> for config in api.user_configs.list(
... kind=api.user_configs.model.KIND_CLOUD_INIT_USER_DATA
... ):
... print(config.name)
>>>
>>> # Search with pagination
>>> for config in api.user_configs.list(search='my-config', limit=10):
... print(config.name)
get(user_config: UserConfig | PrimaryKey) -> UserConfig

Get a specific user config by ID.

Parameters:

  • user_config – UserConfig instance or ID string

Returns:

UserConfig instance with all fields populated

Example:

>>> config = api.user_configs.get('config-id-here')
>>> print(config.content)
create(
*,
name: str,
kind: str,
content: str | pathlib.Path | io.TextIOBase

Create a new user config.

Parameters:

  • name – Name for the user config
  • kind – Type of config (use KIND_CLOUD_INIT_USER_DATA or KIND_CLOUD_INIT_META_DATA constants)
  • content – Cloud-init script content. Can be provided as: - str: Raw content or file path - Path: Path object to a file - TextIOBase: Open file handle

User configs are automatically associated with your default organization. The ‘organization’ parameter from v1/v2 has been removed in v3.

Returns:

Newly created UserConfig instance

Example:

>>> # String content
>>> config = api.user_configs.create(
... name='my-user-data',
... kind=api.user_configs.model.KIND_CLOUD_INIT_USER_DATA,
... content='#cloud-config\npackages:\n - vim\n',
... )
>>>
>>> # File path
>>> config = api.user_configs.create(
... name='my-user-data',
... kind='cloud-init-user-data',
... content='/path/to/file.txt',
... )
>>>
>>> # Path object
>>> from pathlib import Path
>>> config = api.user_configs.create(
... name='my-user-data',
... kind='cloud-init-user-data',
... content=Path('/path/to/file.txt'),
... )
update(
*,
user_config: UserConfig | PrimaryKey,
name: str | None = ...,
content: str | pathlib.Path | io.TextIOBase | None = ...

Update a user config (patch operation).

Parameters:

  • user_config – UserConfig instance or ID string
  • name – New name for the user config
  • content – New cloud-init script content

Returns:

Updated UserConfig instance

Example:

>>> config = api.user_configs.update(
... user_config='config-id',
... name='New Name',
... content='#cloud-config\n...',
... )
patch(
pk: PrimaryKey,
*,
name: str | None = ...,
content: str | pathlib.Path | io.TextIOBase | None = ...

Patch a user config with partial updates.

Parameters:

  • pk – UserConfig ID string
  • name – New name for the user config
  • content – New cloud-init script content

Returns:

Updated UserConfig instance

Example:

>>> config = api.user_configs.patch(
... pk='config-id',
... name='Updated Name',
... )
delete(pk: PrimaryKey) -> None

Delete a user config.

Parameters:

  • pk – UserConfig ID string

Example:

>>> api.user_configs.delete('config-id')