API Reference

This section contains the complete API reference for the Community DevOps Agent API, which provides boto3 integration for multiple AWS DevOps services including the Community DevOps Agent and AWS DevOps Agent Control Plane.

Core Module

Community DevOps Agent API - boto3 Service Integration

A Python client library that provides native boto3 integration for the AWS DevOps Agent API. This library registers ‘community-devops-agent’ as a custom boto3 service, enabling familiar AWS SDK patterns for DevOps Agent operations.

Usage:

import devopsagent_api # Registers the service import boto3

client = boto3.client(‘community-devops-agent’, region_name=’us-east-1’) tasks = client.list_tasks(agentSpaceId=’your-agent-space-uuid’)

Authentication Module

Authentication module for DevOps Agent API.

This module implements direct AWS SigV4 authentication for boto3 integration. No JWT generation or credential exchange is needed - we use AWS credentials directly.

class devopsagent_api.auth.DevOpsAgentCredentialProvider[source]

Bases: CredentialProvider

Custom credential provider for the DevOps Agent API.

This provider uses direct AWS SigV4 authentication, passing through the user’s AWS credentials directly without JWT exchange.

Initialize the credential provider.

load(service_name: str | None = None) Credentials | None[source]

Load credentials for the DevOps Agent service.

This method is called by botocore when credentials are needed. It only provides credentials for the community-devops-agent service.

Parameters:

service_name – The service name requesting credentials

Returns:

Credentials object or None if unable to obtain credentials

Models Module

Pydantic data models for the DevOps Agent API.

This module provides type-safe Python models for all API operations, enabling validation, serialization, and IDE autocomplete support.

class devopsagent_api.models.TaskStatus(value)[source]

Bases: str, Enum

Task execution status.

PENDING_START = 'PENDING_START'
IN_PROGRESS = 'IN_PROGRESS'
COMPLETED = 'COMPLETED'
FAILED = 'FAILED'
CANCELLED = 'CANCELLED'
CANCELLED_ALT = 'CANCELLED'
TIMED_OUT = 'TIMED_OUT'
PENDING_CUSTOMER_APPROVAL = 'PENDING_CUSTOMER_APPROVAL'
__format__(format_spec)

Returns format using actual value type unless __str__ has been overridden.

class devopsagent_api.models.TaskType(value)[source]

Bases: str, Enum

Type of task.

INVESTIGATION = 'INVESTIGATION'
EVALUATION = 'EVALUATION'
__format__(format_spec)

Returns format using actual value type unless __str__ has been overridden.

class devopsagent_api.models.TaskPriority(value)[source]

Bases: str, Enum

Task priority level.

CRITICAL = 'CRITICAL'
HIGH = 'HIGH'
MEDIUM = 'MEDIUM'
LOW = 'LOW'
MINIMAL = 'MINIMAL'
__format__(format_spec)

Returns format using actual value type unless __str__ has been overridden.

class devopsagent_api.models.GoalType(value)[source]

Bases: str, Enum

Type of automated goal/workflow.

CUSTOMER_DEFINED = 'CUSTOMER_DEFINED'
ONCALL_REPORT = 'ONCALL_REPORT'
PREDEFINED = 'PREDEFINED'
__format__(format_spec)

Returns format using actual value type unless __str__ has been overridden.

class devopsagent_api.models.GoalStatus(value)[source]

Bases: str, Enum

Goal execution status.

ACTIVE = 'ACTIVE'
COMPLETE = 'COMPLETE'
PAUSED = 'PAUSED'
__format__(format_spec)

Returns format using actual value type unless __str__ has been overridden.

class devopsagent_api.models.RecommendationStatus(value)[source]

Bases: str, Enum

Recommendation status.

PROPOSED = 'PROPOSED'
ACCEPTED = 'ACCEPTED'
REJECTED = 'REJECTED'
CLOSED = 'CLOSED'
__format__(format_spec)

Returns format using actual value type unless __str__ has been overridden.

class devopsagent_api.models.JournalRecordType(value)[source]

Bases: str, Enum

Type of journal record.

MESSAGE = 'message'
PLAN = 'plan'
ACTIVITY = 'activity'
OBSERVATION = 'observation'
SYMPTOM = 'symptom'
FINDING = 'finding'
INVESTIGATION_SUMMARY = 'investigation_summary'
__format__(format_spec)

Returns format using actual value type unless __str__ has been overridden.

class devopsagent_api.models.SortField(value)[source]

Bases: str, Enum

Field to sort results by.

CREATED_AT = 'CREATED_AT'
UPDATED_AT = 'UPDATED_AT'
PRIORITY = 'PRIORITY'
__format__(format_spec)

Returns format using actual value type unless __str__ has been overridden.

class devopsagent_api.models.SortOrder(value)[source]

Bases: str, Enum

Sort direction.

ASC = 'ASC'
DESC = 'DESC'
__format__(format_spec)

Returns format using actual value type unless __str__ has been overridden.

class devopsagent_api.models.Metadata[source]

Bases: BaseModel

Generic metadata container.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.Reference(*, system: str | None = None, id: str | None = None)[source]

Bases: BaseModel

Reference to external system.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

system: str | None
id: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.SupportMetadata(*, case_id: str | None = None, visual_id: str | None = None, case_url: str | None = None)[source]

Bases: BaseModel

Support case metadata.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

case_id: str | None
visual_id: str | None
case_url: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.PaginationInfo(*, next_token: str | None = None, has_more: bool = False, total_count: int | None = None)[source]

Bases: BaseModel

Pagination metadata.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

next_token: str | None
has_more: bool
total_count: int | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.Task(*, agent_space_id: str, task_id: str, execution_id: str | None = None, title: Annotated[str, MinLen(min_length=1), MaxLen(max_length=500)], description: Annotated[str, MaxLen(max_length=5000)], task_type: TaskType, priority: TaskPriority = TaskPriority.MEDIUM, status: TaskStatus, created_at: str, updated_at: str, version: Annotated[int, Ge(ge=0)], metadata: Metadata | None = None, reference: Reference | None = None, support_metadata: SupportMetadata | None = None)[source]

Bases: BaseModel

Complete task representation.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

agent_space_id: str
task_id: str
execution_id: str | None
title: str
description: str
task_type: TaskType
priority: TaskPriority
status: TaskStatus
created_at: str
updated_at: str
version: int
metadata: Metadata | None
reference: Reference | None
support_metadata: SupportMetadata | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.TaskFilter(*, task_type: List[TaskType] | None = None, status: List[TaskStatus] | None = None, priority: List[TaskPriority] | None = None, created_after: str | None = None, created_before: str | None = None, updated_after: str | None = None, updated_before: str | None = None)[source]

Bases: BaseModel

Filter criteria for task queries.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

task_type: List[TaskType] | None
status: List[TaskStatus] | None
priority: List[TaskPriority] | None
created_after: str | None
created_before: str | None
updated_after: str | None
updated_before: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.TaskListRequest(*, agent_space_id: str, limit: Annotated[int | None, Ge(ge=1), Le(le=1000)] = None, next_token: str | None = None, sort_field: SortField | None = SortField.CREATED_AT, order: SortOrder | None = SortOrder.DESC, filter: TaskFilter | None = None)[source]

Bases: BaseModel

Request for listing tasks.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

agent_space_id: str
limit: int | None
next_token: str | None
sort_field: SortField | None
order: SortOrder | None
filter: TaskFilter | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.TaskListResponse(*, tasks: ~typing.List[~devopsagent_api.models.Task] = <factory>, next_token: str | None = None)[source]

Bases: BaseModel

Response from task listing.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

tasks: List[Task]
next_token: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.TaskCreateRequest(*, title: Annotated[str, MinLen(min_length=1), MaxLen(max_length=500)], description: Annotated[str, MaxLen(max_length=5000)], task_type: TaskType, priority: TaskPriority | None = TaskPriority.MEDIUM, metadata: Metadata | None = None)[source]

Bases: BaseModel

Request to create a new task.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

title: str
description: str
task_type: TaskType
priority: TaskPriority | None
metadata: Metadata | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.TaskCreateResponse(*, task: Task)[source]

Bases: BaseModel

Response from task creation.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

task: Task
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.TaskUpdateRequest(*, agent_space_id: str, task_id: str, task_status: TaskStatus | None = None, current_version: int | None = None, metadata: Metadata | None = None, support_metadata: SupportMetadata | None = None)[source]

Bases: BaseModel

Request to update a task.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

agent_space_id: str
task_id: str
task_status: TaskStatus | None
current_version: int | None
metadata: Metadata | None
support_metadata: SupportMetadata | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.TaskUpdateResponse(*, task: Task)[source]

Bases: BaseModel

Response from task update.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

task: Task
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.Goal(*, goal_id: str, goal_type: GoalType, title: str, status: GoalStatus, execution_status: str | None = None, last_task_id: str | None = None, last_evaluated_at: str | None = None, created_at: str, updated_at: str)[source]

Bases: BaseModel

Automated goal/workflow representation.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

goal_id: str
goal_type: GoalType
title: str
status: GoalStatus
execution_status: str | None
last_task_id: str | None
last_evaluated_at: str | None
created_at: str
updated_at: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.GoalList(*, goals: ~typing.List[~devopsagent_api.models.Goal] = <factory>, next_token: str | None = None)[source]

Bases: BaseModel

List of goals.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

goals: List[Goal]
next_token: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.GoalListRequest(*, agent_space_id: str, limit: Annotated[int | None, Ge(ge=1), Le(le=100)] = None, next_token: str | None = None, goal_type: GoalType | None = None, status: GoalStatus | None = None, execution_status: str | None = None)[source]

Bases: BaseModel

Request for listing goals.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

agent_space_id: str
limit: int | None
next_token: str | None
goal_type: GoalType | None
status: GoalStatus | None
execution_status: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.GoalListResponse(*, goals: ~typing.List[~devopsagent_api.models.Goal] = <factory>, next_token: str | None = None)[source]

Bases: BaseModel

Response from goal listing.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

goals: List[Goal]
next_token: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.RecommendationSummary(*, title: str, category: str, overview: str, background: str | None = None, next_steps: str | None = None, considerations: str | None = None, action_plan: str | None = None, affected_incidents: List[str] | None = None)[source]

Bases: BaseModel

Recommendation summary content.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

title: str
category: str
overview: str
background: str | None
next_steps: str | None
considerations: str | None
action_plan: str | None
affected_incidents: List[str] | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.RecommendationContent(*, summary: RecommendationSummary)[source]

Bases: BaseModel

Recommendation content structure.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

summary: RecommendationSummary
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.Recommendation(*, recommendation_id: str, title: str, status: RecommendationStatus, priority: TaskPriority, content: RecommendationContent, goal_id: str | None = None, goal_version: int | None = None, created_at: str, updated_at: str, version: int)[source]

Bases: BaseModel

Recommendation representation.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

recommendation_id: str
title: str
status: RecommendationStatus
priority: TaskPriority
content: RecommendationContent
goal_id: str | None
goal_version: int | None
created_at: str
updated_at: str
version: int
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.RecommendationList(*, recommendations: ~typing.List[~devopsagent_api.models.Recommendation] = <factory>, next_token: str | None = None)[source]

Bases: BaseModel

List of recommendations.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

recommendations: List[Recommendation]
next_token: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.RecommendationListRequest(*, agent_space_id: str, limit: Annotated[int | None, Ge(ge=1), Le(le=100)] = None, next_token: str | None = None, task_id: str | None = None, goal_id: str | None = None, status: RecommendationStatus | None = None, priority: TaskPriority | None = None)[source]

Bases: BaseModel

Request for listing recommendations.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

agent_space_id: str
limit: int | None
next_token: str | None
task_id: str | None
goal_id: str | None
status: RecommendationStatus | None
priority: TaskPriority | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.RecommendationListResponse(*, recommendations: ~typing.List[~devopsagent_api.models.Recommendation] = <factory>, next_token: str | None = None)[source]

Bases: BaseModel

Response from recommendation listing.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

recommendations: List[Recommendation]
next_token: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.RecommendationUpdateRequest(*, agent_space_id: str, recommendation_id: str, client_token: str | None = None, status: RecommendationStatus, additional_context: str | None = None)[source]

Bases: BaseModel

Request to update a recommendation.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

agent_space_id: str
recommendation_id: str
client_token: str | None
status: RecommendationStatus
additional_context: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.RecommendationUpdateResponse(*, recommendation: Recommendation)[source]

Bases: BaseModel

Response from recommendation update.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

recommendation: Recommendation
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.JournalRecordContent(*, type: str, id: str)[source]

Bases: BaseModel

Base class for journal record content.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

type: str
id: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.MessageContent(*, type: str = 'message', id: str, role: str, content: List[Dict[str, Any]], user_reference: str | None = None)[source]

Bases: JournalRecordContent

Message record content.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

type: str
role: str
content: List[Dict[str, Any]]
user_reference: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.PlanContent(*, type: str = 'plan', id: str, title: str, description: str, activity_ids: ~typing.List[str] = <factory>)[source]

Bases: JournalRecordContent

Plan record content.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

type: str
title: str
description: str
activity_ids: List[str]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.ActivityContent(*, type: str = 'activity', id: str, title: str, description: str, status: str, child_activity_ids: ~typing.List[str] = <factory>)[source]

Bases: JournalRecordContent

Activity record content.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

type: str
title: str
description: str
status: str
child_activity_ids: List[str]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.ObservationContent(*, type: str = 'observation', id: str, plan_id: str | None = None, activity_id: str | None = None, title: str, analysis: str, signals: ~typing.List[~typing.Dict[str, ~typing.Any]] = <factory>)[source]

Bases: JournalRecordContent

Observation record content.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

type: str
plan_id: str | None
activity_id: str | None
title: str
analysis: str
signals: List[Dict[str, Any]]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.SymptomContent(*, type: str = 'symptom', id: str, title: str, description: str, start_time: str, end_time: str | None = None)[source]

Bases: JournalRecordContent

Symptom record content.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

type: str
title: str
description: str
start_time: str
end_time: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.FindingContent(*, type: str = 'finding', id: str, title: str, description: str, supporting_observations: ~typing.List[~typing.Any] = <factory>, cascaded_cause_ids: ~typing.List[str] = <factory>, related_resources: ~typing.List[str] = <factory>)[source]

Bases: JournalRecordContent

Finding record content.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

type: str
title: str
description: str
supporting_observations: List[Any]
cascaded_cause_ids: List[str]
related_resources: List[str]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.InvestigationSummaryContent(*, type: str = 'investigation_summary', id: str, symptoms: ~typing.List[~typing.Any] = <factory>, findings: ~typing.List[~typing.Any] = <factory>, investigation_gaps: ~typing.List[~typing.Any] = <factory>)[source]

Bases: JournalRecordContent

Investigation summary content.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

type: str
symptoms: List[Any]
findings: List[Any]
investigation_gaps: List[Any]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.JournalRecord(*, agent_space_id: str, execution_id: str, record_id: str, content: str, created_at: float, record_type: JournalRecordType)[source]

Bases: BaseModel

Journal record entry.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

agent_space_id: str
execution_id: str
record_id: str
content: str
created_at: float
record_type: JournalRecordType
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.JournalRecordList(*, records: ~typing.List[~devopsagent_api.models.JournalRecord] = <factory>, next_token: str | None = None)[source]

Bases: BaseModel

List of journal records.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

records: List[JournalRecord]
next_token: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.JournalRecordsRequest(*, agent_space_id: str, execution_id: str, record_type: JournalRecordType | None = None, order: SortOrder | None = SortOrder.ASC, limit: Annotated[int | None, Ge(ge=1), Le(le=1000)] = None, next_token: str | None = None)[source]

Bases: BaseModel

Request for journal records.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

agent_space_id: str
execution_id: str
record_type: JournalRecordType | None
order: SortOrder | None
limit: int | None
next_token: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.JournalRecordsResponse(*, records: ~typing.List[~devopsagent_api.models.JournalRecord] = <factory>, next_token: str | None = None)[source]

Bases: BaseModel

Response from journal records query.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

records: List[JournalRecord]
next_token: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.Execution(*, agent_space_id: str, execution_id: str, agent_sub_task: str, agent_type: str, created_at: float, updated_at: float, execution_status: str, uid: str | None = None)[source]

Bases: BaseModel

Execution metadata.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

agent_space_id: str
execution_id: str
agent_sub_task: str
agent_type: str
created_at: float
updated_at: float
execution_status: str
uid: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.ExecutionList(*, executions: ~typing.List[~devopsagent_api.models.Execution] = <factory>, next_token: str | None = None)[source]

Bases: BaseModel

List of executions.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

executions: List[Execution]
next_token: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.ExecutionListRequest(*, agent_space_id: str, task_id: str | None = None, limit: Annotated[int | None, Ge(ge=1), Le(le=100)] = None, next_token: str | None = None)[source]

Bases: BaseModel

Request for execution list.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

agent_space_id: str
task_id: str | None
limit: int | None
next_token: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.ExecutionListResponse(*, executions: ~typing.List[~devopsagent_api.models.Execution] = <factory>, next_token: str | None = None)[source]

Bases: BaseModel

Response from execution list.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

executions: List[Execution]
next_token: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.IdentifierMetadata(*, account_id: str, region: str, arn: str | None = None, name: str | None = None)[source]

Bases: BaseModel

Resource identifier metadata.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

account_id: str
region: str
arn: str | None
name: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.TopologyNode(*, identifier: str, node_metadata_id: str, type: str, resource_type: str, identifier_metadata: IdentifierMetadata)[source]

Bases: BaseModel

Infrastructure resource node.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

identifier: str
node_metadata_id: str
type: str
resource_type: str
identifier_metadata: IdentifierMetadata
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.TopologyEdge(*, source: str, target: str, source_node_metadata: str, target_node_metadata: str)[source]

Bases: BaseModel

Relationship between topology nodes.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

source: str
target: str
source_node_metadata: str
target_node_metadata: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.Topology(*, nodes: ~typing.List[~devopsagent_api.models.TopologyNode] = <factory>, edges: ~typing.List[~devopsagent_api.models.TopologyEdge] = <factory>)[source]

Bases: BaseModel

Topology data structure.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

nodes: List[TopologyNode]
edges: List[TopologyEdge]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.TopologyData(*, topology: Topology)[source]

Bases: BaseModel

Topology query response data.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

topology: Topology
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.TopologyQueryRequest(*, agent_space_id: str, query: str, variables: Dict[str, Any] | None = None)[source]

Bases: BaseModel

Request for topology query.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

agent_space_id: str
query: str
variables: Dict[str, Any] | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.TopologyQueryResponse(*, data: TopologyData)[source]

Bases: BaseModel

Response from topology query.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

data: TopologyData
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.SupportLevel(*, code: str, name: str)[source]

Bases: BaseModel

AWS Support level information.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

code: str
name: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.SupportLevelRequest(*, agent_space_id: str, task_id: str)[source]

Bases: BaseModel

Request for support level.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

agent_space_id: str
task_id: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.SupportLevelResponse(*, support_level: SupportLevel)[source]

Bases: BaseModel

Response with support level.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

support_level: SupportLevel
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.SupportChatRequest(*, agent_space_id: str, task_id: str, client_token: str | None = None)[source]

Bases: BaseModel

Request to create support chat.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

agent_space_id: str
task_id: str
client_token: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.SupportChatResponse(*, chat_id: str, status: str, created_at: str)[source]

Bases: BaseModel

Response from support chat creation.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

chat_id: str
status: str
created_at: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.SupportChatEndRequest(*, agent_space_id: str, task_id: str, client_token: str | None = None, reason: str | None = None, requester: str | None = None)[source]

Bases: BaseModel

Request to end support chat.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

agent_space_id: str
task_id: str
client_token: str | None
reason: str | None
requester: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.SupportChatEndResponse(*, status: str, ended_at: str)[source]

Bases: BaseModel

Response from support chat ending.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

status: str
ended_at: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class devopsagent_api.models.ErrorResponse(*, error: str, message: str, status_code: int, request_id: str | None = None)[source]

Bases: BaseModel

API error response.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

error: str
message: str
status_code: int
request_id: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

devopsagent_api.models.parse_journal_content(content: str) MessageContent | PlanContent | ActivityContent | ObservationContent | SymptomContent | FindingContent | InvestigationSummaryContent | Dict[str, Any][source]

Parse JSON-encoded journal record content.

Parameters:

content – JSON string from journal record

Returns:

Parsed content object or dict if unknown type

Exceptions Module

Exception classes for the DevOps Agent API.

This module provides a comprehensive exception hierarchy that extends botocore’s exception system while adding DevOps Agent specific error handling.

exception devopsagent_api.exceptions.DevOpsAgentError(error_response: Dict[str, Any], operation_name: str, service_name: str = 'community-devops-agent', **kwargs)[source]

Bases: ClientError

Base exception class for DevOps Agent API errors.

This extends botocore’s ClientError to provide a common base for all DevOps Agent specific exceptions while maintaining compatibility with boto3’s exception handling patterns.

Initialize the DevOps Agent error.

Parameters:
  • error_response – Error response dictionary

  • operation_name – Name of the operation that failed

  • service_name – Service name (defaults to community-devops-agent)

  • **kwargs – Additional arguments passed to ClientError

property error_code: str | None

Get the error code from the response.

property error_message: str | None

Get the error message from the response.

property http_status_code: int | None

Get the HTTP status code.

property request_id: str | None

Get the AWS request ID.

__str__() str[source]

String representation of the error.

exception devopsagent_api.exceptions.AuthenticationError(error_response: Dict[str, Any], operation_name: str, service_name: str = 'community-devops-agent', **kwargs)[source]

Bases: DevOpsAgentError

Authentication-related errors.

Raised when there are issues with AWS credentials, JWT generation, or credential exchange authentication flow.

Initialize the DevOps Agent error.

Parameters:
  • error_response – Error response dictionary

  • operation_name – Name of the operation that failed

  • service_name – Service name (defaults to community-devops-agent)

  • **kwargs – Additional arguments passed to ClientError

exception devopsagent_api.exceptions.CredentialRefreshError(error_response: Dict[str, Any], operation_name: str, service_name: str = 'community-devops-agent', **kwargs)[source]

Bases: AuthenticationError

Credential refresh errors.

Raised when automatic credential refresh fails, typically due to: - Expired AWS credentials - Network connectivity issues - Invalid agent space configuration - API service unavailability

Initialize the DevOps Agent error.

Parameters:
  • error_response – Error response dictionary

  • operation_name – Name of the operation that failed

  • service_name – Service name (defaults to community-devops-agent)

  • **kwargs – Additional arguments passed to ClientError

exception devopsagent_api.exceptions.JWTGenerationError(error_response: Dict[str, Any], operation_name: str, service_name: str = 'community-devops-agent', **kwargs)[source]

Bases: AuthenticationError

JWT token generation errors.

Raised when JWT token generation fails, typically due to: - Invalid AWS credentials - Insufficient IAM permissions - Network connectivity issues - Control plane API unavailability

Initialize the DevOps Agent error.

Parameters:
  • error_response – Error response dictionary

  • operation_name – Name of the operation that failed

  • service_name – Service name (defaults to community-devops-agent)

  • **kwargs – Additional arguments passed to ClientError

exception devopsagent_api.exceptions.CredentialExchangeError(error_response: Dict[str, Any], operation_name: str, service_name: str = 'community-devops-agent', **kwargs)[source]

Bases: AuthenticationError

Credential exchange errors.

Raised when JWT to temporary credential exchange fails, typically due to: - Expired or invalid JWT token - Authorizer service unavailability - Invalid agent space ID - Cookie/session issues

Initialize the DevOps Agent error.

Parameters:
  • error_response – Error response dictionary

  • operation_name – Name of the operation that failed

  • service_name – Service name (defaults to community-devops-agent)

  • **kwargs – Additional arguments passed to ClientError

exception devopsagent_api.exceptions.ConfigurationError(error_response: Dict[str, Any], operation_name: str, service_name: str = 'community-devops-agent', **kwargs)[source]

Bases: DevOpsAgentError

Configuration and setup errors.

Raised when there are issues with library configuration, typically due to: - Missing or invalid service model files - Incorrect boto3 integration - Invalid region or endpoint configuration - Package installation issues

Initialize the DevOps Agent error.

Parameters:
  • error_response – Error response dictionary

  • operation_name – Name of the operation that failed

  • service_name – Service name (defaults to community-devops-agent)

  • **kwargs – Additional arguments passed to ClientError

exception devopsagent_api.exceptions.ServiceRegistrationError(error_response: Dict[str, Any], operation_name: str, service_name: str = 'community-devops-agent', **kwargs)[source]

Bases: ConfigurationError

Service registration errors.

Raised when the boto3 service registration fails, typically due to: - Missing service model files - Botocore integration issues - Import or initialization failures

Initialize the DevOps Agent error.

Parameters:
  • error_response – Error response dictionary

  • operation_name – Name of the operation that failed

  • service_name – Service name (defaults to community-devops-agent)

  • **kwargs – Additional arguments passed to ClientError

exception devopsagent_api.exceptions.ModelValidationError(error_response: Dict[str, Any], operation_name: str, service_name: str = 'community-devops-agent', **kwargs)[source]

Bases: ConfigurationError

Model validation errors.

Raised when Pydantic model validation fails, typically due to: - Invalid data types - Missing required fields - Constraint violations - Schema mismatches

Initialize the DevOps Agent error.

Parameters:
  • error_response – Error response dictionary

  • operation_name – Name of the operation that failed

  • service_name – Service name (defaults to community-devops-agent)

  • **kwargs – Additional arguments passed to ClientError

exception devopsagent_api.exceptions.ValidationException(error_response: Dict[str, Any], operation_name: str, service_name: str = 'community-devops-agent', **kwargs)[source]

Bases: DevOpsAgentError

Request validation errors.

Corresponds to HTTP 400 errors from the API, raised when: - Required parameters are missing - Parameter values are invalid - Request format is incorrect - Business rule violations

Initialize the DevOps Agent error.

Parameters:
  • error_response – Error response dictionary

  • operation_name – Name of the operation that failed

  • service_name – Service name (defaults to community-devops-agent)

  • **kwargs – Additional arguments passed to ClientError

exception devopsagent_api.exceptions.UnauthorizedException(error_response: Dict[str, Any], operation_name: str, service_name: str = 'community-devops-agent', **kwargs)[source]

Bases: DevOpsAgentError

Authentication and authorization errors.

Corresponds to HTTP 401/403 errors from the API, raised when: - Invalid or missing credentials - Insufficient permissions - Expired authentication - Invalid agent space access

Initialize the DevOps Agent error.

Parameters:
  • error_response – Error response dictionary

  • operation_name – Name of the operation that failed

  • service_name – Service name (defaults to community-devops-agent)

  • **kwargs – Additional arguments passed to ClientError

exception devopsagent_api.exceptions.ResourceNotFoundException(error_response: Dict[str, Any], operation_name: str, service_name: str = 'community-devops-agent', **kwargs)[source]

Bases: DevOpsAgentError

Resource not found errors.

Corresponds to HTTP 404 errors from the API, raised when: - Task ID does not exist - Agent space ID is invalid - Recommendation ID not found - Execution ID is missing

Initialize the DevOps Agent error.

Parameters:
  • error_response – Error response dictionary

  • operation_name – Name of the operation that failed

  • service_name – Service name (defaults to community-devops-agent)

  • **kwargs – Additional arguments passed to ClientError

exception devopsagent_api.exceptions.ConflictException(error_response: Dict[str, Any], operation_name: str, service_name: str = 'community-devops-agent', **kwargs)[source]

Bases: DevOpsAgentError

Resource conflict errors.

Corresponds to HTTP 409 errors from the API, raised when: - Resource already exists - Version conflicts in updates - Concurrent modification issues

Initialize the DevOps Agent error.

Parameters:
  • error_response – Error response dictionary

  • operation_name – Name of the operation that failed

  • service_name – Service name (defaults to community-devops-agent)

  • **kwargs – Additional arguments passed to ClientError

exception devopsagent_api.exceptions.ThrottlingException(error_response: Dict[str, Any], operation_name: str, service_name: str = 'community-devops-agent', **kwargs)[source]

Bases: DevOpsAgentError

Rate limiting errors.

Corresponds to HTTP 429 errors from the API, raised when: - Request rate exceeds limits - Burst limits exceeded - Backoff required

Initialize the DevOps Agent error.

Parameters:
  • error_response – Error response dictionary

  • operation_name – Name of the operation that failed

  • service_name – Service name (defaults to community-devops-agent)

  • **kwargs – Additional arguments passed to ClientError

exception devopsagent_api.exceptions.InternalServerException(error_response: Dict[str, Any], operation_name: str, service_name: str = 'community-devops-agent', **kwargs)[source]

Bases: DevOpsAgentError

Internal server errors.

Corresponds to HTTP 500 errors from the API, raised when: - Unexpected server errors - Service unavailability - Database or backend issues

Initialize the DevOps Agent error.

Parameters:
  • error_response – Error response dictionary

  • operation_name – Name of the operation that failed

  • service_name – Service name (defaults to community-devops-agent)

  • **kwargs – Additional arguments passed to ClientError

exception devopsagent_api.exceptions.ServiceUnavailableException(error_response: Dict[str, Any], operation_name: str, service_name: str = 'community-devops-agent', **kwargs)[source]

Bases: DevOpsAgentError

Service unavailable errors.

Corresponds to HTTP 503 errors from the API, raised when: - Service maintenance - Temporary outages - Capacity issues

Initialize the DevOps Agent error.

Parameters:
  • error_response – Error response dictionary

  • operation_name – Name of the operation that failed

  • service_name – Service name (defaults to community-devops-agent)

  • **kwargs – Additional arguments passed to ClientError

exception devopsagent_api.exceptions.NetworkError(**kwargs)[source]

Bases: BotoCoreError

Network and connectivity errors.

Extends BotoCoreError for network-related issues that occur before reaching the API service.

exception devopsagent_api.exceptions.ConnectionError(**kwargs)[source]

Bases: NetworkError

Connection establishment errors.

Raised when unable to establish connection to API endpoints, typically due to: - DNS resolution failures - Network connectivity issues - Firewall or proxy problems - SSL/TLS handshake failures

exception devopsagent_api.exceptions.TimeoutError(**kwargs)[source]

Bases: NetworkError

Request timeout errors.

Raised when requests exceed configured timeouts, typically due to: - Slow network connections - API service overload - Large response payloads - Network congestion

devopsagent_api.exceptions.handle_client_error(error: ClientError) DevOpsAgentError[source]

Convert botocore ClientError to DevOpsAgentError.

This utility function takes a standard botocore ClientError and converts it to the appropriate DevOpsAgentError subclass.

Parameters:

error – Original ClientError from botocore

Returns:

Appropriate DevOpsAgentError subclass

Raises:

DevOpsAgentError – Converted exception

Loaders Module

Custom service loaders for boto3 service integration.

This module contains custom loader implementations for registering the Community DevOps Agent service with boto3.

class devopsagent_api.loaders.ServiceLoader(service_name: str)[source]

Bases: object

Loads service model files for community AWS services.

Initialize the service loader for a specific service.

SERVICES = {'community-aidevops': {'api_version': '2018-05-10', 'service_name': 'community-aidevops'}, 'community-devops-agent': {'api_version': '2025-12-09', 'service_name': 'community-devops-agent'}}
load_service_model(type_name: str = 'service-2') Dict[str, Any][source]

Load a service model file.

Parameters:

type_name – The type of model to load (e.g., ‘service-2’, ‘paginators-1’)

Returns:

The loaded service model as a dictionary

get_service_data() Dict[str, Any][source]

Get the complete service data including all model files.

Returns:

Dictionary containing service model, paginators, waiters, etc.

classmethod get_supported_services() List[str][source]

Get list of supported service names.

classmethod register_with_botocore() None[source]

Register all supported services with botocore’s loader.

This modifies botocore’s loader to include our custom service models.

Service loader for registering community services with boto3.

class devopsagent_api.loaders.service_loader.ServiceLoader(service_name: str)[source]

Bases: object

Loads service model files for community AWS services.

Initialize the service loader for a specific service.

SERVICES = {'community-aidevops': {'api_version': '2018-05-10', 'service_name': 'community-aidevops'}, 'community-devops-agent': {'api_version': '2025-12-09', 'service_name': 'community-devops-agent'}}
load_service_model(type_name: str = 'service-2') Dict[str, Any][source]

Load a service model file.

Parameters:

type_name – The type of model to load (e.g., ‘service-2’, ‘paginators-1’)

Returns:

The loaded service model as a dictionary

get_service_data() Dict[str, Any][source]

Get the complete service data including all model files.

Returns:

Dictionary containing service model, paginators, waiters, etc.

classmethod get_supported_services() List[str][source]

Get list of supported service names.

classmethod register_with_botocore() None[source]

Register all supported services with botocore’s loader.

This modifies botocore’s loader to include our custom service models.

Configuration Module