# Addressing # Regional Hostnames ## List Regional Hostnames `client.addressing.regionalHostnames.list(RegionalHostnameListParamsparams, RequestOptionsoptions?): SinglePage` **get** `/zones/{zone_id}/addressing/regional_hostnames` List all Regional Hostnames within a zone. ### Parameters - `params: RegionalHostnameListParams` - `zone_id: string` Identifier. ### Returns - `RegionalHostnameListResponse` - `created_on: string` When the regional hostname was created - `hostname: string` DNS hostname to be regionalized, must be a subdomain of the zone. Wildcards are supported for one level, e.g `*.example.com` - `region_key: string` Identifying key for the region - `routing?: string` Configure which routing method to use for the regional hostname ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const regionalHostnameListResponse of client.addressing.regionalHostnames.list({ zone_id: '023e105f4ecef8ad9ca31a8372d0c353', })) { console.log(regionalHostnameListResponse.created_on); } ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": [ { "created_on": "2014-01-01T05:20:00.12345Z", "hostname": "foo.example.com", "region_key": "ca", "routing": "dns" } ], "result_info": { "count": 1, "page": 1, "per_page": 20, "total_count": 2000, "total_pages": 100 } } ``` ## Fetch Regional Hostname `client.addressing.regionalHostnames.get(stringhostname, RegionalHostnameGetParamsparams, RequestOptionsoptions?): RegionalHostnameGetResponse` **get** `/zones/{zone_id}/addressing/regional_hostnames/{hostname}` Fetch the configuration for a specific Regional Hostname, within a zone. ### Parameters - `hostname: string` DNS hostname to be regionalized, must be a subdomain of the zone. Wildcards are supported for one level, e.g `*.example.com` - `params: RegionalHostnameGetParams` - `zone_id: string` Identifier. ### Returns - `RegionalHostnameGetResponse` - `created_on: string` When the regional hostname was created - `hostname: string` DNS hostname to be regionalized, must be a subdomain of the zone. Wildcards are supported for one level, e.g `*.example.com` - `region_key: string` Identifying key for the region - `routing?: string` Configure which routing method to use for the regional hostname ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted }); const regionalHostname = await client.addressing.regionalHostnames.get('foo.example.com', { zone_id: '023e105f4ecef8ad9ca31a8372d0c353', }); console.log(regionalHostname.created_on); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "created_on": "2014-01-01T05:20:00.12345Z", "hostname": "foo.example.com", "region_key": "ca", "routing": "dns" } } ``` ## Create Regional Hostname `client.addressing.regionalHostnames.create(RegionalHostnameCreateParamsparams, RequestOptionsoptions?): RegionalHostnameCreateResponse` **post** `/zones/{zone_id}/addressing/regional_hostnames` Create a new Regional Hostname entry. Cloudflare will only use data centers that are physically located within the chosen region to decrypt and service HTTPS traffic. Learn more about [Regional Services](https://developers.cloudflare.com/data-localization/regional-services/get-started/). ### Parameters - `params: RegionalHostnameCreateParams` - `zone_id: string` Path param: Identifier. - `hostname: string` Body param: DNS hostname to be regionalized, must be a subdomain of the zone. Wildcards are supported for one level, e.g `*.example.com` - `region_key: string` Body param: Identifying key for the region - `routing?: string` Body param: Configure which routing method to use for the regional hostname ### Returns - `RegionalHostnameCreateResponse` - `created_on: string` When the regional hostname was created - `hostname: string` DNS hostname to be regionalized, must be a subdomain of the zone. Wildcards are supported for one level, e.g `*.example.com` - `region_key: string` Identifying key for the region - `routing?: string` Configure which routing method to use for the regional hostname ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted }); const regionalHostname = await client.addressing.regionalHostnames.create({ zone_id: '023e105f4ecef8ad9ca31a8372d0c353', hostname: 'foo.example.com', region_key: 'ca', }); console.log(regionalHostname.created_on); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "created_on": "2014-01-01T05:20:00.12345Z", "hostname": "foo.example.com", "region_key": "ca", "routing": "dns" } } ``` ## Update Regional Hostname `client.addressing.regionalHostnames.edit(stringhostname, RegionalHostnameEditParamsparams, RequestOptionsoptions?): RegionalHostnameEditResponse` **patch** `/zones/{zone_id}/addressing/regional_hostnames/{hostname}` Update the configuration for a specific Regional Hostname. Only the region_key of a hostname is mutable. ### Parameters - `hostname: string` DNS hostname to be regionalized, must be a subdomain of the zone. Wildcards are supported for one level, e.g `*.example.com` - `params: RegionalHostnameEditParams` - `zone_id: string` Path param: Identifier. - `region_key: string` Body param: Identifying key for the region ### Returns - `RegionalHostnameEditResponse` - `created_on: string` When the regional hostname was created - `hostname: string` DNS hostname to be regionalized, must be a subdomain of the zone. Wildcards are supported for one level, e.g `*.example.com` - `region_key: string` Identifying key for the region - `routing?: string` Configure which routing method to use for the regional hostname ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted }); const response = await client.addressing.regionalHostnames.edit('foo.example.com', { zone_id: '023e105f4ecef8ad9ca31a8372d0c353', region_key: 'ca', }); console.log(response.created_on); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "created_on": "2014-01-01T05:20:00.12345Z", "hostname": "foo.example.com", "region_key": "ca", "routing": "dns" } } ``` ## Delete Regional Hostname `client.addressing.regionalHostnames.delete(stringhostname, RegionalHostnameDeleteParamsparams, RequestOptionsoptions?): RegionalHostnameDeleteResponse` **delete** `/zones/{zone_id}/addressing/regional_hostnames/{hostname}` Delete the region configuration for a specific Regional Hostname. ### Parameters - `hostname: string` DNS hostname to be regionalized, must be a subdomain of the zone. Wildcards are supported for one level, e.g `*.example.com` - `params: RegionalHostnameDeleteParams` - `zone_id: string` Identifier. ### Returns - `RegionalHostnameDeleteResponse` - `errors: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `messages: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `success: true` Whether the API call was successful. - `true` ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted }); const regionalHostname = await client.addressing.regionalHostnames.delete('foo.example.com', { zone_id: '023e105f4ecef8ad9ca31a8372d0c353', }); console.log(regionalHostname.errors); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true } ``` ## Domain Types ### Regional Hostname List Response - `RegionalHostnameListResponse` - `created_on: string` When the regional hostname was created - `hostname: string` DNS hostname to be regionalized, must be a subdomain of the zone. Wildcards are supported for one level, e.g `*.example.com` - `region_key: string` Identifying key for the region - `routing?: string` Configure which routing method to use for the regional hostname ### Regional Hostname Get Response - `RegionalHostnameGetResponse` - `created_on: string` When the regional hostname was created - `hostname: string` DNS hostname to be regionalized, must be a subdomain of the zone. Wildcards are supported for one level, e.g `*.example.com` - `region_key: string` Identifying key for the region - `routing?: string` Configure which routing method to use for the regional hostname ### Regional Hostname Create Response - `RegionalHostnameCreateResponse` - `created_on: string` When the regional hostname was created - `hostname: string` DNS hostname to be regionalized, must be a subdomain of the zone. Wildcards are supported for one level, e.g `*.example.com` - `region_key: string` Identifying key for the region - `routing?: string` Configure which routing method to use for the regional hostname ### Regional Hostname Edit Response - `RegionalHostnameEditResponse` - `created_on: string` When the regional hostname was created - `hostname: string` DNS hostname to be regionalized, must be a subdomain of the zone. Wildcards are supported for one level, e.g `*.example.com` - `region_key: string` Identifying key for the region - `routing?: string` Configure which routing method to use for the regional hostname ### Regional Hostname Delete Response - `RegionalHostnameDeleteResponse` - `errors: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `messages: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `success: true` Whether the API call was successful. - `true` # Regions ## List Regions `client.addressing.regionalHostnames.regions.list(RegionListParamsparams, RequestOptionsoptions?): SinglePage` **get** `/accounts/{account_id}/addressing/regional_hostnames/regions` List all Regional Services regions available for use by this account. ### Parameters - `params: RegionListParams` - `account_id: string` Identifier. ### Returns - `RegionListResponse` - `key?: string` Identifying key for the region - `label?: string` Human-readable text label for the region ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const regionListResponse of client.addressing.regionalHostnames.regions.list({ account_id: '023e105f4ecef8ad9ca31a8372d0c353', })) { console.log(regionListResponse.key); } ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": [ { "key": "ca", "label": "Canada" } ], "result_info": { "count": 1, "page": 1, "per_page": 20, "total_count": 2000, "total_pages": 100 } } ``` ## Domain Types ### Region List Response - `RegionListResponse` - `key?: string` Identifying key for the region - `label?: string` Human-readable text label for the region # Services ## List Services `client.addressing.services.list(ServiceListParamsparams, RequestOptionsoptions?): SinglePage` **get** `/accounts/{account_id}/addressing/services` Bring-Your-Own IP (BYOIP) prefixes onboarded to Cloudflare must be bound to a service running on the Cloudflare network to enable a Cloudflare product on the IP addresses. This endpoint can be used as a reference of available services on the Cloudflare network, and their service IDs. ### Parameters - `params: ServiceListParams` - `account_id: string` Identifier of a Cloudflare account. ### Returns - `ServiceListResponse` - `id?: string` Identifier of a Service on the Cloudflare network. Available services and their IDs may be found in the **List Services** endpoint. - `name?: string` Name of a service running on the Cloudflare network ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const serviceListResponse of client.addressing.services.list({ account_id: '258def64c72dae45f3e4c8516e2111f2', })) { console.log(serviceListResponse.id); } ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": [ { "id": "2db684ee7ca04e159946fd05b99e1bcd", "name": "Magic Transit" } ] } ``` ## Domain Types ### Service List Response - `ServiceListResponse` - `id?: string` Identifier of a Service on the Cloudflare network. Available services and their IDs may be found in the **List Services** endpoint. - `name?: string` Name of a service running on the Cloudflare network # Address Maps ## List Address Maps `client.addressing.addressMaps.list(AddressMapListParamsparams, RequestOptionsoptions?): SinglePage` **get** `/accounts/{account_id}/addressing/address_maps` List all address maps owned by the account. ### Parameters - `params: AddressMapListParams` - `account_id: string` Identifier of a Cloudflare account. ### Returns - `AddressMap` - `id?: string` Identifier of an Address Map. - `can_delete?: boolean` If set to false, then the Address Map cannot be deleted via API. This is true for Cloudflare-managed maps. - `can_modify_ips?: boolean` If set to false, then the IPs on the Address Map cannot be modified via the API. This is true for Cloudflare-managed maps. - `created_at?: string` - `default_sni?: string | null` If you have legacy TLS clients which do not send the TLS server name indicator, then you can specify one default SNI on the map. If Cloudflare receives a TLS handshake from a client without an SNI, it will respond with the default SNI on those IPs. The default SNI can be any valid zone or subdomain owned by the account. - `description?: string | null` An optional description field which may be used to describe the types of IPs or zones on the map. - `enabled?: boolean | null` Whether the Address Map is enabled or not. Cloudflare's DNS will not respond with IP addresses on an Address Map until the map is enabled. - `modified_at?: string` ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const addressMap of client.addressing.addressMaps.list({ account_id: '258def64c72dae45f3e4c8516e2111f2', })) { console.log(addressMap.id); } ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": [ { "id": "055817b111884e0227e1be16a0be6ee0", "can_delete": true, "can_modify_ips": true, "created_at": "2014-01-01T05:20:00.12345Z", "default_sni": "*.example.com", "description": "My Ecommerce zones", "enabled": true, "modified_at": "2014-01-01T05:20:00.12345Z" } ], "result_info": { "count": 1, "page": 1, "per_page": 20, "total_count": 2000 } } ``` ## Address Map Details `client.addressing.addressMaps.get(stringaddressMapId, AddressMapGetParamsparams, RequestOptionsoptions?): AddressMapGetResponse` **get** `/accounts/{account_id}/addressing/address_maps/{address_map_id}` Show a particular address map owned by the account. ### Parameters - `addressMapId: string` Identifier of an Address Map. - `params: AddressMapGetParams` - `account_id: string` Identifier of a Cloudflare account. ### Returns - `AddressMapGetResponse` - `id?: string` Identifier of an Address Map. - `can_delete?: boolean` If set to false, then the Address Map cannot be deleted via API. This is true for Cloudflare-managed maps. - `can_modify_ips?: boolean` If set to false, then the IPs on the Address Map cannot be modified via the API. This is true for Cloudflare-managed maps. - `created_at?: string` - `default_sni?: string | null` If you have legacy TLS clients which do not send the TLS server name indicator, then you can specify one default SNI on the map. If Cloudflare receives a TLS handshake from a client without an SNI, it will respond with the default SNI on those IPs. The default SNI can be any valid zone or subdomain owned by the account. - `description?: string | null` An optional description field which may be used to describe the types of IPs or zones on the map. - `enabled?: boolean | null` Whether the Address Map is enabled or not. Cloudflare's DNS will not respond with IP addresses on an Address Map until the map is enabled. - `ips?: IPsArray` The set of IPs on the Address Map. - `created_at?: string` - `ip?: string` An IPv4 or IPv6 address. - `memberships?: Array` Zones and Accounts which will be assigned IPs on this Address Map. A zone membership will take priority over an account membership. - `can_delete?: boolean` Controls whether the membership can be deleted via the API or not. - `created_at?: string` - `identifier?: string` The identifier for the membership (eg. a zone or account tag). - `kind?: Kind` The type of the membership. - `"zone"` - `"account"` - `modified_at?: string` ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); const addressMap = await client.addressing.addressMaps.get('055817b111884e0227e1be16a0be6ee0', { account_id: '258def64c72dae45f3e4c8516e2111f2', }); console.log(addressMap.id); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "055817b111884e0227e1be16a0be6ee0", "can_delete": true, "can_modify_ips": true, "created_at": "2014-01-01T05:20:00.12345Z", "default_sni": "*.example.com", "description": "My Ecommerce zones", "enabled": true, "ips": [ { "created_at": "2014-01-01T05:20:00.12345Z", "ip": "192.0.2.1" } ], "memberships": [ { "can_delete": true, "created_at": "2014-01-01T05:20:00.12345Z", "identifier": "023e105f4ecef8ad9ca31a8372d0c353", "kind": "zone" } ], "modified_at": "2014-01-01T05:20:00.12345Z" } } ``` ## Create Address Map `client.addressing.addressMaps.create(AddressMapCreateParamsparams, RequestOptionsoptions?): AddressMapCreateResponse` **post** `/accounts/{account_id}/addressing/address_maps` Create a new address map under the account. ### Parameters - `params: AddressMapCreateParams` - `account_id: string` Path param: Identifier of a Cloudflare account. - `description?: string | null` Body param: An optional description field which may be used to describe the types of IPs or zones on the map. - `enabled?: boolean | null` Body param: Whether the Address Map is enabled or not. Cloudflare's DNS will not respond with IP addresses on an Address Map until the map is enabled. - `ips?: Array` Body param - `memberships?: Array` Body param: Zones and Accounts which will be assigned IPs on this Address Map. A zone membership will take priority over an account membership. - `identifier?: string` The identifier for the membership (eg. a zone or account tag). - `kind?: Kind` The type of the membership. - `"zone"` - `"account"` ### Returns - `AddressMapCreateResponse` - `id?: string` Identifier of an Address Map. - `can_delete?: boolean` If set to false, then the Address Map cannot be deleted via API. This is true for Cloudflare-managed maps. - `can_modify_ips?: boolean` If set to false, then the IPs on the Address Map cannot be modified via the API. This is true for Cloudflare-managed maps. - `created_at?: string` - `default_sni?: string | null` If you have legacy TLS clients which do not send the TLS server name indicator, then you can specify one default SNI on the map. If Cloudflare receives a TLS handshake from a client without an SNI, it will respond with the default SNI on those IPs. The default SNI can be any valid zone or subdomain owned by the account. - `description?: string | null` An optional description field which may be used to describe the types of IPs or zones on the map. - `enabled?: boolean | null` Whether the Address Map is enabled or not. Cloudflare's DNS will not respond with IP addresses on an Address Map until the map is enabled. - `ips?: IPsArray` The set of IPs on the Address Map. - `created_at?: string` - `ip?: string` An IPv4 or IPv6 address. - `memberships?: Array` Zones and Accounts which will be assigned IPs on this Address Map. A zone membership will take priority over an account membership. - `can_delete?: boolean` Controls whether the membership can be deleted via the API or not. - `created_at?: string` - `identifier?: string` The identifier for the membership (eg. a zone or account tag). - `kind?: Kind` The type of the membership. - `"zone"` - `"account"` - `modified_at?: string` ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); const addressMap = await client.addressing.addressMaps.create({ account_id: '258def64c72dae45f3e4c8516e2111f2', }); console.log(addressMap.id); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "055817b111884e0227e1be16a0be6ee0", "can_delete": true, "can_modify_ips": true, "created_at": "2014-01-01T05:20:00.12345Z", "default_sni": "*.example.com", "description": "My Ecommerce zones", "enabled": true, "ips": [ { "created_at": "2014-01-01T05:20:00.12345Z", "ip": "192.0.2.1" } ], "memberships": [ { "can_delete": true, "created_at": "2014-01-01T05:20:00.12345Z", "identifier": "023e105f4ecef8ad9ca31a8372d0c353", "kind": "zone" } ], "modified_at": "2014-01-01T05:20:00.12345Z" } } ``` ## Update Address Map `client.addressing.addressMaps.edit(stringaddressMapId, AddressMapEditParamsparams, RequestOptionsoptions?): AddressMap` **patch** `/accounts/{account_id}/addressing/address_maps/{address_map_id}` Modify properties of an address map owned by the account. ### Parameters - `addressMapId: string` Identifier of an Address Map. - `params: AddressMapEditParams` - `account_id: string` Path param: Identifier of a Cloudflare account. - `default_sni?: string | null` Body param: If you have legacy TLS clients which do not send the TLS server name indicator, then you can specify one default SNI on the map. If Cloudflare receives a TLS handshake from a client without an SNI, it will respond with the default SNI on those IPs. The default SNI can be any valid zone or subdomain owned by the account. - `description?: string | null` Body param: An optional description field which may be used to describe the types of IPs or zones on the map. - `enabled?: boolean | null` Body param: Whether the Address Map is enabled or not. Cloudflare's DNS will not respond with IP addresses on an Address Map until the map is enabled. ### Returns - `AddressMap` - `id?: string` Identifier of an Address Map. - `can_delete?: boolean` If set to false, then the Address Map cannot be deleted via API. This is true for Cloudflare-managed maps. - `can_modify_ips?: boolean` If set to false, then the IPs on the Address Map cannot be modified via the API. This is true for Cloudflare-managed maps. - `created_at?: string` - `default_sni?: string | null` If you have legacy TLS clients which do not send the TLS server name indicator, then you can specify one default SNI on the map. If Cloudflare receives a TLS handshake from a client without an SNI, it will respond with the default SNI on those IPs. The default SNI can be any valid zone or subdomain owned by the account. - `description?: string | null` An optional description field which may be used to describe the types of IPs or zones on the map. - `enabled?: boolean | null` Whether the Address Map is enabled or not. Cloudflare's DNS will not respond with IP addresses on an Address Map until the map is enabled. - `modified_at?: string` ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); const addressMap = await client.addressing.addressMaps.edit('055817b111884e0227e1be16a0be6ee0', { account_id: '258def64c72dae45f3e4c8516e2111f2', }); console.log(addressMap.id); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "055817b111884e0227e1be16a0be6ee0", "can_delete": true, "can_modify_ips": true, "created_at": "2014-01-01T05:20:00.12345Z", "default_sni": "*.example.com", "description": "My Ecommerce zones", "enabled": true, "modified_at": "2014-01-01T05:20:00.12345Z" } } ``` ## Delete Address Map `client.addressing.addressMaps.delete(stringaddressMapId, AddressMapDeleteParamsparams, RequestOptionsoptions?): AddressMapDeleteResponse` **delete** `/accounts/{account_id}/addressing/address_maps/{address_map_id}` Delete a particular address map owned by the account. An Address Map must be disabled before it can be deleted. ### Parameters - `addressMapId: string` Identifier of an Address Map. - `params: AddressMapDeleteParams` - `account_id: string` Identifier of a Cloudflare account. ### Returns - `AddressMapDeleteResponse` - `errors: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `messages: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `success: true` Whether the API call was successful. - `true` - `result_info?: ResultInfo` - `count?: number` Total number of results for the requested service. - `page?: number` Current page within paginated list of results. - `per_page?: number` Number of results per page of results. - `total_count?: number` Total results available without any search parameters. ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); const addressMap = await client.addressing.addressMaps.delete('055817b111884e0227e1be16a0be6ee0', { account_id: '258def64c72dae45f3e4c8516e2111f2', }); console.log(addressMap.errors); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result_info": { "count": 1, "page": 1, "per_page": 20, "total_count": 2000 } } ``` ## Domain Types ### Address Map - `AddressMap` - `id?: string` Identifier of an Address Map. - `can_delete?: boolean` If set to false, then the Address Map cannot be deleted via API. This is true for Cloudflare-managed maps. - `can_modify_ips?: boolean` If set to false, then the IPs on the Address Map cannot be modified via the API. This is true for Cloudflare-managed maps. - `created_at?: string` - `default_sni?: string | null` If you have legacy TLS clients which do not send the TLS server name indicator, then you can specify one default SNI on the map. If Cloudflare receives a TLS handshake from a client without an SNI, it will respond with the default SNI on those IPs. The default SNI can be any valid zone or subdomain owned by the account. - `description?: string | null` An optional description field which may be used to describe the types of IPs or zones on the map. - `enabled?: boolean | null` Whether the Address Map is enabled or not. Cloudflare's DNS will not respond with IP addresses on an Address Map until the map is enabled. - `modified_at?: string` ### Kind - `Kind = "zone" | "account"` The type of the membership. - `"zone"` - `"account"` ### Address Map Get Response - `AddressMapGetResponse` - `id?: string` Identifier of an Address Map. - `can_delete?: boolean` If set to false, then the Address Map cannot be deleted via API. This is true for Cloudflare-managed maps. - `can_modify_ips?: boolean` If set to false, then the IPs on the Address Map cannot be modified via the API. This is true for Cloudflare-managed maps. - `created_at?: string` - `default_sni?: string | null` If you have legacy TLS clients which do not send the TLS server name indicator, then you can specify one default SNI on the map. If Cloudflare receives a TLS handshake from a client without an SNI, it will respond with the default SNI on those IPs. The default SNI can be any valid zone or subdomain owned by the account. - `description?: string | null` An optional description field which may be used to describe the types of IPs or zones on the map. - `enabled?: boolean | null` Whether the Address Map is enabled or not. Cloudflare's DNS will not respond with IP addresses on an Address Map until the map is enabled. - `ips?: IPsArray` The set of IPs on the Address Map. - `created_at?: string` - `ip?: string` An IPv4 or IPv6 address. - `memberships?: Array` Zones and Accounts which will be assigned IPs on this Address Map. A zone membership will take priority over an account membership. - `can_delete?: boolean` Controls whether the membership can be deleted via the API or not. - `created_at?: string` - `identifier?: string` The identifier for the membership (eg. a zone or account tag). - `kind?: Kind` The type of the membership. - `"zone"` - `"account"` - `modified_at?: string` ### Address Map Create Response - `AddressMapCreateResponse` - `id?: string` Identifier of an Address Map. - `can_delete?: boolean` If set to false, then the Address Map cannot be deleted via API. This is true for Cloudflare-managed maps. - `can_modify_ips?: boolean` If set to false, then the IPs on the Address Map cannot be modified via the API. This is true for Cloudflare-managed maps. - `created_at?: string` - `default_sni?: string | null` If you have legacy TLS clients which do not send the TLS server name indicator, then you can specify one default SNI on the map. If Cloudflare receives a TLS handshake from a client without an SNI, it will respond with the default SNI on those IPs. The default SNI can be any valid zone or subdomain owned by the account. - `description?: string | null` An optional description field which may be used to describe the types of IPs or zones on the map. - `enabled?: boolean | null` Whether the Address Map is enabled or not. Cloudflare's DNS will not respond with IP addresses on an Address Map until the map is enabled. - `ips?: IPsArray` The set of IPs on the Address Map. - `created_at?: string` - `ip?: string` An IPv4 or IPv6 address. - `memberships?: Array` Zones and Accounts which will be assigned IPs on this Address Map. A zone membership will take priority over an account membership. - `can_delete?: boolean` Controls whether the membership can be deleted via the API or not. - `created_at?: string` - `identifier?: string` The identifier for the membership (eg. a zone or account tag). - `kind?: Kind` The type of the membership. - `"zone"` - `"account"` - `modified_at?: string` ### Address Map Delete Response - `AddressMapDeleteResponse` - `errors: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `messages: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `success: true` Whether the API call was successful. - `true` - `result_info?: ResultInfo` - `count?: number` Total number of results for the requested service. - `page?: number` Current page within paginated list of results. - `per_page?: number` Number of results per page of results. - `total_count?: number` Total results available without any search parameters. # Accounts ## Add an account membership to an Address Map `client.addressing.addressMaps.accounts.update(stringaddressMapId, AccountUpdateParamsparams, RequestOptionsoptions?): AccountUpdateResponse` **put** `/accounts/{account_id}/addressing/address_maps/{address_map_id}/accounts/{account_id}` Add an account as a member of a particular address map. ### Parameters - `addressMapId: string` Identifier of an Address Map. - `params: AccountUpdateParams` - `account_id: string` Path param: Identifier of a Cloudflare account. - `body: unknown` Body param ### Returns - `AccountUpdateResponse` - `errors: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `messages: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `success: true` Whether the API call was successful. - `true` - `result_info?: ResultInfo` - `count?: number` Total number of results for the requested service. - `page?: number` Current page within paginated list of results. - `per_page?: number` Number of results per page of results. - `total_count?: number` Total results available without any search parameters. ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); const account = await client.addressing.addressMaps.accounts.update( '055817b111884e0227e1be16a0be6ee0', { account_id: '258def64c72dae45f3e4c8516e2111f2', body: {}, }, ); console.log(account.errors); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result_info": { "count": 1, "page": 1, "per_page": 20, "total_count": 2000 } } ``` ## Remove an account membership from an Address Map `client.addressing.addressMaps.accounts.delete(stringaddressMapId, AccountDeleteParamsparams, RequestOptionsoptions?): AccountDeleteResponse` **delete** `/accounts/{account_id}/addressing/address_maps/{address_map_id}/accounts/{account_id}` Remove an account as a member of a particular address map. ### Parameters - `addressMapId: string` Identifier of an Address Map. - `params: AccountDeleteParams` - `account_id: string` Identifier of a Cloudflare account. ### Returns - `AccountDeleteResponse` - `errors: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `messages: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `success: true` Whether the API call was successful. - `true` - `result_info?: ResultInfo` - `count?: number` Total number of results for the requested service. - `page?: number` Current page within paginated list of results. - `per_page?: number` Number of results per page of results. - `total_count?: number` Total results available without any search parameters. ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); const account = await client.addressing.addressMaps.accounts.delete( '055817b111884e0227e1be16a0be6ee0', { account_id: '258def64c72dae45f3e4c8516e2111f2' }, ); console.log(account.errors); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result_info": { "count": 1, "page": 1, "per_page": 20, "total_count": 2000 } } ``` ## Domain Types ### Account Update Response - `AccountUpdateResponse` - `errors: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `messages: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `success: true` Whether the API call was successful. - `true` - `result_info?: ResultInfo` - `count?: number` Total number of results for the requested service. - `page?: number` Current page within paginated list of results. - `per_page?: number` Number of results per page of results. - `total_count?: number` Total results available without any search parameters. ### Account Delete Response - `AccountDeleteResponse` - `errors: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `messages: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `success: true` Whether the API call was successful. - `true` - `result_info?: ResultInfo` - `count?: number` Total number of results for the requested service. - `page?: number` Current page within paginated list of results. - `per_page?: number` Number of results per page of results. - `total_count?: number` Total results available without any search parameters. # IPs ## Add an IP to an Address Map `client.addressing.addressMaps.ips.update(stringaddressMapId, stringipAddress, IPUpdateParamsparams, RequestOptionsoptions?): IPUpdateResponse` **put** `/accounts/{account_id}/addressing/address_maps/{address_map_id}/ips/{ip_address}` Add an IP from a prefix owned by the account to a particular address map. ### Parameters - `addressMapId: string` Identifier of an Address Map. - `ipAddress: string` An IPv4 or IPv6 address. - `params: IPUpdateParams` - `account_id: string` Path param: Identifier of a Cloudflare account. - `body: unknown` Body param ### Returns - `IPUpdateResponse` - `errors: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `messages: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `success: true` Whether the API call was successful. - `true` - `result_info?: ResultInfo` - `count?: number` Total number of results for the requested service. - `page?: number` Current page within paginated list of results. - `per_page?: number` Number of results per page of results. - `total_count?: number` Total results available without any search parameters. ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); const ip = await client.addressing.addressMaps.ips.update( '055817b111884e0227e1be16a0be6ee0', '192.0.2.1', { account_id: '258def64c72dae45f3e4c8516e2111f2', body: {}, }, ); console.log(ip.errors); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result_info": { "count": 1, "page": 1, "per_page": 20, "total_count": 2000 } } ``` ## Remove an IP from an Address Map `client.addressing.addressMaps.ips.delete(stringaddressMapId, stringipAddress, IPDeleteParamsparams, RequestOptionsoptions?): IPDeleteResponse` **delete** `/accounts/{account_id}/addressing/address_maps/{address_map_id}/ips/{ip_address}` Remove an IP from a particular address map. ### Parameters - `addressMapId: string` Identifier of an Address Map. - `ipAddress: string` An IPv4 or IPv6 address. - `params: IPDeleteParams` - `account_id: string` Identifier of a Cloudflare account. ### Returns - `IPDeleteResponse` - `errors: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `messages: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `success: true` Whether the API call was successful. - `true` - `result_info?: ResultInfo` - `count?: number` Total number of results for the requested service. - `page?: number` Current page within paginated list of results. - `per_page?: number` Number of results per page of results. - `total_count?: number` Total results available without any search parameters. ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); const ip = await client.addressing.addressMaps.ips.delete( '055817b111884e0227e1be16a0be6ee0', '192.0.2.1', { account_id: '258def64c72dae45f3e4c8516e2111f2' }, ); console.log(ip.errors); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result_info": { "count": 1, "page": 1, "per_page": 20, "total_count": 2000 } } ``` ## Domain Types ### IP Update Response - `IPUpdateResponse` - `errors: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `messages: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `success: true` Whether the API call was successful. - `true` - `result_info?: ResultInfo` - `count?: number` Total number of results for the requested service. - `page?: number` Current page within paginated list of results. - `per_page?: number` Number of results per page of results. - `total_count?: number` Total results available without any search parameters. ### IP Delete Response - `IPDeleteResponse` - `errors: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `messages: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `success: true` Whether the API call was successful. - `true` - `result_info?: ResultInfo` - `count?: number` Total number of results for the requested service. - `page?: number` Current page within paginated list of results. - `per_page?: number` Number of results per page of results. - `total_count?: number` Total results available without any search parameters. # Zones ## Add a zone membership to an Address Map `client.addressing.addressMaps.zones.update(stringaddressMapId, ZoneUpdateParamsparams, RequestOptionsoptions?): ZoneUpdateResponse` **put** `/accounts/{account_id}/addressing/address_maps/{address_map_id}/zones/{zone_id}` Add a zone as a member of a particular address map. ### Parameters - `addressMapId: string` Identifier of an Address Map. - `params: ZoneUpdateParams` - `zone_id: string` Path param: Identifier of a zone. - `account_id: string` Path param: Identifier of a Cloudflare account. - `body: unknown` Body param ### Returns - `ZoneUpdateResponse` - `errors: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `messages: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `success: true` Whether the API call was successful. - `true` - `result_info?: ResultInfo` - `count?: number` Total number of results for the requested service. - `page?: number` Current page within paginated list of results. - `per_page?: number` Number of results per page of results. - `total_count?: number` Total results available without any search parameters. ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); const zone = await client.addressing.addressMaps.zones.update('055817b111884e0227e1be16a0be6ee0', { zone_id: '8ac8489932db6327334c9b6d58544cfe', account_id: '258def64c72dae45f3e4c8516e2111f2', body: {}, }); console.log(zone.errors); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result_info": { "count": 1, "page": 1, "per_page": 20, "total_count": 2000 } } ``` ## Remove a zone membership from an Address Map `client.addressing.addressMaps.zones.delete(stringaddressMapId, ZoneDeleteParamsparams, RequestOptionsoptions?): ZoneDeleteResponse` **delete** `/accounts/{account_id}/addressing/address_maps/{address_map_id}/zones/{zone_id}` Remove a zone as a member of a particular address map. ### Parameters - `addressMapId: string` Identifier of an Address Map. - `params: ZoneDeleteParams` - `zone_id: string` Identifier of a zone. - `account_id: string` Identifier of a Cloudflare account. ### Returns - `ZoneDeleteResponse` - `errors: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `messages: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `success: true` Whether the API call was successful. - `true` - `result_info?: ResultInfo` - `count?: number` Total number of results for the requested service. - `page?: number` Current page within paginated list of results. - `per_page?: number` Number of results per page of results. - `total_count?: number` Total results available without any search parameters. ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); const zone = await client.addressing.addressMaps.zones.delete('055817b111884e0227e1be16a0be6ee0', { zone_id: '8ac8489932db6327334c9b6d58544cfe', account_id: '258def64c72dae45f3e4c8516e2111f2', }); console.log(zone.errors); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result_info": { "count": 1, "page": 1, "per_page": 20, "total_count": 2000 } } ``` ## Domain Types ### Zone Update Response - `ZoneUpdateResponse` - `errors: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `messages: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `success: true` Whether the API call was successful. - `true` - `result_info?: ResultInfo` - `count?: number` Total number of results for the requested service. - `page?: number` Current page within paginated list of results. - `per_page?: number` Number of results per page of results. - `total_count?: number` Total results available without any search parameters. ### Zone Delete Response - `ZoneDeleteResponse` - `errors: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `messages: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `success: true` Whether the API call was successful. - `true` - `result_info?: ResultInfo` - `count?: number` Total number of results for the requested service. - `page?: number` Current page within paginated list of results. - `per_page?: number` Number of results per page of results. - `total_count?: number` Total results available without any search parameters. # LOA Documents ## Download LOA Document `client.addressing.loaDocuments.get(stringloaDocumentId, LOADocumentGetParamsparams, RequestOptionsoptions?): Response` **get** `/accounts/{account_id}/addressing/loa_documents/{loa_document_id}/download` Download specified LOA document under the account. ### Parameters - `loaDocumentId: string` Identifier for the uploaded LOA document. - `params: LOADocumentGetParams` - `account_id: string` Identifier of a Cloudflare account. ### Returns - `unnamed_schema_2 = Response` ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); const loaDocument = await client.addressing.loaDocuments.get('d933b1530bc56c9953cf8ce166da8004', { account_id: '258def64c72dae45f3e4c8516e2111f2', }); console.log(loaDocument); const content = await loaDocument.blob(); console.log(content); ``` ## Upload LOA Document `client.addressing.loaDocuments.create(LOADocumentCreateParamsparams, RequestOptionsoptions?): LOADocumentCreateResponse` **post** `/accounts/{account_id}/addressing/loa_documents` Submit LOA document (pdf format) under the account. ### Parameters - `params: LOADocumentCreateParams` - `account_id: string` Path param: Identifier of a Cloudflare account. - `loa_document: string` Body param: LOA document to upload. ### Returns - `LOADocumentCreateResponse` - `id?: string | null` Identifier for the uploaded LOA document. - `account_id?: string` Identifier of a Cloudflare account. - `auto_generated?: boolean` Whether the LOA has been auto-generated for the prefix owner by Cloudflare. - `created?: string` - `filename?: string` Name of LOA document. Max file size 10MB, and supported filetype is pdf. - `size_bytes?: number` File size of the uploaded LOA document. - `verified?: boolean` Whether the LOA has been verified by Cloudflare staff. - `verified_at?: string | null` Timestamp of the moment the LOA was marked as validated. ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); const loaDocument = await client.addressing.loaDocuments.create({ account_id: '258def64c72dae45f3e4c8516e2111f2', loa_document: '@document.pdf', }); console.log(loaDocument.id); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "d933b1530bc56c9953cf8ce166da8004", "account_id": "258def64c72dae45f3e4c8516e2111f2", "auto_generated": true, "created": "2014-01-01T05:20:00.12345Z", "filename": "site_loa_doc.pdf", "size_bytes": 444, "verified": true, "verified_at": "2019-12-27T18:11:19.117Z" } } ``` ## Domain Types ### LOA Document Create Response - `LOADocumentCreateResponse` - `id?: string | null` Identifier for the uploaded LOA document. - `account_id?: string` Identifier of a Cloudflare account. - `auto_generated?: boolean` Whether the LOA has been auto-generated for the prefix owner by Cloudflare. - `created?: string` - `filename?: string` Name of LOA document. Max file size 10MB, and supported filetype is pdf. - `size_bytes?: number` File size of the uploaded LOA document. - `verified?: boolean` Whether the LOA has been verified by Cloudflare staff. - `verified_at?: string | null` Timestamp of the moment the LOA was marked as validated. # Prefixes ## List Prefixes `client.addressing.prefixes.list(PrefixListParamsparams, RequestOptionsoptions?): SinglePage` **get** `/accounts/{account_id}/addressing/prefixes` List all prefixes owned by the account. ### Parameters - `params: PrefixListParams` - `account_id: string` Identifier of a Cloudflare account. ### Returns - `Prefix` - `id?: string` Identifier of an IP Prefix. - `account_id?: string` Identifier of a Cloudflare account. - `advertised?: boolean | null` Prefix advertisement status to the Internet. This field is only not 'null' if on demand is enabled. - `advertised_modified_at?: string | null` Last time the advertisement status was changed. This field is only not 'null' if on demand is enabled. - `approved?: string` Approval state of the prefix (P = pending, V = active). - `asn?: number` Autonomous System Number (ASN) the prefix will be advertised under. - `cidr?: string` IP Prefix in Classless Inter-Domain Routing format. - `created_at?: string` - `delegate_loa_creation?: boolean` Whether Cloudflare is allowed to generate the LOA document on behalf of the prefix owner. - `description?: string` Description of the prefix. - `irr_validation_state?: string` State of one kind of validation for an IP prefix. - `loa_document_id?: string | null` Identifier for the uploaded LOA document. - `modified_at?: string` - `on_demand_enabled?: boolean` Whether advertisement of the prefix to the Internet may be dynamically enabled or disabled. - `on_demand_locked?: boolean` Whether advertisement status of the prefix is locked, meaning it cannot be changed. - `ownership_validation_state?: string` State of one kind of validation for an IP prefix. - `ownership_validation_token?: string` Token provided to demonstrate ownership of the prefix. - `rpki_validation_state?: string` State of one kind of validation for an IP prefix. ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const prefix of client.addressing.prefixes.list({ account_id: '258def64c72dae45f3e4c8516e2111f2', })) { console.log(prefix.id); } ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": [ { "id": "2af39739cc4e3b5910c918468bb89828", "account_id": "258def64c72dae45f3e4c8516e2111f2", "advertised": true, "advertised_modified_at": "2014-01-01T05:20:00.12345Z", "approved": "P", "asn": 13335, "cidr": "192.0.2.0/24", "created_at": "2014-01-01T05:20:00.12345Z", "delegate_loa_creation": true, "description": "Internal test prefix", "irr_validation_state": "pending", "loa_document_id": "d933b1530bc56c9953cf8ce166da8004", "modified_at": "2014-01-01T05:20:00.12345Z", "on_demand_enabled": true, "on_demand_locked": false, "ownership_validation_state": "pending", "ownership_validation_token": "1234a5b6-1234-1abc-12a3-1234a5b6789c", "rpki_validation_state": "pending" } ] } ``` ## Prefix Details `client.addressing.prefixes.get(stringprefixId, PrefixGetParamsparams, RequestOptionsoptions?): Prefix` **get** `/accounts/{account_id}/addressing/prefixes/{prefix_id}` List a particular prefix owned by the account. ### Parameters - `prefixId: string` Identifier of an IP Prefix. - `params: PrefixGetParams` - `account_id: string` Identifier of a Cloudflare account. ### Returns - `Prefix` - `id?: string` Identifier of an IP Prefix. - `account_id?: string` Identifier of a Cloudflare account. - `advertised?: boolean | null` Prefix advertisement status to the Internet. This field is only not 'null' if on demand is enabled. - `advertised_modified_at?: string | null` Last time the advertisement status was changed. This field is only not 'null' if on demand is enabled. - `approved?: string` Approval state of the prefix (P = pending, V = active). - `asn?: number` Autonomous System Number (ASN) the prefix will be advertised under. - `cidr?: string` IP Prefix in Classless Inter-Domain Routing format. - `created_at?: string` - `delegate_loa_creation?: boolean` Whether Cloudflare is allowed to generate the LOA document on behalf of the prefix owner. - `description?: string` Description of the prefix. - `irr_validation_state?: string` State of one kind of validation for an IP prefix. - `loa_document_id?: string | null` Identifier for the uploaded LOA document. - `modified_at?: string` - `on_demand_enabled?: boolean` Whether advertisement of the prefix to the Internet may be dynamically enabled or disabled. - `on_demand_locked?: boolean` Whether advertisement status of the prefix is locked, meaning it cannot be changed. - `ownership_validation_state?: string` State of one kind of validation for an IP prefix. - `ownership_validation_token?: string` Token provided to demonstrate ownership of the prefix. - `rpki_validation_state?: string` State of one kind of validation for an IP prefix. ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); const prefix = await client.addressing.prefixes.get('2af39739cc4e3b5910c918468bb89828', { account_id: '258def64c72dae45f3e4c8516e2111f2', }); console.log(prefix.id); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "2af39739cc4e3b5910c918468bb89828", "account_id": "258def64c72dae45f3e4c8516e2111f2", "advertised": true, "advertised_modified_at": "2014-01-01T05:20:00.12345Z", "approved": "P", "asn": 13335, "cidr": "192.0.2.0/24", "created_at": "2014-01-01T05:20:00.12345Z", "delegate_loa_creation": true, "description": "Internal test prefix", "irr_validation_state": "pending", "loa_document_id": "d933b1530bc56c9953cf8ce166da8004", "modified_at": "2014-01-01T05:20:00.12345Z", "on_demand_enabled": true, "on_demand_locked": false, "ownership_validation_state": "pending", "ownership_validation_token": "1234a5b6-1234-1abc-12a3-1234a5b6789c", "rpki_validation_state": "pending" } } ``` ## Add Prefix `client.addressing.prefixes.create(PrefixCreateParamsparams, RequestOptionsoptions?): Prefix` **post** `/accounts/{account_id}/addressing/prefixes` Add a new prefix under the account. ### Parameters - `params: PrefixCreateParams` - `account_id: string` Path param: Identifier of a Cloudflare account. - `asn: number` Body param: Autonomous System Number (ASN) the prefix will be advertised under. - `cidr: string` Body param: IP Prefix in Classless Inter-Domain Routing format. - `delegate_loa_creation?: boolean` Body param: Whether Cloudflare is allowed to generate the LOA document on behalf of the prefix owner. - `description?: string` Body param: Description of the prefix. - `loa_document_id?: string | null` Body param: Identifier for the uploaded LOA document. ### Returns - `Prefix` - `id?: string` Identifier of an IP Prefix. - `account_id?: string` Identifier of a Cloudflare account. - `advertised?: boolean | null` Prefix advertisement status to the Internet. This field is only not 'null' if on demand is enabled. - `advertised_modified_at?: string | null` Last time the advertisement status was changed. This field is only not 'null' if on demand is enabled. - `approved?: string` Approval state of the prefix (P = pending, V = active). - `asn?: number` Autonomous System Number (ASN) the prefix will be advertised under. - `cidr?: string` IP Prefix in Classless Inter-Domain Routing format. - `created_at?: string` - `delegate_loa_creation?: boolean` Whether Cloudflare is allowed to generate the LOA document on behalf of the prefix owner. - `description?: string` Description of the prefix. - `irr_validation_state?: string` State of one kind of validation for an IP prefix. - `loa_document_id?: string | null` Identifier for the uploaded LOA document. - `modified_at?: string` - `on_demand_enabled?: boolean` Whether advertisement of the prefix to the Internet may be dynamically enabled or disabled. - `on_demand_locked?: boolean` Whether advertisement status of the prefix is locked, meaning it cannot be changed. - `ownership_validation_state?: string` State of one kind of validation for an IP prefix. - `ownership_validation_token?: string` Token provided to demonstrate ownership of the prefix. - `rpki_validation_state?: string` State of one kind of validation for an IP prefix. ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); const prefix = await client.addressing.prefixes.create({ account_id: '258def64c72dae45f3e4c8516e2111f2', asn: 13335, cidr: '192.0.2.0/24', }); console.log(prefix.id); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "2af39739cc4e3b5910c918468bb89828", "account_id": "258def64c72dae45f3e4c8516e2111f2", "advertised": true, "advertised_modified_at": "2014-01-01T05:20:00.12345Z", "approved": "P", "asn": 13335, "cidr": "192.0.2.0/24", "created_at": "2014-01-01T05:20:00.12345Z", "delegate_loa_creation": true, "description": "Internal test prefix", "irr_validation_state": "pending", "loa_document_id": "d933b1530bc56c9953cf8ce166da8004", "modified_at": "2014-01-01T05:20:00.12345Z", "on_demand_enabled": true, "on_demand_locked": false, "ownership_validation_state": "pending", "ownership_validation_token": "1234a5b6-1234-1abc-12a3-1234a5b6789c", "rpki_validation_state": "pending" } } ``` ## Update Prefix Description `client.addressing.prefixes.edit(stringprefixId, PrefixEditParamsparams, RequestOptionsoptions?): Prefix` **patch** `/accounts/{account_id}/addressing/prefixes/{prefix_id}` Modify the description for a prefix owned by the account. ### Parameters - `prefixId: string` Identifier of an IP Prefix. - `params: PrefixEditParams` - `account_id: string` Path param: Identifier of a Cloudflare account. - `description: string` Body param: Description of the prefix. ### Returns - `Prefix` - `id?: string` Identifier of an IP Prefix. - `account_id?: string` Identifier of a Cloudflare account. - `advertised?: boolean | null` Prefix advertisement status to the Internet. This field is only not 'null' if on demand is enabled. - `advertised_modified_at?: string | null` Last time the advertisement status was changed. This field is only not 'null' if on demand is enabled. - `approved?: string` Approval state of the prefix (P = pending, V = active). - `asn?: number` Autonomous System Number (ASN) the prefix will be advertised under. - `cidr?: string` IP Prefix in Classless Inter-Domain Routing format. - `created_at?: string` - `delegate_loa_creation?: boolean` Whether Cloudflare is allowed to generate the LOA document on behalf of the prefix owner. - `description?: string` Description of the prefix. - `irr_validation_state?: string` State of one kind of validation for an IP prefix. - `loa_document_id?: string | null` Identifier for the uploaded LOA document. - `modified_at?: string` - `on_demand_enabled?: boolean` Whether advertisement of the prefix to the Internet may be dynamically enabled or disabled. - `on_demand_locked?: boolean` Whether advertisement status of the prefix is locked, meaning it cannot be changed. - `ownership_validation_state?: string` State of one kind of validation for an IP prefix. - `ownership_validation_token?: string` Token provided to demonstrate ownership of the prefix. - `rpki_validation_state?: string` State of one kind of validation for an IP prefix. ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); const prefix = await client.addressing.prefixes.edit('2af39739cc4e3b5910c918468bb89828', { account_id: '258def64c72dae45f3e4c8516e2111f2', description: 'Internal test prefix', }); console.log(prefix.id); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "2af39739cc4e3b5910c918468bb89828", "account_id": "258def64c72dae45f3e4c8516e2111f2", "advertised": true, "advertised_modified_at": "2014-01-01T05:20:00.12345Z", "approved": "P", "asn": 13335, "cidr": "192.0.2.0/24", "created_at": "2014-01-01T05:20:00.12345Z", "delegate_loa_creation": true, "description": "Internal test prefix", "irr_validation_state": "pending", "loa_document_id": "d933b1530bc56c9953cf8ce166da8004", "modified_at": "2014-01-01T05:20:00.12345Z", "on_demand_enabled": true, "on_demand_locked": false, "ownership_validation_state": "pending", "ownership_validation_token": "1234a5b6-1234-1abc-12a3-1234a5b6789c", "rpki_validation_state": "pending" } } ``` ## Delete Prefix `client.addressing.prefixes.delete(stringprefixId, PrefixDeleteParamsparams, RequestOptionsoptions?): PrefixDeleteResponse` **delete** `/accounts/{account_id}/addressing/prefixes/{prefix_id}` Delete an unapproved prefix owned by the account. ### Parameters - `prefixId: string` Identifier of an IP Prefix. - `params: PrefixDeleteParams` - `account_id: string` Identifier of a Cloudflare account. ### Returns - `PrefixDeleteResponse` - `errors: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `messages: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `success: true` Whether the API call was successful. - `true` ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); const prefix = await client.addressing.prefixes.delete('2af39739cc4e3b5910c918468bb89828', { account_id: '258def64c72dae45f3e4c8516e2111f2', }); console.log(prefix.errors); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true } ``` ## Domain Types ### Prefix - `Prefix` - `id?: string` Identifier of an IP Prefix. - `account_id?: string` Identifier of a Cloudflare account. - `advertised?: boolean | null` Prefix advertisement status to the Internet. This field is only not 'null' if on demand is enabled. - `advertised_modified_at?: string | null` Last time the advertisement status was changed. This field is only not 'null' if on demand is enabled. - `approved?: string` Approval state of the prefix (P = pending, V = active). - `asn?: number` Autonomous System Number (ASN) the prefix will be advertised under. - `cidr?: string` IP Prefix in Classless Inter-Domain Routing format. - `created_at?: string` - `delegate_loa_creation?: boolean` Whether Cloudflare is allowed to generate the LOA document on behalf of the prefix owner. - `description?: string` Description of the prefix. - `irr_validation_state?: string` State of one kind of validation for an IP prefix. - `loa_document_id?: string | null` Identifier for the uploaded LOA document. - `modified_at?: string` - `on_demand_enabled?: boolean` Whether advertisement of the prefix to the Internet may be dynamically enabled or disabled. - `on_demand_locked?: boolean` Whether advertisement status of the prefix is locked, meaning it cannot be changed. - `ownership_validation_state?: string` State of one kind of validation for an IP prefix. - `ownership_validation_token?: string` Token provided to demonstrate ownership of the prefix. - `rpki_validation_state?: string` State of one kind of validation for an IP prefix. ### Prefix Delete Response - `PrefixDeleteResponse` - `errors: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `messages: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `success: true` Whether the API call was successful. - `true` # Service Bindings ## List Service Bindings `client.addressing.prefixes.serviceBindings.list(stringprefixId, ServiceBindingListParamsparams, RequestOptionsoptions?): SinglePage` **get** `/accounts/{account_id}/addressing/prefixes/{prefix_id}/bindings` List the Cloudflare services this prefix is currently bound to. Traffic sent to an address within an IP prefix will be routed to the Cloudflare service of the most-specific Service Binding matching the address. **Example:** binding `192.0.2.0/24` to Cloudflare Magic Transit and `192.0.2.1/32` to the Cloudflare CDN would route traffic for `192.0.2.1` to the CDN, and traffic for all other IPs in the prefix to Cloudflare Magic Transit. ### Parameters - `prefixId: string` Identifier of an IP Prefix. - `params: ServiceBindingListParams` - `account_id: string` Identifier of a Cloudflare account. ### Returns - `ServiceBinding` - `id?: string` Identifier of a Service Binding. - `cidr?: string` IP Prefix in Classless Inter-Domain Routing format. - `provisioning?: Provisioning` Status of a Service Binding's deployment to the Cloudflare network - `state?: "provisioning" | "active"` When a binding has been deployed to a majority of Cloudflare datacenters, the binding will become active and can be used with its associated service. - `"provisioning"` - `"active"` - `service_id?: string` Identifier of a Service on the Cloudflare network. Available services and their IDs may be found in the **List Services** endpoint. - `service_name?: string` Name of a service running on the Cloudflare network ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const serviceBinding of client.addressing.prefixes.serviceBindings.list( '2af39739cc4e3b5910c918468bb89828', { account_id: '258def64c72dae45f3e4c8516e2111f2' }, )) { console.log(serviceBinding.id); } ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": [ { "id": "0429b49b6a5155297b78e75a44b09e14", "cidr": "192.0.2.0/24", "provisioning": { "state": "provisioning" }, "service_id": "2db684ee7ca04e159946fd05b99e1bcd", "service_name": "Magic Transit" } ] } ``` ## Get Service Binding `client.addressing.prefixes.serviceBindings.get(stringprefixId, stringbindingId, ServiceBindingGetParamsparams, RequestOptionsoptions?): ServiceBinding` **get** `/accounts/{account_id}/addressing/prefixes/{prefix_id}/bindings/{binding_id}` Fetch a single Service Binding ### Parameters - `prefixId: string` Identifier of an IP Prefix. - `bindingId: string` Identifier of a Service Binding. - `params: ServiceBindingGetParams` - `account_id: string` Identifier of a Cloudflare account. ### Returns - `ServiceBinding` - `id?: string` Identifier of a Service Binding. - `cidr?: string` IP Prefix in Classless Inter-Domain Routing format. - `provisioning?: Provisioning` Status of a Service Binding's deployment to the Cloudflare network - `state?: "provisioning" | "active"` When a binding has been deployed to a majority of Cloudflare datacenters, the binding will become active and can be used with its associated service. - `"provisioning"` - `"active"` - `service_id?: string` Identifier of a Service on the Cloudflare network. Available services and their IDs may be found in the **List Services** endpoint. - `service_name?: string` Name of a service running on the Cloudflare network ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); const serviceBinding = await client.addressing.prefixes.serviceBindings.get( '2af39739cc4e3b5910c918468bb89828', '0429b49b6a5155297b78e75a44b09e14', { account_id: '258def64c72dae45f3e4c8516e2111f2' }, ); console.log(serviceBinding.id); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "0429b49b6a5155297b78e75a44b09e14", "cidr": "192.0.2.0/24", "provisioning": { "state": "provisioning" }, "service_id": "2db684ee7ca04e159946fd05b99e1bcd", "service_name": "Magic Transit" } } ``` ## Create Service Binding `client.addressing.prefixes.serviceBindings.create(stringprefixId, ServiceBindingCreateParamsparams, RequestOptionsoptions?): ServiceBinding` **post** `/accounts/{account_id}/addressing/prefixes/{prefix_id}/bindings` Creates a new Service Binding, routing traffic to IPs within the given CIDR to a service running on Cloudflare's network. **NOTE:** The first Service Binding created for an IP Prefix must exactly match the IP Prefix's CIDR. Subsequent Service Bindings may be created with a more-specific CIDR. Refer to the [Service Bindings Documentation](https://developers.cloudflare.com/byoip/service-bindings/) for compatibility details. ### Parameters - `prefixId: string` Identifier of an IP Prefix. - `params: ServiceBindingCreateParams` - `account_id: string` Path param: Identifier of a Cloudflare account. - `cidr: string` Body param: IP Prefix in Classless Inter-Domain Routing format. - `service_id: string` Body param: Identifier of a Service on the Cloudflare network. Available services and their IDs may be found in the **List Services** endpoint. ### Returns - `ServiceBinding` - `id?: string` Identifier of a Service Binding. - `cidr?: string` IP Prefix in Classless Inter-Domain Routing format. - `provisioning?: Provisioning` Status of a Service Binding's deployment to the Cloudflare network - `state?: "provisioning" | "active"` When a binding has been deployed to a majority of Cloudflare datacenters, the binding will become active and can be used with its associated service. - `"provisioning"` - `"active"` - `service_id?: string` Identifier of a Service on the Cloudflare network. Available services and their IDs may be found in the **List Services** endpoint. - `service_name?: string` Name of a service running on the Cloudflare network ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); const serviceBinding = await client.addressing.prefixes.serviceBindings.create( '2af39739cc4e3b5910c918468bb89828', { account_id: '258def64c72dae45f3e4c8516e2111f2', cidr: '192.0.2.0/24', service_id: '2db684ee7ca04e159946fd05b99e1bcd', }, ); console.log(serviceBinding.id); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "0429b49b6a5155297b78e75a44b09e14", "cidr": "192.0.2.0/24", "provisioning": { "state": "provisioning" }, "service_id": "2db684ee7ca04e159946fd05b99e1bcd", "service_name": "Magic Transit" } } ``` ## Delete Service Binding `client.addressing.prefixes.serviceBindings.delete(stringprefixId, stringbindingId, ServiceBindingDeleteParamsparams, RequestOptionsoptions?): ServiceBindingDeleteResponse` **delete** `/accounts/{account_id}/addressing/prefixes/{prefix_id}/bindings/{binding_id}` Delete a Service Binding ### Parameters - `prefixId: string` Identifier of an IP Prefix. - `bindingId: string` Identifier of a Service Binding. - `params: ServiceBindingDeleteParams` - `account_id: string` Identifier of a Cloudflare account. ### Returns - `ServiceBindingDeleteResponse` - `errors: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `messages: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `success: true` Whether the API call was successful. - `true` ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); const serviceBinding = await client.addressing.prefixes.serviceBindings.delete( '2af39739cc4e3b5910c918468bb89828', '0429b49b6a5155297b78e75a44b09e14', { account_id: '258def64c72dae45f3e4c8516e2111f2' }, ); console.log(serviceBinding.errors); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true } ``` ## Domain Types ### Service Binding - `ServiceBinding` - `id?: string` Identifier of a Service Binding. - `cidr?: string` IP Prefix in Classless Inter-Domain Routing format. - `provisioning?: Provisioning` Status of a Service Binding's deployment to the Cloudflare network - `state?: "provisioning" | "active"` When a binding has been deployed to a majority of Cloudflare datacenters, the binding will become active and can be used with its associated service. - `"provisioning"` - `"active"` - `service_id?: string` Identifier of a Service on the Cloudflare network. Available services and their IDs may be found in the **List Services** endpoint. - `service_name?: string` Name of a service running on the Cloudflare network ### Service Binding Delete Response - `ServiceBindingDeleteResponse` - `errors: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `messages: Array` - `code: number` - `message: string` - `documentation_url?: string` - `source?: Source` - `pointer?: string` - `success: true` Whether the API call was successful. - `true` # BGP Prefixes ## List BGP Prefixes `client.addressing.prefixes.bgpPrefixes.list(stringprefixId, BGPPrefixListParamsparams, RequestOptionsoptions?): SinglePage` **get** `/accounts/{account_id}/addressing/prefixes/{prefix_id}/bgp/prefixes` List all BGP Prefixes within the specified IP Prefix. BGP Prefixes are used to control which specific subnets are advertised to the Internet. It is possible to advertise subnets more specific than an IP Prefix by creating more specific BGP Prefixes. ### Parameters - `prefixId: string` Identifier of an IP Prefix. - `params: BGPPrefixListParams` - `account_id: string` Identifier of a Cloudflare account. ### Returns - `BGPPrefix` - `id?: string` Identifier of BGP Prefix. - `asn?: number | null` Autonomous System Number (ASN) the prefix will be advertised under. - `asn_prepend_count?: number` Number of times to prepend the Cloudflare ASN to the BGP AS-Path attribute - `auto_advertise_withdraw?: boolean` Determines if Cloudflare advertises a BYOIP BGP prefix even when there is no matching BGP prefix in the Magic routing table. When true, Cloudflare will automatically withdraw the BGP prefix when there are no matching BGP routes, and will resume advertising when there is at least one matching BGP route. - `bgp_signal_opts?: BGPSignalOpts` - `enabled?: boolean` Whether control of advertisement of the prefix to the Internet is enabled to be performed via BGP signal - `modified_at?: string | null` Last time BGP signaling control was toggled. This field is null if BGP signaling has never been enabled. - `cidr?: string` IP Prefix in Classless Inter-Domain Routing format. - `created_at?: string` - `modified_at?: string` - `on_demand?: OnDemand` - `advertised?: boolean | null` Prefix advertisement status to the Internet. This field is only not 'null' if on demand is enabled. - `advertised_modified_at?: string | null` Last time the advertisement status was changed. This field is only not 'null' if on demand is enabled. - `on_demand_enabled?: boolean` Whether advertisement of the prefix to the Internet may be dynamically enabled or disabled. - `on_demand_locked?: boolean` Whether the advertisement status of the prefix is locked, meaning it cannot be changed. ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const bgpPrefix of client.addressing.prefixes.bgpPrefixes.list( '2af39739cc4e3b5910c918468bb89828', { account_id: '258def64c72dae45f3e4c8516e2111f2' }, )) { console.log(bgpPrefix.id); } ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": [ { "id": "7009ba364c7a5760798ceb430e603b74", "asn": 13335, "asn_prepend_count": 2, "auto_advertise_withdraw": true, "bgp_signal_opts": { "enabled": false, "modified_at": "2014-01-01T05:20:00.12345Z" }, "cidr": "192.0.2.0/24", "created_at": "2014-01-01T05:20:00.12345Z", "modified_at": "2014-01-01T05:20:00.12345Z", "on_demand": { "advertised": true, "advertised_modified_at": "2014-01-01T05:20:00.12345Z", "on_demand_enabled": true, "on_demand_locked": false } } ] } ``` ## Fetch BGP Prefix `client.addressing.prefixes.bgpPrefixes.get(stringprefixId, stringbgpPrefixId, BGPPrefixGetParamsparams, RequestOptionsoptions?): BGPPrefix` **get** `/accounts/{account_id}/addressing/prefixes/{prefix_id}/bgp/prefixes/{bgp_prefix_id}` Retrieve a single BGP Prefix according to its identifier ### Parameters - `prefixId: string` Identifier of an IP Prefix. - `bgpPrefixId: string` Identifier of BGP Prefix. - `params: BGPPrefixGetParams` - `account_id: string` Identifier of a Cloudflare account. ### Returns - `BGPPrefix` - `id?: string` Identifier of BGP Prefix. - `asn?: number | null` Autonomous System Number (ASN) the prefix will be advertised under. - `asn_prepend_count?: number` Number of times to prepend the Cloudflare ASN to the BGP AS-Path attribute - `auto_advertise_withdraw?: boolean` Determines if Cloudflare advertises a BYOIP BGP prefix even when there is no matching BGP prefix in the Magic routing table. When true, Cloudflare will automatically withdraw the BGP prefix when there are no matching BGP routes, and will resume advertising when there is at least one matching BGP route. - `bgp_signal_opts?: BGPSignalOpts` - `enabled?: boolean` Whether control of advertisement of the prefix to the Internet is enabled to be performed via BGP signal - `modified_at?: string | null` Last time BGP signaling control was toggled. This field is null if BGP signaling has never been enabled. - `cidr?: string` IP Prefix in Classless Inter-Domain Routing format. - `created_at?: string` - `modified_at?: string` - `on_demand?: OnDemand` - `advertised?: boolean | null` Prefix advertisement status to the Internet. This field is only not 'null' if on demand is enabled. - `advertised_modified_at?: string | null` Last time the advertisement status was changed. This field is only not 'null' if on demand is enabled. - `on_demand_enabled?: boolean` Whether advertisement of the prefix to the Internet may be dynamically enabled or disabled. - `on_demand_locked?: boolean` Whether the advertisement status of the prefix is locked, meaning it cannot be changed. ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); const bgpPrefix = await client.addressing.prefixes.bgpPrefixes.get( '2af39739cc4e3b5910c918468bb89828', '7009ba364c7a5760798ceb430e603b74', { account_id: '258def64c72dae45f3e4c8516e2111f2' }, ); console.log(bgpPrefix.id); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "7009ba364c7a5760798ceb430e603b74", "asn": 13335, "asn_prepend_count": 2, "auto_advertise_withdraw": true, "bgp_signal_opts": { "enabled": false, "modified_at": "2014-01-01T05:20:00.12345Z" }, "cidr": "192.0.2.0/24", "created_at": "2014-01-01T05:20:00.12345Z", "modified_at": "2014-01-01T05:20:00.12345Z", "on_demand": { "advertised": true, "advertised_modified_at": "2014-01-01T05:20:00.12345Z", "on_demand_enabled": true, "on_demand_locked": false } } } ``` ## Create BGP Prefix `client.addressing.prefixes.bgpPrefixes.create(stringprefixId, BGPPrefixCreateParamsparams, RequestOptionsoptions?): BGPPrefix` **post** `/accounts/{account_id}/addressing/prefixes/{prefix_id}/bgp/prefixes` Create a BGP prefix, controlling the BGP advertisement status of a specific subnet. When created, BGP prefixes are initially withdrawn, and can be advertised with the Update BGP Prefix API. ### Parameters - `prefixId: string` Identifier of an IP Prefix. - `params: BGPPrefixCreateParams` - `account_id: string` Path param: Identifier of a Cloudflare account. - `cidr: string` Body param: IP Prefix in Classless Inter-Domain Routing format. ### Returns - `BGPPrefix` - `id?: string` Identifier of BGP Prefix. - `asn?: number | null` Autonomous System Number (ASN) the prefix will be advertised under. - `asn_prepend_count?: number` Number of times to prepend the Cloudflare ASN to the BGP AS-Path attribute - `auto_advertise_withdraw?: boolean` Determines if Cloudflare advertises a BYOIP BGP prefix even when there is no matching BGP prefix in the Magic routing table. When true, Cloudflare will automatically withdraw the BGP prefix when there are no matching BGP routes, and will resume advertising when there is at least one matching BGP route. - `bgp_signal_opts?: BGPSignalOpts` - `enabled?: boolean` Whether control of advertisement of the prefix to the Internet is enabled to be performed via BGP signal - `modified_at?: string | null` Last time BGP signaling control was toggled. This field is null if BGP signaling has never been enabled. - `cidr?: string` IP Prefix in Classless Inter-Domain Routing format. - `created_at?: string` - `modified_at?: string` - `on_demand?: OnDemand` - `advertised?: boolean | null` Prefix advertisement status to the Internet. This field is only not 'null' if on demand is enabled. - `advertised_modified_at?: string | null` Last time the advertisement status was changed. This field is only not 'null' if on demand is enabled. - `on_demand_enabled?: boolean` Whether advertisement of the prefix to the Internet may be dynamically enabled or disabled. - `on_demand_locked?: boolean` Whether the advertisement status of the prefix is locked, meaning it cannot be changed. ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); const bgpPrefix = await client.addressing.prefixes.bgpPrefixes.create( '2af39739cc4e3b5910c918468bb89828', { account_id: '258def64c72dae45f3e4c8516e2111f2', cidr: '192.0.2.0/24' }, ); console.log(bgpPrefix.id); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "7009ba364c7a5760798ceb430e603b74", "asn": 13335, "asn_prepend_count": 2, "auto_advertise_withdraw": true, "bgp_signal_opts": { "enabled": false, "modified_at": "2014-01-01T05:20:00.12345Z" }, "cidr": "192.0.2.0/24", "created_at": "2014-01-01T05:20:00.12345Z", "modified_at": "2014-01-01T05:20:00.12345Z", "on_demand": { "advertised": true, "advertised_modified_at": "2014-01-01T05:20:00.12345Z", "on_demand_enabled": true, "on_demand_locked": false } } } ``` ## Update BGP Prefix `client.addressing.prefixes.bgpPrefixes.edit(stringprefixId, stringbgpPrefixId, BGPPrefixEditParamsparams, RequestOptionsoptions?): BGPPrefix` **patch** `/accounts/{account_id}/addressing/prefixes/{prefix_id}/bgp/prefixes/{bgp_prefix_id}` Update the properties of a BGP Prefix, such as the on demand advertisement status (advertised or withdrawn). ### Parameters - `prefixId: string` Identifier of an IP Prefix. - `bgpPrefixId: string` Identifier of BGP Prefix. - `params: BGPPrefixEditParams` - `account_id: string` Path param: Identifier of a Cloudflare account. - `asn_prepend_count?: number` Body param: Number of times to prepend the Cloudflare ASN to the BGP AS-Path attribute - `auto_advertise_withdraw?: boolean` Body param: Determines if Cloudflare advertises a BYOIP BGP prefix even when there is no matching BGP prefix in the Magic routing table. When true, Cloudflare will automatically withdraw the BGP prefix when there are no matching BGP routes, and will resume advertising when there is at least one matching BGP route. - `on_demand?: OnDemand` Body param - `advertised?: boolean` ### Returns - `BGPPrefix` - `id?: string` Identifier of BGP Prefix. - `asn?: number | null` Autonomous System Number (ASN) the prefix will be advertised under. - `asn_prepend_count?: number` Number of times to prepend the Cloudflare ASN to the BGP AS-Path attribute - `auto_advertise_withdraw?: boolean` Determines if Cloudflare advertises a BYOIP BGP prefix even when there is no matching BGP prefix in the Magic routing table. When true, Cloudflare will automatically withdraw the BGP prefix when there are no matching BGP routes, and will resume advertising when there is at least one matching BGP route. - `bgp_signal_opts?: BGPSignalOpts` - `enabled?: boolean` Whether control of advertisement of the prefix to the Internet is enabled to be performed via BGP signal - `modified_at?: string | null` Last time BGP signaling control was toggled. This field is null if BGP signaling has never been enabled. - `cidr?: string` IP Prefix in Classless Inter-Domain Routing format. - `created_at?: string` - `modified_at?: string` - `on_demand?: OnDemand` - `advertised?: boolean | null` Prefix advertisement status to the Internet. This field is only not 'null' if on demand is enabled. - `advertised_modified_at?: string | null` Last time the advertisement status was changed. This field is only not 'null' if on demand is enabled. - `on_demand_enabled?: boolean` Whether advertisement of the prefix to the Internet may be dynamically enabled or disabled. - `on_demand_locked?: boolean` Whether the advertisement status of the prefix is locked, meaning it cannot be changed. ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); const bgpPrefix = await client.addressing.prefixes.bgpPrefixes.edit( '2af39739cc4e3b5910c918468bb89828', '7009ba364c7a5760798ceb430e603b74', { account_id: '258def64c72dae45f3e4c8516e2111f2' }, ); console.log(bgpPrefix.id); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "7009ba364c7a5760798ceb430e603b74", "asn": 13335, "asn_prepend_count": 2, "auto_advertise_withdraw": true, "bgp_signal_opts": { "enabled": false, "modified_at": "2014-01-01T05:20:00.12345Z" }, "cidr": "192.0.2.0/24", "created_at": "2014-01-01T05:20:00.12345Z", "modified_at": "2014-01-01T05:20:00.12345Z", "on_demand": { "advertised": true, "advertised_modified_at": "2014-01-01T05:20:00.12345Z", "on_demand_enabled": true, "on_demand_locked": false } } } ``` ## Domain Types ### BGP Prefix - `BGPPrefix` - `id?: string` Identifier of BGP Prefix. - `asn?: number | null` Autonomous System Number (ASN) the prefix will be advertised under. - `asn_prepend_count?: number` Number of times to prepend the Cloudflare ASN to the BGP AS-Path attribute - `auto_advertise_withdraw?: boolean` Determines if Cloudflare advertises a BYOIP BGP prefix even when there is no matching BGP prefix in the Magic routing table. When true, Cloudflare will automatically withdraw the BGP prefix when there are no matching BGP routes, and will resume advertising when there is at least one matching BGP route. - `bgp_signal_opts?: BGPSignalOpts` - `enabled?: boolean` Whether control of advertisement of the prefix to the Internet is enabled to be performed via BGP signal - `modified_at?: string | null` Last time BGP signaling control was toggled. This field is null if BGP signaling has never been enabled. - `cidr?: string` IP Prefix in Classless Inter-Domain Routing format. - `created_at?: string` - `modified_at?: string` - `on_demand?: OnDemand` - `advertised?: boolean | null` Prefix advertisement status to the Internet. This field is only not 'null' if on demand is enabled. - `advertised_modified_at?: string | null` Last time the advertisement status was changed. This field is only not 'null' if on demand is enabled. - `on_demand_enabled?: boolean` Whether advertisement of the prefix to the Internet may be dynamically enabled or disabled. - `on_demand_locked?: boolean` Whether the advertisement status of the prefix is locked, meaning it cannot be changed. # Advertisement Status ## Get Advertisement Status `client.addressing.prefixes.advertisementStatus.get(stringprefixId, AdvertisementStatusGetParamsparams, RequestOptionsoptions?): AdvertisementStatusGetResponse` **get** `/accounts/{account_id}/addressing/prefixes/{prefix_id}/bgp/status` View the current advertisement state for a prefix. **Deprecated:** Prefer the BGP Prefixes endpoints, which additionally allow for advertising and withdrawing subnets of an IP prefix. ### Parameters - `prefixId: string` Identifier of an IP Prefix. - `params: AdvertisementStatusGetParams` - `account_id: string` Identifier of a Cloudflare account. ### Returns - `AdvertisementStatusGetResponse` - `advertised?: boolean` Advertisement status of the prefix. If `true`, the BGP route for the prefix is advertised to the Internet. If `false`, the BGP route is withdrawn. - `advertised_modified_at?: string | null` Last time the advertisement status was changed. This field is only not 'null' if on demand is enabled. ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); const advertisementStatus = await client.addressing.prefixes.advertisementStatus.get( '2af39739cc4e3b5910c918468bb89828', { account_id: '258def64c72dae45f3e4c8516e2111f2' }, ); console.log(advertisementStatus.advertised); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "advertised": true, "advertised_modified_at": "2014-01-01T05:20:00.12345Z" } } ``` ## Update Prefix Dynamic Advertisement Status `client.addressing.prefixes.advertisementStatus.edit(stringprefixId, AdvertisementStatusEditParamsparams, RequestOptionsoptions?): AdvertisementStatusEditResponse` **patch** `/accounts/{account_id}/addressing/prefixes/{prefix_id}/bgp/status` Advertise or withdraw the BGP route for a prefix. **Deprecated:** Prefer the BGP Prefixes endpoints, which additionally allow for advertising and withdrawing subnets of an IP prefix. ### Parameters - `prefixId: string` Identifier of an IP Prefix. - `params: AdvertisementStatusEditParams` - `account_id: string` Path param: Identifier of a Cloudflare account. - `advertised: boolean` Body param: Advertisement status of the prefix. If `true`, the BGP route for the prefix is advertised to the Internet. If `false`, the BGP route is withdrawn. ### Returns - `AdvertisementStatusEditResponse` - `advertised?: boolean` Advertisement status of the prefix. If `true`, the BGP route for the prefix is advertised to the Internet. If `false`, the BGP route is withdrawn. - `advertised_modified_at?: string | null` Last time the advertisement status was changed. This field is only not 'null' if on demand is enabled. ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); const response = await client.addressing.prefixes.advertisementStatus.edit( '2af39739cc4e3b5910c918468bb89828', { account_id: '258def64c72dae45f3e4c8516e2111f2', advertised: true }, ); console.log(response.advertised); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "advertised": true, "advertised_modified_at": "2014-01-01T05:20:00.12345Z" } } ``` ## Domain Types ### Advertisement Status Get Response - `AdvertisementStatusGetResponse` - `advertised?: boolean` Advertisement status of the prefix. If `true`, the BGP route for the prefix is advertised to the Internet. If `false`, the BGP route is withdrawn. - `advertised_modified_at?: string | null` Last time the advertisement status was changed. This field is only not 'null' if on demand is enabled. ### Advertisement Status Edit Response - `AdvertisementStatusEditResponse` - `advertised?: boolean` Advertisement status of the prefix. If `true`, the BGP route for the prefix is advertised to the Internet. If `false`, the BGP route is withdrawn. - `advertised_modified_at?: string | null` Last time the advertisement status was changed. This field is only not 'null' if on demand is enabled. # Delegations ## List Prefix Delegations `client.addressing.prefixes.delegations.list(stringprefixId, DelegationListParamsparams, RequestOptionsoptions?): SinglePage` **get** `/accounts/{account_id}/addressing/prefixes/{prefix_id}/delegations` List all delegations for a given account IP prefix. ### Parameters - `prefixId: string` Identifier of an IP Prefix. - `params: DelegationListParams` - `account_id: string` Identifier of a Cloudflare account. ### Returns - `Delegations` - `id?: string` Identifier of a Delegation. - `cidr?: string` IP Prefix in Classless Inter-Domain Routing format. - `created_at?: string` - `delegated_account_id?: string` Account identifier for the account to which prefix is being delegated. - `modified_at?: string` - `parent_prefix_id?: string` Identifier of an IP Prefix. ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const delegations of client.addressing.prefixes.delegations.list( '2af39739cc4e3b5910c918468bb89828', { account_id: '258def64c72dae45f3e4c8516e2111f2' }, )) { console.log(delegations.id); } ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": [ { "id": "d933b1530bc56c9953cf8ce166da8004", "cidr": "192.0.2.0/24", "created_at": "2014-01-01T05:20:00.12345Z", "delegated_account_id": "b1946ac92492d2347c6235b4d2611184", "modified_at": "2014-01-01T05:20:00.12345Z", "parent_prefix_id": "2af39739cc4e3b5910c918468bb89828" } ], "result_info": { "count": 1, "page": 1, "per_page": 20, "total_count": 2000 } } ``` ## Create Prefix Delegation `client.addressing.prefixes.delegations.create(stringprefixId, DelegationCreateParamsparams, RequestOptionsoptions?): Delegations` **post** `/accounts/{account_id}/addressing/prefixes/{prefix_id}/delegations` Create a new account delegation for a given IP prefix. ### Parameters - `prefixId: string` Identifier of an IP Prefix. - `params: DelegationCreateParams` - `account_id: string` Path param: Identifier of a Cloudflare account. - `cidr: string` Body param: IP Prefix in Classless Inter-Domain Routing format. - `delegated_account_id: string` Body param: Account identifier for the account to which prefix is being delegated. ### Returns - `Delegations` - `id?: string` Identifier of a Delegation. - `cidr?: string` IP Prefix in Classless Inter-Domain Routing format. - `created_at?: string` - `delegated_account_id?: string` Account identifier for the account to which prefix is being delegated. - `modified_at?: string` - `parent_prefix_id?: string` Identifier of an IP Prefix. ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); const delegations = await client.addressing.prefixes.delegations.create( '2af39739cc4e3b5910c918468bb89828', { account_id: '258def64c72dae45f3e4c8516e2111f2', cidr: '192.0.2.0/24', delegated_account_id: 'b1946ac92492d2347c6235b4d2611184', }, ); console.log(delegations.id); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "d933b1530bc56c9953cf8ce166da8004", "cidr": "192.0.2.0/24", "created_at": "2014-01-01T05:20:00.12345Z", "delegated_account_id": "b1946ac92492d2347c6235b4d2611184", "modified_at": "2014-01-01T05:20:00.12345Z", "parent_prefix_id": "2af39739cc4e3b5910c918468bb89828" } } ``` ## Delete Prefix Delegation `client.addressing.prefixes.delegations.delete(stringprefixId, stringdelegationId, DelegationDeleteParamsparams, RequestOptionsoptions?): DelegationDeleteResponse` **delete** `/accounts/{account_id}/addressing/prefixes/{prefix_id}/delegations/{delegation_id}` Delete an account delegation for a given IP prefix. ### Parameters - `prefixId: string` Identifier of an IP Prefix. - `delegationId: string` Identifier of a Delegation. - `params: DelegationDeleteParams` - `account_id: string` Identifier of a Cloudflare account. ### Returns - `DelegationDeleteResponse` - `id?: string` Identifier of a Delegation. ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); const delegation = await client.addressing.prefixes.delegations.delete( '2af39739cc4e3b5910c918468bb89828', 'd933b1530bc56c9953cf8ce166da8004', { account_id: '258def64c72dae45f3e4c8516e2111f2' }, ); console.log(delegation.id); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "d933b1530bc56c9953cf8ce166da8004" } } ``` ## Domain Types ### Delegations - `Delegations` - `id?: string` Identifier of a Delegation. - `cidr?: string` IP Prefix in Classless Inter-Domain Routing format. - `created_at?: string` - `delegated_account_id?: string` Account identifier for the account to which prefix is being delegated. - `modified_at?: string` - `parent_prefix_id?: string` Identifier of an IP Prefix. ### Delegation Delete Response - `DelegationDeleteResponse` - `id?: string` Identifier of a Delegation.