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  }