# Prefixes ## List Prefixes `addressing.prefixes.list(PrefixListParams**kwargs) -> SyncSinglePage[Prefix]` **get** `/accounts/{account_id}/addressing/prefixes` List all prefixes owned by the account. ### Parameters - `account_id: str` Identifier of a Cloudflare account. ### Returns - `class Prefix: …` - `id: Optional[str]` Identifier of an IP Prefix. - `account_id: Optional[str]` Identifier of a Cloudflare account. - `advertised: Optional[bool]` Prefix advertisement status to the Internet. This field is only not 'null' if on demand is enabled. - `advertised_modified_at: Optional[datetime]` Last time the advertisement status was changed. This field is only not 'null' if on demand is enabled. - `approved: Optional[str]` Approval state of the prefix (P = pending, V = active). - `asn: Optional[int]` Autonomous System Number (ASN) the prefix will be advertised under. - `cidr: Optional[str]` IP Prefix in Classless Inter-Domain Routing format. - `created_at: Optional[datetime]` - `delegate_loa_creation: Optional[bool]` Whether Cloudflare is allowed to generate the LOA document on behalf of the prefix owner. - `description: Optional[str]` Description of the prefix. - `irr_validation_state: Optional[str]` State of one kind of validation for an IP prefix. - `loa_document_id: Optional[str]` Identifier for the uploaded LOA document. - `modified_at: Optional[datetime]` - `on_demand_enabled: Optional[bool]` Whether advertisement of the prefix to the Internet may be dynamically enabled or disabled. - `on_demand_locked: Optional[bool]` Whether advertisement status of the prefix is locked, meaning it cannot be changed. - `ownership_validation_state: Optional[str]` State of one kind of validation for an IP prefix. - `ownership_validation_token: Optional[str]` Token provided to demonstrate ownership of the prefix. - `rpki_validation_state: Optional[str]` State of one kind of validation for an IP prefix. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_email=os.environ.get("CLOUDFLARE_EMAIL"), # This is the default and can be omitted api_key=os.environ.get("CLOUDFLARE_API_KEY"), # This is the default and can be omitted ) page = client.addressing.prefixes.list( account_id="258def64c72dae45f3e4c8516e2111f2", ) page = page.result[0] print(page.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 `addressing.prefixes.get(strprefix_id, PrefixGetParams**kwargs) -> Prefix` **get** `/accounts/{account_id}/addressing/prefixes/{prefix_id}` List a particular prefix owned by the account. ### Parameters - `account_id: str` Identifier of a Cloudflare account. - `prefix_id: str` Identifier of an IP Prefix. ### Returns - `class Prefix: …` - `id: Optional[str]` Identifier of an IP Prefix. - `account_id: Optional[str]` Identifier of a Cloudflare account. - `advertised: Optional[bool]` Prefix advertisement status to the Internet. This field is only not 'null' if on demand is enabled. - `advertised_modified_at: Optional[datetime]` Last time the advertisement status was changed. This field is only not 'null' if on demand is enabled. - `approved: Optional[str]` Approval state of the prefix (P = pending, V = active). - `asn: Optional[int]` Autonomous System Number (ASN) the prefix will be advertised under. - `cidr: Optional[str]` IP Prefix in Classless Inter-Domain Routing format. - `created_at: Optional[datetime]` - `delegate_loa_creation: Optional[bool]` Whether Cloudflare is allowed to generate the LOA document on behalf of the prefix owner. - `description: Optional[str]` Description of the prefix. - `irr_validation_state: Optional[str]` State of one kind of validation for an IP prefix. - `loa_document_id: Optional[str]` Identifier for the uploaded LOA document. - `modified_at: Optional[datetime]` - `on_demand_enabled: Optional[bool]` Whether advertisement of the prefix to the Internet may be dynamically enabled or disabled. - `on_demand_locked: Optional[bool]` Whether advertisement status of the prefix is locked, meaning it cannot be changed. - `ownership_validation_state: Optional[str]` State of one kind of validation for an IP prefix. - `ownership_validation_token: Optional[str]` Token provided to demonstrate ownership of the prefix. - `rpki_validation_state: Optional[str]` State of one kind of validation for an IP prefix. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_email=os.environ.get("CLOUDFLARE_EMAIL"), # This is the default and can be omitted api_key=os.environ.get("CLOUDFLARE_API_KEY"), # This is the default and can be omitted ) prefix = client.addressing.prefixes.get( prefix_id="2af39739cc4e3b5910c918468bb89828", account_id="258def64c72dae45f3e4c8516e2111f2", ) print(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 `addressing.prefixes.create(PrefixCreateParams**kwargs) -> Prefix` **post** `/accounts/{account_id}/addressing/prefixes` Add a new prefix under the account. ### Parameters - `account_id: str` Identifier of a Cloudflare account. - `asn: int` Autonomous System Number (ASN) the prefix will be advertised under. - `cidr: str` IP Prefix in Classless Inter-Domain Routing format. - `delegate_loa_creation: Optional[bool]` Whether Cloudflare is allowed to generate the LOA document on behalf of the prefix owner. - `description: Optional[str]` Description of the prefix. - `loa_document_id: Optional[str]` Identifier for the uploaded LOA document. ### Returns - `class Prefix: …` - `id: Optional[str]` Identifier of an IP Prefix. - `account_id: Optional[str]` Identifier of a Cloudflare account. - `advertised: Optional[bool]` Prefix advertisement status to the Internet. This field is only not 'null' if on demand is enabled. - `advertised_modified_at: Optional[datetime]` Last time the advertisement status was changed. This field is only not 'null' if on demand is enabled. - `approved: Optional[str]` Approval state of the prefix (P = pending, V = active). - `asn: Optional[int]` Autonomous System Number (ASN) the prefix will be advertised under. - `cidr: Optional[str]` IP Prefix in Classless Inter-Domain Routing format. - `created_at: Optional[datetime]` - `delegate_loa_creation: Optional[bool]` Whether Cloudflare is allowed to generate the LOA document on behalf of the prefix owner. - `description: Optional[str]` Description of the prefix. - `irr_validation_state: Optional[str]` State of one kind of validation for an IP prefix. - `loa_document_id: Optional[str]` Identifier for the uploaded LOA document. - `modified_at: Optional[datetime]` - `on_demand_enabled: Optional[bool]` Whether advertisement of the prefix to the Internet may be dynamically enabled or disabled. - `on_demand_locked: Optional[bool]` Whether advertisement status of the prefix is locked, meaning it cannot be changed. - `ownership_validation_state: Optional[str]` State of one kind of validation for an IP prefix. - `ownership_validation_token: Optional[str]` Token provided to demonstrate ownership of the prefix. - `rpki_validation_state: Optional[str]` State of one kind of validation for an IP prefix. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_email=os.environ.get("CLOUDFLARE_EMAIL"), # This is the default and can be omitted api_key=os.environ.get("CLOUDFLARE_API_KEY"), # This is the default and can be omitted ) prefix = client.addressing.prefixes.create( account_id="258def64c72dae45f3e4c8516e2111f2", asn=13335, cidr="192.0.2.0/24", ) print(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 `addressing.prefixes.edit(strprefix_id, PrefixEditParams**kwargs) -> Prefix` **patch** `/accounts/{account_id}/addressing/prefixes/{prefix_id}` Modify the description for a prefix owned by the account. ### Parameters - `account_id: str` Identifier of a Cloudflare account. - `prefix_id: str` Identifier of an IP Prefix. - `description: str` Description of the prefix. ### Returns - `class Prefix: …` - `id: Optional[str]` Identifier of an IP Prefix. - `account_id: Optional[str]` Identifier of a Cloudflare account. - `advertised: Optional[bool]` Prefix advertisement status to the Internet. This field is only not 'null' if on demand is enabled. - `advertised_modified_at: Optional[datetime]` Last time the advertisement status was changed. This field is only not 'null' if on demand is enabled. - `approved: Optional[str]` Approval state of the prefix (P = pending, V = active). - `asn: Optional[int]` Autonomous System Number (ASN) the prefix will be advertised under. - `cidr: Optional[str]` IP Prefix in Classless Inter-Domain Routing format. - `created_at: Optional[datetime]` - `delegate_loa_creation: Optional[bool]` Whether Cloudflare is allowed to generate the LOA document on behalf of the prefix owner. - `description: Optional[str]` Description of the prefix. - `irr_validation_state: Optional[str]` State of one kind of validation for an IP prefix. - `loa_document_id: Optional[str]` Identifier for the uploaded LOA document. - `modified_at: Optional[datetime]` - `on_demand_enabled: Optional[bool]` Whether advertisement of the prefix to the Internet may be dynamically enabled or disabled. - `on_demand_locked: Optional[bool]` Whether advertisement status of the prefix is locked, meaning it cannot be changed. - `ownership_validation_state: Optional[str]` State of one kind of validation for an IP prefix. - `ownership_validation_token: Optional[str]` Token provided to demonstrate ownership of the prefix. - `rpki_validation_state: Optional[str]` State of one kind of validation for an IP prefix. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_email=os.environ.get("CLOUDFLARE_EMAIL"), # This is the default and can be omitted api_key=os.environ.get("CLOUDFLARE_API_KEY"), # This is the default and can be omitted ) prefix = client.addressing.prefixes.edit( prefix_id="2af39739cc4e3b5910c918468bb89828", account_id="258def64c72dae45f3e4c8516e2111f2", description="Internal test prefix", ) print(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 `addressing.prefixes.delete(strprefix_id, PrefixDeleteParams**kwargs) -> PrefixDeleteResponse` **delete** `/accounts/{account_id}/addressing/prefixes/{prefix_id}` Delete an unapproved prefix owned by the account. ### Parameters - `account_id: str` Identifier of a Cloudflare account. - `prefix_id: str` Identifier of an IP Prefix. ### Returns - `class PrefixDeleteResponse: …` - `errors: List[Error]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[ErrorSource]` - `pointer: Optional[str]` - `messages: List[Message]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[MessageSource]` - `pointer: Optional[str]` - `success: Literal[true]` Whether the API call was successful. - `true` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_email=os.environ.get("CLOUDFLARE_EMAIL"), # This is the default and can be omitted api_key=os.environ.get("CLOUDFLARE_API_KEY"), # This is the default and can be omitted ) prefix = client.addressing.prefixes.delete( prefix_id="2af39739cc4e3b5910c918468bb89828", account_id="258def64c72dae45f3e4c8516e2111f2", ) print(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 - `class Prefix: …` - `id: Optional[str]` Identifier of an IP Prefix. - `account_id: Optional[str]` Identifier of a Cloudflare account. - `advertised: Optional[bool]` Prefix advertisement status to the Internet. This field is only not 'null' if on demand is enabled. - `advertised_modified_at: Optional[datetime]` Last time the advertisement status was changed. This field is only not 'null' if on demand is enabled. - `approved: Optional[str]` Approval state of the prefix (P = pending, V = active). - `asn: Optional[int]` Autonomous System Number (ASN) the prefix will be advertised under. - `cidr: Optional[str]` IP Prefix in Classless Inter-Domain Routing format. - `created_at: Optional[datetime]` - `delegate_loa_creation: Optional[bool]` Whether Cloudflare is allowed to generate the LOA document on behalf of the prefix owner. - `description: Optional[str]` Description of the prefix. - `irr_validation_state: Optional[str]` State of one kind of validation for an IP prefix. - `loa_document_id: Optional[str]` Identifier for the uploaded LOA document. - `modified_at: Optional[datetime]` - `on_demand_enabled: Optional[bool]` Whether advertisement of the prefix to the Internet may be dynamically enabled or disabled. - `on_demand_locked: Optional[bool]` Whether advertisement status of the prefix is locked, meaning it cannot be changed. - `ownership_validation_state: Optional[str]` State of one kind of validation for an IP prefix. - `ownership_validation_token: Optional[str]` Token provided to demonstrate ownership of the prefix. - `rpki_validation_state: Optional[str]` State of one kind of validation for an IP prefix. ### Prefix Delete Response - `class PrefixDeleteResponse: …` - `errors: List[Error]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[ErrorSource]` - `pointer: Optional[str]` - `messages: List[Message]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[MessageSource]` - `pointer: Optional[str]` - `success: Literal[true]` Whether the API call was successful. - `true` # Service Bindings ## List Service Bindings `addressing.prefixes.service_bindings.list(strprefix_id, ServiceBindingListParams**kwargs) -> SyncSinglePage[ServiceBinding]` **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 - `account_id: str` Identifier of a Cloudflare account. - `prefix_id: str` Identifier of an IP Prefix. ### Returns - `class ServiceBinding: …` - `id: Optional[str]` Identifier of a Service Binding. - `cidr: Optional[str]` IP Prefix in Classless Inter-Domain Routing format. - `provisioning: Optional[Provisioning]` Status of a Service Binding's deployment to the Cloudflare network - `state: Optional[Literal["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: Optional[str]` Identifier of a Service on the Cloudflare network. Available services and their IDs may be found in the **List Services** endpoint. - `service_name: Optional[str]` Name of a service running on the Cloudflare network ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_email=os.environ.get("CLOUDFLARE_EMAIL"), # This is the default and can be omitted api_key=os.environ.get("CLOUDFLARE_API_KEY"), # This is the default and can be omitted ) page = client.addressing.prefixes.service_bindings.list( prefix_id="2af39739cc4e3b5910c918468bb89828", account_id="258def64c72dae45f3e4c8516e2111f2", ) page = page.result[0] print(page.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 `addressing.prefixes.service_bindings.get(strbinding_id, ServiceBindingGetParams**kwargs) -> ServiceBinding` **get** `/accounts/{account_id}/addressing/prefixes/{prefix_id}/bindings/{binding_id}` Fetch a single Service Binding ### Parameters - `account_id: str` Identifier of a Cloudflare account. - `prefix_id: str` Identifier of an IP Prefix. - `binding_id: str` Identifier of a Service Binding. ### Returns - `class ServiceBinding: …` - `id: Optional[str]` Identifier of a Service Binding. - `cidr: Optional[str]` IP Prefix in Classless Inter-Domain Routing format. - `provisioning: Optional[Provisioning]` Status of a Service Binding's deployment to the Cloudflare network - `state: Optional[Literal["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: Optional[str]` Identifier of a Service on the Cloudflare network. Available services and their IDs may be found in the **List Services** endpoint. - `service_name: Optional[str]` Name of a service running on the Cloudflare network ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_email=os.environ.get("CLOUDFLARE_EMAIL"), # This is the default and can be omitted api_key=os.environ.get("CLOUDFLARE_API_KEY"), # This is the default and can be omitted ) service_binding = client.addressing.prefixes.service_bindings.get( binding_id="0429b49b6a5155297b78e75a44b09e14", account_id="258def64c72dae45f3e4c8516e2111f2", prefix_id="2af39739cc4e3b5910c918468bb89828", ) print(service_binding.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 `addressing.prefixes.service_bindings.create(strprefix_id, ServiceBindingCreateParams**kwargs) -> 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 - `account_id: str` Identifier of a Cloudflare account. - `prefix_id: str` Identifier of an IP Prefix. - `cidr: str` IP Prefix in Classless Inter-Domain Routing format. - `service_id: str` Identifier of a Service on the Cloudflare network. Available services and their IDs may be found in the **List Services** endpoint. ### Returns - `class ServiceBinding: …` - `id: Optional[str]` Identifier of a Service Binding. - `cidr: Optional[str]` IP Prefix in Classless Inter-Domain Routing format. - `provisioning: Optional[Provisioning]` Status of a Service Binding's deployment to the Cloudflare network - `state: Optional[Literal["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: Optional[str]` Identifier of a Service on the Cloudflare network. Available services and their IDs may be found in the **List Services** endpoint. - `service_name: Optional[str]` Name of a service running on the Cloudflare network ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_email=os.environ.get("CLOUDFLARE_EMAIL"), # This is the default and can be omitted api_key=os.environ.get("CLOUDFLARE_API_KEY"), # This is the default and can be omitted ) service_binding = client.addressing.prefixes.service_bindings.create( prefix_id="2af39739cc4e3b5910c918468bb89828", account_id="258def64c72dae45f3e4c8516e2111f2", cidr="192.0.2.0/24", service_id="2db684ee7ca04e159946fd05b99e1bcd", ) print(service_binding.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 `addressing.prefixes.service_bindings.delete(strbinding_id, ServiceBindingDeleteParams**kwargs) -> ServiceBindingDeleteResponse` **delete** `/accounts/{account_id}/addressing/prefixes/{prefix_id}/bindings/{binding_id}` Delete a Service Binding ### Parameters - `account_id: str` Identifier of a Cloudflare account. - `prefix_id: str` Identifier of an IP Prefix. - `binding_id: str` Identifier of a Service Binding. ### Returns - `class ServiceBindingDeleteResponse: …` - `errors: List[Error]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[ErrorSource]` - `pointer: Optional[str]` - `messages: List[Message]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[MessageSource]` - `pointer: Optional[str]` - `success: Literal[true]` Whether the API call was successful. - `true` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_email=os.environ.get("CLOUDFLARE_EMAIL"), # This is the default and can be omitted api_key=os.environ.get("CLOUDFLARE_API_KEY"), # This is the default and can be omitted ) service_binding = client.addressing.prefixes.service_bindings.delete( binding_id="0429b49b6a5155297b78e75a44b09e14", account_id="258def64c72dae45f3e4c8516e2111f2", prefix_id="2af39739cc4e3b5910c918468bb89828", ) print(service_binding.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 - `class ServiceBinding: …` - `id: Optional[str]` Identifier of a Service Binding. - `cidr: Optional[str]` IP Prefix in Classless Inter-Domain Routing format. - `provisioning: Optional[Provisioning]` Status of a Service Binding's deployment to the Cloudflare network - `state: Optional[Literal["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: Optional[str]` Identifier of a Service on the Cloudflare network. Available services and their IDs may be found in the **List Services** endpoint. - `service_name: Optional[str]` Name of a service running on the Cloudflare network ### Service Binding Delete Response - `class ServiceBindingDeleteResponse: …` - `errors: List[Error]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[ErrorSource]` - `pointer: Optional[str]` - `messages: List[Message]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[MessageSource]` - `pointer: Optional[str]` - `success: Literal[true]` Whether the API call was successful. - `true` # BGP Prefixes ## List BGP Prefixes `addressing.prefixes.bgp_prefixes.list(strprefix_id, BGPPrefixListParams**kwargs) -> SyncSinglePage[BGPPrefix]` **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 - `account_id: str` Identifier of a Cloudflare account. - `prefix_id: str` Identifier of an IP Prefix. ### Returns - `class BGPPrefix: …` - `id: Optional[str]` Identifier of BGP Prefix. - `asn: Optional[int]` Autonomous System Number (ASN) the prefix will be advertised under. - `asn_prepend_count: Optional[int]` Number of times to prepend the Cloudflare ASN to the BGP AS-Path attribute - `auto_advertise_withdraw: Optional[bool]` 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: Optional[BGPSignalOpts]` - `enabled: Optional[bool]` Whether control of advertisement of the prefix to the Internet is enabled to be performed via BGP signal - `modified_at: Optional[datetime]` Last time BGP signaling control was toggled. This field is null if BGP signaling has never been enabled. - `cidr: Optional[str]` IP Prefix in Classless Inter-Domain Routing format. - `created_at: Optional[datetime]` - `modified_at: Optional[datetime]` - `on_demand: Optional[OnDemand]` - `advertised: Optional[bool]` Prefix advertisement status to the Internet. This field is only not 'null' if on demand is enabled. - `advertised_modified_at: Optional[datetime]` Last time the advertisement status was changed. This field is only not 'null' if on demand is enabled. - `on_demand_enabled: Optional[bool]` Whether advertisement of the prefix to the Internet may be dynamically enabled or disabled. - `on_demand_locked: Optional[bool]` Whether the advertisement status of the prefix is locked, meaning it cannot be changed. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_email=os.environ.get("CLOUDFLARE_EMAIL"), # This is the default and can be omitted api_key=os.environ.get("CLOUDFLARE_API_KEY"), # This is the default and can be omitted ) page = client.addressing.prefixes.bgp_prefixes.list( prefix_id="2af39739cc4e3b5910c918468bb89828", account_id="258def64c72dae45f3e4c8516e2111f2", ) page = page.result[0] print(page.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 `addressing.prefixes.bgp_prefixes.get(strbgp_prefix_id, BGPPrefixGetParams**kwargs) -> BGPPrefix` **get** `/accounts/{account_id}/addressing/prefixes/{prefix_id}/bgp/prefixes/{bgp_prefix_id}` Retrieve a single BGP Prefix according to its identifier ### Parameters - `account_id: str` Identifier of a Cloudflare account. - `prefix_id: str` Identifier of an IP Prefix. - `bgp_prefix_id: str` Identifier of BGP Prefix. ### Returns - `class BGPPrefix: …` - `id: Optional[str]` Identifier of BGP Prefix. - `asn: Optional[int]` Autonomous System Number (ASN) the prefix will be advertised under. - `asn_prepend_count: Optional[int]` Number of times to prepend the Cloudflare ASN to the BGP AS-Path attribute - `auto_advertise_withdraw: Optional[bool]` 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: Optional[BGPSignalOpts]` - `enabled: Optional[bool]` Whether control of advertisement of the prefix to the Internet is enabled to be performed via BGP signal - `modified_at: Optional[datetime]` Last time BGP signaling control was toggled. This field is null if BGP signaling has never been enabled. - `cidr: Optional[str]` IP Prefix in Classless Inter-Domain Routing format. - `created_at: Optional[datetime]` - `modified_at: Optional[datetime]` - `on_demand: Optional[OnDemand]` - `advertised: Optional[bool]` Prefix advertisement status to the Internet. This field is only not 'null' if on demand is enabled. - `advertised_modified_at: Optional[datetime]` Last time the advertisement status was changed. This field is only not 'null' if on demand is enabled. - `on_demand_enabled: Optional[bool]` Whether advertisement of the prefix to the Internet may be dynamically enabled or disabled. - `on_demand_locked: Optional[bool]` Whether the advertisement status of the prefix is locked, meaning it cannot be changed. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_email=os.environ.get("CLOUDFLARE_EMAIL"), # This is the default and can be omitted api_key=os.environ.get("CLOUDFLARE_API_KEY"), # This is the default and can be omitted ) bgp_prefix = client.addressing.prefixes.bgp_prefixes.get( bgp_prefix_id="7009ba364c7a5760798ceb430e603b74", account_id="258def64c72dae45f3e4c8516e2111f2", prefix_id="2af39739cc4e3b5910c918468bb89828", ) print(bgp_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": "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 `addressing.prefixes.bgp_prefixes.create(strprefix_id, BGPPrefixCreateParams**kwargs) -> 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 - `account_id: str` Identifier of a Cloudflare account. - `prefix_id: str` Identifier of an IP Prefix. - `cidr: str` IP Prefix in Classless Inter-Domain Routing format. ### Returns - `class BGPPrefix: …` - `id: Optional[str]` Identifier of BGP Prefix. - `asn: Optional[int]` Autonomous System Number (ASN) the prefix will be advertised under. - `asn_prepend_count: Optional[int]` Number of times to prepend the Cloudflare ASN to the BGP AS-Path attribute - `auto_advertise_withdraw: Optional[bool]` 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: Optional[BGPSignalOpts]` - `enabled: Optional[bool]` Whether control of advertisement of the prefix to the Internet is enabled to be performed via BGP signal - `modified_at: Optional[datetime]` Last time BGP signaling control was toggled. This field is null if BGP signaling has never been enabled. - `cidr: Optional[str]` IP Prefix in Classless Inter-Domain Routing format. - `created_at: Optional[datetime]` - `modified_at: Optional[datetime]` - `on_demand: Optional[OnDemand]` - `advertised: Optional[bool]` Prefix advertisement status to the Internet. This field is only not 'null' if on demand is enabled. - `advertised_modified_at: Optional[datetime]` Last time the advertisement status was changed. This field is only not 'null' if on demand is enabled. - `on_demand_enabled: Optional[bool]` Whether advertisement of the prefix to the Internet may be dynamically enabled or disabled. - `on_demand_locked: Optional[bool]` Whether the advertisement status of the prefix is locked, meaning it cannot be changed. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_email=os.environ.get("CLOUDFLARE_EMAIL"), # This is the default and can be omitted api_key=os.environ.get("CLOUDFLARE_API_KEY"), # This is the default and can be omitted ) bgp_prefix = client.addressing.prefixes.bgp_prefixes.create( prefix_id="2af39739cc4e3b5910c918468bb89828", account_id="258def64c72dae45f3e4c8516e2111f2", cidr="192.0.2.0/24", ) print(bgp_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": "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 `addressing.prefixes.bgp_prefixes.edit(strbgp_prefix_id, BGPPrefixEditParams**kwargs) -> 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 - `account_id: str` Identifier of a Cloudflare account. - `prefix_id: str` Identifier of an IP Prefix. - `bgp_prefix_id: str` Identifier of BGP Prefix. - `asn_prepend_count: Optional[int]` Number of times to prepend the Cloudflare ASN to the BGP AS-Path attribute - `auto_advertise_withdraw: Optional[bool]` 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: Optional[OnDemand]` - `advertised: Optional[bool]` ### Returns - `class BGPPrefix: …` - `id: Optional[str]` Identifier of BGP Prefix. - `asn: Optional[int]` Autonomous System Number (ASN) the prefix will be advertised under. - `asn_prepend_count: Optional[int]` Number of times to prepend the Cloudflare ASN to the BGP AS-Path attribute - `auto_advertise_withdraw: Optional[bool]` 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: Optional[BGPSignalOpts]` - `enabled: Optional[bool]` Whether control of advertisement of the prefix to the Internet is enabled to be performed via BGP signal - `modified_at: Optional[datetime]` Last time BGP signaling control was toggled. This field is null if BGP signaling has never been enabled. - `cidr: Optional[str]` IP Prefix in Classless Inter-Domain Routing format. - `created_at: Optional[datetime]` - `modified_at: Optional[datetime]` - `on_demand: Optional[OnDemand]` - `advertised: Optional[bool]` Prefix advertisement status to the Internet. This field is only not 'null' if on demand is enabled. - `advertised_modified_at: Optional[datetime]` Last time the advertisement status was changed. This field is only not 'null' if on demand is enabled. - `on_demand_enabled: Optional[bool]` Whether advertisement of the prefix to the Internet may be dynamically enabled or disabled. - `on_demand_locked: Optional[bool]` Whether the advertisement status of the prefix is locked, meaning it cannot be changed. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_email=os.environ.get("CLOUDFLARE_EMAIL"), # This is the default and can be omitted api_key=os.environ.get("CLOUDFLARE_API_KEY"), # This is the default and can be omitted ) bgp_prefix = client.addressing.prefixes.bgp_prefixes.edit( bgp_prefix_id="7009ba364c7a5760798ceb430e603b74", account_id="258def64c72dae45f3e4c8516e2111f2", prefix_id="2af39739cc4e3b5910c918468bb89828", ) print(bgp_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": "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 - `class BGPPrefix: …` - `id: Optional[str]` Identifier of BGP Prefix. - `asn: Optional[int]` Autonomous System Number (ASN) the prefix will be advertised under. - `asn_prepend_count: Optional[int]` Number of times to prepend the Cloudflare ASN to the BGP AS-Path attribute - `auto_advertise_withdraw: Optional[bool]` 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: Optional[BGPSignalOpts]` - `enabled: Optional[bool]` Whether control of advertisement of the prefix to the Internet is enabled to be performed via BGP signal - `modified_at: Optional[datetime]` Last time BGP signaling control was toggled. This field is null if BGP signaling has never been enabled. - `cidr: Optional[str]` IP Prefix in Classless Inter-Domain Routing format. - `created_at: Optional[datetime]` - `modified_at: Optional[datetime]` - `on_demand: Optional[OnDemand]` - `advertised: Optional[bool]` Prefix advertisement status to the Internet. This field is only not 'null' if on demand is enabled. - `advertised_modified_at: Optional[datetime]` Last time the advertisement status was changed. This field is only not 'null' if on demand is enabled. - `on_demand_enabled: Optional[bool]` Whether advertisement of the prefix to the Internet may be dynamically enabled or disabled. - `on_demand_locked: Optional[bool]` Whether the advertisement status of the prefix is locked, meaning it cannot be changed. # Advertisement Status ## Get Advertisement Status `addressing.prefixes.advertisement_status.get(strprefix_id, AdvertisementStatusGetParams**kwargs) -> 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 - `account_id: str` Identifier of a Cloudflare account. - `prefix_id: str` Identifier of an IP Prefix. ### Returns - `class AdvertisementStatusGetResponse: …` - `advertised: Optional[bool]` 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: Optional[datetime]` Last time the advertisement status was changed. This field is only not 'null' if on demand is enabled. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_email=os.environ.get("CLOUDFLARE_EMAIL"), # This is the default and can be omitted api_key=os.environ.get("CLOUDFLARE_API_KEY"), # This is the default and can be omitted ) advertisement_status = client.addressing.prefixes.advertisement_status.get( prefix_id="2af39739cc4e3b5910c918468bb89828", account_id="258def64c72dae45f3e4c8516e2111f2", ) print(advertisement_status.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 `addressing.prefixes.advertisement_status.edit(strprefix_id, AdvertisementStatusEditParams**kwargs) -> 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 - `account_id: str` Identifier of a Cloudflare account. - `prefix_id: str` Identifier of an IP Prefix. - `advertised: bool` 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 - `class AdvertisementStatusEditResponse: …` - `advertised: Optional[bool]` 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: Optional[datetime]` Last time the advertisement status was changed. This field is only not 'null' if on demand is enabled. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_email=os.environ.get("CLOUDFLARE_EMAIL"), # This is the default and can be omitted api_key=os.environ.get("CLOUDFLARE_API_KEY"), # This is the default and can be omitted ) response = client.addressing.prefixes.advertisement_status.edit( prefix_id="2af39739cc4e3b5910c918468bb89828", account_id="258def64c72dae45f3e4c8516e2111f2", advertised=True, ) print(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 - `class AdvertisementStatusGetResponse: …` - `advertised: Optional[bool]` 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: Optional[datetime]` Last time the advertisement status was changed. This field is only not 'null' if on demand is enabled. ### Advertisement Status Edit Response - `class AdvertisementStatusEditResponse: …` - `advertised: Optional[bool]` 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: Optional[datetime]` Last time the advertisement status was changed. This field is only not 'null' if on demand is enabled. # Delegations ## List Prefix Delegations `addressing.prefixes.delegations.list(strprefix_id, DelegationListParams**kwargs) -> SyncSinglePage[Delegations]` **get** `/accounts/{account_id}/addressing/prefixes/{prefix_id}/delegations` List all delegations for a given account IP prefix. ### Parameters - `account_id: str` Identifier of a Cloudflare account. - `prefix_id: str` Identifier of an IP Prefix. ### Returns - `class Delegations: …` - `id: Optional[str]` Identifier of a Delegation. - `cidr: Optional[str]` IP Prefix in Classless Inter-Domain Routing format. - `created_at: Optional[datetime]` - `delegated_account_id: Optional[str]` Account identifier for the account to which prefix is being delegated. - `modified_at: Optional[datetime]` - `parent_prefix_id: Optional[str]` Identifier of an IP Prefix. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_email=os.environ.get("CLOUDFLARE_EMAIL"), # This is the default and can be omitted api_key=os.environ.get("CLOUDFLARE_API_KEY"), # This is the default and can be omitted ) page = client.addressing.prefixes.delegations.list( prefix_id="2af39739cc4e3b5910c918468bb89828", account_id="258def64c72dae45f3e4c8516e2111f2", ) page = page.result[0] print(page.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 `addressing.prefixes.delegations.create(strprefix_id, DelegationCreateParams**kwargs) -> Delegations` **post** `/accounts/{account_id}/addressing/prefixes/{prefix_id}/delegations` Create a new account delegation for a given IP prefix. ### Parameters - `account_id: str` Identifier of a Cloudflare account. - `prefix_id: str` Identifier of an IP Prefix. - `cidr: str` IP Prefix in Classless Inter-Domain Routing format. - `delegated_account_id: str` Account identifier for the account to which prefix is being delegated. ### Returns - `class Delegations: …` - `id: Optional[str]` Identifier of a Delegation. - `cidr: Optional[str]` IP Prefix in Classless Inter-Domain Routing format. - `created_at: Optional[datetime]` - `delegated_account_id: Optional[str]` Account identifier for the account to which prefix is being delegated. - `modified_at: Optional[datetime]` - `parent_prefix_id: Optional[str]` Identifier of an IP Prefix. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_email=os.environ.get("CLOUDFLARE_EMAIL"), # This is the default and can be omitted api_key=os.environ.get("CLOUDFLARE_API_KEY"), # This is the default and can be omitted ) delegations = client.addressing.prefixes.delegations.create( prefix_id="2af39739cc4e3b5910c918468bb89828", account_id="258def64c72dae45f3e4c8516e2111f2", cidr="192.0.2.0/24", delegated_account_id="b1946ac92492d2347c6235b4d2611184", ) print(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 `addressing.prefixes.delegations.delete(strdelegation_id, DelegationDeleteParams**kwargs) -> DelegationDeleteResponse` **delete** `/accounts/{account_id}/addressing/prefixes/{prefix_id}/delegations/{delegation_id}` Delete an account delegation for a given IP prefix. ### Parameters - `account_id: str` Identifier of a Cloudflare account. - `prefix_id: str` Identifier of an IP Prefix. - `delegation_id: str` Identifier of a Delegation. ### Returns - `class DelegationDeleteResponse: …` - `id: Optional[str]` Identifier of a Delegation. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_email=os.environ.get("CLOUDFLARE_EMAIL"), # This is the default and can be omitted api_key=os.environ.get("CLOUDFLARE_API_KEY"), # This is the default and can be omitted ) delegation = client.addressing.prefixes.delegations.delete( delegation_id="d933b1530bc56c9953cf8ce166da8004", account_id="258def64c72dae45f3e4c8516e2111f2", prefix_id="2af39739cc4e3b5910c918468bb89828", ) print(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 - `class Delegations: …` - `id: Optional[str]` Identifier of a Delegation. - `cidr: Optional[str]` IP Prefix in Classless Inter-Domain Routing format. - `created_at: Optional[datetime]` - `delegated_account_id: Optional[str]` Account identifier for the account to which prefix is being delegated. - `modified_at: Optional[datetime]` - `parent_prefix_id: Optional[str]` Identifier of an IP Prefix. ### Delegation Delete Response - `class DelegationDeleteResponse: …` - `id: Optional[str]` Identifier of a Delegation.