archastro.platform.v1.resources.agent_installations

  1# Copyright (c) 2026 ArchAstro Inc. Licensed under the MIT License.
  2# This file is auto-generated by @archastro/sdk-generator. Do not edit.
  3# Content hash: 318185ae3f1e
  4
  5from __future__ import annotations
  6
  7import builtins
  8from typing import Any, TypedDict
  9
 10from ...runtime.http_client import HttpClient, SyncHttpClient
 11from ...types.common import (
 12    Installation,
 13    InstallationListResponse,
 14    InstallationSource,
 15    InstallationSourceListResponse,
 16)
 17
 18
 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"`.'
 26
 27
 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."
 33
 34
 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        )
 88
 89
 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: builtins.list[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 IDs (`agi_...`) to filter results by. When omitted, installations for all agents in the app are returned. Multiple values are OR'd.
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        )
234
235
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        )
289
290
291class AgentInstallationResource:
292    def __init__(self, http: SyncHttpClient):
293        self._http = http
294        self.installation_sources = AgentInstallationInstallationSourceResource(http)
295
296    def list(self, *, agent: builtins.list[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 IDs (`agi_...`) to filter results by. When omitted, installations for all agents in the app are returned. Multiple values are OR'd.
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        )
class AgentInstallationInstallationSourceCreateInput(typing.TypedDict):
20class AgentInstallationInstallationSourceCreateInput(TypedDict):
21    "Add a source to an installation"
22
23    payload: dict[str, Any]
24    "Type-specific payload for the source. The accepted keys depend on the `type` value; invalid or missing payload fields return 422."
25    type: str
26    '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):
29class AgentInstallationSuspendInput(TypedDict, total=False):
30    "Suspend an installation"
31
32    reason: str | None
33    "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:
36class AsyncAgentInstallationInstallationSourceResource:
37    def __init__(self, http: HttpClient):
38        self._http = http
39
40    async def list(self, installation: str) -> InstallationSourceListResponse:
41        """
42        List sources for an installation
43        Returns all sources attached to the specified installation. Sources represent
44        the content units (documents, links, and other typed payloads) that the
45        installation's agent can access as context.
46        This endpoint requires an app-scoped token. Results include sources in all
47        states, including those still being ingested. Inspect each source's `state`
48        field to determine whether its content is ready.
49
50        Args:
51            installation: Installation ID (`cin_...`) whose sources to retrieve.
52
53        Returns:
54            Object containing the list of sources attached to the installation.
55        """
56        return await self._http.request(
57            f"/api/v1/agent_installations/{installation}/installation_sources",
58            response_type=InstallationSourceListResponse,
59        )
60
61    async def create(
62        self, installation: str, input: AgentInstallationInstallationSourceCreateInput
63    ) -> InstallationSource:
64        """
65        Add a source to an installation
66        Attaches a new source to an existing installation, making its content available
67        to the installation's agent as context. The source type and payload must be valid
68        for the installation's kind; invalid combinations return 422.
69        This endpoint requires an app-scoped token. The installation must belong to an
70        agent accessible by the authenticated caller. Once created, the source begins
71        processing asynchronously its `state` will transition from `"pending"` as
72        ingestion progresses.
73
74        Args:
75            installation: Installation ID (`cin_...`) whose sources to retrieve.
76            input: Request body.
77            input.payload: Type-specific payload for the source. The accepted keys depend on the `type` value; invalid or missing payload fields return 422.
78            input.type: Source type slug identifying the kind of content being attached, e.g. `"file/document"` or `"web/link"`.
79
80        Returns:
81            The newly created installation source.
82        """
83        return await self._http.request(
84            f"/api/v1/agent_installations/{installation}/installation_sources",
85            method="POST",
86            body=input,
87            response_type=InstallationSource,
88        )
AsyncAgentInstallationInstallationSourceResource(http: archastro.platform.runtime.http_client.HttpClient)
37    def __init__(self, http: HttpClient):
38        self._http = http
async def list( self, installation: str) -> archastro.platform.types.common.InstallationSourceListResponse:
40    async def list(self, installation: str) -> InstallationSourceListResponse:
41        """
42        List sources for an installation
43        Returns all sources attached to the specified installation. Sources represent
44        the content units (documents, links, and other typed payloads) that the
45        installation's agent can access as context.
46        This endpoint requires an app-scoped token. Results include sources in all
47        states, including those still being ingested. Inspect each source's `state`
48        field to determine whether its content is ready.
49
50        Args:
51            installation: Installation ID (`cin_...`) whose sources to retrieve.
52
53        Returns:
54            Object containing the list of sources attached to the installation.
55        """
56        return await self._http.request(
57            f"/api/v1/agent_installations/{installation}/installation_sources",
58            response_type=InstallationSourceListResponse,
59        )

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

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

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 IDs (agi_...) to filter results by. When omitted, installations for all agents in the app are returned. Multiple values are OR'd.
Returns:

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

async def delete(self, installation: str) -> None:
122    async def delete(self, installation: str) -> None:
123        """
124        Delete an installation
125        Permanently deletes an installation and severs the connection between the agent
126        and the external service or enablement channel. Any backing context sources
127        associated with the installation are also removed.
128        This action is irreversible. If you want to temporarily stop an installation from
129        processing events, use the Pause or Suspend endpoints instead. The caller must have
130        app scope for the app that owns the installation.
131
132        Args:
133            installation: Installation ID (`cin_...`) to delete.
134
135        Returns:
136            Empty response with HTTP 204 status on successful deletion.
137        """
138        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:
140    async def get(self, installation: str) -> Installation:
141        """
142        Retrieve an installation
143        Returns a single installation by ID. Use this endpoint to check the current
144        `state`, `kind`, `config`, and bound integration of an installation.
145        The installation must belong to an agent that is accessible within the
146        authenticated app's scope. The caller must have app scope for the app that
147        owns the installation.
148
149        Args:
150            installation: Installation ID (`cin_...`) to retrieve.
151
152        Returns:
153            The requested installation.
154        """
155        return await self._http.request(
156            f"/api/v1/agent_installations/{installation}",
157            response_type=Installation,
158        )

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

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

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

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

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

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

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 IDs (agi_...) to filter results by. When omitted, installations for all agents in the app are returned. Multiple values are OR'd.
Returns:

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

def delete(self, installation: str) -> None:
323    def delete(self, installation: str) -> None:
324        """
325        Delete an installation
326        Permanently deletes an installation and severs the connection between the agent
327        and the external service or enablement channel. Any backing context sources
328        associated with the installation are also removed.
329        This action is irreversible. If you want to temporarily stop an installation from
330        processing events, use the Pause or Suspend endpoints instead. The caller must have
331        app scope for the app that owns the installation.
332
333        Args:
334            installation: Installation ID (`cin_...`) to delete.
335
336        Returns:
337            Empty response with HTTP 204 status on successful deletion.
338        """
339        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:
341    def get(self, installation: str) -> Installation:
342        """
343        Retrieve an installation
344        Returns a single installation by ID. Use this endpoint to check the current
345        `state`, `kind`, `config`, and bound integration of an installation.
346        The installation must belong to an agent that is accessible within the
347        authenticated app's scope. The caller must have app scope for the app that
348        owns the installation.
349
350        Args:
351            installation: Installation ID (`cin_...`) to retrieve.
352
353        Returns:
354            The requested installation.
355        """
356        return self._http.request(
357            f"/api/v1/agent_installations/{installation}",
358            response_type=Installation,
359        )

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

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

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

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".