resourcename

package
v0.68.1 Latest Latest
Warning

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

Go to latest
Published: Dec 16, 2024 License: MIT Imports: 4 Imported by: 22

Documentation

Overview

Package resourcename implements simple functions to manipulate UTF-8 encoded AIP resource names.

Index

Constants

View Source
const RevisionSeparator = '@'

RevisionSeparator is the separator character used to separate resource IDs from revision IDs.

View Source
const Wildcard = "-"

Wildcard is the resource name wildcard character "-".

Variables

This section is empty.

Functions

func Ancestor added in v0.40.0

func Ancestor(name, pattern string) (string, bool)

Ancestor extracts an ancestor from the provided name, using a pattern for the ancestor.

func ContainsWildcard added in v0.32.0

func ContainsWildcard(name string) bool

ContainsWildcard reports whether the specified resource name contains any wildcard segments.

func HasParent added in v0.28.0

func HasParent(name, parent string) bool

HasParent tests whether name has the specified parent. Wildcard segments (-) are considered. Resource names without revisions are considered parents of the same resource name with a revision.

func Join added in v0.63.0

func Join(elems ...string) string

Join combines resource names, separating them by slashes.

func Match added in v0.31.0

func Match(pattern, name string) bool

Match reports whether the specified resource name matches the specified resource name pattern.

func RangeParents added in v0.35.0

func RangeParents(name string, fn func(parent string) bool)

RangeParents iterates over all parents of the provided resource name. The iteration order is from root ancestor down to the closest parent. Collection segments are included in the iteration, to not require knowing the pattern. For full resource names, the service is omitted.

func Sprint added in v0.30.0

func Sprint(pattern string, variables ...string) string

Sprint formats resource name variables according to a pattern and returns the resulting string.

func Sscan added in v0.29.0

func Sscan(name, pattern string, variables ...*string) (err error)

Sscan scans a resource name, storing successive segments into successive variables as determined by the provided pattern.

func Validate added in v0.39.0

func Validate(name string) error

Validate that a resource name conforms to the restrictions outlined in AIP-122. See: https://google.aip.dev/122

func ValidatePattern added in v0.41.0

func ValidatePattern(pattern string) error

ValidatePattern that a resource name pattern conforms to the restrictions outlined in AIP-122. See: https://google.aip.dev/122

Types

type Literal added in v0.28.0

type Literal string

Literal is the literal part of a resource name segment.

EBNF

Literal  = RESOURCE_ID | RevisionLiteral ;
RevisionLiteral = RESOURCE_ID "@" REVISION_ID ;

func (Literal) HasRevision added in v0.28.0

func (l Literal) HasRevision() bool

HasRevision returns true if the literal has a valid revision.

func (Literal) ResourceID added in v0.28.0

func (l Literal) ResourceID() string

ResourceID returns the literal's resource ID.

func (Literal) RevisionID added in v0.28.0

func (l Literal) RevisionID() string

RevisionID returns the literal's revision ID.

type Scanner added in v0.28.0

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

Scanner scans a resource name.

func (*Scanner) End added in v0.35.0

func (s *Scanner) End() int

End returns the end index (exclusive) of the current segment.

func (*Scanner) Full added in v0.28.0

func (s *Scanner) Full() bool

Full returns true if the scanner has detected a full resource name.

func (*Scanner) Init added in v0.28.0

func (s *Scanner) Init(name string)

Init initializes the scanner.

func (*Scanner) Scan added in v0.28.0

func (s *Scanner) Scan() bool

Scan to the next segment.

func (*Scanner) Segment added in v0.28.0

func (s *Scanner) Segment() Segment

Segment returns the current segment.

func (*Scanner) ServiceName added in v0.28.0

func (s *Scanner) ServiceName() string

ServiceName returns the service name, when the scanner has detected a full resource name.

func (*Scanner) Start added in v0.35.0

func (s *Scanner) Start() int

Start returns the start index (inclusive) of the current segment.

type Segment

type Segment string

Segment is a segment of a resource name or a resource name pattern.

EBNF

Segment  = Literal | Variable ;
Variable = "{" Literal "}" ;

func (Segment) IsVariable added in v0.28.0

func (s Segment) IsVariable() bool

IsVariable reports whether the segment is a variable segment.

func (Segment) IsWildcard added in v0.28.0

func (s Segment) IsWildcard() bool

IsWildcard reports whether the segment is a wildcard.

func (Segment) Literal added in v0.28.0

func (s Segment) Literal() Literal

Literal returns the literal value of the segment. For variables, the literal value is the name of the variable.

Jump to

Keyboard shortcuts

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