members

package
v0.6.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 19, 2023 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Overview

Package members enables management and retrieval of image members.

Members are projects other than the image owner who have access to the image.

Example to List Members of an Image

imageID := "2b6cacd4-cfd6-4b95-8302-4c04ccf0be3f"

allPages, err := members.List(imageID).AllPages()
if err != nil {
	panic(err)
}

allMembers, err := members.ExtractMembers(allPages)
if err != nil {
	panic(err)
}

for _, member := range allMembers {
	fmt.Printf("%+v\n", member)
}

Example to Add a Member to an Image

imageID := "2b6cacd4-cfd6-4b95-8302-4c04ccf0be3f"
projectID := "fc404778935a4cebaddcb4788fb3ff2c"

member, err := members.Create(imageClient, imageID, projectID).Extract()
if err != nil {
	panic(err)
}

Example to Update the Status of a Member

imageID := "2b6cacd4-cfd6-4b95-8302-4c04ccf0be3f"
projectID := "fc404778935a4cebaddcb4788fb3ff2c"

updateOpts := members.UpdateOpts{
	Status: "accepted",
}

member, err := members.Update(imageClient, imageID, projectID, updateOpts).Extract()
if err != nil {
	panic(err)
}

Example to Delete a Member from an Image

imageID := "2b6cacd4-cfd6-4b95-8302-4c04ccf0be3f"
projectID := "fc404778935a4cebaddcb4788fb3ff2c"

err := members.Delete(imageClient, imageID, projectID).ExtractErr()
if err != nil {
	panic(err)
}

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func List

func List(client *golangsdk.ServiceClient, imageID string) pagination.Pager

List members returns list of members for specified image id.

Types

type CreateOpts added in v0.5.0

type CreateOpts struct {
	Member string `json:"member" required:"true"`
}

func (CreateOpts) ToImageMemberCreateMap added in v0.5.0

func (opts CreateOpts) ToImageMemberCreateMap() (map[string]interface{}, error)

type CreateOptsBuilder added in v0.5.0

type CreateOptsBuilder interface {
	ToImageMemberCreateMap() (map[string]interface{}, error)
}
Create member for specific image

Preconditions

* The specified images must exist.
* You can only add a new member to an image which 'visibility' attribute is
	private.
* You must be the owner of the specified image.

Synchronous Postconditions

With correct permissions, you can see the member status of the image as
pending through API calls.

More details here:
http://developer.openstack.org/api-ref-image-v2.html#createImageMember-v2

CreateOptsBuilder allows extensions to add parameters to the Create request.

type CreateResult

type CreateResult struct {
	// contains filtered or unexported fields
}

CreateResult represents the result of a Create operation. Call its Extract method to interpret it as a Member.

func Create

func Create(client *golangsdk.ServiceClient, imageID string, opts CreateOptsBuilder) (r CreateResult)

func (CreateResult) Extract

func (r CreateResult) Extract() (*Member, error)

Extract Member model from a request.

type DeleteResult

type DeleteResult struct {
	golangsdk.ErrResult
}

DeleteResult represents the result of a Delete operation. Call its ExtractErr method to determine if the request succeeded or failed.

func Delete

func Delete(client *golangsdk.ServiceClient, imageID string, memberID string) (r DeleteResult)

Delete membership for given image. Callee should be image owner.

type DetailsResult

type DetailsResult struct {
	// contains filtered or unexported fields
}

DetailsResult represents the result of a Get operation. Call its Extract method to interpret it as a Member.

func Get

func Get(client *golangsdk.ServiceClient, imageID string, memberID string) (r DetailsResult)

Get image member details.

func (DetailsResult) Extract

func (r DetailsResult) Extract() (*Member, error)

Extract Member model from a request.

type Member

type Member struct {
	CreatedAt string `json:"created_at"`
	ImageID   string `json:"image_id"`
	MemberID  string `json:"member_id"`
	Schema    string `json:"schema"`
	Status    string `json:"status"`
	UpdatedAt string `json:"updated_at"`
}

Member represents a member of an Image.

func ExtractMembers

func ExtractMembers(r pagination.Page) ([]Member, error)

ExtractMembers returns a slice of Members contained in a single page of results.

type MemberPage

type MemberPage struct {
	pagination.SinglePageBase
}

MemberPage is a single page of Members results.

func (MemberPage) IsEmpty

func (r MemberPage) IsEmpty() (bool, error)

IsEmpty determines whether or not a MemberPage contains any results.

type UpdateOpts

type UpdateOpts struct {
	Status  string `json:"status" required:"true"`
	VaultID string `json:"vault_id,omitempty"`
}

UpdateOpts represents options to an Update request.

func (UpdateOpts) ToImageMemberUpdateMap

func (opts UpdateOpts) ToImageMemberUpdateMap() (map[string]interface{}, error)

ToImageMemberUpdateMap formats an UpdateOpts structure into a request body.

type UpdateOptsBuilder

type UpdateOptsBuilder interface {
	ToImageMemberUpdateMap() (map[string]interface{}, error)
}

UpdateOptsBuilder allows extensions to add additional attributes to the Update request.

type UpdateResult

type UpdateResult struct {
	// contains filtered or unexported fields
}

UpdateResult represents the result of an Update operation. Call its Extract method to interpret it as a Member.

func Update

func Update(client *golangsdk.ServiceClient, imageID string, memberID string, opts UpdateOptsBuilder) (r UpdateResult)

Update function updates member.

func (UpdateResult) Extract

func (r UpdateResult) Extract() (*Member, error)

Extract Member model from a request.

Directories

Path Synopsis
members unit tests
members unit tests

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL