UNPKG

cloudflare

Version:

The official TypeScript library for the Cloudflare API

714 lines (611 loc) 15.3 kB
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. import * as Core from "../../../../core"; import { APIResource } from "../../../../resource"; import * as PostureAPI from "./posture"; import * as IntegrationsAPI from "./integrations"; import { SinglePage } from "../../../../pagination"; export class Posture extends APIResource { integrations: IntegrationsAPI.Integrations = new IntegrationsAPI.Integrations(this._client); /** * Creates a new device posture rule. */ create( params: PostureCreateParams, options?: Core.RequestOptions, ): Core.APIPromise<DevicePostureRule | null> { const { account_id, ...body } = params; return ( this._client.post(`/accounts/${account_id}/devices/posture`, { body, ...options }) as Core.APIPromise<{ result: DevicePostureRule | null; }> )._thenUnwrap((obj) => obj.result); } /** * Updates a device posture rule. */ update( ruleId: string, params: PostureUpdateParams, options?: Core.RequestOptions, ): Core.APIPromise<DevicePostureRule | null> { const { account_id, ...body } = params; return ( this._client.put(`/accounts/${account_id}/devices/posture/${ruleId}`, { body, ...options, }) as Core.APIPromise<{ result: DevicePostureRule | null }> )._thenUnwrap((obj) => obj.result); } /** * Fetches device posture rules for a Zero Trust account. */ list( params: PostureListParams, options?: Core.RequestOptions, ): Core.PagePromise<DevicePostureRulesSinglePage, DevicePostureRule> { const { account_id } = params; return this._client.getAPIList( `/accounts/${account_id}/devices/posture`, DevicePostureRulesSinglePage, options, ); } /** * Deletes a device posture rule. */ delete( ruleId: string, params: PostureDeleteParams, options?: Core.RequestOptions, ): Core.APIPromise<PostureDeleteResponse | null> { const { account_id, body } = params; return ( this._client.delete(`/accounts/${account_id}/devices/posture/${ruleId}`, { body: body, ...options, }) as Core.APIPromise<{ result: PostureDeleteResponse | null }> )._thenUnwrap((obj) => obj.result); } /** * Fetches a single device posture rule. */ get( ruleId: string, params: PostureGetParams, options?: Core.RequestOptions, ): Core.APIPromise<DevicePostureRule | null> { const { account_id } = params; return ( this._client.get(`/accounts/${account_id}/devices/posture/${ruleId}`, options) as Core.APIPromise<{ result: DevicePostureRule | null; }> )._thenUnwrap((obj) => obj.result); } } export class DevicePostureRulesSinglePage extends SinglePage<DevicePostureRule> {} export type CarbonblackInput = string; export interface ClientCertificateInput { /** * UUID of Cloudflare managed certificate. */ certificate_id: string; /** * Common Name that is protected by the certificate */ cn: string; } export interface CrowdstrikeInput { /** * Posture Integration ID. */ connection_id: string; /** * For more details on last seen, please refer to the Crowdstrike documentation. */ last_seen?: string; /** * operator */ operator?: '<' | '<=' | '>' | '>=' | '=='; /** * Os Version */ os?: string; /** * overall */ overall?: string; /** * SensorConfig */ sensor_config?: string; /** * For more details on state, please refer to the Crowdstrike documentation. */ state?: 'online' | 'offline' | 'unknown'; /** * Version */ version?: string; /** * Version Operator */ versionOperator?: '<' | '<=' | '>' | '>=' | '=='; } /** * The value to be checked against. */ export type DeviceInput = | FileInput | UniqueClientIDInput | DomainJoinedInput | OSVersionInput | FirewallInput | SentineloneInput | DeviceInput.TeamsDevicesCarbonblackInputRequest | DiskEncryptionInput | DeviceInput.TeamsDevicesApplicationInputRequest | ClientCertificateInput | WorkspaceOneInput | CrowdstrikeInput | IntuneInput | KolideInput | TaniumInput | SentineloneS2sInput; export namespace DeviceInput { export interface TeamsDevicesCarbonblackInputRequest { /** * Operating system */ operating_system: 'windows' | 'linux' | 'mac'; /** * File path. */ path: string; /** * SHA-256. */ sha256?: string; /** * Signing certificate thumbprint. */ thumbprint?: string; } export interface TeamsDevicesApplicationInputRequest { /** * Operating system */ operating_system: 'windows' | 'linux' | 'mac'; /** * Path for the application. */ path: string; /** * SHA-256. */ sha256?: string; /** * Signing certificate thumbprint. */ thumbprint?: string; } } export interface DeviceMatch { platform?: 'windows' | 'mac' | 'linux' | 'android' | 'ios'; } export interface DevicePostureRule { /** * API UUID. */ id?: string; /** * The description of the device posture rule. */ description?: string; /** * Sets the expiration time for a posture check result. If empty, the result * remains valid until it is overwritten by new data from the WARP client. */ expiration?: string; /** * The value to be checked against. */ input?: DeviceInput; /** * The conditions that the client must match to run the rule. */ match?: Array<DeviceMatch>; /** * The name of the device posture rule. */ name?: string; /** * Polling frequency for the WARP client posture check. Default: `5m` (poll every * five minutes). Minimum: `1m`. */ schedule?: string; /** * The type of device posture rule. */ type?: | 'file' | 'application' | 'tanium' | 'gateway' | 'warp' | 'disk_encryption' | 'sentinelone' | 'carbonblack' | 'firewall' | 'os_version' | 'domain_joined' | 'client_certificate' | 'unique_client_id' | 'kolide' | 'tanium_s2s' | 'crowdstrike_s2s' | 'intune' | 'workspace_one' | 'sentinelone_s2s'; } export interface DiskEncryptionInput { /** * List of volume names to be checked for encryption. */ checkDisks?: Array<CarbonblackInput>; /** * Whether to check all disks for encryption. */ requireAll?: boolean; } export interface DomainJoinedInput { /** * Operating System */ operating_system: 'windows'; /** * Domain */ domain?: string; } export interface FileInput { /** * Operating system */ operating_system: 'windows' | 'linux' | 'mac'; /** * File path. */ path: string; /** * Whether or not file exists */ exists?: boolean; /** * SHA-256. */ sha256?: string; /** * Signing certificate thumbprint. */ thumbprint?: string; } export interface FirewallInput { /** * Enabled */ enabled: boolean; /** * Operating System */ operating_system: 'windows' | 'mac'; } export interface IntuneInput { /** * Compliance Status */ compliance_status: 'compliant' | 'noncompliant' | 'unknown' | 'notapplicable' | 'ingraceperiod' | 'error'; /** * Posture Integration ID. */ connection_id: string; } export interface KolideInput { /** * Posture Integration ID. */ connection_id: string; /** * Count Operator */ countOperator: '<' | '<=' | '>' | '>=' | '=='; /** * The Number of Issues. */ issue_count: string; } export interface OSVersionInput { /** * Operating System */ operating_system: 'windows'; /** * operator */ operator: '<' | '<=' | '>' | '>=' | '=='; /** * Version of OS */ version: string; /** * Operating System Distribution Name (linux only) */ os_distro_name?: string; /** * Version of OS Distribution (linux only) */ os_distro_revision?: string; /** * Additional version data. For Mac or iOS, the Product Verison Extra. For Linux, * the kernel release version. (Mac, iOS, and Linux only) */ os_version_extra?: string; } export interface SentineloneInput { /** * Operating system */ operating_system: 'windows' | 'linux' | 'mac'; /** * File path. */ path: string; /** * SHA-256. */ sha256?: string; /** * Signing certificate thumbprint. */ thumbprint?: string; } export interface SentineloneS2sInput { /** * Posture Integration ID. */ connection_id: string; /** * The Number of active threats. */ active_threats?: number; /** * Whether device is infected. */ infected?: boolean; /** * Whether device is active. */ is_active?: boolean; /** * Network status of device. */ network_status?: 'connected' | 'disconnected' | 'disconnecting' | 'connecting'; /** * operator */ operator?: '<' | '<=' | '>' | '>=' | '=='; } export interface TaniumInput { /** * Posture Integration ID. */ connection_id: string; /** * For more details on eid last seen, refer to the Tanium documentation. */ eid_last_seen?: string; /** * Operator to evaluate risk_level or eid_last_seen. */ operator?: '<' | '<=' | '>' | '>=' | '=='; /** * For more details on risk level, refer to the Tanium documentation. */ risk_level?: 'low' | 'medium' | 'high' | 'critical'; /** * Score Operator */ scoreOperator?: '<' | '<=' | '>' | '>=' | '=='; /** * For more details on total score, refer to the Tanium documentation. */ total_score?: number; } export interface UniqueClientIDInput { /** * List ID. */ id: string; /** * Operating System */ operating_system: 'android' | 'ios' | 'chromeos'; } export interface WorkspaceOneInput { /** * Compliance Status */ compliance_status: 'compliant' | 'noncompliant' | 'unknown'; /** * Posture Integration ID. */ connection_id: string; } export interface PostureDeleteResponse { /** * API UUID. */ id?: string; } export interface PostureCreateParams { /** * Path param: */ account_id: string; /** * Body param: The name of the device posture rule. */ name: string; /** * Body param: The type of device posture rule. */ type: | 'file' | 'application' | 'tanium' | 'gateway' | 'warp' | 'disk_encryption' | 'sentinelone' | 'carbonblack' | 'firewall' | 'os_version' | 'domain_joined' | 'client_certificate' | 'unique_client_id' | 'kolide' | 'tanium_s2s' | 'crowdstrike_s2s' | 'intune' | 'workspace_one' | 'sentinelone_s2s'; /** * Body param: The description of the device posture rule. */ description?: string; /** * Body param: Sets the expiration time for a posture check result. If empty, the * result remains valid until it is overwritten by new data from the WARP client. */ expiration?: string; /** * Body param: The value to be checked against. */ input?: DeviceInput; /** * Body param: The conditions that the client must match to run the rule. */ match?: Array<DeviceMatch>; /** * Body param: Polling frequency for the WARP client posture check. Default: `5m` * (poll every five minutes). Minimum: `1m`. */ schedule?: string; } export interface PostureUpdateParams { /** * Path param: */ account_id: string; /** * Body param: The name of the device posture rule. */ name: string; /** * Body param: The type of device posture rule. */ type: | 'file' | 'application' | 'tanium' | 'gateway' | 'warp' | 'disk_encryption' | 'sentinelone' | 'carbonblack' | 'firewall' | 'os_version' | 'domain_joined' | 'client_certificate' | 'unique_client_id' | 'kolide' | 'tanium_s2s' | 'crowdstrike_s2s' | 'intune' | 'workspace_one' | 'sentinelone_s2s'; /** * Body param: The description of the device posture rule. */ description?: string; /** * Body param: Sets the expiration time for a posture check result. If empty, the * result remains valid until it is overwritten by new data from the WARP client. */ expiration?: string; /** * Body param: The value to be checked against. */ input?: DeviceInput; /** * Body param: The conditions that the client must match to run the rule. */ match?: Array<DeviceMatch>; /** * Body param: Polling frequency for the WARP client posture check. Default: `5m` * (poll every five minutes). Minimum: `1m`. */ schedule?: string; } export interface PostureListParams { account_id: string; } export interface PostureDeleteParams { /** * Path param: */ account_id: string; /** * Body param: */ body: unknown; } export interface PostureGetParams { account_id: string; } export namespace Posture { export import CarbonblackInput = PostureAPI.CarbonblackInput; export import ClientCertificateInput = PostureAPI.ClientCertificateInput; export import CrowdstrikeInput = PostureAPI.CrowdstrikeInput; export import DeviceInput = PostureAPI.DeviceInput; export import DeviceMatch = PostureAPI.DeviceMatch; export import DevicePostureRule = PostureAPI.DevicePostureRule; export import DiskEncryptionInput = PostureAPI.DiskEncryptionInput; export import DomainJoinedInput = PostureAPI.DomainJoinedInput; export import FileInput = PostureAPI.FileInput; export import FirewallInput = PostureAPI.FirewallInput; export import IntuneInput = PostureAPI.IntuneInput; export import KolideInput = PostureAPI.KolideInput; export import OSVersionInput = PostureAPI.OSVersionInput; export import SentineloneInput = PostureAPI.SentineloneInput; export import SentineloneS2sInput = PostureAPI.SentineloneS2sInput; export import TaniumInput = PostureAPI.TaniumInput; export import UniqueClientIDInput = PostureAPI.UniqueClientIDInput; export import WorkspaceOneInput = PostureAPI.WorkspaceOneInput; export import PostureDeleteResponse = PostureAPI.PostureDeleteResponse; export import DevicePostureRulesSinglePage = PostureAPI.DevicePostureRulesSinglePage; export import PostureCreateParams = PostureAPI.PostureCreateParams; export import PostureUpdateParams = PostureAPI.PostureUpdateParams; export import PostureListParams = PostureAPI.PostureListParams; export import PostureDeleteParams = PostureAPI.PostureDeleteParams; export import PostureGetParams = PostureAPI.PostureGetParams; export import Integrations = IntegrationsAPI.Integrations; export import Integration = IntegrationsAPI.Integration; export import IntegrationDeleteResponse = IntegrationsAPI.IntegrationDeleteResponse; export import IntegrationsSinglePage = IntegrationsAPI.IntegrationsSinglePage; export import IntegrationCreateParams = IntegrationsAPI.IntegrationCreateParams; export import IntegrationListParams = IntegrationsAPI.IntegrationListParams; export import IntegrationDeleteParams = IntegrationsAPI.IntegrationDeleteParams; export import IntegrationEditParams = IntegrationsAPI.IntegrationEditParams; export import IntegrationGetParams = IntegrationsAPI.IntegrationGetParams; }