1import type * as licensemanager from "@distilled.cloud/aws/license-manager";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Request for {@link CreateLicenseVersion}.
7 */
8export interface CreateLicenseVersionRequest
9 extends licensemanager.CreateLicenseVersionRequest {}
10
11/**
12 * Runtime binding for `license-manager:CreateLicenseVersion` — publish a new
13 * version of an existing seller-issued license (changed entitlements,
14 * extended validity, a status flip to `AVAILABLE`/`DEACTIVATED`). Pass the
15 * current version as `SourceVersion`.
16 *
17 * Provide the implementation with
18 * `Effect.provide(AWS.LicenseManager.CreateLicenseVersionHttp)`.
19 * ### Issuing Licenses
20 * **Example:** Extend a License's Validity
21 * ```typescript
22 * // init
23 * const createLicenseVersion = yield* AWS.LicenseManager.CreateLicenseVersion();
24 *
25 * // runtime — read the current definition, publish an amended version
26 * const { License } = yield* getLicense({ LicenseArn: licenseArn });
27 * yield* createLicenseVersion({
28 * LicenseArn: licenseArn,
29 * LicenseName: License!.LicenseName!,
30 * ProductName: License!.ProductName!,
31 * Issuer: { Name: License!.Issuer!.Name! },
32 * HomeRegion: License!.HomeRegion!,
33 * Validity: { Begin: License!.Validity!.Begin, End: newEnd },
34 * Entitlements: License!.Entitlements!,
35 * ConsumptionConfiguration: License!.ConsumptionConfiguration!,
36 * Status: "AVAILABLE",
37 * SourceVersion: License!.Version,
38 * ClientToken: crypto.randomUUID(),
39 * });
40 * ```
41 *
42 * @binding
43 */
44export interface CreateLicenseVersion extends Binding.Service<
45 CreateLicenseVersion,
46 "AWS.LicenseManager.CreateLicenseVersion",
47 () => Effect.Effect<
48 (
49 request: CreateLicenseVersionRequest,
50 ) => Effect.Effect<
51 licensemanager.CreateLicenseVersionResponse,
52 licensemanager.CreateLicenseVersionError
53 >
54 >
55> {}
56export const CreateLicenseVersion = Binding.Service<CreateLicenseVersion>(
57 "AWS.LicenseManager.CreateLicenseVersion",
58);