air_sdk.endpoints.image_publish_access_records

View as Markdown

Classes

NameDescription
ImagePublishAccessRecordRepresents a request to publish or change the visibility of an image.
ImagePublishAccessRecordEndpointAPIEndpoint API for managing image publish access records.

Module Contents

class air_sdk.endpoints.image_publish_access_records.ImagePublishAccessRecord

Bases: air_sdk.air_model.AirModel

Represents a request to publish or change the visibility of an image.

Publish access records are created when an org requests to publish an image or change its visibility. An admin must review the request and either approve or deny it.

id: str

Unique identifier for the record

Timestamp when the record was created

Timestamp when the record was last modified

image: Image

The image the request is for (foreign key — lazily resolved)

image_name: str

Name of the image at the time of the request

image_version: str

Version of the image at the time of the request

requested_by: str | None

Email of the user who submitted the request, or None

requested_at: datetime.datetime | None

When the current request was submitted, or None if cancelled

requesting_org: str | None

Org’s readable_name (display_name or ngc_org_name), or None

requesting_org_display_name: str | None

Display name of the requesting org, or None

requesting_org_ngc_org_name: str | None

NGC org name of the requesting org, or None

reviewed_by: str | None

Email of the admin who reviewed the request, or None

reviewed_at: datetime.datetime | None

When the request was last reviewed, or None if still pending

status: PAR_STATUS

Current status of the request

publicly_published: bool

Whether the image should be publicly accessible

prefer_public: bool

Whether the requester prefers public over allowlist

justification: str

Requester’s reason for the request

allowed_orgs_request_text: str

Free-text description of orgs to allowlist

allowed_orgs: list[str] | None

List of org UUIDs on the allowlist, or None. Note: Only populated for admin callers; non-admins receive None.

denial_reason: str

Reason the request was denied, or empty string if not yet denied

model_api: ImagePublishAccessRecordEndpointAPI
approve(
*,
publicly_published: bool = ...,
allowed_orgs: list[str] = ...,
**kwargs: Any

Approve this request. See ImagePublishAccessRecordEndpointAPI.approve.

deny(
*,
denial_reason: str = ...,
**kwargs: Any

Deny this request. See ImagePublishAccessRecordEndpointAPI.deny.

set_visibility(
*,
publicly_published: bool,
allowed_orgs: list[str] = ...,
**kwargs: Any

Set visibility. See ImagePublishAccessRecordEndpointAPI.set_visibility.

class air_sdk.endpoints.image_publish_access_records.ImagePublishAccessRecordEndpointAPI

Bases: air_sdk.air_model.BaseEndpointAPI[air_sdk.endpoints.image_publish_access_records.ImagePublishAccessRecord]

Endpoint API for managing image publish access records.

Provides methods for listing and retrieving records, plus admin actions to approve, deny, or change the visibility of a pending request. Records are created automatically by the Air platform when a publish or visibility-change request is submitted — they cannot be created via the SDK.

API_PATH: str
API_APPROVE_PATH: str
API_DENY_PATH: str
API_SET_VISIBILITY_PATH: str
list(
*,
image: str | PrimaryKey = ...,
status: PAR_STATUS = ...,
publicly_published: bool = ...,
requested_by_email: str = ...,
requesting_org_display_name: str = ...,
requesting_org_ngc_org_name: str = ...,
limit: int = ...,
offset: int = ...,
ordering: str = ...,
search: str = ...

List image publish access records.

Parameters:

  • image – Filter by image UUID
  • status – Filter by request status
  • publicly_published – Filter by public vs restricted visibility
  • requested_by_email – Filter by requester email (case-insensitive)
  • requesting_org_display_name – Filter by org display name (case-insensitive)
  • requesting_org_ngc_org_name – Filter by org NGC name (case-insensitive)
  • limit – Number of results to return per page
  • offset – Initial index from which to return results
  • ordering – Order by field (prefix with - for descending)
  • search – Search query

Returns:

Iterator of ImagePublishAccessRecord instances

Example:

>>> for record in api.image_publish_access_records.list(status='PENDING'):
... print(record.image_name, record.requested_by)
get(
pk: PrimaryKey,
**kwargs: Any

Retrieve a specific publish access record.

Parameters:

  • pk – Record UUID
  • **kwargs – Additional query parameters

Returns:

ImagePublishAccessRecord instance

Example:

>>> record = api.image_publish_access_records.get('record-uuid')
>>> print(record.status, record.image_name)
approve(
*,
record: ImagePublishAccessRecord | PrimaryKey,
publicly_published: bool = ...,
allowed_orgs: List[str] = ...,
**kwargs: Any

Approve a pending publish access request.

Parameters:

  • record – The record to approve (instance or UUID)
  • publicly_published – Whether to make the image publicly accessible. When False, access is restricted to allowed_orgs.
  • allowed_orgs – List of org UUIDs that may access the image. Only meaningful when publicly_published is False.
  • **kwargs – Additional parameters

Returns:

Updated ImagePublishAccessRecord with status APPROVED

Example:

>>> record = api.image_publish_access_records.get('record-uuid')
>>> api.image_publish_access_records.approve(record=record)
>>> # Approve with explicit visibility
>>> api.image_publish_access_records.approve(
... record=record,
... publicly_published=True,
... )
deny(
*,
record: ImagePublishAccessRecord | PrimaryKey,
denial_reason: str = ...,
**kwargs: Any

Deny a pending publish access request.

Parameters:

  • record – The record to deny (instance or UUID)
  • denial_reason – Human-readable explanation of why the request was denied
  • **kwargs – Additional parameters

Returns:

Updated ImagePublishAccessRecord with status DENIED

Example:

>>> api.image_publish_access_records.deny(
... record='record-uuid',
... denial_reason='Does not meet publishing requirements.',
... )
set_visibility(
*,
record: ImagePublishAccessRecord | PrimaryKey,
publicly_published: bool,
allowed_orgs: List[str] = ...,
**kwargs: Any

Update the visibility of a published image.

Parameters:

  • record – The record to update (instance or UUID)
  • publicly_published – Whether the image should be publicly accessible. When False, access is restricted to allowed_orgs.
  • allowed_orgs – List of org UUIDs that may access the image. Only meaningful when publicly_published is False.
  • **kwargs – Additional parameters

Returns:

Updated ImagePublishAccessRecord

Example:

>>> # Make image public
>>> api.image_publish_access_records.set_visibility(
... record='record-uuid',
... publicly_published=True,
... )
>>> # Restrict to specific orgs
>>> api.image_publish_access_records.set_visibility(
... record='record-uuid',
... publicly_published=False,
... allowed_orgs=['org-uuid-1', 'org-uuid-2'],
... )