sym.sdk.resource.SRN¶
- class sym.sdk.resource.SRN(org: str, model: str, type: Optional[str], slug: str, version: str, identifier: Optional[str] = None)¶
Bases:
object
Sym Resource Name (
SRN
) is a unique identifier for a Sym Resource.SRNs have the following structure:
<ORG>:<MODEL>[:<TYPE>]:<SLUG>:<VERSION>[:<IDENTIFIER>]
Where VERSION is either a semver string, or “latest”. And TYPE indicates the type of the model; this is often the type field of the resource defined in Terraform. For example, the type slack for an integration resource.
For example, the
SRN
for the v1.0.0 sym:approval template is:sym:template:approval:1.0.0
Or the
SRN
for aFlow
instance (with a UUID as an instance identifier) could be:sym:flow:test-flow:0.1.0:d47782bc-88be-44df-9e34-5fae0dbdea22
Or the
SRN
for a Slack integration with a slug “my-integration” is:sym:integration:slack:my-integration:latest:d47782bc-88be-44df-9e34-5fae0dbdea22
Methods
copy
([organization, model, type, slug, ...])Creates a copy of this
SRN
.parse
(raw)Parses and validates the given string as an
SRN
.requires_type
(model)Returns True if the given model has a type component.
Attributes
The default separator for
SRN
components.The pattern for validating slug components.
The pattern for validating the version component.
An arbitrary string identifying an instance of the resource.
The model name for this
SRN
.The slug for the organization this
SRN
belongs to.This
SRN
's slug.The model type for this
SRN
.A semver string representing the version of this
SRN
.- SLUG_PATTERN = re.compile('^[a-zA-Z0-9-_]+$')¶
The pattern for validating slug components.
- VERSION_PATTERN = re.compile('^(latest|[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3})$')¶
The pattern for validating the version component.
- copy(organization: Optional[str] = None, model: Optional[str] = None, type: Optional[str] = None, slug: Optional[str] = None, version: Optional[str] = None, identifier: Optional[str] = None)¶
Creates a copy of this
SRN
.Optionally can create a new
SRN
with modified components from the current, as specified by the keyword arguments.
- property identifier¶
An arbitrary string identifying an instance of the resource.
This is often a UUID.
- property model¶
The model name for this
SRN
.For example, for the sym:approval
Template
, the model name is template.
- property organization¶
The slug for the organization this
SRN
belongs to.For example, for the sym:approval
Template
, the organization slug is sym.
- classmethod parse(raw: str) sym.sdk.resource.SRN ¶
Parses and validates the given string as an
SRN
.- Parameters
raw – A raw string representing a
SRN
.- Returns
A
SRN
instance.- Raises
TrailingSeparatorError – The string has a trailing separator.
InvalidSRNError – The string is missing components, or at least one component is invalid.
InvalidSlugError – The string has an invalid slug component.
InvalidVersionError – The string has an invalid version component.