@@ -961,6 +961,43 @@ func (enum *SearchBackendStagesRequestOrderBy) UnmarshalJSON(data []byte) error
961961 return nil
962962}
963963
964+ type SearchRouteRulesRequestOrderBy string
965+
966+ const (
967+ SearchRouteRulesRequestOrderByCreatedAtAsc = SearchRouteRulesRequestOrderBy ("created_at_asc" )
968+ SearchRouteRulesRequestOrderByCreatedAtDesc = SearchRouteRulesRequestOrderBy ("created_at_desc" )
969+ )
970+
971+ func (enum SearchRouteRulesRequestOrderBy ) String () string {
972+ if enum == "" {
973+ // return default value if empty
974+ return string (SearchRouteRulesRequestOrderByCreatedAtAsc )
975+ }
976+ return string (enum )
977+ }
978+
979+ func (enum SearchRouteRulesRequestOrderBy ) Values () []SearchRouteRulesRequestOrderBy {
980+ return []SearchRouteRulesRequestOrderBy {
981+ "created_at_asc" ,
982+ "created_at_desc" ,
983+ }
984+ }
985+
986+ func (enum SearchRouteRulesRequestOrderBy ) MarshalJSON () ([]byte , error ) {
987+ return []byte (fmt .Sprintf (`"%s"` , enum )), nil
988+ }
989+
990+ func (enum * SearchRouteRulesRequestOrderBy ) UnmarshalJSON (data []byte ) error {
991+ tmp := ""
992+
993+ if err := json .Unmarshal (data , & tmp ); err != nil {
994+ return err
995+ }
996+
997+ * enum = SearchRouteRulesRequestOrderBy (SearchRouteRulesRequestOrderBy (tmp ).String ())
998+ return nil
999+ }
1000+
9641001type SearchWafStagesRequestOrderBy string
9651002
9661003const (
@@ -2184,6 +2221,28 @@ type ListRouteRulesRequest struct {
21842221type ListRouteRulesResponse struct {
21852222 // RouteRules: list of rules to be checked against every HTTP request. The first matching rule will forward the request to its specified backend stage. If no rules are matched, the request is forwarded to the WAF stage defined by `waf_stage_id`.
21862223 RouteRules []* RouteRule `json:"route_rules"`
2224+
2225+ // TotalCount: count of all route rules matching the requested criteria.
2226+ TotalCount uint64 `json:"total_count"`
2227+ }
2228+
2229+ // UnsafeGetTotalCount should not be used
2230+ // Internal usage only
2231+ func (r * ListRouteRulesResponse ) UnsafeGetTotalCount () uint64 {
2232+ return r .TotalCount
2233+ }
2234+
2235+ // UnsafeAppend should not be used
2236+ // Internal usage only
2237+ func (r * ListRouteRulesResponse ) UnsafeAppend (res any ) (uint64 , error ) {
2238+ results , ok := res .(* ListRouteRulesResponse )
2239+ if ! ok {
2240+ return 0 , errors .New ("%T type cannot be appended to type %T" , res , r )
2241+ }
2242+
2243+ r .RouteRules = append (r .RouteRules , results .RouteRules ... )
2244+ r .TotalCount += uint64 (len (results .RouteRules ))
2245+ return uint64 (len (results .RouteRules )), nil
21872246}
21882247
21892248// ListRouteStagesRequest: list route stages request.
@@ -2348,6 +2407,20 @@ type SearchBackendStagesRequest struct {
23482407 LBID * string `json:"-"`
23492408}
23502409
2410+ // SearchRouteRulesRequest: search route rules request.
2411+ type SearchRouteRulesRequest struct {
2412+ // OrderBy: default value: created_at_asc
2413+ OrderBy SearchRouteRulesRequestOrderBy `json:"-"`
2414+
2415+ Page * int32 `json:"-"`
2416+
2417+ PageSize * uint32 `json:"-"`
2418+
2419+ OrganizationID * string `json:"-"`
2420+
2421+ ProjectID * string `json:"-"`
2422+ }
2423+
23512424// SearchWafStagesRequest: search waf stages request.
23522425type SearchWafStagesRequest struct {
23532426 // OrderBy: default value: created_at_asc
@@ -3687,6 +3760,37 @@ func (s *API) AddRouteRules(req *AddRouteRulesRequest, opts ...scw.RequestOption
36873760 return & resp , nil
36883761}
36893762
3763+ // SearchRouteRules: List all route rules of an organization or project.
3764+ func (s * API ) SearchRouteRules (req * SearchRouteRulesRequest , opts ... scw.RequestOption ) (* ListRouteRulesResponse , error ) {
3765+ var err error
3766+
3767+ defaultPageSize , exist := s .client .GetDefaultPageSize ()
3768+ if (req .PageSize == nil || * req .PageSize == 0 ) && exist {
3769+ req .PageSize = & defaultPageSize
3770+ }
3771+
3772+ query := url.Values {}
3773+ parameter .AddToQuery (query , "order_by" , req .OrderBy )
3774+ parameter .AddToQuery (query , "page" , req .Page )
3775+ parameter .AddToQuery (query , "page_size" , req .PageSize )
3776+ parameter .AddToQuery (query , "organization_id" , req .OrganizationID )
3777+ parameter .AddToQuery (query , "project_id" , req .ProjectID )
3778+
3779+ scwReq := & scw.ScalewayRequest {
3780+ Method : "GET" ,
3781+ Path : "/edge-services/v1beta1/search-route-rules" ,
3782+ Query : query ,
3783+ }
3784+
3785+ var resp ListRouteRulesResponse
3786+
3787+ err = s .client .Do (scwReq , & resp , opts ... )
3788+ if err != nil {
3789+ return nil , err
3790+ }
3791+ return & resp , nil
3792+ }
3793+
36903794// CheckDomain:
36913795func (s * API ) CheckDomain (req * CheckDomainRequest , opts ... scw.RequestOption ) (* CheckDomainResponse , error ) {
36923796 var err error
0 commit comments