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