# Regional Services # Prefix Bindings ## List DLS prefix bindings for an account `client.DLS.RegionalServices.PrefixBindings.List(ctx, params) (*CursorPagination[RegionalServicePrefixBindingListResponse], error)` **get** `/accounts/{account_id}/dls/regional_services/prefix_bindings` List the BYOIP prefix bindings configured for an account. ### Parameters - `params RegionalServicePrefixBindingListParams` - `AccountID param.Field[string]` Path param: Identifier of a Cloudflare account. - `Cursor param.Field[string]` Query param: Opaque token for cursor-based pagination. Omit for the first page. Pass the value from a previous response to fetch the next page. - `PerPage param.Field[int64]` Query param ### Returns - `type RegionalServicePrefixBindingListResponse struct{…}` - `ID string` The ID of the binding. - `CIDR string` The CIDR that is bound. - `PrefixID string` The ID of the parent prefix. - `RegionKey string` The region key used for the binding. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/dls" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) page, err := client.DLS.RegionalServices.PrefixBindings.List(context.TODO(), dls.RegionalServicePrefixBindingListParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", page) } ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "error_chain": [ {} ] } ], "messages": [ { "code": 1000, "message": "message", "error_chain": [ {} ] } ], "result": [ { "id": "id", "cidr": "cidr", "prefix_id": "prefix_id", "region_key": "x" } ], "result_info": { "count": 0, "cursor": "cursor", "per_page": 0 }, "success": true } ``` ## Get a DLS prefix binding `client.DLS.RegionalServices.PrefixBindings.Get(ctx, bindingID, query) (*RegionalServicePrefixBindingGetResponse, error)` **get** `/accounts/{account_id}/dls/regional_services/prefix_bindings/{binding_id}` Retrieve a single BYOIP prefix binding by ID. ### Parameters - `bindingID string` Unique identifier for the prefix binding. - `query RegionalServicePrefixBindingGetParams` - `AccountID param.Field[string]` Identifier of a Cloudflare account. ### Returns - `type RegionalServicePrefixBindingGetResponse struct{…}` - `ID string` The ID of the binding. - `CIDR string` The CIDR that is bound. - `PrefixID string` The ID of the parent prefix. - `RegionKey string` The region key used for the binding. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/dls" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) prefixBinding, err := client.DLS.RegionalServices.PrefixBindings.Get( context.TODO(), "a1b2c3d4-e5f6-7890-abcd-ef1234567890", dls.RegionalServicePrefixBindingGetParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", prefixBinding.ID) } ``` #### Response ```json { "messages": [ { "code": 1000, "message": "message", "error_chain": [ {} ] } ], "result": { "id": "id", "cidr": "cidr", "prefix_id": "prefix_id", "region_key": "x" }, "success": true, "errors": [ { "code": 1000, "message": "message", "error_chain": [ {} ] } ] } ``` ## Create a DLS prefix binding `client.DLS.RegionalServices.PrefixBindings.New(ctx, params) (*RegionalServicePrefixBindingNewResponse, error)` **post** `/accounts/{account_id}/dls/regional_services/prefix_bindings` Bind a CIDR from a BYOIP prefix to a region. This requires the **IP Prefixes Write** permission in addition to **DLS Write**, because the binding is created against a BYOIP prefix in Addressing. ### Parameters - `params RegionalServicePrefixBindingNewParams` - `AccountID param.Field[string]` Path param: Identifier of a Cloudflare account. - `CIDR param.Field[string]` Body param: IP prefix in CIDR notation to bind. - `PrefixID param.Field[string]` Body param: The ID of the parent IP prefix that contains the CIDR. - `RegionKey param.Field[string]` Body param: Region key from managed regions (e.g., "us", "eu"). ### Returns - `type RegionalServicePrefixBindingNewResponse struct{…}` - `ID string` The ID of the binding. - `CIDR string` The CIDR that is bound. - `PrefixID string` The ID of the parent prefix. - `RegionKey string` The region key used for the binding. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/dls" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) prefixBinding, err := client.DLS.RegionalServices.PrefixBindings.New(context.TODO(), dls.RegionalServicePrefixBindingNewParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), CIDR: cloudflare.F("10.0.1.0/24"), PrefixID: cloudflare.F("a1b2c3d4-e5f6-7890-abcd-ef1234567890"), RegionKey: cloudflare.F("eu"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", prefixBinding.ID) } ``` #### Response ```json { "messages": [ { "code": 1000, "message": "message", "error_chain": [ {} ] } ], "result": { "id": "id", "cidr": "cidr", "prefix_id": "prefix_id", "region_key": "x" }, "success": true, "errors": [ { "code": 1000, "message": "message", "error_chain": [ {} ] } ] } ``` ## Update a DLS prefix binding `client.DLS.RegionalServices.PrefixBindings.Edit(ctx, bindingID, params) (*RegionalServicePrefixBindingEditResponse, error)` **patch** `/accounts/{account_id}/dls/regional_services/prefix_bindings/{binding_id}` Update the region of an existing BYOIP prefix binding. Like creating a binding, this requires **IP Prefixes Write** in addition to **DLS Write**. ### Parameters - `bindingID string` Unique identifier for the prefix binding. - `params RegionalServicePrefixBindingEditParams` - `AccountID param.Field[string]` Path param: Identifier of a Cloudflare account. - `RegionKey param.Field[string]` Body param: New region key to assign (e.g., "us", "eu", "cfcanary"). ### Returns - `type RegionalServicePrefixBindingEditResponse struct{…}` - `ID string` The ID of the binding. - `CIDR string` The CIDR that is bound. - `PrefixID string` The ID of the parent prefix. - `RegionKey string` The region key used for the binding. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/dls" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.DLS.RegionalServices.PrefixBindings.Edit( context.TODO(), "a1b2c3d4-e5f6-7890-abcd-ef1234567890", dls.RegionalServicePrefixBindingEditParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), RegionKey: cloudflare.F("eu"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.ID) } ``` #### Response ```json { "messages": [ { "code": 1000, "message": "message", "error_chain": [ {} ] } ], "result": { "id": "id", "cidr": "cidr", "prefix_id": "prefix_id", "region_key": "x" }, "success": true, "errors": [ { "code": 1000, "message": "message", "error_chain": [ {} ] } ] } ``` ## Delete a DLS prefix binding `client.DLS.RegionalServices.PrefixBindings.Delete(ctx, bindingID, body) (*RegionalServicePrefixBindingDeleteResponse, error)` **delete** `/accounts/{account_id}/dls/regional_services/prefix_bindings/{binding_id}` Delete a BYOIP prefix binding. Like creating a binding, this requires **IP Prefixes Write** in addition to **DLS Write**. ### Parameters - `bindingID string` Unique identifier for the prefix binding. - `body RegionalServicePrefixBindingDeleteParams` - `AccountID param.Field[string]` Identifier of a Cloudflare account. ### Returns - `type RegionalServicePrefixBindingDeleteResponse struct{…}` - `Messages []RegionalServicePrefixBindingDeleteResponseMessage` - `Code int64` - `Message string` - `ErrorChain []unknown` Optional upstream error context for APIv4 errors that wrap downstream service failures. - `Success bool` - `Errors []RegionalServicePrefixBindingDeleteResponseError` - `Code int64` - `Message string` - `ErrorChain []unknown` Optional upstream error context for APIv4 errors that wrap downstream service failures. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/dls" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) prefixBinding, err := client.DLS.RegionalServices.PrefixBindings.Delete( context.TODO(), "a1b2c3d4-e5f6-7890-abcd-ef1234567890", dls.RegionalServicePrefixBindingDeleteParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", prefixBinding.Messages) } ``` #### Response ```json { "messages": [ { "code": 1000, "message": "message", "error_chain": [ {} ] } ], "success": true, "errors": [ { "code": 1000, "message": "message", "error_chain": [ {} ] } ] } ```