limits

package
v1.4.0 Latest Latest
Warning

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

Go to latest
Published: May 25, 2023 License: Apache-2.0 Imports: 2 Imported by: 2

Documentation

Overview

Package limits provides information and interaction with limits for the Openstack Identity service.

Example to Get EnforcementModel

model, err := limits.GetEnforcementModel(identityClient).Extract()
if err != nil {
	panic(err)
}

Example to List Limits

listOpts := limits.ListOpts{
	ProjectID: "3d596369fd2043bf8aca3c8decb0189e",
}

allPages, err := limits.List(identityClient, listOpts).AllPages()
if err != nil {
	panic(err)
}

allLimits, err := limits.ExtractLimits(allPages)
if err != nil {
	panic(err)
}

Example to Create Limits

batchCreateOpts := limits.BatchCreateOpts{
	limits.CreateOpts{
		ServiceID:     "9408080f1970482aa0e38bc2d4ea34b7",
		ProjectID:     "3a705b9f56bb439381b43c4fe59dccce",
		RegionID:      "RegionOne",
		ResourceName:  "snapshot",
		ResourceLimit: 5,
	},
	limits.CreateOpts{
		ServiceID:     "9408080f1970482aa0e38bc2d4ea34b7",
		DomainID:      "edbafc92be354ffa977c58aa79c7bdb2",
		ResourceName:  "volume",
		ResourceLimit: 10,
		Description:   "Number of volumes for project 3a705b9f56bb439381b43c4fe59dccce",
	},
}

createdLimits, err := limits.Create(identityClient, batchCreateOpts).Extract()
if err != nil {
	panic(err)
}

Example to Get a Limit

limit, err := limits.Get(identityClient, "25a04c7a065c430590881c646cdcdd58").Extract()
if err != nil {
	panic(err)
}

Example to Update a Limit

limitID := "0fe36e73809d46aeae6705c39077b1b3"

description := "Number of snapshots for project 3a705b9f56bb439381b43c4fe59dccce"
resourceLimit := 5
updateOpts := limits.UpdateOpts{
  Description:   &description,
  ResourceLimit: &resourceLimit,
}

limit, err := limits.Update(identityClient, limitID, updateOpts).Extract()
if err != nil {
  panic(err)
}

Example to Delete a Limit

limitID := "0fe36e73809d46aeae6705c39077b1b3"
err := limits.Delete(identityClient, limitID).ExtractErr()
if err != nil {
	panic(err)
}

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func List

List enumerates the limits.

Types

type BatchCreateOpts added in v1.3.0

type BatchCreateOpts []CreateOpts

BatchCreateOpts provides options used to create limits.

func (BatchCreateOpts) ToLimitsCreateMap added in v1.3.0

func (opts BatchCreateOpts) ToLimitsCreateMap() (map[string]interface{}, error)

ToLimitsCreateMap formats a BatchCreateOpts into a create request.

type BatchCreateOptsBuilder added in v1.3.0

type BatchCreateOptsBuilder interface {
	ToLimitsCreateMap() (map[string]interface{}, error)
}

BatchCreateOptsBuilder allows extensions to add additional parameters to the Create request.

type CreateOpts added in v1.3.0

type CreateOpts struct {
	// RegionID is the ID of the region where the limit is applied.
	RegionID string `json:"region_id,omitempty"`

	// ProjectID is the ID of the project where the limit is applied.
	ProjectID string `json:"project_id,omitempty"`

	// DomainID is the ID of the domain where the limit is applied.
	DomainID string `json:"domain_id,omitempty"`

	// ServiceID is the ID of the service where the limit is applied.
	ServiceID string `json:"service_id" required:"true"`

	// Description of the limit.
	Description string `json:"description,omitempty"`

	// ResourceName is the name of the resource that the limit is applied to.
	ResourceName string `json:"resource_name" required:"true"`

	// ResourceLimit is the override limit.
	ResourceLimit int `json:"resource_limit"`
}

func (CreateOpts) ToMap added in v1.3.0

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

type CreateResult added in v1.3.0

type CreateResult struct {
	gophercloud.Result
}

CreateResult is the response from a Create operation. Call its Extract method to interpret it as a Limits.

func BatchCreate added in v1.3.0

func BatchCreate(client *gophercloud.ServiceClient, opts BatchCreateOptsBuilder) (r CreateResult)

BatchCreate creates new Limits.

func (CreateResult) Extract added in v1.3.0

func (r CreateResult) Extract() ([]Limit, error)

Extract interprets CreateResult as slice of Limits.

type DeleteResult added in v1.4.0

type DeleteResult struct {
	gophercloud.ErrResult
}

DeleteResult is the response from a Delete operation. Call its ExtractErr to determine if the request succeeded or failed.

func Delete added in v1.4.0

func Delete(client *gophercloud.ServiceClient, limitID string) (r DeleteResult)

Delete deletes a limit.

type EnforcementModel added in v1.1.0

type EnforcementModel struct {
	// The name of the enforcement model.
	Name string `json:"name"`

	// A short description of the enforcement model used.
	Description string `json:"description"`
}

A model describing the configured enforcement model used by the deployment.

type EnforcementModelResult added in v1.1.0

type EnforcementModelResult struct {
	gophercloud.Result
}

EnforcementModelResult is the response from a GetEnforcementModel operation. Call its Extract method to interpret it as a EnforcementModel.

func GetEnforcementModel added in v1.1.0

func GetEnforcementModel(client *gophercloud.ServiceClient) (r EnforcementModelResult)

Get retrieves details on a single limit, by ID.

func (EnforcementModelResult) Extract added in v1.1.0

Extract interprets EnforcementModelResult as a EnforcementModel.

type GetResult added in v1.4.0

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

GetResult is the response from a Get operation. Call its Extract method to interpret it as a Limit.

func Get added in v1.4.0

func Get(client *gophercloud.ServiceClient, limitID string) (r GetResult)

Get retrieves details on a single limit, by ID.

func (GetResult) Extract added in v1.4.0

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

Extract interprets any commonResult as a Limit.

type Limit

type Limit struct {
	// ID is the unique ID of the limit.
	ID string `json:"id"`

	// RegionID is the ID of the region where the limit is applied.
	RegionID string `json:"region_id"`

	// ProjectID is the ID of the project where the limit is applied.
	ProjectID string `json:"project_id"`

	// DomainID is the ID of the domain where the limit is applied.
	DomainID string `json:"domain_id"`

	// ServiceID is the ID of the service where the limit is applied.
	ServiceID string `json:"service_id"`

	// Description of the limit.
	Description string `json:"description"`

	// ResourceName is the name of the resource that the limit is applied to.
	ResourceName string `json:"resource_name"`

	// ResourceLimit is the override limit.
	ResourceLimit int `json:"resource_limit"`

	// Links contains referencing links to the limit.
	Links map[string]interface{} `json:"links"`
}

A limit is the limit that override the registered limit for each project.

func ExtractLimits

func ExtractLimits(r pagination.Page) ([]Limit, error)

ExtractLimits returns a slice of Limits contained in a single page of results.

type LimitOutput added in v1.4.0

type LimitOutput struct {
	Limit *Limit `json:"limit"`
}

A LimitOutput is an encapsulated Limit returned by Get and Update operations

type LimitPage

type LimitPage struct {
	pagination.LinkedPageBase
}

LimitPage is a single page of Limit results.

func (LimitPage) IsEmpty

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

IsEmpty determines whether or not a page of Limits contains any results.

func (LimitPage) NextPageURL

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

NextPageURL extracts the "next" link from the links section of the result.

type LimitsOutput added in v1.3.0

type LimitsOutput struct {
	Limits []Limit `json:"limits"`
}

A LimitsOutput is an array of limits returned by List and BatchCreate operations

type ListOpts

type ListOpts struct {
	// Filters the response by a region ID.
	RegionID string `q:"region_id"`

	// Filters the response by a project ID.
	ProjectID string `q:"project_id"`

	// Filters the response by a domain ID.
	DomainID string `q:"domain_id"`

	// Filters the response by a service ID.
	ServiceID string `q:"service_id"`

	// Filters the response by a resource name.
	ResourceName string `q:"resource_name"`
}

ListOpts provides options to filter the List results.

func (ListOpts) ToLimitListQuery

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

ToLimitListQuery formats a ListOpts into a query string.

type ListOptsBuilder

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

ListOptsBuilder allows extensions to add additional parameters to the List request

type UpdateOpts added in v1.4.0

type UpdateOpts struct {
	// Description of the limit.
	Description *string `json:"description,omitempty"`

	// ResourceLimit is the override limit.
	ResourceLimit *int `json:"resource_limit,omitempty"`
}

UpdateOpts represents parameters to update a domain.

func (UpdateOpts) ToLimitUpdateMap added in v1.4.0

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

ToLimitUpdateMap formats UpdateOpts into an update request.

type UpdateOptsBuilder added in v1.4.0

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

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

type UpdateResult added in v1.4.0

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

UpdateResult is the result of an Update request. Call its Extract method to interpret it as a Limit.

func Update added in v1.4.0

func Update(client *gophercloud.ServiceClient, id string, opts UpdateOptsBuilder) (r UpdateResult)

Update modifies the attributes of a limit.

func (UpdateResult) Extract added in v1.4.0

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

Extract interprets any commonResult as a Limit.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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