air_sdk.endpoints.user_configs#
Stub file for user_configs endpoint type hints.
Classes#
UserConfig model representing cloud-init configurations. |
|
API interface for managing UserConfig resources. |
Module Contents#
- class air_sdk.endpoints.user_configs.UserConfig[source]#
Bases:
air_sdk.bc.BaseCompatMixin,air_sdk.air_model.AirModelUserConfig model representing cloud-init configurations.
The string representation shows: id, name, kind
- id#
Unique identifier for the user config
- name#
Human-readable name of the user config
- kind#
Type of cloud-init config (user-data or meta-data)
- content#
The cloud-init script content (lazy-loaded)
- Constants:
KIND_CLOUD_INIT_USER_DATA: Constant for user-data kind KIND_CLOUD_INIT_META_DATA: Constant for meta-data kind
- classmethod get_model_api() type[UserConfigEndpointAPI][source]#
Returns the respective AirModelAPI type for this model.
- property model_api: UserConfigEndpointAPI#
- update(*, name: str | None = ..., content: str | None = ...) None[source]#
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...')
- class air_sdk.endpoints.user_configs.UserConfigEndpointAPI(
- api: air_sdk.AirApi,
- default_filters: dict[str, Any] | None = None,
Bases:
air_sdk.bc.UserConfigEndpointAPICompatMixin,air_sdk.air_model.BaseEndpointAPI[UserConfig]API interface for managing UserConfig resources.
Provides methods for CRUD operations on user configs (cloud-init configurations).
- model: type[UserConfig]#
- 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 | air_sdk.air_model.PrimaryKey,
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
- Returns:
Newly created UserConfig instance
Note
User configs are automatically associated with your default organization. The ‘organization’ parameter from v1/v2 has been removed in v3.
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 | air_sdk.air_model.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: air_sdk.air_model.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', ... )