@@ -93,6 +93,66 @@ func (enum *ListPublicCatalogProductsRequestProductType) UnmarshalJSON(data []by
9393 return nil
9494}
9595
96+ type ListPublicCatalogProductsRequestStatus string
97+
98+ const (
99+ // Unknown status.
100+ ListPublicCatalogProductsRequestStatusUnknownStatus = ListPublicCatalogProductsRequestStatus ("unknown_status" )
101+ // The product is available in Public Beta.
102+ ListPublicCatalogProductsRequestStatusPublicBeta = ListPublicCatalogProductsRequestStatus ("public_beta" )
103+ // The product is available in Preview mode.
104+ ListPublicCatalogProductsRequestStatusPreview = ListPublicCatalogProductsRequestStatus ("preview" )
105+ // The product is generally available.
106+ ListPublicCatalogProductsRequestStatusGeneralAvailability = ListPublicCatalogProductsRequestStatus ("general_availability" )
107+ // The product must not be used for new deployments.
108+ ListPublicCatalogProductsRequestStatusEndOfDeployment = ListPublicCatalogProductsRequestStatus ("end_of_deployment" )
109+ // There is no longer any commercial support for this product.
110+ ListPublicCatalogProductsRequestStatusEndOfSupport = ListPublicCatalogProductsRequestStatus ("end_of_support" )
111+ // The product is not sold anymore but is still in use.
112+ ListPublicCatalogProductsRequestStatusEndOfSale = ListPublicCatalogProductsRequestStatus ("end_of_sale" )
113+ // The product is no longer supported or maintained.
114+ ListPublicCatalogProductsRequestStatusEndOfLife = ListPublicCatalogProductsRequestStatus ("end_of_life" )
115+ // The product is deprecated and is no longer accessible.
116+ ListPublicCatalogProductsRequestStatusRetired = ListPublicCatalogProductsRequestStatus ("retired" )
117+ )
118+
119+ func (enum ListPublicCatalogProductsRequestStatus ) String () string {
120+ if enum == "" {
121+ // return default value if empty
122+ return string (ListPublicCatalogProductsRequestStatusUnknownStatus )
123+ }
124+ return string (enum )
125+ }
126+
127+ func (enum ListPublicCatalogProductsRequestStatus ) Values () []ListPublicCatalogProductsRequestStatus {
128+ return []ListPublicCatalogProductsRequestStatus {
129+ "unknown_status" ,
130+ "public_beta" ,
131+ "preview" ,
132+ "general_availability" ,
133+ "end_of_deployment" ,
134+ "end_of_support" ,
135+ "end_of_sale" ,
136+ "end_of_life" ,
137+ "retired" ,
138+ }
139+ }
140+
141+ func (enum ListPublicCatalogProductsRequestStatus ) MarshalJSON () ([]byte , error ) {
142+ return []byte (fmt .Sprintf (`"%s"` , enum )), nil
143+ }
144+
145+ func (enum * ListPublicCatalogProductsRequestStatus ) UnmarshalJSON (data []byte ) error {
146+ tmp := ""
147+
148+ if err := json .Unmarshal (data , & tmp ); err != nil {
149+ return err
150+ }
151+
152+ * enum = ListPublicCatalogProductsRequestStatus (ListPublicCatalogProductsRequestStatus (tmp ).String ())
153+ return nil
154+ }
155+
96156type PublicCatalogProductPropertiesHardwareCPUArch string
97157
98158const (
@@ -158,6 +218,10 @@ const (
158218 PublicCatalogProductStatusEndOfSupport = PublicCatalogProductStatus ("end_of_support" )
159219 // The product is not sold anymore but is still in use.
160220 PublicCatalogProductStatusEndOfSale = PublicCatalogProductStatus ("end_of_sale" )
221+ // The product is at its end of life.
222+ PublicCatalogProductStatusEndOfLife = PublicCatalogProductStatus ("end_of_life" )
223+ // The product is retired.
224+ PublicCatalogProductStatusRetired = PublicCatalogProductStatus ("retired" )
161225)
162226
163227func (enum PublicCatalogProductStatus ) String () string {
@@ -177,6 +241,8 @@ func (enum PublicCatalogProductStatus) Values() []PublicCatalogProductStatus {
177241 "end_of_deployment" ,
178242 "end_of_support" ,
179243 "end_of_sale" ,
244+ "end_of_life" ,
245+ "retired" ,
180246 }
181247}
182248
@@ -649,6 +715,9 @@ type PublicCatalogAPIListPublicCatalogProductsRequest struct {
649715 // Datacenter: filter products by datacenter.
650716 // Precisely one of Global, Region, Zone, Datacenter must be set.
651717 Datacenter * string `json:"datacenter,omitempty"`
718+
719+ // Status: the lists of filtered product status, if empty only products with status public_beta, general_availability, preview, end_of_deployment, end_of_support, end_of_sale, end_of_life or retired will be returned.
720+ Status []ListPublicCatalogProductsRequestStatus `json:"-"`
652721}
653722
654723type PublicCatalogAPI struct {
@@ -685,6 +754,7 @@ func (s *PublicCatalogAPI) ListPublicCatalogProducts(req *PublicCatalogAPIListPu
685754 parameter .AddToQuery (query , "page" , req .Page )
686755 parameter .AddToQuery (query , "page_size" , req .PageSize )
687756 parameter .AddToQuery (query , "product_types" , req .ProductTypes )
757+ parameter .AddToQuery (query , "status" , req .Status )
688758 parameter .AddToQuery (query , "global" , req .Global )
689759 parameter .AddToQuery (query , "region" , req .Region )
690760 parameter .AddToQuery (query , "zone" , req .Zone )
0 commit comments