1import type * as fms from "@distilled.cloud/aws/fms";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Request for {@link AssociateThirdPartyFirewall}.
7 */
8export interface AssociateThirdPartyFirewallRequest
9 extends fms.AssociateThirdPartyFirewallRequest {}
10
11/**
12 * Runtime binding for `fms:AssociateThirdPartyFirewall`.
13 *
14 * Sets the Firewall Manager policy administrator as a tenant administrator of a third-party firewall service (Palo Alto Networks Cloud NGFW or
15 * Fortigate Cloud Native Firewall). Requires an active AWS Marketplace subscription to the vendor. Provide the implementation with
16 * `Effect.provide(AWS.FMS.AssociateThirdPartyFirewallHttp)`.
17 * ### Third-Party Firewalls
18 * **Example:** Onboard a Third-Party Firewall Vendor
19 * ```typescript
20 * // init — account-level binding takes no resource
21 * const associateThirdPartyFirewall = yield* AWS.FMS.AssociateThirdPartyFirewall();
22 *
23 * // runtime
24 * const result = yield* associateThirdPartyFirewall({
25 * ThirdPartyFirewall: "PALO_ALTO_NETWORKS_CLOUD_NGFW",
26 * });
27 * console.log(result.ThirdPartyFirewallStatus);
28 * ```
29 *
30 * @binding
31 */
32export interface AssociateThirdPartyFirewall extends Binding.Service<
33 AssociateThirdPartyFirewall,
34 "AWS.FMS.AssociateThirdPartyFirewall",
35 () => Effect.Effect<
36 (
37 request: AssociateThirdPartyFirewallRequest,
38 ) => Effect.Effect<
39 fms.AssociateThirdPartyFirewallResponse,
40 fms.AssociateThirdPartyFirewallError
41 >
42 >
43> {}
44
45export const AssociateThirdPartyFirewall =
46 Binding.Service<AssociateThirdPartyFirewall>(
47 "AWS.FMS.AssociateThirdPartyFirewall",
48 );