forked from TrueCloudLab/frostfs-api-go
service: transfer public types to a separate file
This commit is contained in:
parent
b785eb710a
commit
8270245455
5 changed files with 170 additions and 66 deletions
|
@ -4,11 +4,17 @@ import (
|
||||||
"github.com/nspcc-dev/neofs-api-go/refs"
|
"github.com/nspcc-dev/neofs-api-go/refs"
|
||||||
)
|
)
|
||||||
|
|
||||||
// TokenID is type alias of UUID ref.
|
// TokenID is a type alias of UUID ref.
|
||||||
type TokenID = refs.UUID
|
type TokenID = refs.UUID
|
||||||
|
|
||||||
// OwnerID is type alias of OwnerID ref.
|
// OwnerID is a type alias of OwnerID ref.
|
||||||
type OwnerID = refs.OwnerID
|
type OwnerID = refs.OwnerID
|
||||||
|
|
||||||
// Address is type alias of Address ref.
|
// Address is a type alias of Address ref.
|
||||||
type Address = refs.Address
|
type Address = refs.Address
|
||||||
|
|
||||||
|
// AddressContainer is a type alias of refs.AddressContainer.
|
||||||
|
type AddressContainer = refs.AddressContainer
|
||||||
|
|
||||||
|
// OwnerIDContainer is a type alias of refs.OwnerIDContainer.
|
||||||
|
type OwnerIDContainer = refs.OwnerIDContainer
|
||||||
|
|
|
@ -1,8 +1,5 @@
|
||||||
package service
|
package service
|
||||||
|
|
||||||
// NodeRole to identify in Bootstrap service.
|
|
||||||
type NodeRole int32
|
|
||||||
|
|
||||||
const (
|
const (
|
||||||
_ NodeRole = iota
|
_ NodeRole = iota
|
||||||
// InnerRingNode that work like IR node.
|
// InnerRingNode that work like IR node.
|
||||||
|
|
|
@ -4,65 +4,9 @@ import (
|
||||||
"crypto/ecdsa"
|
"crypto/ecdsa"
|
||||||
"encoding/binary"
|
"encoding/binary"
|
||||||
|
|
||||||
"github.com/nspcc-dev/neofs-api-go/refs"
|
|
||||||
crypto "github.com/nspcc-dev/neofs-crypto"
|
crypto "github.com/nspcc-dev/neofs-crypto"
|
||||||
)
|
)
|
||||||
|
|
||||||
// VerbContainer is an interface of the container of a token verb value.
|
|
||||||
type VerbContainer interface {
|
|
||||||
GetVerb() Token_Info_Verb
|
|
||||||
SetVerb(Token_Info_Verb)
|
|
||||||
}
|
|
||||||
|
|
||||||
// TokenIDContainer is an interface of the container of a token ID value.
|
|
||||||
type TokenIDContainer interface {
|
|
||||||
GetID() TokenID
|
|
||||||
SetID(TokenID)
|
|
||||||
}
|
|
||||||
|
|
||||||
// CreationEpochContainer is an interface of the container of a creation epoch number.
|
|
||||||
type CreationEpochContainer interface {
|
|
||||||
CreationEpoch() uint64
|
|
||||||
SetCreationEpoch(uint64)
|
|
||||||
}
|
|
||||||
|
|
||||||
// ExpirationEpochContainer is an interface of the container of an expiration epoch number.
|
|
||||||
type ExpirationEpochContainer interface {
|
|
||||||
ExpirationEpoch() uint64
|
|
||||||
SetExpirationEpoch(uint64)
|
|
||||||
}
|
|
||||||
|
|
||||||
// SessionKeyContainer is an interface of the container of session key bytes.
|
|
||||||
type SessionKeyContainer interface {
|
|
||||||
GetSessionKey() []byte
|
|
||||||
SetSessionKey([]byte)
|
|
||||||
}
|
|
||||||
|
|
||||||
// SignatureContainer is an interface of the container of signature bytes.
|
|
||||||
type SignatureContainer interface {
|
|
||||||
GetSignature() []byte
|
|
||||||
SetSignature([]byte)
|
|
||||||
}
|
|
||||||
|
|
||||||
// SessionTokenInfo is an interface that determines the information scope of session token.
|
|
||||||
type SessionTokenInfo interface {
|
|
||||||
TokenIDContainer
|
|
||||||
refs.OwnerIDContainer
|
|
||||||
VerbContainer
|
|
||||||
refs.AddressContainer
|
|
||||||
CreationEpochContainer
|
|
||||||
ExpirationEpochContainer
|
|
||||||
SessionKeyContainer
|
|
||||||
}
|
|
||||||
|
|
||||||
// SessionToken is an interface of token information and signature pair.
|
|
||||||
type SessionToken interface {
|
|
||||||
SessionTokenInfo
|
|
||||||
SignatureContainer
|
|
||||||
}
|
|
||||||
|
|
||||||
var _ SessionToken = (*Token)(nil)
|
|
||||||
|
|
||||||
var tokenEndianness = binary.BigEndian
|
var tokenEndianness = binary.BigEndian
|
||||||
|
|
||||||
// GetID is an ID field getter.
|
// GetID is an ID field getter.
|
||||||
|
|
|
@ -12,10 +12,6 @@ type TTLHeader interface {
|
||||||
SetTTL(uint32)
|
SetTTL(uint32)
|
||||||
}
|
}
|
||||||
|
|
||||||
// TTLCondition is a function type that used to verify that TTL value match a specific criterion.
|
|
||||||
// Nil error indicates compliance with the criterion.
|
|
||||||
type TTLCondition func(ttl uint32) error
|
|
||||||
|
|
||||||
// TTL constants.
|
// TTL constants.
|
||||||
const (
|
const (
|
||||||
// ZeroTTL is an upper bound of invalid TTL values.
|
// ZeroTTL is an upper bound of invalid TTL values.
|
||||||
|
|
161
service/types.go
Normal file
161
service/types.go
Normal file
|
@ -0,0 +1,161 @@
|
||||||
|
package service
|
||||||
|
|
||||||
|
// NodeRole to identify in Bootstrap service.
|
||||||
|
type NodeRole int32
|
||||||
|
|
||||||
|
// TTLCondition is a function type that used to verify that TTL values match a specific criterion.
|
||||||
|
// Nil error indicates compliance with the criterion.
|
||||||
|
type TTLCondition func(uint32) error
|
||||||
|
|
||||||
|
// RawSource is an interface of the container of a boolean Raw value with read access.
|
||||||
|
type RawSource interface {
|
||||||
|
GetRaw() bool
|
||||||
|
}
|
||||||
|
|
||||||
|
// RawContainer is an interface of the container of a boolean Raw value.
|
||||||
|
type RawContainer interface {
|
||||||
|
RawSource
|
||||||
|
SetRaw(bool)
|
||||||
|
}
|
||||||
|
|
||||||
|
// VersionContainer is an interface of the container of a numerical Version value with read access.
|
||||||
|
type VersionSource interface {
|
||||||
|
GetVersion() uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
// VersionContainer is an interface of the container of a numerical Version value.
|
||||||
|
type VersionContainer interface {
|
||||||
|
VersionSource
|
||||||
|
SetVersion(uint32)
|
||||||
|
}
|
||||||
|
|
||||||
|
// EpochSource is an interface of the container of a NeoFS epoch number with read access.
|
||||||
|
type EpochSource interface {
|
||||||
|
GetEpoch() uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
// EpochContainer is an interface of the container of a NeoFS epoch number.
|
||||||
|
type EpochContainer interface {
|
||||||
|
EpochSource
|
||||||
|
SetEpoch(uint64)
|
||||||
|
}
|
||||||
|
|
||||||
|
// TTLSource is an interface of the container of a numerical TTL value with read access.
|
||||||
|
type TTLSource interface {
|
||||||
|
GetTTL() uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
// TTLContainer is an interface of the container of a numerical TTL value.
|
||||||
|
type TTLContainer interface {
|
||||||
|
TTLSource
|
||||||
|
SetTTL(uint32)
|
||||||
|
}
|
||||||
|
|
||||||
|
// RequestMetaContainer is an interface of a fixed set of request meta value containers.
|
||||||
|
// Contains:
|
||||||
|
// - TTL value;
|
||||||
|
// - NeoFS epoch number;
|
||||||
|
// - Protocol version;
|
||||||
|
// - Raw toggle option.
|
||||||
|
type RequestMetaContainer interface {
|
||||||
|
TTLContainer
|
||||||
|
EpochContainer
|
||||||
|
VersionContainer
|
||||||
|
RawContainer
|
||||||
|
}
|
||||||
|
|
||||||
|
// VerbSource is an interface of the container of a token verb value with read access.
|
||||||
|
type VerbSource interface {
|
||||||
|
GetVerb() Token_Info_Verb
|
||||||
|
}
|
||||||
|
|
||||||
|
// VerbContainer is an interface of the container of a token verb value.
|
||||||
|
type VerbContainer interface {
|
||||||
|
VerbSource
|
||||||
|
SetVerb(Token_Info_Verb)
|
||||||
|
}
|
||||||
|
|
||||||
|
// TokenIDSource is an interface of the container of a token ID value with read access.
|
||||||
|
type TokenIDSource interface {
|
||||||
|
GetID() TokenID
|
||||||
|
}
|
||||||
|
|
||||||
|
// TokenIDContainer is an interface of the container of a token ID value.
|
||||||
|
type TokenIDContainer interface {
|
||||||
|
TokenIDSource
|
||||||
|
SetID(TokenID)
|
||||||
|
}
|
||||||
|
|
||||||
|
// CreationEpochSource is an interface of the container of a creation epoch number with read access.
|
||||||
|
type CreationEpochSource interface {
|
||||||
|
CreationEpoch() uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
// CreationEpochContainer is an interface of the container of a creation epoch number.
|
||||||
|
type CreationEpochContainer interface {
|
||||||
|
CreationEpochSource
|
||||||
|
SetCreationEpoch(uint64)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ExpirationEpochSource is an interface of the container of an expiration epoch number with read access.
|
||||||
|
type ExpirationEpochSource interface {
|
||||||
|
ExpirationEpoch() uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
// ExpirationEpochContainer is an interface of the container of an expiration epoch number.
|
||||||
|
type ExpirationEpochContainer interface {
|
||||||
|
ExpirationEpochSource
|
||||||
|
SetExpirationEpoch(uint64)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SessionKeySource is an interface of the container of session key bytes with read access.
|
||||||
|
type SessionKeySource interface {
|
||||||
|
GetSessionKey() []byte
|
||||||
|
}
|
||||||
|
|
||||||
|
// SessionKeyContainer is an interface of the container of public session key bytes.
|
||||||
|
type SessionKeyContainer interface {
|
||||||
|
SessionKeySource
|
||||||
|
SetSessionKey([]byte)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SignatureSource is an interface of the container of signature bytes with read access.
|
||||||
|
type SignatureSource interface {
|
||||||
|
GetSignature() []byte
|
||||||
|
}
|
||||||
|
|
||||||
|
// SignatureContainer is an interface of the container of signature bytes.
|
||||||
|
type SignatureContainer interface {
|
||||||
|
SignatureSource
|
||||||
|
SetSignature([]byte)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SessionTokenSource is an interface of the container of a SessionToken with read access.
|
||||||
|
type SessionTokenSource interface {
|
||||||
|
GetSessionToken() SessionToken
|
||||||
|
}
|
||||||
|
|
||||||
|
// SessionTokenInfo is an interface of a fixed set of token information value containers.
|
||||||
|
// Contains:
|
||||||
|
// - ID of the token;
|
||||||
|
// - ID of the token's owner;
|
||||||
|
// - verb of the session;
|
||||||
|
// - address of the session object;
|
||||||
|
// - creation epoch number of the token;
|
||||||
|
// - expiration epoch number of the token;
|
||||||
|
// - public session key bytes.
|
||||||
|
type SessionTokenInfo interface {
|
||||||
|
TokenIDContainer
|
||||||
|
OwnerIDContainer
|
||||||
|
VerbContainer
|
||||||
|
AddressContainer
|
||||||
|
CreationEpochContainer
|
||||||
|
ExpirationEpochContainer
|
||||||
|
SessionKeyContainer
|
||||||
|
}
|
||||||
|
|
||||||
|
// SessionToken is an interface of token information and signature pair.
|
||||||
|
type SessionToken interface {
|
||||||
|
SessionTokenInfo
|
||||||
|
SignatureContainer
|
||||||
|
}
|
Loading…
Reference in a new issue