1import type * as codeartifact from "@distilled.cloud/aws/codeartifact";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { Repository } from "./Repository.ts";
5
6/**
7 * Request for {@link DeletePackage} — `domain`, `domainOwner`, and
8 * `repository` are injected from the bound {@link Repository}.
9 */
10export interface DeletePackageRequest extends Omit<
11 codeartifact.DeletePackageRequest,
12 "domain" | "domainOwner" | "repository"
13> {}
14
15/**
16 * Runtime binding for `codeartifact:DeletePackage`.
17 *
18 * Deletes a package and all of its versions from the bound repository. Provide the implementation with
19 * `Effect.provide(AWS.CodeArtifact.DeletePackageHttp)`.
20 * ### Deleting Packages
21 * **Example:** Delete a Package
22 * ```typescript
23 * const deletePackage = yield* AWS.CodeArtifact.DeletePackage(repo);
24 *
25 * yield* deletePackage({
26 * format: "generic",
27 * namespace: "my-ns",
28 * package: "my-package",
29 * });
30 * ```
31 *
32 * @binding
33 */
34export interface DeletePackage extends Binding.Service<
35 DeletePackage,
36 "AWS.CodeArtifact.DeletePackage",
37 (
38 repository: Repository,
39 ) => Effect.Effect<
40 (
41 request: DeletePackageRequest,
42 ) => Effect.Effect<
43 codeartifact.DeletePackageResult,
44 codeartifact.DeletePackageError
45 >
46 >
47> {}
48
49export const DeletePackage = Binding.Service<DeletePackage>(
50 "AWS.CodeArtifact.DeletePackage",
51);