[**@s4ai/core Documentation v0.3.23**](../../../README.md)

***

[@s4ai/core Documentation](../../../modules.md) / [infrastructure/cloudflare-manager](../README.md) / CloudflareManager

# Class: CloudflareManager

Defined in: infrastructure/cloudflare-manager.js:12

## Constructors

### Constructor

> **new CloudflareManager**(`config?`): `CloudflareManager`

Defined in: infrastructure/cloudflare-manager.js:13

#### Parameters

##### config?

#### Returns

`CloudflareManager`

## Properties

### accountId

> **accountId**: `any`

Defined in: infrastructure/cloudflare-manager.js:16

***

### apiToken

> **apiToken**: `any`

Defined in: infrastructure/cloudflare-manager.js:14

***

### baseUrl

> **baseUrl**: `string`

Defined in: infrastructure/cloudflare-manager.js:18

***

### domain

> **domain**: `string`

Defined in: infrastructure/cloudflare-manager.js:17

***

### records

> **records**: `any`[]

Defined in: infrastructure/cloudflare-manager.js:19

***

### zoneId

> **zoneId**: `any`

Defined in: infrastructure/cloudflare-manager.js:15

## Methods

### createARecord()

> **createARecord**(`subdomain`, `ipAddress`, `options?`): `Promise`\<\{ `error`: `any`; `message?`: `undefined`; `record?`: `undefined`; `success`: `boolean`; \} \| \{ `error?`: `undefined`; `message`: `string`; `record`: `any`; `success`: `boolean`; \}\>

Defined in: infrastructure/cloudflare-manager.js:93

Create A record for direct IP targeting

#### Parameters

##### subdomain

`any`

##### ipAddress

`any`

##### options?

#### Returns

`Promise`\<\{ `error`: `any`; `message?`: `undefined`; `record?`: `undefined`; `success`: `boolean`; \} \| \{ `error?`: `undefined`; `message`: `string`; `record`: `any`; `success`: `boolean`; \}\>

***

### createCNAMERecord()

> **createCNAMERecord**(`subdomain`, `targetHost`, `options?`): `Promise`\<\{ `error`: `any`; `record?`: `undefined`; `statusCode`: `any`; `success`: `boolean`; \} \| \{ `error?`: `undefined`; `record`: \{ `content`: `any`; `createdAt`: `any`; `id`: `any`; `message`: `string`; `name`: `any`; `proxied`: `any`; `ttl`: `any`; `type`: `any`; \}; `statusCode?`: `undefined`; `success`: `boolean`; \} \| \{ `error`: `any`; `record?`: `undefined`; `statusCode?`: `undefined`; `success`: `boolean`; \}\>

Defined in: infrastructure/cloudflare-manager.js:30

Create a new DNS CNAME record
Use for: subdomain creation (api.getbrains4ai.com, admin.getbrains4ai.com, etc.)

#### Parameters

##### subdomain

`any`

##### targetHost

`any`

##### options?

#### Returns

`Promise`\<\{ `error`: `any`; `record?`: `undefined`; `statusCode`: `any`; `success`: `boolean`; \} \| \{ `error?`: `undefined`; `record`: \{ `content`: `any`; `createdAt`: `any`; `id`: `any`; `message`: `string`; `name`: `any`; `proxied`: `any`; `ttl`: `any`; `type`: `any`; \}; `statusCode?`: `undefined`; `success`: `boolean`; \} \| \{ `error`: `any`; `record?`: `undefined`; `statusCode?`: `undefined`; `success`: `boolean`; \}\>

***

### createPageRule()

> **createPageRule**(`target`, `actions`): `Promise`\<\{ `error`: `any`; `message?`: `undefined`; `rule?`: `undefined`; `success`: `boolean`; \} \| \{ `error?`: `undefined`; `message`: `string`; `rule`: `any`; `success`: `boolean`; \}\>

Defined in: infrastructure/cloudflare-manager.js:226

Create page rule (caching, redirects, etc.)

#### Parameters

##### target

`any`

##### actions

`any`

#### Returns

`Promise`\<\{ `error`: `any`; `message?`: `undefined`; `rule?`: `undefined`; `success`: `boolean`; \} \| \{ `error?`: `undefined`; `message`: `string`; `rule`: `any`; `success`: `boolean`; \}\>

***

### deleteDNSRecord()

> **deleteDNSRecord**(`recordId`): `Promise`\<\{ `error`: `any`; `message?`: `undefined`; `success`: `boolean`; \} \| \{ `error?`: `undefined`; `message`: `string`; `success`: `boolean`; \}\>

Defined in: infrastructure/cloudflare-manager.js:164

Delete a DNS record by ID

#### Parameters

##### recordId

`any`

#### Returns

`Promise`\<\{ `error`: `any`; `message?`: `undefined`; `success`: `boolean`; \} \| \{ `error?`: `undefined`; `message`: `string`; `success`: `boolean`; \}\>

***

### getStatus()

> **getStatus**(): `object`

Defined in: infrastructure/cloudflare-manager.js:348

Get current Cloudflare status & credentials verification

#### Returns

`object`

##### accountId

> **accountId**: `any`

##### apiToken

> **apiToken**: `string`

##### capabilities

> **capabilities**: `string`[]

##### configured

> **configured**: `boolean`

##### domain

> **domain**: `string`

##### recordsCreated

> **recordsCreated**: `number`

##### zoneId

> **zoneId**: `any`

***

### getZoneInfo()

> **getZoneInfo**(): `Promise`\<\{ `error`: `any`; `success`: `boolean`; `zone?`: `undefined`; \} \| \{ `error?`: `undefined`; `success`: `boolean`; `zone`: \{ `createdAt`: `any`; `id`: `any`; `name`: `any`; `nameservers`: `any`; `plan`: `any`; `status`: `any`; \}; \}\>

Defined in: infrastructure/cloudflare-manager.js:263

Get zone information

#### Returns

`Promise`\<\{ `error`: `any`; `success`: `boolean`; `zone?`: `undefined`; \} \| \{ `error?`: `undefined`; `success`: `boolean`; `zone`: \{ `createdAt`: `any`; `id`: `any`; `name`: `any`; `nameservers`: `any`; `plan`: `any`; `status`: `any`; \}; \}\>

***

### listDNSRecords()

> **listDNSRecords**(): `Promise`\<\{ `error`: `any`; `records?`: `undefined`; `success`: `boolean`; `total?`: `undefined`; \} \| \{ `error?`: `undefined`; `records`: `any`; `success`: `boolean`; `total`: `any`; \}\>

Defined in: infrastructure/cloudflare-manager.js:133

List all DNS records for the zone

#### Returns

`Promise`\<\{ `error`: `any`; `records?`: `undefined`; `success`: `boolean`; `total?`: `undefined`; \} \| \{ `error?`: `undefined`; `records`: `any`; `success`: `boolean`; `total`: `any`; \}\>

***

### provisionSubdomain()

> **provisionSubdomain**(`subdomain`, `targetService`, `options?`): `Promise`\<\{ `steps`: `never`[]; `subdomain`: `string`; `success`: `boolean`; \}\>

Defined in: infrastructure/cloudflare-manager.js:302

Create a new subdomain infrastructure point
Full setup: DNS record + SSL cert + cache rules

#### Parameters

##### subdomain

`any`

##### targetService

`any`

##### options?

#### Returns

`Promise`\<\{ `steps`: `never`[]; `subdomain`: `string`; `success`: `boolean`; \}\>

***

### updateDNSRecord()

> **updateDNSRecord**(`recordId`, `updateData`): `Promise`\<\{ `error`: `any`; `message?`: `undefined`; `record?`: `undefined`; `success`: `boolean`; \} \| \{ `error?`: `undefined`; `message`: `string`; `record`: `any`; `success`: `boolean`; \}\>

Defined in: infrastructure/cloudflare-manager.js:194

Update an existing DNS record

#### Parameters

##### recordId

`any`

##### updateData

`any`

#### Returns

`Promise`\<\{ `error`: `any`; `message?`: `undefined`; `record?`: `undefined`; `success`: `boolean`; \} \| \{ `error?`: `undefined`; `message`: `string`; `record`: `any`; `success`: `boolean`; \}\>
