endpointgroups

package
v1.8.0 Latest Latest
Warning

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

Go to latest
Published: Nov 30, 2023 License: Apache-2.0 Imports: 2 Imported by: 18

Documentation

Overview

Package endpointgroups allows management of endpoint groups in the Openstack Network Service

Example to create an Endpoint Group

createOpts := endpointgroups.CreateOpts{
	Name: groupName,
	Type: endpointgroups.TypeCIDR,
	Endpoints: []string{
		"10.2.0.0/24",
		"10.3.0.0/24",
	},
}
group, err := endpointgroups.Create(client, createOpts).Extract()
if err != nil {
	return group, err
}

Example to retrieve an Endpoint Group

group, err := endpointgroups.Get(client, "6ecd9cf3-ca64-46c7-863f-f2eb1b9e838a").Extract()
if err != nil {
	panic(err)
}

Example to Delete an Endpoint Group

err := endpointgroups.Delete(client, "5291b189-fd84-46e5-84bd-78f40c05d69c").ExtractErr()
if err != nil {
	panic(err)
}

Example to List Endpoint groups

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

allGroups, err := endpointgroups.ExtractEndpointGroups(allPages)
if err != nil {
	panic(err)
}

Example to Update an endpoint group

name := "updatedname"
description := "updated description"
updateOpts := endpointgroups.UpdateOpts{
	Name:        &name,
	Description: &description,
}
updatedPolicy, err := endpointgroups.Update(client, "5c561d9d-eaea-45f6-ae3e-08d1a7080828", updateOpts).Extract()
if err != nil {
	panic(err)
}

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func List

List returns a Pager which allows you to iterate over a collection of Endpoint groups. It accepts a ListOpts struct, which allows you to filter the returned collection for greater efficiency.

Types

type CreateOpts

type CreateOpts struct {
	// TenantID specifies a tenant to own the endpoint group. The caller must have
	// an admin role in order to set this. Otherwise, this field is left unset
	// and the caller will be the owner.
	TenantID string `json:"tenant_id,omitempty"`

	// Description is the human readable description of the endpoint group.
	Description string `json:"description,omitempty"`

	// Name is the human readable name of the endpoint group.
	Name string `json:"name,omitempty"`

	// The type of the endpoints in the group.
	// A valid value is subnet, cidr, network, router, or vlan.
	Type EndpointType `json:"type,omitempty"`

	// List of endpoints of the same type, for the endpoint group.
	// The values will depend on the type.
	Endpoints []string `json:"endpoints"`
}

CreateOpts contains all the values needed to create a new endpoint group

func (CreateOpts) ToEndpointGroupCreateMap

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

ToEndpointGroupCreateMap casts a CreateOpts struct to a map.

type CreateOptsBuilder

type CreateOptsBuilder interface {
	ToEndpointGroupCreateMap() (map[string]interface{}, error)
}

CreateOptsBuilder allows extensions to add additional 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 an endpoint group.

func Create

Create accepts a CreateOpts struct and uses the values to create a new endpoint group.

func (CreateResult) Extract

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

Extract is a function that accepts a result and extracts an endpoint group.

type DeleteResult

type DeleteResult struct {
	gophercloud.ErrResult
}

DeleteResult represents the results of a Delete operation. Call its ExtractErr method to determine whether the operation succeeded or failed.

func Delete

func Delete(c *gophercloud.ServiceClient, id string) (r DeleteResult)

Delete will permanently delete a particular endpoint group based on its unique ID.

type EndpointGroup

type EndpointGroup struct {
	// TenantID specifies a tenant to own the endpoint group.
	TenantID string `json:"tenant_id"`

	// TenantID specifies a tenant to own the endpoint group.
	ProjectID string `json:"project_id"`

	// Description is the human readable description of the endpoint group.
	Description string `json:"description"`

	// Name is the human readable name of the endpoint group.
	Name string `json:"name"`

	// Type is the type of the endpoints in the group.
	Type string `json:"type"`

	// Endpoints is a list of endpoints.
	Endpoints []string `json:"endpoints"`

	// ID is the id of the endpoint group
	ID string `json:"id"`
}

EndpointGroup is an endpoint group.

func ExtractEndpointGroups

func ExtractEndpointGroups(r pagination.Page) ([]EndpointGroup, error)

ExtractEndpointGroups accepts a Page struct, specifically an EndpointGroupPage struct, and extracts the elements into a slice of Endpoint group structs. In other words, a generic collection is mapped into a relevant slice.

type EndpointGroupPage

type EndpointGroupPage struct {
	pagination.LinkedPageBase
}

EndpointGroupPage is the page returned by a pager when traversing over a collection of Policies.

func (EndpointGroupPage) IsEmpty

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

IsEmpty checks whether an EndpointGroupPage struct is empty.

func (EndpointGroupPage) NextPageURL

func (r EndpointGroupPage) NextPageURL() (string, error)

NextPageURL is invoked when a paginated collection of Endpoint groups has reached the end of a page and the pager seeks to traverse over a new one. In order to do this, it needs to construct the next page's URL.

type EndpointType

type EndpointType string
const (
	TypeSubnet  EndpointType = "subnet"
	TypeCIDR    EndpointType = "cidr"
	TypeVLAN    EndpointType = "vlan"
	TypeNetwork EndpointType = "network"
	TypeRouter  EndpointType = "router"
)

type GetResult

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

GetResult represents the result of a get operation. Call its Extract method to interpret it as an EndpointGroup.

func Get

func Get(c *gophercloud.ServiceClient, id string) (r GetResult)

Get retrieves a particular endpoint group based on its unique ID.

func (GetResult) Extract

func (r GetResult) Extract() (*EndpointGroup, error)

Extract is a function that accepts a result and extracts an endpoint group.

type ListOpts

type ListOpts struct {
	TenantID    string `q:"tenant_id"`
	ProjectID   string `q:"project_id"`
	Description string `q:"description"`
	Name        string `q:"name"`
	Type        string `q:"type"`
}

ListOpts allows the filtering of paginated collections through the API. Filtering is achieved by passing in struct field values that map to the Endpoint group attributes you want to see returned.

func (ListOpts) ToEndpointGroupListQuery

func (opts ListOpts) ToEndpointGroupListQuery() (string, error)

ToEndpointGroupListQuery formats a ListOpts into a query string.

type ListOptsBuilder

type ListOptsBuilder interface {
	ToEndpointGroupListQuery() (string, error)
}

ListOptsBuilder allows extensions to add additional parameters to the List request.

type UpdateOpts

type UpdateOpts struct {
	Description *string `json:"description,omitempty"`
	Name        *string `json:"name,omitempty"`
}

UpdateOpts contains the values used when updating an endpoint group.

func (UpdateOpts) ToEndpointGroupUpdateMap

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

ToEndpointGroupUpdateMap casts an UpdateOpts struct to a map.

type UpdateOptsBuilder

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

UpdateOptsBuilder allows extensions to add additional parameters 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 an EndpointGroup.

func Update

Update allows endpoint groups to be updated.

func (UpdateResult) Extract

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

Extract is a function that accepts a result and extracts an endpoint group.

Jump to

Keyboard shortcuts

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