1/* 2Package resourcetypes provides ability to manage resource types through the Gnocchi API. 3 4Example of Listing resource types 5 6 allPages, err := resourcetypes.List(client).AllPages() 7 if err != nil { 8 panic(err) 9 } 10 11 allResourceTypes, err := resourcetypes.ExtractResourceTypes(allPages) 12 if err != nil { 13 panic(err) 14 } 15 16 for _, resourceType := range allResourceTypes { 17 fmt.Printf("%+v\n", resourceType) 18 } 19 20Example of Getting a resource type 21 22 resourceTypeName := "compute_instance" 23 resourceType, err := resourcetypes.Get(gnocchiClient, resourceTypeName).Extract() 24 if err != nil { 25 panic(err) 26 } 27 28Example of Creating a resource type 29 30 resourceTypeOpts := resourcetypes.CreateOpts{ 31 Name: "compute_instance_network", 32 Attributes: map[string]resourcetypes.AttributeOpts{ 33 "port_name": resourcetypes.AttributeOpts{ 34 Type: "string", 35 Details: map[string]interface{}{ 36 "max_length": 128, 37 "required": false, 38 }, 39 }, 40 "port_id": resourcetypes.AttributeOpts{ 41 Type: "uuid", 42 Details: map[string]interface{}{ 43 "required": true, 44 }, 45 }, 46 }, 47 } 48 resourceType, err := resourcetypes.Create(gnocchiClient, resourceTypeOpts).Extract() 49 if err != nil { 50 panic(err) 51 } 52 53Example of Updating a resource type 54 55 enabledAttributeOptions := resourcetypes.AttributeOpts{ 56 Details: map[string]interface{}{ 57 "required": true, 58 "options": map[string]interface{}{ 59 "fill": true, 60 }, 61 }, 62 Type: "bool", 63 } 64 parendIDAttributeOptions := resourcetypes.AttributeOpts{ 65 Details: map[string]interface{}{ 66 "required": false, 67 }, 68 Type: "uuid", 69 } 70 resourceTypeOpts := resourcetypes.UpdateOpts{ 71 Attributes: []resourcetypes.AttributeUpdateOpts{ 72 { 73 Name: "enabled", 74 Operation: resourcetypes.AttributeAdd, 75 Value: &enabledAttributeOptions, 76 }, 77 { 78 Name: "parent_id", 79 Operation: resourcetypes.AttributeAdd, 80 Value: &parendIDAttributeOptions, 81 }, 82 { 83 Name: "domain_id", 84 Operation: resourcetypes.AttributeRemove, 85 }, 86 }, 87 } 88 resourceType, err := resourcetypes.Update(gnocchiClient, resourceTypeOpts).Extract() 89 if err != nil { 90 panic(err) 91 } 92 93Example of Deleting a resource type 94 95 err := resourcetypes.Delete(gnocchiClient, resourceType).ExtractErr() 96 if err != nil { 97 panic(err) 98 } 99*/ 100package resourcetypes 101