# Control # Retention ## Get log retention flag `client.Logs.Control.Retention.Get(ctx, query) (*ControlRetentionGetResponse, error)` **get** `/zones/{zone_id}/logs/control/retention/flag` Gets log retention flag for Logpull API. ### Parameters - `query ControlRetentionGetParams` - `ZoneID param.Field[string]` Identifier. ### Returns - `type ControlRetentionGetResponse struct{…}` - `Flag bool` The log retention flag for Logpull API. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/logs" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) retention, err := client.Logs.Control.Retention.Get(context.TODO(), logs.ControlRetentionGetParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", retention.Flag) } ``` #### 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": { "flag": true } } ``` ## Update log retention flag `client.Logs.Control.Retention.New(ctx, params) (*ControlRetentionNewResponse, error)` **post** `/zones/{zone_id}/logs/control/retention/flag` Updates log retention flag for Logpull API. ### Parameters - `params ControlRetentionNewParams` - `ZoneID param.Field[string]` Path param: Identifier. - `Flag param.Field[bool]` Body param: The log retention flag for Logpull API. ### Returns - `type ControlRetentionNewResponse struct{…}` - `Flag bool` The log retention flag for Logpull API. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/logs" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) retention, err := client.Logs.Control.Retention.New(context.TODO(), logs.ControlRetentionNewParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", retention.Flag) } ``` #### 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": { "flag": true } } ``` # Cmb # Config ## Get CMB config `client.Logs.Control.Cmb.Config.Get(ctx, query) (*CmbConfig, error)` **get** `/accounts/{account_id}/logs/control/cmb/config` Gets CMB config. ### Parameters - `query ControlCmbConfigGetParams` - `AccountID param.Field[string]` Identifier. ### Returns - `type CmbConfig struct{…}` - `AllowOutOfRegionAccess bool` Allow out of region access - `Regions string` Name of the region. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/logs" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) cmbConfig, err := client.Logs.Control.Cmb.Config.Get(context.TODO(), logs.ControlCmbConfigGetParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", cmbConfig.AllowOutOfRegionAccess) } ``` #### 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": { "allow_out_of_region_access": false, "regions": "eu" } } ``` ## Update CMB config `client.Logs.Control.Cmb.Config.New(ctx, params) (*CmbConfig, error)` **post** `/accounts/{account_id}/logs/control/cmb/config` Updates CMB config. ### Parameters - `params ControlCmbConfigNewParams` - `AccountID param.Field[string]` Path param: Identifier. - `CmbConfig param.Field[CmbConfig]` Body param ### Returns - `type CmbConfig struct{…}` - `AllowOutOfRegionAccess bool` Allow out of region access - `Regions string` Name of the region. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/logs" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) cmbConfig, err := client.Logs.Control.Cmb.Config.New(context.TODO(), logs.ControlCmbConfigNewParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), CmbConfig: logs.CmbConfigParam{ }, }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", cmbConfig.AllowOutOfRegionAccess) } ``` #### 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": { "allow_out_of_region_access": false, "regions": "eu" } } ``` ## Delete CMB config `client.Logs.Control.Cmb.Config.Delete(ctx, body) (*ControlCmbConfigDeleteResponse, error)` **delete** `/accounts/{account_id}/logs/control/cmb/config` Deletes CMB config. ### Parameters - `body ControlCmbConfigDeleteParams` - `AccountID param.Field[string]` Identifier. ### Returns - `type ControlCmbConfigDeleteResponse interface{…}` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/logs" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) config, err := client.Logs.Control.Cmb.Config.Delete(context.TODO(), logs.ControlCmbConfigDeleteParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", config) } ``` #### 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": {} } ``` ## Domain Types ### Cmb Config - `type CmbConfig struct{…}` - `AllowOutOfRegionAccess bool` Allow out of region access - `Regions string` Name of the region.