table

package
v0.6.0 Latest Latest
Warning

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

Go to latest
Published: Dec 21, 2023 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const PolicyAttrTypeActions = "actions"
View Source
const PolicyAttrTypeMembers = "members"
View Source
const PolicyAttrTypeResource = "resource"

Variables

This section is empty.

Functions

func ValidateTableDefinition

func ValidateTableDefinition(tableDef TableDefinition) error

Types

type AttributeDefinition

type AttributeDefinition struct {
	//PolicyAttrType string // one of 'resource', 'actions' or 'members'
	NameOrPath string `json:"nameOrPath"`
	ValType    string `json:"valType"`
	Pk         bool   `json:"pk"`
	Sk         bool   `json:"sk"`
}

AttributeDefinition both pk, sk cannot be true

func NewAttributeDefinition

func NewAttributeDefinition(nameOrPath string, valType string, pk bool, sk bool) *AttributeDefinition

type MetadataKeyInfo

type MetadataKeyInfo struct {
	Attribute string `json:"attribute"`
}

type TableAttributes

type TableAttributes struct {
	Resource *AttributeDefinition `json:"resource"`
	Actions  *AttributeDefinition `json:"actions"`
	Members  *AttributeDefinition `json:"members"`
}

type TableDefinition

type TableDefinition interface {
	ResourceAttrDefinition() *AttributeDefinition
	ActionsAttrDefinition() *AttributeDefinition
	MembersAttrDefinition() *AttributeDefinition
	AttrDefinitionMap() map[string]*AttributeDefinition
}

type TableDefinitionV2

type TableDefinitionV2 struct {
	Metadata   TableMetadata   `json:"metadata"`
	Attributes TableAttributes `json:"attributes"`
}

func (TableDefinitionV2) ActionsAttrDefinition

func (t TableDefinitionV2) ActionsAttrDefinition() *AttributeDefinition

func (TableDefinitionV2) AttrDefinitionMap

func (t TableDefinitionV2) AttrDefinitionMap() map[string]*AttributeDefinition

func (TableDefinitionV2) MembersAttrDefinition

func (t TableDefinitionV2) MembersAttrDefinition() *AttributeDefinition

func (TableDefinitionV2) ResourceAttrDefinition

func (t TableDefinitionV2) ResourceAttrDefinition() *AttributeDefinition

type TableInfo

type TableInfo[R rar.ResourceActionRolesMapper] struct {
	TableName          string
	ItemType           R
	ItemMappingDynamic bool // MapTo static, or dynamic. Decides whether to use item.MapTo() or MapTo(interface{})
	TableDefinition    TableDefinition
}

func NewDynamicTableInfo

func NewDynamicTableInfo(tableName string, resourceAttrDef, actionsAttrDef, membersAttrDef *AttributeDefinition) (*TableInfo[rar.DynamicResourceActionRolesMapper], error)

func NewSimpleTableInfo

func NewSimpleTableInfo[R rar.ResourceActionRolesMapper](tableName string, sampleItem R) (*TableInfo[R], error)

type TableMetadata

type TableMetadata struct {
	Pk MetadataKeyInfo `json:"pk"`
	Sk MetadataKeyInfo `json:"sk"`
}

TableDefinitionV2 - dynamic table definition provided by consumers Also refactor into reusable structs

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL
JackTT - Gopher 🇻🇳