Documentation
¶
Overview ¶
Package federation provides information and interaction with OS-FEDERATION API for the Openstack Identity service.
Example to List Mappings
allPages, err := federation.ListMappings(identityClient).AllPages()
if err != nil {
panic(err)
}
allMappings, err := federation.ExtractMappings(allPages)
if err != nil {
panic(err)
}
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ListMappings ¶
func ListMappings(client *gophercloud.ServiceClient) pagination.Pager
ListMappings enumerates the mappings.
Types ¶
type Group ¶
type Group struct {
// Group ID to which the rule should match.
// This is mutually exclusive with Name and Domain.
ID string `json:"id,omitempty"`
// Group Name to which the rule should match.
// This is mutually exclusive with ID.
Name string `json:"name,omitempty"`
// Group Domain to which the rule should match.
// This is mutually exclusive with ID.
Domain *Domain `json:"domain,omitempty"`
}
type Mapping ¶
type Mapping struct {
// The Federation Mapping unique ID
ID string `json:"id"`
// Links contains referencing links to the limit.
Links map[string]interface{} `json:"links"`
// The list of rules used to map remote users into local users
Rules []MappingRule `json:"rules"`
}
Mapping a set of rules to map federation protocol attributes to Identity API objects.
func ExtractMappings ¶
func ExtractMappings(r pagination.Page) ([]Mapping, error)
ExtractMappings returns a slice of Mappings contained in a single page of results.
type MappingRule ¶
type MappingRule struct {
// References a local Identity API resource, such as a group or user to which the remote attributes will be mapped.
Local []RuleLocal `json:"local"`
// Each object contains a rule for mapping remote attributes to Identity API concepts.
Remote []RuleRemote `json:"remote"`
}
type MappingsPage ¶
type MappingsPage struct {
pagination.LinkedPageBase
}
MappingsPage is a single page of Mapping results.
func (MappingsPage) IsEmpty ¶
func (c MappingsPage) IsEmpty() (bool, error)
IsEmpty determines whether or not a page of Mappings contains any results.
func (MappingsPage) NextPageURL ¶
func (c MappingsPage) NextPageURL() (string, error)
NextPageURL extracts the "next" link from the links section of the result.
type RuleLocal ¶
type RuleLocal struct {
// Domain to which the remote attributes will be matched.
Domain *Domain `json:"domain,omitempty"`
// Group to which the remote attributes will be matched.
Group *Group `json:"group,omitempty"`
// Group IDs to which the remote attributes will be matched.
GroupIDs string `json:"group_ids,omitempty"`
// Groups to which the remote attributes will be matched.
Groups string `json:"groups,omitempty"`
// Projects to which the remote attributes will be matched.
Projects []RuleProject `json:"projects,omitempty"`
// User to which the remote attributes will be matched.
User *RuleUser `json:"user,omitempty"`
}
type RuleProject ¶
type RuleProject struct {
// Project name
Name string `json:"name,omitempty"`
// Project roles
Roles []RuleProjectRole `json:"roles,omitempty"`
}
type RuleProjectRole ¶
type RuleProjectRole struct {
// Role name
Name string `json:"name,omitempty"`
}
type RuleRemote ¶
type RuleRemote struct {
// Type represents an assertion type keyword.
Type string `json:"type"`
// If true, then each string will be evaluated as a regular expression search against the remote attribute type.
Regex *bool `json:"regex,omitempty"`
// The rule is matched only if any of the specified strings appear in the remote attribute type.
// This is mutually exclusive with NotAnyOf.
AnyOneOf []string `json:"any_one_of,omitempty"`
// The rule is not matched if any of the specified strings appear in the remote attribute type.
// This is mutually exclusive with AnyOneOf.
NotAnyOf []string `json:"not_any_of,omitempty"`
// The rule works as a filter, removing any specified strings that are listed there from the remote attribute type.
// This is mutually exclusive with Whitelist.
Blacklist []string `json:"blacklist,omitempty"`
// The rule works as a filter, allowing only the specified strings in the remote attribute type to be passed ahead.
// This is mutually exclusive with Blacklist.
Whitelist []string `json:"whitelist,omitempty"`
}
Click to show internal directories.
Click to hide internal directories.