github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/openstack/identity/v3/federation/providers/results.go (about) 1 package providers 2 3 import ( 4 golangsdk "github.com/opentelekomcloud/gophertelekomcloud" 5 "github.com/opentelekomcloud/gophertelekomcloud/pagination" 6 ) 7 8 type Provider struct { 9 ID string `json:"id"` 10 Description string `json:"description"` 11 Enabled bool `json:"enabled"` 12 RemoteIDs []string `json:"remote_ids"` 13 Links map[string]string `json:"links"` 14 } 15 16 type commonResult struct { 17 golangsdk.Result 18 } 19 20 func (r commonResult) Extract() (*Provider, error) { 21 s := new(Provider) 22 return s, r.ExtractIntoStructPtr(s, "identity_provider") 23 } 24 25 type CreateResult struct { 26 commonResult 27 } 28 29 type GetResult struct { 30 commonResult 31 } 32 33 type ProviderPage struct { 34 pagination.LinkedPageBase 35 } 36 37 func (p ProviderPage) IsEmpty() (bool, error) { 38 providers, err := ExtractProviders(p) 39 if err != nil { 40 return false, err 41 } 42 return len(providers) == 0, err 43 } 44 45 func ExtractProviders(r pagination.Page) ([]Provider, error) { 46 var providers []Provider 47 err := (r.(ProviderPage)).ExtractIntoSlicePtr(&providers, "identity_providers") 48 return providers, err 49 } 50 51 type UpdateResult struct { 52 commonResult 53 } 54 55 type DeleteResult struct { 56 golangsdk.ErrResult 57 }