package ape import ( apeV2 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/ape" ) // TargetType is an SDK representation for v2's TargetType. type TargetType apeV2.TargetType const ( TargetTypeUndefined TargetType = iota TargetTypeNamespace TargetTypeContainer TargetTypeUser TargetTypeGroup ) // ToV2 converts TargetType to v2. func (targetType TargetType) ToV2() apeV2.TargetType { return apeV2.TargetType(targetType) } // FromV2 reads TargetType to v2. func (targetType *TargetType) FromV2(v2targetType apeV2.TargetType) { *targetType = TargetType(v2targetType) } // ChainTarget is an SDK representation for v2's ChainTarget. // // Note that ChainTarget (as well as v2's ChainTarget) and all related entities // are NOT operated by Access-Policy-Engine (APE). The client is responsible // to convert these types to policy-engine entities. type ChainTarget struct { TargetType TargetType Name string } // ToV2 converts ChainTarget to v2. func (ct *ChainTarget) ToV2() *apeV2.ChainTarget { v2ct := new(apeV2.ChainTarget) v2ct.SetTargetType(ct.TargetType.ToV2()) v2ct.SetName(ct.Name) return v2ct } // FromV2 reads ChainTarget frpm v2. func (ct *ChainTarget) FromV2(v2ct *apeV2.ChainTarget) { ct.TargetType.FromV2(v2ct.GetTargetType()) ct.Name = v2ct.GetName() }