@@ -58,6 +58,8 @@ const (
5858 ListPublicCatalogProductsRequestProductTypeObjectStorage = ListPublicCatalogProductsRequestProductType ("object_storage" )
5959 // Include the Managed Inference information in the response.
6060 ListPublicCatalogProductsRequestProductTypeManagedInference = ListPublicCatalogProductsRequestProductType ("managed_inference" )
61+ // Include the Generative APIs information in the response.
62+ ListPublicCatalogProductsRequestProductTypeGenerativeAPIs = ListPublicCatalogProductsRequestProductType ("generative_apis" )
6163)
6264
6365func (enum ListPublicCatalogProductsRequestProductType ) String () string {
@@ -78,6 +80,7 @@ func (enum ListPublicCatalogProductsRequestProductType) Values() []ListPublicCat
7880 "block_storage" ,
7981 "object_storage" ,
8082 "managed_inference" ,
83+ "generative_apis" ,
8184 }
8285}
8386
@@ -156,6 +159,49 @@ func (enum *ListPublicCatalogProductsRequestStatus) UnmarshalJSON(data []byte) e
156159 return nil
157160}
158161
162+ type PublicCatalogProductProductBadge string
163+
164+ const (
165+ PublicCatalogProductProductBadgeUnknownProductBadge = PublicCatalogProductProductBadge ("unknown_product_badge" )
166+ PublicCatalogProductProductBadgeNewProduct = PublicCatalogProductProductBadge ("new_product" )
167+ PublicCatalogProductProductBadgeBestSeller = PublicCatalogProductProductBadge ("best_seller" )
168+ PublicCatalogProductProductBadgeBestValue = PublicCatalogProductProductBadge ("best_value" )
169+ PublicCatalogProductProductBadgePopular = PublicCatalogProductProductBadge ("popular" )
170+ )
171+
172+ func (enum PublicCatalogProductProductBadge ) String () string {
173+ if enum == "" {
174+ // return default value if empty
175+ return string (PublicCatalogProductProductBadgeUnknownProductBadge )
176+ }
177+ return string (enum )
178+ }
179+
180+ func (enum PublicCatalogProductProductBadge ) Values () []PublicCatalogProductProductBadge {
181+ return []PublicCatalogProductProductBadge {
182+ "unknown_product_badge" ,
183+ "new_product" ,
184+ "best_seller" ,
185+ "best_value" ,
186+ "popular" ,
187+ }
188+ }
189+
190+ func (enum PublicCatalogProductProductBadge ) MarshalJSON () ([]byte , error ) {
191+ return []byte (fmt .Sprintf (`"%s"` , enum )), nil
192+ }
193+
194+ func (enum * PublicCatalogProductProductBadge ) UnmarshalJSON (data []byte ) error {
195+ tmp := ""
196+
197+ if err := json .Unmarshal (data , & tmp ); err != nil {
198+ return err
199+ }
200+
201+ * enum = PublicCatalogProductProductBadge (PublicCatalogProductProductBadge (tmp ).String ())
202+ return nil
203+ }
204+
159205type PublicCatalogProductPropertiesHardwareCPUArch string
160206
161207const (
@@ -518,6 +564,13 @@ type PublicCatalogProductPropertiesElasticMetal struct {
518564 OfferID string `json:"offer_id"`
519565}
520566
567+ // PublicCatalogProductPropertiesGenerativeAPIs: public catalog product properties generative ap is.
568+ type PublicCatalogProductPropertiesGenerativeAPIs struct {
569+ Reasoning bool `json:"reasoning"`
570+
571+ SupportedAPIs []string `json:"supported_apis"`
572+ }
573+
521574// PublicCatalogProductPropertiesHardware: public catalog product properties hardware.
522575type PublicCatalogProductPropertiesHardware struct {
523576 // CPU: the CPU hardware properties.
@@ -595,32 +648,36 @@ type PublicCatalogProductProperties struct {
595648 Hardware * PublicCatalogProductPropertiesHardware `json:"hardware"`
596649
597650 // Dedibox: the properties of Dedibox products.
598- // Precisely one of Dedibox, ElasticMetal, AppleSilicon, Instance, BlockStorage, ObjectStorage, ManagedInference must be set.
651+ // Precisely one of Dedibox, ElasticMetal, AppleSilicon, Instance, BlockStorage, ObjectStorage, ManagedInference, GenerativeAPIs must be set.
599652 Dedibox * PublicCatalogProductPropertiesDedibox `json:"dedibox,omitempty"`
600653
601654 // ElasticMetal: the properties of Elastic Metal products.
602- // Precisely one of Dedibox, ElasticMetal, AppleSilicon, Instance, BlockStorage, ObjectStorage, ManagedInference must be set.
655+ // Precisely one of Dedibox, ElasticMetal, AppleSilicon, Instance, BlockStorage, ObjectStorage, ManagedInference, GenerativeAPIs must be set.
603656 ElasticMetal * PublicCatalogProductPropertiesElasticMetal `json:"elastic_metal,omitempty"`
604657
605658 // AppleSilicon: the properties of Apple Silicon products.
606- // Precisely one of Dedibox, ElasticMetal, AppleSilicon, Instance, BlockStorage, ObjectStorage, ManagedInference must be set.
659+ // Precisely one of Dedibox, ElasticMetal, AppleSilicon, Instance, BlockStorage, ObjectStorage, ManagedInference, GenerativeAPIs must be set.
607660 AppleSilicon * PublicCatalogProductPropertiesAppleSilicon `json:"apple_silicon,omitempty"`
608661
609662 // Instance: the properties of Instance products.
610- // Precisely one of Dedibox, ElasticMetal, AppleSilicon, Instance, BlockStorage, ObjectStorage, ManagedInference must be set.
663+ // Precisely one of Dedibox, ElasticMetal, AppleSilicon, Instance, BlockStorage, ObjectStorage, ManagedInference, GenerativeAPIs must be set.
611664 Instance * PublicCatalogProductPropertiesInstance `json:"instance,omitempty"`
612665
613666 // BlockStorage: the properties of Block Storage products.
614- // Precisely one of Dedibox, ElasticMetal, AppleSilicon, Instance, BlockStorage, ObjectStorage, ManagedInference must be set.
667+ // Precisely one of Dedibox, ElasticMetal, AppleSilicon, Instance, BlockStorage, ObjectStorage, ManagedInference, GenerativeAPIs must be set.
615668 BlockStorage * PublicCatalogProductPropertiesBlockStorage `json:"block_storage,omitempty"`
616669
617670 // ObjectStorage: the properties of Object Storage products.
618- // Precisely one of Dedibox, ElasticMetal, AppleSilicon, Instance, BlockStorage, ObjectStorage, ManagedInference must be set.
671+ // Precisely one of Dedibox, ElasticMetal, AppleSilicon, Instance, BlockStorage, ObjectStorage, ManagedInference, GenerativeAPIs must be set.
619672 ObjectStorage * PublicCatalogProductPropertiesObjectStorage `json:"object_storage,omitempty"`
620673
621674 // ManagedInference: the properties of Managed Inference products.
622- // Precisely one of Dedibox, ElasticMetal, AppleSilicon, Instance, BlockStorage, ObjectStorage, ManagedInference must be set.
675+ // Precisely one of Dedibox, ElasticMetal, AppleSilicon, Instance, BlockStorage, ObjectStorage, ManagedInference, GenerativeAPIs must be set.
623676 ManagedInference * PublicCatalogProductPropertiesManagedInference `json:"managed_inference,omitempty"`
677+
678+ // GenerativeAPIs: the properties of Generative APIs products.
679+ // Precisely one of Dedibox, ElasticMetal, AppleSilicon, Instance, BlockStorage, ObjectStorage, ManagedInference, GenerativeAPIs must be set.
680+ GenerativeAPIs * PublicCatalogProductPropertiesGenerativeAPIs `json:"generative_apis,omitempty"`
624681}
625682
626683// PublicCatalogProductUnitOfMeasure: public catalog product unit of measure.
@@ -672,6 +729,9 @@ type PublicCatalogProduct struct {
672729
673730 // EndOfLifeAt: the end of life date of the product.
674731 EndOfLifeAt * time.Time `json:"end_of_life_at"`
732+
733+ // Badges: different badges that can be associated with the product.
734+ Badges []PublicCatalogProductProductBadge `json:"badges"`
675735}
676736
677737// ListPublicCatalogProductsResponse: list public catalog products response.
0 commit comments