import type * as ec2 from "@distilled.cloud/aws/ec2"; import type * as Effect from "effect/Effect"; import * as Binding from "../../Binding.ts"; import type { Instance } from "./Instance.ts"; /** * `DescribeInstanceStatus` request with `InstanceIds` injected from the bound * {@link Instance}. */ export interface DescribeInstanceStatusRequest extends Omit { } /** * Runtime binding for the `DescribeInstanceStatus` operation scoped to the * bound {@link Instance} (IAM action `ec2:DescribeInstanceStatus`; * `Describe*` actions do not support resource-level permissions, so the grant * is on `*`). * * Reads the instance's system/instance status checks and scheduled events — * e.g. a Lambda that alerts on failed reachability checks. Pass * `IncludeAllInstances: true` to also see the status while the instance is * stopped. Provide the implementation with * `Effect.provide(AWS.EC2.DescribeInstanceStatusHttp)`. * ### Observing Instances * **Example:** Check the instance's status checks * ```typescript * // init — bind the operation to the instance * const describeStatus = yield* AWS.EC2.DescribeInstanceStatus(instance); * * // runtime — read status checks (even while stopped) * const result = yield* describeStatus({ IncludeAllInstances: true }); * console.log(result.InstanceStatuses?.[0]?.InstanceStatus?.Status); * ``` * * @binding */ export interface DescribeInstanceStatus extends Binding.Service Effect.Effect<(request?: DescribeInstanceStatusRequest) => Effect.Effect>> { } export declare const DescribeInstanceStatus: DescribeInstanceStatus; //# sourceMappingURL=DescribeInstanceStatus.d.ts.map