archastro.platform.v1.resources.agent_installations

  1# Copyright (c) 2026 ArchAstro Inc. All Rights Reserved.
  2# This file is auto-generated by @archastro/sdk-generator. Do not edit.
  3# Content hash: c4df393c57d5
  4
  5from __future__ import annotations
  6
  7from typing import Any, TypedDict
  8
  9from ...runtime.http_client import HttpClient, SyncHttpClient
 10from ...types.common import (
 11    Installation,
 12    InstallationListResponse,
 13    InstallationSource,
 14    InstallationSourceListResponse,
 15)
 16
 17
 18class AgentInstallationInstallationSourceCreateInput(TypedDict):
 19    "Add a source to an installation"
 20
 21    payload: dict[str, Any]
 22    "Type-specific payload for the source. The accepted keys depend on the `type` value; invalid or missing payload fields return 422."
 23    type: str
 24    'Source type slug identifying the kind of content being attached, e.g. `"file/document"` or `"web/link"`.'
 25
 26
 27class AgentInstallationSuspendInput(TypedDict, total=False):
 28    "Suspend an installation"
 29
 30    reason: str | None
 31    "Human-readable explanation for the suspension. Stored on the installation and visible when you retrieve it. Omit to suspend without recording a reason."
 32
 33
 34class AsyncAgentInstallationInstallationSourceResource:
 35    def __init__(self, http: HttpClient):
 36        self._http = http
 37
 38    async def list(self, installation: str) -> InstallationSourceListResponse:
 39        """
 40        List sources for an installation
 41        Returns all sources attached to the specified installation. Sources represent
 42        the content units (documents, links, and other typed payloads) that the
 43        installation's agent can access as context.
 44        This endpoint requires an app-scoped token. Results include sources in all
 45        states, including those still being ingested. Inspect each source's `state`
 46        field to determine whether its content is ready.
 47
 48        Args:
 49            installation: Installation ID (`cin_...`) whose sources to retrieve.
 50
 51        Returns:
 52            Object containing the list of sources attached to the installation.
 53        """
 54        return await self._http.request(
 55            f"/api/v1/agent_installations/{installation}/installation_sources",
 56            response_type=InstallationSourceListResponse,
 57        )
 58
 59    async def create(
 60        self, installation: str, input: AgentInstallationInstallationSourceCreateInput
 61    ) -> InstallationSource:
 62        """
 63        Add a source to an installation
 64        Attaches a new source to an existing installation, making its content available
 65        to the installation's agent as context. The source type and payload must be valid
 66        for the installation's kind; invalid combinations return 422.
 67        This endpoint requires an app-scoped token. The installation must belong to an
 68        agent accessible by the authenticated caller. Once created, the source begins
 69        processing asynchronously its `state` will transition from `"pending"` as
 70        ingestion progresses.
 71
 72        Args:
 73            installation: Installation ID (`cin_...`) whose sources to retrieve.
 74            input: Request body.
 75            input.payload: Type-specific payload for the source. The accepted keys depend on the `type` value; invalid or missing payload fields return 422.
 76            input.type: Source type slug identifying the kind of content being attached, e.g. `"file/document"` or `"web/link"`.
 77
 78        Returns:
 79            The newly created installation source.
 80        """
 81        return await self._http.request(
 82            f"/api/v1/agent_installations/{installation}/installation_sources",
 83            method="POST",
 84            body=input,
 85            response_type=InstallationSource,
 86        )
 87
 88
 89class AsyncAgentInstallationResource:
 90    def __init__(self, http: HttpClient):
 91        self._http = http
 92        self.installation_sources = AsyncAgentInstallationInstallationSourceResource(http)
 93
 94    async def list(self, *, agent: str | None = None) -> InstallationListResponse:
 95        """
 96        List installations for an app
 97        Returns all installations across every agent in the authenticated app. Use this
 98        endpoint to get a global view of all external service and enablement channel
 99        connections for the app.
100        Optionally narrow results to a single agent by passing the `agent` parameter. To
101        list installations scoped to a specific agent, you may also use the per-agent List
102        Installations endpoint. Results are returned as an unordered array with no
103        pagination. The caller must have app scope.
104
105        Args:
106            agent: Agent ID (`agt_...`) to filter results by. When omitted, installations for all agents in the app are returned.
107
108        Returns:
109            The list of installations for the app, optionally filtered by agent.
110        """
111        query: dict[str, object] = {}
112        if agent is not None:
113            query["agent"] = agent
114        return await self._http.request(
115            "/api/v1/agent_installations",
116            query=query,
117            response_type=InstallationListResponse,
118        )
119
120    async def delete(self, installation: str) -> None:
121        """
122        Delete an installation
123        Permanently deletes an installation and severs the connection between the agent
124        and the external service or enablement channel. Any backing context sources
125        associated with the installation are also removed.
126        This action is irreversible. If you want to temporarily stop an installation from
127        processing events, use the Pause or Suspend endpoints instead. The caller must have
128        app scope for the app that owns the installation.
129
130        Args:
131            installation: Installation ID (`cin_...`) to delete.
132
133        Returns:
134            Empty response with HTTP 204 status on successful deletion.
135        """
136        await self._http.request(f"/api/v1/agent_installations/{installation}", method="DELETE")
137
138    async def get(self, installation: str) -> Installation:
139        """
140        Retrieve an installation
141        Returns a single installation by ID. Use this endpoint to check the current
142        `state`, `kind`, `config`, and bound integration of an installation.
143        The installation must belong to an agent that is accessible within the
144        authenticated app's scope. The caller must have app scope for the app that
145        owns the installation.
146
147        Args:
148            installation: Installation ID (`cin_...`) to retrieve.
149
150        Returns:
151            The requested installation.
152        """
153        return await self._http.request(
154            f"/api/v1/agent_installations/{installation}",
155            response_type=Installation,
156        )
157
158    async def activate(self, installation: str) -> Installation:
159        """
160        Activate an installation
161        Transitions an installation from a pending or paused state to `active`, enabling
162        the agent to receive events and process work through the installed integration or
163        enablement channel.
164        Activation requires that the installation already has a bound integration (either
165        via `shared_integration` or an inline `integration` created at install time). If no
166        integration is bound, the request returns 422. The caller must have app scope for
167        the app that owns the installation.
168
169        Args:
170            installation: Installation ID (`cin_...`) to activate.
171
172        Returns:
173            The updated installation with `state` reflecting the new active status.
174        """
175        return await self._http.request(
176            f"/api/v1/agent_installations/{installation}/activate",
177            method="POST",
178            response_type=Installation,
179        )
180
181    async def pause(self, installation: str) -> Installation:
182        """
183        Pause an installation
184        Transitions an active installation to the `paused` state, temporarily stopping
185        the agent from receiving events through this installation. The installation and
186        its integration binding are preserved and can be resumed by calling the Activate
187        endpoint.
188        Only installations in the `active` state can be paused. Attempting to pause an
189        installation in any other state returns 422. The caller must have app scope for
190        the app that owns the installation.
191
192        Args:
193            installation: Installation ID (`cin_...`) to pause.
194
195        Returns:
196            The updated installation with `state` set to `"paused"`.
197        """
198        return await self._http.request(
199            f"/api/v1/agent_installations/{installation}/pause",
200            method="POST",
201            response_type=Installation,
202        )
203
204    async def suspend(
205        self, installation: str, input: AgentInstallationSuspendInput
206    ) -> Installation:
207        """
208        Suspend an installation
209        Transitions an installation to the `suspended` state, disabling event processing
210        and signaling that the installation requires administrative attention. Unlike
211        pausing, suspension typically indicates a policy or compliance hold rather than a
212        temporary operational stop.
213        An optional `reason` string can be supplied to record why the installation was
214        suspended; this is stored on the installation and visible when you retrieve it.
215        Only installations that are not already suspended can be suspended sending this
216        request for an already-suspended installation returns 422. The caller must have
217        app scope for the app that owns the installation.
218
219        Args:
220            installation: Installation ID (`cin_...`) to suspend.
221            input: Request body.
222            input.reason: Human-readable explanation for the suspension. Stored on the installation and visible when you retrieve it. Omit to suspend without recording a reason.
223
224        Returns:
225            The updated installation with `state` set to `"suspended"`.
226        """
227        return await self._http.request(
228            f"/api/v1/agent_installations/{installation}/suspend",
229            method="POST",
230            body=input,
231            response_type=Installation,
232        )
233
234
235class AgentInstallationInstallationSourceResource:
236    def __init__(self, http: SyncHttpClient):
237        self._http = http
238
239    def list(self, installation: str) -> InstallationSourceListResponse:
240        """
241        List sources for an installation
242        Returns all sources attached to the specified installation. Sources represent
243        the content units (documents, links, and other typed payloads) that the
244        installation's agent can access as context.
245        This endpoint requires an app-scoped token. Results include sources in all
246        states, including those still being ingested. Inspect each source's `state`
247        field to determine whether its content is ready.
248
249        Args:
250            installation: Installation ID (`cin_...`) whose sources to retrieve.
251
252        Returns:
253            Object containing the list of sources attached to the installation.
254        """
255        return self._http.request(
256            f"/api/v1/agent_installations/{installation}/installation_sources",
257            response_type=InstallationSourceListResponse,
258        )
259
260    def create(
261        self, installation: str, input: AgentInstallationInstallationSourceCreateInput
262    ) -> InstallationSource:
263        """
264        Add a source to an installation
265        Attaches a new source to an existing installation, making its content available
266        to the installation's agent as context. The source type and payload must be valid
267        for the installation's kind; invalid combinations return 422.
268        This endpoint requires an app-scoped token. The installation must belong to an
269        agent accessible by the authenticated caller. Once created, the source begins
270        processing asynchronously its `state` will transition from `"pending"` as
271        ingestion progresses.
272
273        Args:
274            installation: Installation ID (`cin_...`) whose sources to retrieve.
275            input: Request body.
276            input.payload: Type-specific payload for the source. The accepted keys depend on the `type` value; invalid or missing payload fields return 422.
277            input.type: Source type slug identifying the kind of content being attached, e.g. `"file/document"` or `"web/link"`.
278
279        Returns:
280            The newly created installation source.
281        """
282        return self._http.request(
283            f"/api/v1/agent_installations/{installation}/installation_sources",
284            method="POST",
285            body=input,
286            response_type=InstallationSource,
287        )
288
289
290class AgentInstallationResource:
291    def __init__(self, http: SyncHttpClient):
292        self._http = http
293        self.installation_sources = AgentInstallationInstallationSourceResource(http)
294
295    def list(self, *, agent: str | None = None) -> InstallationListResponse:
296        """
297        List installations for an app
298        Returns all installations across every agent in the authenticated app. Use this
299        endpoint to get a global view of all external service and enablement channel
300        connections for the app.
301        Optionally narrow results to a single agent by passing the `agent` parameter. To
302        list installations scoped to a specific agent, you may also use the per-agent List
303        Installations endpoint. Results are returned as an unordered array with no
304        pagination. The caller must have app scope.
305
306        Args:
307            agent: Agent ID (`agt_...`) to filter results by. When omitted, installations for all agents in the app are returned.
308
309        Returns:
310            The list of installations for the app, optionally filtered by agent.
311        """
312        query: dict[str, object] = {}
313        if agent is not None:
314            query["agent"] = agent
315        return self._http.request(
316            "/api/v1/agent_installations",
317            query=query,
318            response_type=InstallationListResponse,
319        )
320
321    def delete(self, installation: str) -> None:
322        """
323        Delete an installation
324        Permanently deletes an installation and severs the connection between the agent
325        and the external service or enablement channel. Any backing context sources
326        associated with the installation are also removed.
327        This action is irreversible. If you want to temporarily stop an installation from
328        processing events, use the Pause or Suspend endpoints instead. The caller must have
329        app scope for the app that owns the installation.
330
331        Args:
332            installation: Installation ID (`cin_...`) to delete.
333
334        Returns:
335            Empty response with HTTP 204 status on successful deletion.
336        """
337        self._http.request(f"/api/v1/agent_installations/{installation}", method="DELETE")
338
339    def get(self, installation: str) -> Installation:
340        """
341        Retrieve an installation
342        Returns a single installation by ID. Use this endpoint to check the current
343        `state`, `kind`, `config`, and bound integration of an installation.
344        The installation must belong to an agent that is accessible within the
345        authenticated app's scope. The caller must have app scope for the app that
346        owns the installation.
347
348        Args:
349            installation: Installation ID (`cin_...`) to retrieve.
350
351        Returns:
352            The requested installation.
353        """
354        return self._http.request(
355            f"/api/v1/agent_installations/{installation}",
356            response_type=Installation,
357        )
358
359    def activate(self, installation: str) -> Installation:
360        """
361        Activate an installation
362        Transitions an installation from a pending or paused state to `active`, enabling
363        the agent to receive events and process work through the installed integration or
364        enablement channel.
365        Activation requires that the installation already has a bound integration (either
366        via `shared_integration` or an inline `integration` created at install time). If no
367        integration is bound, the request returns 422. The caller must have app scope for
368        the app that owns the installation.
369
370        Args:
371            installation: Installation ID (`cin_...`) to activate.
372
373        Returns:
374            The updated installation with `state` reflecting the new active status.
375        """
376        return self._http.request(
377            f"/api/v1/agent_installations/{installation}/activate",
378            method="POST",
379            response_type=Installation,
380        )
381
382    def pause(self, installation: str) -> Installation:
383        """
384        Pause an installation
385        Transitions an active installation to the `paused` state, temporarily stopping
386        the agent from receiving events through this installation. The installation and
387        its integration binding are preserved and can be resumed by calling the Activate
388        endpoint.
389        Only installations in the `active` state can be paused. Attempting to pause an
390        installation in any other state returns 422. The caller must have app scope for
391        the app that owns the installation.
392
393        Args:
394            installation: Installation ID (`cin_...`) to pause.
395
396        Returns:
397            The updated installation with `state` set to `"paused"`.
398        """
399        return self._http.request(
400            f"/api/v1/agent_installations/{installation}/pause",
401            method="POST",
402            response_type=Installation,
403        )
404
405    def suspend(self, installation: str, input: AgentInstallationSuspendInput) -> Installation:
406        """
407        Suspend an installation
408        Transitions an installation to the `suspended` state, disabling event processing
409        and signaling that the installation requires administrative attention. Unlike
410        pausing, suspension typically indicates a policy or compliance hold rather than a
411        temporary operational stop.
412        An optional `reason` string can be supplied to record why the installation was
413        suspended; this is stored on the installation and visible when you retrieve it.
414        Only installations that are not already suspended can be suspended sending this
415        request for an already-suspended installation returns 422. The caller must have
416        app scope for the app that owns the installation.
417
418        Args:
419            installation: Installation ID (`cin_...`) to suspend.
420            input: Request body.
421            input.reason: Human-readable explanation for the suspension. Stored on the installation and visible when you retrieve it. Omit to suspend without recording a reason.
422
423        Returns:
424            The updated installation with `state` set to `"suspended"`.
425        """
426        return self._http.request(
427            f"/api/v1/agent_installations/{installation}/suspend",
428            method="POST",
429            body=input,
430            response_type=Installation,
431        )
class AgentInstallationInstallationSourceCreateInput(typing.TypedDict):
19class AgentInstallationInstallationSourceCreateInput(TypedDict):
20    "Add a source to an installation"
21
22    payload: dict[str, Any]
23    "Type-specific payload for the source. The accepted keys depend on the `type` value; invalid or missing payload fields return 422."
24    type: str
25    'Source type slug identifying the kind of content being attached, e.g. `"file/document"` or `"web/link"`.'

Add a source to an installation

payload: dict[str, typing.Any]

Type-specific payload for the source. The accepted keys depend on the type value; invalid or missing payload fields return 422.

type: str

Source type slug identifying the kind of content being attached, e.g. "file/document" or "web/link".

class AgentInstallationSuspendInput(typing.TypedDict):
28class AgentInstallationSuspendInput(TypedDict, total=False):
29    "Suspend an installation"
30
31    reason: str | None
32    "Human-readable explanation for the suspension. Stored on the installation and visible when you retrieve it. Omit to suspend without recording a reason."

Suspend an installation

reason: str | None

Human-readable explanation for the suspension. Stored on the installation and visible when you retrieve it. Omit to suspend without recording a reason.

class AsyncAgentInstallationInstallationSourceResource:
35class AsyncAgentInstallationInstallationSourceResource:
36    def __init__(self, http: HttpClient):
37        self._http = http
38
39    async def list(self, installation: str) -> InstallationSourceListResponse:
40        """
41        List sources for an installation
42        Returns all sources attached to the specified installation. Sources represent
43        the content units (documents, links, and other typed payloads) that the
44        installation's agent can access as context.
45        This endpoint requires an app-scoped token. Results include sources in all
46        states, including those still being ingested. Inspect each source's `state`
47        field to determine whether its content is ready.
48
49        Args:
50            installation: Installation ID (`cin_...`) whose sources to retrieve.
51
52        Returns:
53            Object containing the list of sources attached to the installation.
54        """
55        return await self._http.request(
56            f"/api/v1/agent_installations/{installation}/installation_sources",
57            response_type=InstallationSourceListResponse,
58        )
59
60    async def create(
61        self, installation: str, input: AgentInstallationInstallationSourceCreateInput
62    ) -> InstallationSource:
63        """
64        Add a source to an installation
65        Attaches a new source to an existing installation, making its content available
66        to the installation's agent as context. The source type and payload must be valid
67        for the installation's kind; invalid combinations return 422.
68        This endpoint requires an app-scoped token. The installation must belong to an
69        agent accessible by the authenticated caller. Once created, the source begins
70        processing asynchronously its `state` will transition from `"pending"` as
71        ingestion progresses.
72
73        Args:
74            installation: Installation ID (`cin_...`) whose sources to retrieve.
75            input: Request body.
76            input.payload: Type-specific payload for the source. The accepted keys depend on the `type` value; invalid or missing payload fields return 422.
77            input.type: Source type slug identifying the kind of content being attached, e.g. `"file/document"` or `"web/link"`.
78
79        Returns:
80            The newly created installation source.
81        """
82        return await self._http.request(
83            f"/api/v1/agent_installations/{installation}/installation_sources",
84            method="POST",
85            body=input,
86            response_type=InstallationSource,
87        )
AsyncAgentInstallationInstallationSourceResource(http: archastro.platform.runtime.http_client.HttpClient)
36    def __init__(self, http: HttpClient):
37        self._http = http
async def list( self, installation: str) -> archastro.platform.types.common.InstallationSourceListResponse:
39    async def list(self, installation: str) -> InstallationSourceListResponse:
40        """
41        List sources for an installation
42        Returns all sources attached to the specified installation. Sources represent
43        the content units (documents, links, and other typed payloads) that the
44        installation's agent can access as context.
45        This endpoint requires an app-scoped token. Results include sources in all
46        states, including those still being ingested. Inspect each source's `state`
47        field to determine whether its content is ready.
48
49        Args:
50            installation: Installation ID (`cin_...`) whose sources to retrieve.
51
52        Returns:
53            Object containing the list of sources attached to the installation.
54        """
55        return await self._http.request(
56            f"/api/v1/agent_installations/{installation}/installation_sources",
57            response_type=InstallationSourceListResponse,
58        )

List sources for an installation Returns all sources attached to the specified installation. Sources represent the content units (documents, links, and other typed payloads) that the installation's agent can access as context. This endpoint requires an app-scoped token. Results include sources in all states, including those still being ingested. Inspect each source's state field to determine whether its content is ready.

Arguments:
  • installation: Installation ID (cin_...) whose sources to retrieve.
Returns:

Object containing the list of sources attached to the installation.

async def create( self, installation: str, input: AgentInstallationInstallationSourceCreateInput) -> archastro.platform.types.common.InstallationSource:
60    async def create(
61        self, installation: str, input: AgentInstallationInstallationSourceCreateInput
62    ) -> InstallationSource:
63        """
64        Add a source to an installation
65        Attaches a new source to an existing installation, making its content available
66        to the installation's agent as context. The source type and payload must be valid
67        for the installation's kind; invalid combinations return 422.
68        This endpoint requires an app-scoped token. The installation must belong to an
69        agent accessible by the authenticated caller. Once created, the source begins
70        processing asynchronously its `state` will transition from `"pending"` as
71        ingestion progresses.
72
73        Args:
74            installation: Installation ID (`cin_...`) whose sources to retrieve.
75            input: Request body.
76            input.payload: Type-specific payload for the source. The accepted keys depend on the `type` value; invalid or missing payload fields return 422.
77            input.type: Source type slug identifying the kind of content being attached, e.g. `"file/document"` or `"web/link"`.
78
79        Returns:
80            The newly created installation source.
81        """
82        return await self._http.request(
83            f"/api/v1/agent_installations/{installation}/installation_sources",
84            method="POST",
85            body=input,
86            response_type=InstallationSource,
87        )

Add a source to an installation Attaches a new source to an existing installation, making its content available to the installation's agent as context. The source type and payload must be valid for the installation's kind; invalid combinations return 422. This endpoint requires an app-scoped token. The installation must belong to an agent accessible by the authenticated caller. Once created, the source begins processing asynchronously its state will transition from "pending" as ingestion progresses.

Arguments:
  • installation: Installation ID (cin_...) whose sources to retrieve.
  • input: Request body.
  • input.payload: Type-specific payload for the source. The accepted keys depend on the type value; invalid or missing payload fields return 422.
  • input.type: Source type slug identifying the kind of content being attached, e.g. "file/document" or "web/link".
Returns:

The newly created installation source.

class AsyncAgentInstallationResource:
 90class AsyncAgentInstallationResource:
 91    def __init__(self, http: HttpClient):
 92        self._http = http
 93        self.installation_sources = AsyncAgentInstallationInstallationSourceResource(http)
 94
 95    async def list(self, *, agent: str | None = None) -> InstallationListResponse:
 96        """
 97        List installations for an app
 98        Returns all installations across every agent in the authenticated app. Use this
 99        endpoint to get a global view of all external service and enablement channel
100        connections for the app.
101        Optionally narrow results to a single agent by passing the `agent` parameter. To
102        list installations scoped to a specific agent, you may also use the per-agent List
103        Installations endpoint. Results are returned as an unordered array with no
104        pagination. The caller must have app scope.
105
106        Args:
107            agent: Agent ID (`agt_...`) to filter results by. When omitted, installations for all agents in the app are returned.
108
109        Returns:
110            The list of installations for the app, optionally filtered by agent.
111        """
112        query: dict[str, object] = {}
113        if agent is not None:
114            query["agent"] = agent
115        return await self._http.request(
116            "/api/v1/agent_installations",
117            query=query,
118            response_type=InstallationListResponse,
119        )
120
121    async def delete(self, installation: str) -> None:
122        """
123        Delete an installation
124        Permanently deletes an installation and severs the connection between the agent
125        and the external service or enablement channel. Any backing context sources
126        associated with the installation are also removed.
127        This action is irreversible. If you want to temporarily stop an installation from
128        processing events, use the Pause or Suspend endpoints instead. The caller must have
129        app scope for the app that owns the installation.
130
131        Args:
132            installation: Installation ID (`cin_...`) to delete.
133
134        Returns:
135            Empty response with HTTP 204 status on successful deletion.
136        """
137        await self._http.request(f"/api/v1/agent_installations/{installation}", method="DELETE")
138
139    async def get(self, installation: str) -> Installation:
140        """
141        Retrieve an installation
142        Returns a single installation by ID. Use this endpoint to check the current
143        `state`, `kind`, `config`, and bound integration of an installation.
144        The installation must belong to an agent that is accessible within the
145        authenticated app's scope. The caller must have app scope for the app that
146        owns the installation.
147
148        Args:
149            installation: Installation ID (`cin_...`) to retrieve.
150
151        Returns:
152            The requested installation.
153        """
154        return await self._http.request(
155            f"/api/v1/agent_installations/{installation}",
156            response_type=Installation,
157        )
158
159    async def activate(self, installation: str) -> Installation:
160        """
161        Activate an installation
162        Transitions an installation from a pending or paused state to `active`, enabling
163        the agent to receive events and process work through the installed integration or
164        enablement channel.
165        Activation requires that the installation already has a bound integration (either
166        via `shared_integration` or an inline `integration` created at install time). If no
167        integration is bound, the request returns 422. The caller must have app scope for
168        the app that owns the installation.
169
170        Args:
171            installation: Installation ID (`cin_...`) to activate.
172
173        Returns:
174            The updated installation with `state` reflecting the new active status.
175        """
176        return await self._http.request(
177            f"/api/v1/agent_installations/{installation}/activate",
178            method="POST",
179            response_type=Installation,
180        )
181
182    async def pause(self, installation: str) -> Installation:
183        """
184        Pause an installation
185        Transitions an active installation to the `paused` state, temporarily stopping
186        the agent from receiving events through this installation. The installation and
187        its integration binding are preserved and can be resumed by calling the Activate
188        endpoint.
189        Only installations in the `active` state can be paused. Attempting to pause an
190        installation in any other state returns 422. The caller must have app scope for
191        the app that owns the installation.
192
193        Args:
194            installation: Installation ID (`cin_...`) to pause.
195
196        Returns:
197            The updated installation with `state` set to `"paused"`.
198        """
199        return await self._http.request(
200            f"/api/v1/agent_installations/{installation}/pause",
201            method="POST",
202            response_type=Installation,
203        )
204
205    async def suspend(
206        self, installation: str, input: AgentInstallationSuspendInput
207    ) -> Installation:
208        """
209        Suspend an installation
210        Transitions an installation to the `suspended` state, disabling event processing
211        and signaling that the installation requires administrative attention. Unlike
212        pausing, suspension typically indicates a policy or compliance hold rather than a
213        temporary operational stop.
214        An optional `reason` string can be supplied to record why the installation was
215        suspended; this is stored on the installation and visible when you retrieve it.
216        Only installations that are not already suspended can be suspended sending this
217        request for an already-suspended installation returns 422. The caller must have
218        app scope for the app that owns the installation.
219
220        Args:
221            installation: Installation ID (`cin_...`) to suspend.
222            input: Request body.
223            input.reason: Human-readable explanation for the suspension. Stored on the installation and visible when you retrieve it. Omit to suspend without recording a reason.
224
225        Returns:
226            The updated installation with `state` set to `"suspended"`.
227        """
228        return await self._http.request(
229            f"/api/v1/agent_installations/{installation}/suspend",
230            method="POST",
231            body=input,
232            response_type=Installation,
233        )
AsyncAgentInstallationResource(http: archastro.platform.runtime.http_client.HttpClient)
91    def __init__(self, http: HttpClient):
92        self._http = http
93        self.installation_sources = AsyncAgentInstallationInstallationSourceResource(http)
installation_sources
async def list( self, *, agent: str | None = None) -> archastro.platform.types.common.InstallationListResponse:
 95    async def list(self, *, agent: str | None = None) -> InstallationListResponse:
 96        """
 97        List installations for an app
 98        Returns all installations across every agent in the authenticated app. Use this
 99        endpoint to get a global view of all external service and enablement channel
100        connections for the app.
101        Optionally narrow results to a single agent by passing the `agent` parameter. To
102        list installations scoped to a specific agent, you may also use the per-agent List
103        Installations endpoint. Results are returned as an unordered array with no
104        pagination. The caller must have app scope.
105
106        Args:
107            agent: Agent ID (`agt_...`) to filter results by. When omitted, installations for all agents in the app are returned.
108
109        Returns:
110            The list of installations for the app, optionally filtered by agent.
111        """
112        query: dict[str, object] = {}
113        if agent is not None:
114            query["agent"] = agent
115        return await self._http.request(
116            "/api/v1/agent_installations",
117            query=query,
118            response_type=InstallationListResponse,
119        )

List installations for an app Returns all installations across every agent in the authenticated app. Use this endpoint to get a global view of all external service and enablement channel connections for the app. Optionally narrow results to a single agent by passing the agent parameter. To list installations scoped to a specific agent, you may also use the per-agent List Installations endpoint. Results are returned as an unordered array with no pagination. The caller must have app scope.

Arguments:
  • agent: Agent ID (agt_...) to filter results by. When omitted, installations for all agents in the app are returned.
Returns:

The list of installations for the app, optionally filtered by agent.

async def delete(self, installation: str) -> None:
121    async def delete(self, installation: str) -> None:
122        """
123        Delete an installation
124        Permanently deletes an installation and severs the connection between the agent
125        and the external service or enablement channel. Any backing context sources
126        associated with the installation are also removed.
127        This action is irreversible. If you want to temporarily stop an installation from
128        processing events, use the Pause or Suspend endpoints instead. The caller must have
129        app scope for the app that owns the installation.
130
131        Args:
132            installation: Installation ID (`cin_...`) to delete.
133
134        Returns:
135            Empty response with HTTP 204 status on successful deletion.
136        """
137        await self._http.request(f"/api/v1/agent_installations/{installation}", method="DELETE")

Delete an installation Permanently deletes an installation and severs the connection between the agent and the external service or enablement channel. Any backing context sources associated with the installation are also removed. This action is irreversible. If you want to temporarily stop an installation from processing events, use the Pause or Suspend endpoints instead. The caller must have app scope for the app that owns the installation.

Arguments:
  • installation: Installation ID (cin_...) to delete.
Returns:

Empty response with HTTP 204 status on successful deletion.

async def get(self, installation: str) -> archastro.platform.types.common.Installation:
139    async def get(self, installation: str) -> Installation:
140        """
141        Retrieve an installation
142        Returns a single installation by ID. Use this endpoint to check the current
143        `state`, `kind`, `config`, and bound integration of an installation.
144        The installation must belong to an agent that is accessible within the
145        authenticated app's scope. The caller must have app scope for the app that
146        owns the installation.
147
148        Args:
149            installation: Installation ID (`cin_...`) to retrieve.
150
151        Returns:
152            The requested installation.
153        """
154        return await self._http.request(
155            f"/api/v1/agent_installations/{installation}",
156            response_type=Installation,
157        )

Retrieve an installation Returns a single installation by ID. Use this endpoint to check the current state, kind, config, and bound integration of an installation. The installation must belong to an agent that is accessible within the authenticated app's scope. The caller must have app scope for the app that owns the installation.

Arguments:
  • installation: Installation ID (cin_...) to retrieve.
Returns:

The requested installation.

async def activate(self, installation: str) -> archastro.platform.types.common.Installation:
159    async def activate(self, installation: str) -> Installation:
160        """
161        Activate an installation
162        Transitions an installation from a pending or paused state to `active`, enabling
163        the agent to receive events and process work through the installed integration or
164        enablement channel.
165        Activation requires that the installation already has a bound integration (either
166        via `shared_integration` or an inline `integration` created at install time). If no
167        integration is bound, the request returns 422. The caller must have app scope for
168        the app that owns the installation.
169
170        Args:
171            installation: Installation ID (`cin_...`) to activate.
172
173        Returns:
174            The updated installation with `state` reflecting the new active status.
175        """
176        return await self._http.request(
177            f"/api/v1/agent_installations/{installation}/activate",
178            method="POST",
179            response_type=Installation,
180        )

Activate an installation Transitions an installation from a pending or paused state to active, enabling the agent to receive events and process work through the installed integration or enablement channel. Activation requires that the installation already has a bound integration (either via shared_integration or an inline integration created at install time). If no integration is bound, the request returns 422. The caller must have app scope for the app that owns the installation.

Arguments:
  • installation: Installation ID (cin_...) to activate.
Returns:

The updated installation with state reflecting the new active status.

async def pause(self, installation: str) -> archastro.platform.types.common.Installation:
182    async def pause(self, installation: str) -> Installation:
183        """
184        Pause an installation
185        Transitions an active installation to the `paused` state, temporarily stopping
186        the agent from receiving events through this installation. The installation and
187        its integration binding are preserved and can be resumed by calling the Activate
188        endpoint.
189        Only installations in the `active` state can be paused. Attempting to pause an
190        installation in any other state returns 422. The caller must have app scope for
191        the app that owns the installation.
192
193        Args:
194            installation: Installation ID (`cin_...`) to pause.
195
196        Returns:
197            The updated installation with `state` set to `"paused"`.
198        """
199        return await self._http.request(
200            f"/api/v1/agent_installations/{installation}/pause",
201            method="POST",
202            response_type=Installation,
203        )

Pause an installation Transitions an active installation to the paused state, temporarily stopping the agent from receiving events through this installation. The installation and its integration binding are preserved and can be resumed by calling the Activate endpoint. Only installations in the active state can be paused. Attempting to pause an installation in any other state returns 422. The caller must have app scope for the app that owns the installation.

Arguments:
  • installation: Installation ID (cin_...) to pause.
Returns:

The updated installation with state set to "paused".

async def suspend( self, installation: str, input: AgentInstallationSuspendInput) -> archastro.platform.types.common.Installation:
205    async def suspend(
206        self, installation: str, input: AgentInstallationSuspendInput
207    ) -> Installation:
208        """
209        Suspend an installation
210        Transitions an installation to the `suspended` state, disabling event processing
211        and signaling that the installation requires administrative attention. Unlike
212        pausing, suspension typically indicates a policy or compliance hold rather than a
213        temporary operational stop.
214        An optional `reason` string can be supplied to record why the installation was
215        suspended; this is stored on the installation and visible when you retrieve it.
216        Only installations that are not already suspended can be suspended sending this
217        request for an already-suspended installation returns 422. The caller must have
218        app scope for the app that owns the installation.
219
220        Args:
221            installation: Installation ID (`cin_...`) to suspend.
222            input: Request body.
223            input.reason: Human-readable explanation for the suspension. Stored on the installation and visible when you retrieve it. Omit to suspend without recording a reason.
224
225        Returns:
226            The updated installation with `state` set to `"suspended"`.
227        """
228        return await self._http.request(
229            f"/api/v1/agent_installations/{installation}/suspend",
230            method="POST",
231            body=input,
232            response_type=Installation,
233        )

Suspend an installation Transitions an installation to the suspended state, disabling event processing and signaling that the installation requires administrative attention. Unlike pausing, suspension typically indicates a policy or compliance hold rather than a temporary operational stop. An optional reason string can be supplied to record why the installation was suspended; this is stored on the installation and visible when you retrieve it. Only installations that are not already suspended can be suspended sending this request for an already-suspended installation returns 422. The caller must have app scope for the app that owns the installation.

Arguments:
  • installation: Installation ID (cin_...) to suspend.
  • input: Request body.
  • input.reason: Human-readable explanation for the suspension. Stored on the installation and visible when you retrieve it. Omit to suspend without recording a reason.
Returns:

The updated installation with state set to "suspended".

class AgentInstallationInstallationSourceResource:
236class AgentInstallationInstallationSourceResource:
237    def __init__(self, http: SyncHttpClient):
238        self._http = http
239
240    def list(self, installation: str) -> InstallationSourceListResponse:
241        """
242        List sources for an installation
243        Returns all sources attached to the specified installation. Sources represent
244        the content units (documents, links, and other typed payloads) that the
245        installation's agent can access as context.
246        This endpoint requires an app-scoped token. Results include sources in all
247        states, including those still being ingested. Inspect each source's `state`
248        field to determine whether its content is ready.
249
250        Args:
251            installation: Installation ID (`cin_...`) whose sources to retrieve.
252
253        Returns:
254            Object containing the list of sources attached to the installation.
255        """
256        return self._http.request(
257            f"/api/v1/agent_installations/{installation}/installation_sources",
258            response_type=InstallationSourceListResponse,
259        )
260
261    def create(
262        self, installation: str, input: AgentInstallationInstallationSourceCreateInput
263    ) -> InstallationSource:
264        """
265        Add a source to an installation
266        Attaches a new source to an existing installation, making its content available
267        to the installation's agent as context. The source type and payload must be valid
268        for the installation's kind; invalid combinations return 422.
269        This endpoint requires an app-scoped token. The installation must belong to an
270        agent accessible by the authenticated caller. Once created, the source begins
271        processing asynchronously its `state` will transition from `"pending"` as
272        ingestion progresses.
273
274        Args:
275            installation: Installation ID (`cin_...`) whose sources to retrieve.
276            input: Request body.
277            input.payload: Type-specific payload for the source. The accepted keys depend on the `type` value; invalid or missing payload fields return 422.
278            input.type: Source type slug identifying the kind of content being attached, e.g. `"file/document"` or `"web/link"`.
279
280        Returns:
281            The newly created installation source.
282        """
283        return self._http.request(
284            f"/api/v1/agent_installations/{installation}/installation_sources",
285            method="POST",
286            body=input,
287            response_type=InstallationSource,
288        )
AgentInstallationInstallationSourceResource(http: archastro.platform.runtime.http_client.SyncHttpClient)
237    def __init__(self, http: SyncHttpClient):
238        self._http = http
def list( self, installation: str) -> archastro.platform.types.common.InstallationSourceListResponse:
240    def list(self, installation: str) -> InstallationSourceListResponse:
241        """
242        List sources for an installation
243        Returns all sources attached to the specified installation. Sources represent
244        the content units (documents, links, and other typed payloads) that the
245        installation's agent can access as context.
246        This endpoint requires an app-scoped token. Results include sources in all
247        states, including those still being ingested. Inspect each source's `state`
248        field to determine whether its content is ready.
249
250        Args:
251            installation: Installation ID (`cin_...`) whose sources to retrieve.
252
253        Returns:
254            Object containing the list of sources attached to the installation.
255        """
256        return self._http.request(
257            f"/api/v1/agent_installations/{installation}/installation_sources",
258            response_type=InstallationSourceListResponse,
259        )

List sources for an installation Returns all sources attached to the specified installation. Sources represent the content units (documents, links, and other typed payloads) that the installation's agent can access as context. This endpoint requires an app-scoped token. Results include sources in all states, including those still being ingested. Inspect each source's state field to determine whether its content is ready.

Arguments:
  • installation: Installation ID (cin_...) whose sources to retrieve.
Returns:

Object containing the list of sources attached to the installation.

def create( self, installation: str, input: AgentInstallationInstallationSourceCreateInput) -> archastro.platform.types.common.InstallationSource:
261    def create(
262        self, installation: str, input: AgentInstallationInstallationSourceCreateInput
263    ) -> InstallationSource:
264        """
265        Add a source to an installation
266        Attaches a new source to an existing installation, making its content available
267        to the installation's agent as context. The source type and payload must be valid
268        for the installation's kind; invalid combinations return 422.
269        This endpoint requires an app-scoped token. The installation must belong to an
270        agent accessible by the authenticated caller. Once created, the source begins
271        processing asynchronously its `state` will transition from `"pending"` as
272        ingestion progresses.
273
274        Args:
275            installation: Installation ID (`cin_...`) whose sources to retrieve.
276            input: Request body.
277            input.payload: Type-specific payload for the source. The accepted keys depend on the `type` value; invalid or missing payload fields return 422.
278            input.type: Source type slug identifying the kind of content being attached, e.g. `"file/document"` or `"web/link"`.
279
280        Returns:
281            The newly created installation source.
282        """
283        return self._http.request(
284            f"/api/v1/agent_installations/{installation}/installation_sources",
285            method="POST",
286            body=input,
287            response_type=InstallationSource,
288        )

Add a source to an installation Attaches a new source to an existing installation, making its content available to the installation's agent as context. The source type and payload must be valid for the installation's kind; invalid combinations return 422. This endpoint requires an app-scoped token. The installation must belong to an agent accessible by the authenticated caller. Once created, the source begins processing asynchronously its state will transition from "pending" as ingestion progresses.

Arguments:
  • installation: Installation ID (cin_...) whose sources to retrieve.
  • input: Request body.
  • input.payload: Type-specific payload for the source. The accepted keys depend on the type value; invalid or missing payload fields return 422.
  • input.type: Source type slug identifying the kind of content being attached, e.g. "file/document" or "web/link".
Returns:

The newly created installation source.

class AgentInstallationResource:
291class AgentInstallationResource:
292    def __init__(self, http: SyncHttpClient):
293        self._http = http
294        self.installation_sources = AgentInstallationInstallationSourceResource(http)
295
296    def list(self, *, agent: str | None = None) -> InstallationListResponse:
297        """
298        List installations for an app
299        Returns all installations across every agent in the authenticated app. Use this
300        endpoint to get a global view of all external service and enablement channel
301        connections for the app.
302        Optionally narrow results to a single agent by passing the `agent` parameter. To
303        list installations scoped to a specific agent, you may also use the per-agent List
304        Installations endpoint. Results are returned as an unordered array with no
305        pagination. The caller must have app scope.
306
307        Args:
308            agent: Agent ID (`agt_...`) to filter results by. When omitted, installations for all agents in the app are returned.
309
310        Returns:
311            The list of installations for the app, optionally filtered by agent.
312        """
313        query: dict[str, object] = {}
314        if agent is not None:
315            query["agent"] = agent
316        return self._http.request(
317            "/api/v1/agent_installations",
318            query=query,
319            response_type=InstallationListResponse,
320        )
321
322    def delete(self, installation: str) -> None:
323        """
324        Delete an installation
325        Permanently deletes an installation and severs the connection between the agent
326        and the external service or enablement channel. Any backing context sources
327        associated with the installation are also removed.
328        This action is irreversible. If you want to temporarily stop an installation from
329        processing events, use the Pause or Suspend endpoints instead. The caller must have
330        app scope for the app that owns the installation.
331
332        Args:
333            installation: Installation ID (`cin_...`) to delete.
334
335        Returns:
336            Empty response with HTTP 204 status on successful deletion.
337        """
338        self._http.request(f"/api/v1/agent_installations/{installation}", method="DELETE")
339
340    def get(self, installation: str) -> Installation:
341        """
342        Retrieve an installation
343        Returns a single installation by ID. Use this endpoint to check the current
344        `state`, `kind`, `config`, and bound integration of an installation.
345        The installation must belong to an agent that is accessible within the
346        authenticated app's scope. The caller must have app scope for the app that
347        owns the installation.
348
349        Args:
350            installation: Installation ID (`cin_...`) to retrieve.
351
352        Returns:
353            The requested installation.
354        """
355        return self._http.request(
356            f"/api/v1/agent_installations/{installation}",
357            response_type=Installation,
358        )
359
360    def activate(self, installation: str) -> Installation:
361        """
362        Activate an installation
363        Transitions an installation from a pending or paused state to `active`, enabling
364        the agent to receive events and process work through the installed integration or
365        enablement channel.
366        Activation requires that the installation already has a bound integration (either
367        via `shared_integration` or an inline `integration` created at install time). If no
368        integration is bound, the request returns 422. The caller must have app scope for
369        the app that owns the installation.
370
371        Args:
372            installation: Installation ID (`cin_...`) to activate.
373
374        Returns:
375            The updated installation with `state` reflecting the new active status.
376        """
377        return self._http.request(
378            f"/api/v1/agent_installations/{installation}/activate",
379            method="POST",
380            response_type=Installation,
381        )
382
383    def pause(self, installation: str) -> Installation:
384        """
385        Pause an installation
386        Transitions an active installation to the `paused` state, temporarily stopping
387        the agent from receiving events through this installation. The installation and
388        its integration binding are preserved and can be resumed by calling the Activate
389        endpoint.
390        Only installations in the `active` state can be paused. Attempting to pause an
391        installation in any other state returns 422. The caller must have app scope for
392        the app that owns the installation.
393
394        Args:
395            installation: Installation ID (`cin_...`) to pause.
396
397        Returns:
398            The updated installation with `state` set to `"paused"`.
399        """
400        return self._http.request(
401            f"/api/v1/agent_installations/{installation}/pause",
402            method="POST",
403            response_type=Installation,
404        )
405
406    def suspend(self, installation: str, input: AgentInstallationSuspendInput) -> Installation:
407        """
408        Suspend an installation
409        Transitions an installation to the `suspended` state, disabling event processing
410        and signaling that the installation requires administrative attention. Unlike
411        pausing, suspension typically indicates a policy or compliance hold rather than a
412        temporary operational stop.
413        An optional `reason` string can be supplied to record why the installation was
414        suspended; this is stored on the installation and visible when you retrieve it.
415        Only installations that are not already suspended can be suspended sending this
416        request for an already-suspended installation returns 422. The caller must have
417        app scope for the app that owns the installation.
418
419        Args:
420            installation: Installation ID (`cin_...`) to suspend.
421            input: Request body.
422            input.reason: Human-readable explanation for the suspension. Stored on the installation and visible when you retrieve it. Omit to suspend without recording a reason.
423
424        Returns:
425            The updated installation with `state` set to `"suspended"`.
426        """
427        return self._http.request(
428            f"/api/v1/agent_installations/{installation}/suspend",
429            method="POST",
430            body=input,
431            response_type=Installation,
432        )
AgentInstallationResource(http: archastro.platform.runtime.http_client.SyncHttpClient)
292    def __init__(self, http: SyncHttpClient):
293        self._http = http
294        self.installation_sources = AgentInstallationInstallationSourceResource(http)
installation_sources
def list( self, *, agent: str | None = None) -> archastro.platform.types.common.InstallationListResponse:
296    def list(self, *, agent: str | None = None) -> InstallationListResponse:
297        """
298        List installations for an app
299        Returns all installations across every agent in the authenticated app. Use this
300        endpoint to get a global view of all external service and enablement channel
301        connections for the app.
302        Optionally narrow results to a single agent by passing the `agent` parameter. To
303        list installations scoped to a specific agent, you may also use the per-agent List
304        Installations endpoint. Results are returned as an unordered array with no
305        pagination. The caller must have app scope.
306
307        Args:
308            agent: Agent ID (`agt_...`) to filter results by. When omitted, installations for all agents in the app are returned.
309
310        Returns:
311            The list of installations for the app, optionally filtered by agent.
312        """
313        query: dict[str, object] = {}
314        if agent is not None:
315            query["agent"] = agent
316        return self._http.request(
317            "/api/v1/agent_installations",
318            query=query,
319            response_type=InstallationListResponse,
320        )

List installations for an app Returns all installations across every agent in the authenticated app. Use this endpoint to get a global view of all external service and enablement channel connections for the app. Optionally narrow results to a single agent by passing the agent parameter. To list installations scoped to a specific agent, you may also use the per-agent List Installations endpoint. Results are returned as an unordered array with no pagination. The caller must have app scope.

Arguments:
  • agent: Agent ID (agt_...) to filter results by. When omitted, installations for all agents in the app are returned.
Returns:

The list of installations for the app, optionally filtered by agent.

def delete(self, installation: str) -> None:
322    def delete(self, installation: str) -> None:
323        """
324        Delete an installation
325        Permanently deletes an installation and severs the connection between the agent
326        and the external service or enablement channel. Any backing context sources
327        associated with the installation are also removed.
328        This action is irreversible. If you want to temporarily stop an installation from
329        processing events, use the Pause or Suspend endpoints instead. The caller must have
330        app scope for the app that owns the installation.
331
332        Args:
333            installation: Installation ID (`cin_...`) to delete.
334
335        Returns:
336            Empty response with HTTP 204 status on successful deletion.
337        """
338        self._http.request(f"/api/v1/agent_installations/{installation}", method="DELETE")

Delete an installation Permanently deletes an installation and severs the connection between the agent and the external service or enablement channel. Any backing context sources associated with the installation are also removed. This action is irreversible. If you want to temporarily stop an installation from processing events, use the Pause or Suspend endpoints instead. The caller must have app scope for the app that owns the installation.

Arguments:
  • installation: Installation ID (cin_...) to delete.
Returns:

Empty response with HTTP 204 status on successful deletion.

def get(self, installation: str) -> archastro.platform.types.common.Installation:
340    def get(self, installation: str) -> Installation:
341        """
342        Retrieve an installation
343        Returns a single installation by ID. Use this endpoint to check the current
344        `state`, `kind`, `config`, and bound integration of an installation.
345        The installation must belong to an agent that is accessible within the
346        authenticated app's scope. The caller must have app scope for the app that
347        owns the installation.
348
349        Args:
350            installation: Installation ID (`cin_...`) to retrieve.
351
352        Returns:
353            The requested installation.
354        """
355        return self._http.request(
356            f"/api/v1/agent_installations/{installation}",
357            response_type=Installation,
358        )

Retrieve an installation Returns a single installation by ID. Use this endpoint to check the current state, kind, config, and bound integration of an installation. The installation must belong to an agent that is accessible within the authenticated app's scope. The caller must have app scope for the app that owns the installation.

Arguments:
  • installation: Installation ID (cin_...) to retrieve.
Returns:

The requested installation.

def activate(self, installation: str) -> archastro.platform.types.common.Installation:
360    def activate(self, installation: str) -> Installation:
361        """
362        Activate an installation
363        Transitions an installation from a pending or paused state to `active`, enabling
364        the agent to receive events and process work through the installed integration or
365        enablement channel.
366        Activation requires that the installation already has a bound integration (either
367        via `shared_integration` or an inline `integration` created at install time). If no
368        integration is bound, the request returns 422. The caller must have app scope for
369        the app that owns the installation.
370
371        Args:
372            installation: Installation ID (`cin_...`) to activate.
373
374        Returns:
375            The updated installation with `state` reflecting the new active status.
376        """
377        return self._http.request(
378            f"/api/v1/agent_installations/{installation}/activate",
379            method="POST",
380            response_type=Installation,
381        )

Activate an installation Transitions an installation from a pending or paused state to active, enabling the agent to receive events and process work through the installed integration or enablement channel. Activation requires that the installation already has a bound integration (either via shared_integration or an inline integration created at install time). If no integration is bound, the request returns 422. The caller must have app scope for the app that owns the installation.

Arguments:
  • installation: Installation ID (cin_...) to activate.
Returns:

The updated installation with state reflecting the new active status.

def pause(self, installation: str) -> archastro.platform.types.common.Installation:
383    def pause(self, installation: str) -> Installation:
384        """
385        Pause an installation
386        Transitions an active installation to the `paused` state, temporarily stopping
387        the agent from receiving events through this installation. The installation and
388        its integration binding are preserved and can be resumed by calling the Activate
389        endpoint.
390        Only installations in the `active` state can be paused. Attempting to pause an
391        installation in any other state returns 422. The caller must have app scope for
392        the app that owns the installation.
393
394        Args:
395            installation: Installation ID (`cin_...`) to pause.
396
397        Returns:
398            The updated installation with `state` set to `"paused"`.
399        """
400        return self._http.request(
401            f"/api/v1/agent_installations/{installation}/pause",
402            method="POST",
403            response_type=Installation,
404        )

Pause an installation Transitions an active installation to the paused state, temporarily stopping the agent from receiving events through this installation. The installation and its integration binding are preserved and can be resumed by calling the Activate endpoint. Only installations in the active state can be paused. Attempting to pause an installation in any other state returns 422. The caller must have app scope for the app that owns the installation.

Arguments:
  • installation: Installation ID (cin_...) to pause.
Returns:

The updated installation with state set to "paused".

def suspend( self, installation: str, input: AgentInstallationSuspendInput) -> archastro.platform.types.common.Installation:
406    def suspend(self, installation: str, input: AgentInstallationSuspendInput) -> Installation:
407        """
408        Suspend an installation
409        Transitions an installation to the `suspended` state, disabling event processing
410        and signaling that the installation requires administrative attention. Unlike
411        pausing, suspension typically indicates a policy or compliance hold rather than a
412        temporary operational stop.
413        An optional `reason` string can be supplied to record why the installation was
414        suspended; this is stored on the installation and visible when you retrieve it.
415        Only installations that are not already suspended can be suspended sending this
416        request for an already-suspended installation returns 422. The caller must have
417        app scope for the app that owns the installation.
418
419        Args:
420            installation: Installation ID (`cin_...`) to suspend.
421            input: Request body.
422            input.reason: Human-readable explanation for the suspension. Stored on the installation and visible when you retrieve it. Omit to suspend without recording a reason.
423
424        Returns:
425            The updated installation with `state` set to `"suspended"`.
426        """
427        return self._http.request(
428            f"/api/v1/agent_installations/{installation}/suspend",
429            method="POST",
430            body=input,
431            response_type=Installation,
432        )

Suspend an installation Transitions an installation to the suspended state, disabling event processing and signaling that the installation requires administrative attention. Unlike pausing, suspension typically indicates a policy or compliance hold rather than a temporary operational stop. An optional reason string can be supplied to record why the installation was suspended; this is stored on the installation and visible when you retrieve it. Only installations that are not already suspended can be suspended sending this request for an already-suspended installation returns 422. The caller must have app scope for the app that owns the installation.

Arguments:
  • installation: Installation ID (cin_...) to suspend.
  • input: Request body.
  • input.reason: Human-readable explanation for the suspension. Stored on the installation and visible when you retrieve it. Omit to suspend without recording a reason.
Returns:

The updated installation with state set to "suspended".