1- from typing import Union , Optional , List , Dict
21from dataclasses import dataclass , field , fields
2+ from typing import Dict , List , Optional , Union
33
4+ from nats .contrib .accounts .limits import OperatorLimits
5+ from nats .contrib .claims .generic import GenericFields
6+ from nats .contrib .exports import Exports
7+ from nats .contrib .flatten_model import FlatteningModel
8+ from nats .contrib .imports import Imports
49from nats .contrib .signingkeys import SigningKeys
510from nats .contrib .types import Info , Permissions , Types
6- from nats .contrib .flatten_model import FlatteningModel
711
8- from nats .contrib .claims .generic import GenericFields
9- from nats .contrib .imports import Imports
10- from nats .contrib .exports import Exports
11- from nats .contrib .accounts .limits import OperatorLimits
1212
1313@dataclass
1414class WeightedMapping :
1515 subject : str
16- weight : Optional [int ] = None # uint8 is mapped to int, with Optional for omitempty
16+ weight : Optional [
17+ int ] = None # uint8 is mapped to int, with Optional for omitempty
1718 cluster : Optional [str ] = None
1819
1920
@@ -23,49 +24,54 @@ class ExternalAuthorization:
2324 allowed_accounts : Optional [List [str ]]
2425 xkey : Optional [str ]
2526
27+
2628@dataclass
2729class MsgTrace :
2830 # Destination is the subject the server will send message traces to
2931 # if the inbound message contains the "traceparent" header and has
3032 # its sampled field indicating that the trace should be triggered.
31- dest : Optional [str ] # `json:"dest,omitempty"`
33+ dest : Optional [str ] # `json:"dest,omitempty"`
3234
3335 # Sampling is used to set the probability sampling, that is, the
3436 # server will get a random number between 1 and 100 and trigger
3537 # the trace if the number is lower than this Sampling value.
3638 # The valid range is [1..100]. If the value is not set Validate()
3739 # will set the value to 100.
38- sampling : Optional [int ] # `json:"sampling,omitempty"`
40+ sampling : Optional [int ] # `json:"sampling,omitempty"`
3941
4042
4143class Account (FlatteningModel ):
42- imports : Optional [Imports ] # `json:"imports,omitempty"`
43- exports : Optional [Exports ] # `json:"exports,omitempty"`
44- limits : Optional [OperatorLimits ] # `json:"limits,omitempty"`
45- signing_keys : Optional [SigningKeys ] # `json:"signing_keys,omitempty"`
46- revocations : Optional [Dict [str , int ]] # `json:"revocations,omitempty"`
47- default_permissions : Optional [Permissions ] # `json:"default_permissions,omitempty"`
48- mappings : Optional [Dict [str , WeightedMapping ]] # `json:"mappings,omitempty"`
49- authorization : Optional [ExternalAuthorization ] # `json:"authorization,omitempty"`
50- trace : Optional [MsgTrace ] # `json:"trace,omitempty"`
51- cluster_traffic : Optional [str ] # `json:"cluster_traffic,omitempty"`
44+ imports : Optional [Imports ] # `json:"imports,omitempty"`
45+ exports : Optional [Exports ] # `json:"exports,omitempty"`
46+ limits : Optional [OperatorLimits ] # `json:"limits,omitempty"`
47+ signing_keys : Optional [SigningKeys ] # `json:"signing_keys,omitempty"`
48+ revocations : Optional [Dict [str , int ]] # `json:"revocations,omitempty"`
49+ default_permissions : Optional [Permissions
50+ ] # `json:"default_permissions,omitempty"`
51+ mappings : Optional [Dict [str ,
52+ WeightedMapping ]] # `json:"mappings,omitempty"`
53+ authorization : Optional [ExternalAuthorization
54+ ] # `json:"authorization,omitempty"`
55+ trace : Optional [MsgTrace ] # `json:"trace,omitempty"`
56+ cluster_traffic : Optional [str ] # `json:"cluster_traffic,omitempty"`
5257
5358 info : Info = field (default_factory = Info )
5459 generic_fields : GenericFields = field (default_factory = GenericFields )
5560
56- def __init__ (self ,
57- imports : Optional [Imports ] = None ,
58- exports : Optional [Exports ] = None ,
59- limits : Optional [OperatorLimits ] = None ,
60- signing_keys : Optional [SigningKeys ] = None ,
61- revocations : Optional [Dict [str , int ]] = None ,
62- default_permissions : Optional [Permissions ] = None ,
63- mappings : Optional [Dict [str , WeightedMapping ]] = None ,
64- authorization : Optional [ExternalAuthorization ] = None ,
65- trace : Optional [MsgTrace ] = None ,
66- cluster_traffic : Optional [str ] = None ,
67- info : Info = None ,
68- generic_fields : GenericFields = None
61+ def __init__ (
62+ self ,
63+ imports : Optional [Imports ] = None ,
64+ exports : Optional [Exports ] = None ,
65+ limits : Optional [OperatorLimits ] = None ,
66+ signing_keys : Optional [SigningKeys ] = None ,
67+ revocations : Optional [Dict [str , int ]] = None ,
68+ default_permissions : Optional [Permissions ] = None ,
69+ mappings : Optional [Dict [str , WeightedMapping ]] = None ,
70+ authorization : Optional [ExternalAuthorization ] = None ,
71+ trace : Optional [MsgTrace ] = None ,
72+ cluster_traffic : Optional [str ] = None ,
73+ info : Optional [Info ] = None ,
74+ generic_fields : Optional [GenericFields ] = None
6975 ):
7076 self .imports = imports
7177 self .exports = exports
@@ -79,13 +85,20 @@ def __init__(self,
7985 self .cluster_traffic = cluster_traffic
8086
8187 self .info = info if info else Info ()
82- self .generic_fields = generic_fields if generic_fields else GenericFields ()
88+ self .generic_fields = generic_fields if generic_fields else GenericFields (
89+ type = Types .Account , version = 2
90+ )
8391
8492 class Meta :
85- unflatten_fields = [
86- ("imports" , "imports" ), ("exports" , "exports" ), ("limits" , "limits" ),
87- ("signing_keys" , "signing_keys" ), ("revocations" , "revocations" ),
93+ unflatten_fields = [
94+ ("imports" , "imports" ),
95+ ("exports" , "exports" ),
96+ ("limits" , "limits" ),
97+ ("signing_keys" , "signing_keys" ),
98+ ("revocations" , "revocations" ),
8899 ("default_permissions" , "default_permissions" ),
89- ("mappings" , "mappings" ), ("authorization" , "authorization" ),
90- ("trace" , "trace" ), ("cluster_traffic" , "cluster_traffic" ),
100+ ("mappings" , "mappings" ),
101+ ("authorization" , "authorization" ),
102+ ("trace" , "trace" ),
103+ ("cluster_traffic" , "cluster_traffic" ),
91104 ]
0 commit comments