Edits history of script submission #5022 for ' Update a Zero Trust Gateway rule (cloudflare)'

  • nativets
    One script reply has been approved by the moderators
    Ap­pro­ved
    type Cloudflare = {
      token: string;
      email: string;
      key: string;
    };
    /**
     * Update a Zero Trust Gateway rule
     * Updates a configured Zero Trust Gateway rule.
     */
    export async function main(
      auth: Cloudflare,
      uuid: string,
      identifier: string,
      body: {
        action:
          | "on"
          | "off"
          | "allow"
          | "block"
          | "scan"
          | "noscan"
          | "safesearch"
          | "ytrestricted"
          | "isolate"
          | "noisolate"
          | "override"
          | "l4_override"
          | "egress"
          | "audit_ssh";
        description?: string;
        device_posture?: string;
        enabled?: boolean;
        filters?: ("http" | "dns" | "l4" | "egress")[];
        identity?: string;
        name: string;
        precedence?: number;
        rule_settings?: {
          add_headers?: { [k: string]: unknown };
          allow_child_bypass?: boolean;
          audit_ssh?: { command_logging?: boolean; [k: string]: unknown };
          biso_admin_controls?: {
            dcp?: boolean;
            dd?: boolean;
            dk?: boolean;
            dp?: boolean;
            du?: boolean;
            [k: string]: unknown;
          };
          block_page_enabled?: boolean;
          block_reason?: string;
          bypass_parent_rule?: boolean;
          check_session?: {
            duration?: string;
            enforce?: boolean;
            [k: string]: unknown;
          };
          dns_resolvers?: {
            ipv4?: {
              ip: string;
              port?: number;
              route_through_private_network?: boolean;
              vnet_id?: string;
              [k: string]: unknown;
            }[];
            ipv6?: {
              ip: string;
              port?: number;
              route_through_private_network?: boolean;
              vnet_id?: string;
              [k: string]: unknown;
            }[];
            [k: string]: unknown;
          };
          egress?: {
            ipv4?: string;
            ipv4_fallback?: string;
            ipv6?: string;
            [k: string]: unknown;
          };
          insecure_disable_dnssec_validation?: boolean;
          ip_categories?: boolean;
          ip_indicator_feeds?: boolean;
          l4override?: { ip?: string; port?: number; [k: string]: unknown };
          override_host?: string;
          override_ips?: string[];
          payload_log?: { enabled?: boolean; [k: string]: unknown };
          resolve_dns_through_cloudflare?: boolean;
          untrusted_cert?: {
            action?: "pass_through" | "block" | "error";
            [k: string]: unknown;
          };
          [k: string]: unknown;
        };
        schedule?: {
          fri?: string;
          mon?: string;
          sat?: string;
          sun?: string;
          thu?: string;
          time_zone?: string;
          tue?: string;
          wed?: string;
          [k: string]: unknown;
        };
        traffic?: string;
        [k: string]: unknown;
      }
    ) {
      const url = new URL(
        `https://api.cloudflare.com/client/v4/accounts/${identifier}/gateway/rules/${uuid}`
      );
    
      const response = await fetch(url, {
        method: "PUT",
        headers: {
          "X-AUTH-EMAIL": auth.email,
          "X-AUTH-KEY": auth.key,
          "Content-Type": "application/json",
          Authorization: "Bearer " + auth.token,
        },
        body: JSON.stringify(body),
      });
      if (!response.ok) {
        const text = await response.text();
        throw new Error(`${response.status} ${text}`);
      }
      return await response.json();
    }
    

    Submitted by hugo697 383 days ago

  • nativets
    type Cloudflare = {
      token: string;
      email: string;
      key: string;
    };
    /**
     * Update a Zero Trust Gateway rule
     * Updates a configured Zero Trust Gateway rule.
     */
    export async function main(
      auth: Cloudflare,
      uuid: string,
      identifier: string,
      body: {
        action:
          | "on"
          | "off"
          | "allow"
          | "block"
          | "scan"
          | "noscan"
          | "safesearch"
          | "ytrestricted"
          | "isolate"
          | "noisolate"
          | "override"
          | "l4_override"
          | "egress"
          | "audit_ssh";
        description?: string;
        device_posture?: string;
        enabled?: boolean;
        filters?: ("http" | "dns" | "l4" | "egress")[];
        identity?: string;
        name: string;
        precedence?: number;
        rule_settings?: {
          add_headers?: { [k: string]: unknown };
          allow_child_bypass?: boolean;
          audit_ssh?: { command_logging?: boolean; [k: string]: unknown };
          biso_admin_controls?: {
            dcp?: boolean;
            dd?: boolean;
            dk?: boolean;
            dp?: boolean;
            du?: boolean;
            [k: string]: unknown;
          };
          block_page_enabled?: boolean;
          block_reason?: string;
          bypass_parent_rule?: boolean;
          check_session?: {
            duration?: string;
            enforce?: boolean;
            [k: string]: unknown;
          };
          dns_resolvers?: {
            ipv4?: {
              ip: string;
              port?: number;
              route_through_private_network?: boolean;
              vnet_id?: string;
              [k: string]: unknown;
            }[];
            ipv6?: {
              ip: string;
              port?: number;
              route_through_private_network?: boolean;
              vnet_id?: string;
              [k: string]: unknown;
            }[];
            [k: string]: unknown;
          };
          egress?: {
            ipv4?: string;
            ipv4_fallback?: string;
            ipv6?: string;
            [k: string]: unknown;
          };
          insecure_disable_dnssec_validation?: boolean;
          ip_categories?: boolean;
          ip_indicator_feeds?: boolean;
          l4override?: { ip?: string; port?: number; [k: string]: unknown };
          override_host?: string;
          override_ips?: string[];
          payload_log?: { enabled?: boolean; [k: string]: unknown };
          resolve_dns_through_cloudflare?: boolean;
          untrusted_cert?: {
            action?: "pass_through" | "block" | "error";
            [k: string]: unknown;
          };
          [k: string]: unknown;
        };
        schedule?: {
          fri?: string;
          mon?: string;
          sat?: string;
          sun?: string;
          thu?: string;
          time_zone?: string;
          tue?: string;
          wed?: string;
          [k: string]: unknown;
        };
        traffic?: string;
        [k: string]: unknown;
      }
    ) {
      const url = new URL(
        `https://api.cloudflare.com/client/v4/accounts/${identifier}/gateway/rules/${uuid}`
      );
    
      const response = await fetch(url, {
        method: "PUT",
        headers: {
          "X-AUTH-EMAIL": auth.email,
          "X-AUTH-KEY": auth.key,
          "Content-Type": "application/json",
          Authorization: "Bearer " + auth.token,
        },
        body: JSON.stringify(body),
      });
      if (!response.ok) {
        const text = await response.text();
        throw new Error(`${response.status} ${text}`);
      }
      return await response.json();
    }
    

    Submitted by hugo697 920 days ago