agilicus 1.235.5__py3-none-any.whl → 1.235.7__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- agilicus/agilicus_api/api_client.py +1 -1
- agilicus/agilicus_api/configuration.py +1 -1
- agilicus/agilicus_api_README.md +1 -1
- agilicus/features/features.py +3 -0
- agilicus/features/features_main.py +27 -9
- agilicus/main.py +36 -12
- agilicus/output/column_builder.py +134 -0
- agilicus/output/table.py +3 -89
- agilicus/output/tests/__init__.py +0 -0
- agilicus/output/tests/column_builder_test.py +73 -0
- agilicus/users.py +0 -24
- {agilicus-1.235.5.dist-info → agilicus-1.235.7.dist-info}/METADATA +1 -1
- {agilicus-1.235.5.dist-info → agilicus-1.235.7.dist-info}/RECORD +16 -13
- {agilicus-1.235.5.dist-info → agilicus-1.235.7.dist-info}/LICENSE.txt +0 -0
- {agilicus-1.235.5.dist-info → agilicus-1.235.7.dist-info}/WHEEL +0 -0
- {agilicus-1.235.5.dist-info → agilicus-1.235.7.dist-info}/entry_points.txt +0 -0
@@ -77,7 +77,7 @@ class ApiClient(object):
|
|
77
77
|
self.default_headers[header_name] = header_value
|
78
78
|
self.cookie = cookie
|
79
79
|
# Set default User-Agent.
|
80
|
-
self.user_agent = 'OpenAPI-Generator/1.235.
|
80
|
+
self.user_agent = 'OpenAPI-Generator/1.235.7/python'
|
81
81
|
|
82
82
|
def __enter__(self):
|
83
83
|
return self
|
@@ -387,7 +387,7 @@ class Configuration(object):
|
|
387
387
|
"OS: {env}\n"\
|
388
388
|
"Python Version: {pyversion}\n"\
|
389
389
|
"Version of the API: 2023.12.15\n"\
|
390
|
-
"SDK Package Version: 1.235.
|
390
|
+
"SDK Package Version: 1.235.7".\
|
391
391
|
format(env=sys.platform, pyversion=sys.version)
|
392
392
|
|
393
393
|
def get_host_settings(self):
|
agilicus/agilicus_api_README.md
CHANGED
@@ -4,7 +4,7 @@ Agilicus is API-first. Modern software is controlled by other software, is open,
|
|
4
4
|
The `agilicus_api` package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
5
5
|
|
6
6
|
- API version: 2023.12.15
|
7
|
-
- Package version: 1.235.
|
7
|
+
- Package version: 1.235.7
|
8
8
|
- Build package: org.openapitools.codegen.languages.PythonClientCodegen
|
9
9
|
For more information, please visit [https://www.agilicus.com/api](https://www.agilicus.com/api)
|
10
10
|
|
agilicus/features/features.py
CHANGED
@@ -47,6 +47,7 @@ def add_feature(
|
|
47
47
|
min=None,
|
48
48
|
max=None,
|
49
49
|
enabled=None,
|
50
|
+
priority=None,
|
50
51
|
**kwargs,
|
51
52
|
):
|
52
53
|
api = get_api(ctx)
|
@@ -63,6 +64,8 @@ def add_feature(
|
|
63
64
|
if enabled is not None:
|
64
65
|
val.enabled = enabled
|
65
66
|
|
67
|
+
if priority is not None:
|
68
|
+
spec.priority = priority
|
66
69
|
return api.create_feature(agilicus.Feature(spec))
|
67
70
|
|
68
71
|
|
@@ -10,9 +10,27 @@ from agilicus.output.table import format_table
|
|
10
10
|
|
11
11
|
@click.command(name="list-features")
|
12
12
|
@click.pass_context
|
13
|
-
|
13
|
+
@click.option("--show-columns", type=str, default=None)
|
14
|
+
@click.option("--reset-columns", is_flag=True, default=False)
|
15
|
+
def cli_command_list_features(ctx, show_columns, reset_columns, **kwargs):
|
14
16
|
results = features.list_features(ctx, **kwargs)
|
15
|
-
|
17
|
+
spec = """
|
18
|
+
- metadata.id(newname=id)
|
19
|
+
- spec.name(newname=name)
|
20
|
+
- spec.priority(newname=priority)
|
21
|
+
- spec.key(newname=key)
|
22
|
+
- spec.value(newname=value)
|
23
|
+
- status.products(out_name=products):
|
24
|
+
- spec.label(newname=label)
|
25
|
+
"""
|
26
|
+
columns = make_columns(
|
27
|
+
ctx,
|
28
|
+
results,
|
29
|
+
spec,
|
30
|
+
show=show_columns,
|
31
|
+
clear=reset_columns,
|
32
|
+
)
|
33
|
+
print(format_table(ctx, results, columns))
|
16
34
|
|
17
35
|
|
18
36
|
@click.command(name="add-feature")
|
@@ -78,13 +96,13 @@ def cli_command_list_org_features(ctx, show_columns, reset_columns, **kwargs):
|
|
78
96
|
columns = make_columns(
|
79
97
|
ctx,
|
80
98
|
results,
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
99
|
+
"""
|
100
|
+
- metadata.id(newname=id)
|
101
|
+
- spec.name(newname=name)
|
102
|
+
- spec.priority(newname=priority)
|
103
|
+
- spec.key(newname=key)
|
104
|
+
- spec.value(newname=value)
|
105
|
+
""",
|
88
106
|
show=show_columns,
|
89
107
|
clear=reset_columns,
|
90
108
|
)
|
agilicus/main.py
CHANGED
@@ -680,16 +680,16 @@ def list_users(ctx, organisation, org_id, show_columns, reset_columns, **kwargs)
|
|
680
680
|
columns = make_columns(
|
681
681
|
ctx,
|
682
682
|
results,
|
683
|
-
|
684
|
-
|
685
|
-
|
686
|
-
|
687
|
-
|
688
|
-
|
689
|
-
|
690
|
-
|
691
|
-
|
692
|
-
|
683
|
+
"""
|
684
|
+
- id
|
685
|
+
- first_name
|
686
|
+
- last_name
|
687
|
+
- email
|
688
|
+
- org_id
|
689
|
+
- status
|
690
|
+
- created
|
691
|
+
- updated
|
692
|
+
""",
|
693
693
|
show=show_columns,
|
694
694
|
clear=reset_columns,
|
695
695
|
)
|
@@ -6787,8 +6787,17 @@ def override_replace(
|
|
6787
6787
|
@click.option("--usage-group-by-org", default=None, multiple=True)
|
6788
6788
|
@click.option("--subscription-id", default=None)
|
6789
6789
|
@click.option("--billing-account-id", default=None)
|
6790
|
+
@click.option("--feature-id", default=None, multiple=True)
|
6791
|
+
@click.option("--remove-feature-id", default=None, multiple=True)
|
6790
6792
|
@click.pass_context
|
6791
|
-
def update_subscription(
|
6793
|
+
def update_subscription(
|
6794
|
+
ctx,
|
6795
|
+
subscription_id,
|
6796
|
+
billing_account_id=None,
|
6797
|
+
feature_id=None,
|
6798
|
+
remove_feature_id=None,
|
6799
|
+
**kwargs,
|
6800
|
+
):
|
6792
6801
|
"""Update the min/max overrides in a customer subscription."""
|
6793
6802
|
bsub = billing.get_billing_subscription(ctx, kwargs["billing_subscription_id"])
|
6794
6803
|
usage_override = bsub.spec.usage_override
|
@@ -6822,8 +6831,23 @@ def update_subscription(ctx, subscription_id, billing_account_id=None, **kwargs)
|
|
6822
6831
|
if billing_account_id:
|
6823
6832
|
bsub.spec.billing_account_id = billing_account_id
|
6824
6833
|
|
6834
|
+
if feature_id is not None:
|
6835
|
+
for feature_id in feature_id:
|
6836
|
+
bsub.spec.feature_overrides.append(feature_id)
|
6837
|
+
|
6838
|
+
if remove_feature_id is not None:
|
6839
|
+
old_features = bsub.spec.feature_overrides
|
6840
|
+
bsub.spec.feature_overrides = []
|
6841
|
+
for feature_id in old_features:
|
6842
|
+
if feature_id in remove_feature_id:
|
6843
|
+
# needs to be removed.
|
6844
|
+
continue
|
6845
|
+
bsub.spec.feature_overrides.append(feature_id)
|
6846
|
+
|
6825
6847
|
sub = billing.update_subscription(
|
6826
|
-
ctx,
|
6848
|
+
ctx,
|
6849
|
+
billing_subscription_id=kwargs["billing_subscription_id"],
|
6850
|
+
subscription=bsub,
|
6827
6851
|
)
|
6828
6852
|
output_entry(ctx, sub.to_dict())
|
6829
6853
|
|
@@ -0,0 +1,134 @@
|
|
1
|
+
import yaml
|
2
|
+
import re
|
3
|
+
from collections import OrderedDict
|
4
|
+
from . import table
|
5
|
+
|
6
|
+
|
7
|
+
class ColumnBuilder:
|
8
|
+
def __init__(self, ctx, result_list):
|
9
|
+
self.ctx = ctx
|
10
|
+
self.result_list = result_list
|
11
|
+
|
12
|
+
def _get_column_names(self, subtable_column_name):
|
13
|
+
results = set()
|
14
|
+
if not self.result_list:
|
15
|
+
return results
|
16
|
+
obj = self.result_list[0]
|
17
|
+
if subtable_column_name:
|
18
|
+
obj = getattr(obj, subtable_column_name)
|
19
|
+
if not obj:
|
20
|
+
# nothing available
|
21
|
+
return results
|
22
|
+
obj = obj[0]
|
23
|
+
return set(obj.to_dict().keys())
|
24
|
+
|
25
|
+
def _make_subtable(self, table_name, format_doc):
|
26
|
+
m = re.search("(.*)\\((.+)\\).*", table_name)
|
27
|
+
all_options = {}
|
28
|
+
if m:
|
29
|
+
found = m.group(2)
|
30
|
+
for option in found.split(","):
|
31
|
+
split_str = option.split("=")
|
32
|
+
all_options[split_str[0]] = split_str[1]
|
33
|
+
table_name = m.group(1)
|
34
|
+
columns = self.build_columns(format_doc, subtable_column_name=table_name)
|
35
|
+
return table.subtable(
|
36
|
+
self.ctx,
|
37
|
+
table_name,
|
38
|
+
columns=columns,
|
39
|
+
optional=True,
|
40
|
+
**all_options,
|
41
|
+
)
|
42
|
+
|
43
|
+
def _get_output_column(self, column_name: str):
|
44
|
+
m = re.search("(.*)\\((.+)\\).*", column_name)
|
45
|
+
if m:
|
46
|
+
found = m.group(2)
|
47
|
+
all_options = {}
|
48
|
+
for option in found.split(","):
|
49
|
+
split_str = option.split("=")
|
50
|
+
all_options[split_str[0]] = split_str[1]
|
51
|
+
return table.column(m.group(1), optional=True, **all_options)
|
52
|
+
return table.column(column_name, optional=True)
|
53
|
+
|
54
|
+
def build_columns(
|
55
|
+
self,
|
56
|
+
format_doc,
|
57
|
+
subtable_column_name=None,
|
58
|
+
**kwargs,
|
59
|
+
):
|
60
|
+
column_names = OrderedDict()
|
61
|
+
for column_name in format_doc:
|
62
|
+
if column_name == "all":
|
63
|
+
for c in self._get_column_names(subtable_column_name):
|
64
|
+
column_names[c] = self._get_output_column(c)
|
65
|
+
elif isinstance(column_name, dict):
|
66
|
+
sub_table_col = list(column_name.keys())[0]
|
67
|
+
sub_table_val = column_name[sub_table_col]
|
68
|
+
column_names[sub_table_col] = self._make_subtable(
|
69
|
+
sub_table_col,
|
70
|
+
sub_table_val,
|
71
|
+
)
|
72
|
+
else:
|
73
|
+
column_names[column_name] = self._get_output_column(column_name)
|
74
|
+
|
75
|
+
return list(column_names.values())
|
76
|
+
|
77
|
+
|
78
|
+
def make_columns(
|
79
|
+
ctx,
|
80
|
+
result_list,
|
81
|
+
base_columns,
|
82
|
+
show=None,
|
83
|
+
clear=False,
|
84
|
+
**kwargs,
|
85
|
+
):
|
86
|
+
"""
|
87
|
+
A generic build for making columns, configurable by user
|
88
|
+
to choose specific columns or subtables.
|
89
|
+
|
90
|
+
Add the following options to your command:
|
91
|
+
@click.option("--show-columns", type=str, default=None)
|
92
|
+
@click.option("--reset-columns", is_flag=True, default=False)
|
93
|
+
|
94
|
+
Then call make_columns (for example)
|
95
|
+
columns = make_columns(ctx, results, ["id", "email"], show=show, clear=clear)
|
96
|
+
|
97
|
+
This make the 'default' show have columns 'id', 'email'.
|
98
|
+
|
99
|
+
You may clear it, and start from scratch:
|
100
|
+
|
101
|
+
show just email:
|
102
|
+
--clear --show email
|
103
|
+
|
104
|
+
show email and the id
|
105
|
+
--clear --show id,email
|
106
|
+
|
107
|
+
show all columns
|
108
|
+
--clear --show all
|
109
|
+
|
110
|
+
show a subtable:
|
111
|
+
--clear --show "[id,email,upstream_user_identities: [all]]"
|
112
|
+
|
113
|
+
show a specific column in the subtable:
|
114
|
+
--clear --show "[id,email,upstream_user_identities: [spec.upstream_idp_id]]"
|
115
|
+
|
116
|
+
rename the output column
|
117
|
+
--clear --show "[id,email,upstream_user_identities: [spec.upstream_idp_id(newname=upstream_idp_id)]]" # noqa
|
118
|
+
|
119
|
+
Note that the show format is a valid yaml doc. Its a list of columns, when
|
120
|
+
a mapping (dictionary) is found that is assumed to be a subtable, where the
|
121
|
+
key name is the subtable name
|
122
|
+
"""
|
123
|
+
format_doc = []
|
124
|
+
if not clear and base_columns:
|
125
|
+
format_doc = yaml.safe_load(base_columns)
|
126
|
+
|
127
|
+
if show:
|
128
|
+
if "[" not in show:
|
129
|
+
# incase the user hasn't created a valid yaml list,
|
130
|
+
# make it a list.
|
131
|
+
show = "[" + show + "]"
|
132
|
+
format_doc.extend(yaml.safe_load(show))
|
133
|
+
|
134
|
+
return ColumnBuilder(ctx, result_list).build_columns(format_doc, **kwargs)
|
agilicus/output/table.py
CHANGED
@@ -2,7 +2,6 @@ import operator
|
|
2
2
|
import json
|
3
3
|
from babel import numbers
|
4
4
|
from datetime import timezone, datetime
|
5
|
-
from collections import OrderedDict
|
6
5
|
|
7
6
|
from agilicus import context
|
8
7
|
from agilicus.output.json import convert_to_json
|
@@ -11,6 +10,7 @@ from dataclasses import dataclass
|
|
11
10
|
from typing import Callable
|
12
11
|
|
13
12
|
from prettytable import PrettyTable
|
13
|
+
from . import column_builder
|
14
14
|
|
15
15
|
|
16
16
|
def format_date(date_input):
|
@@ -288,91 +288,5 @@ def output_entry(ctx, entry):
|
|
288
288
|
print(table)
|
289
289
|
|
290
290
|
|
291
|
-
def
|
292
|
-
|
293
|
-
if not result_list:
|
294
|
-
return results
|
295
|
-
obj = result_list[0]
|
296
|
-
if subtable_column_name:
|
297
|
-
obj = getattr(obj, subtable_column_name)
|
298
|
-
if not obj:
|
299
|
-
# nothing available
|
300
|
-
return results
|
301
|
-
obj = obj[0]
|
302
|
-
return set(obj.to_dict().keys())
|
303
|
-
|
304
|
-
|
305
|
-
def make_subtable(ctx, result_list, name):
|
306
|
-
split_name = name.split(":")
|
307
|
-
base_name = split_name[0]
|
308
|
-
show = ":".join(split_name[1:])
|
309
|
-
columns = make_columns(
|
310
|
-
ctx, result_list, [], show=show, subtable_column_name=base_name
|
311
|
-
)
|
312
|
-
return subtable(
|
313
|
-
ctx,
|
314
|
-
base_name,
|
315
|
-
columns=columns,
|
316
|
-
optional=True,
|
317
|
-
)
|
318
|
-
|
319
|
-
|
320
|
-
def make_columns(
|
321
|
-
ctx,
|
322
|
-
result_list,
|
323
|
-
base_columns,
|
324
|
-
show=None,
|
325
|
-
clear=False,
|
326
|
-
subtable_column_name=None,
|
327
|
-
**kwargs,
|
328
|
-
):
|
329
|
-
"""
|
330
|
-
A generic build for making columns, configurable by user
|
331
|
-
to choose specific columns or subtables.
|
332
|
-
|
333
|
-
Add the following options to your command:
|
334
|
-
@click.option("--show", type=str, default=None)
|
335
|
-
@click.option("--clear", is_flag=True, default=False)
|
336
|
-
|
337
|
-
Then call make_columns (for example)
|
338
|
-
columns = make_columns(ctx, results, ["id", "email"], show=show, clear=clear)
|
339
|
-
|
340
|
-
This make the 'default' show have columns 'id', 'email'.
|
341
|
-
|
342
|
-
You may clear it, and start from scratch:
|
343
|
-
|
344
|
-
show just email:
|
345
|
-
--clear --show email
|
346
|
-
|
347
|
-
show email and the id
|
348
|
-
--clear --show id,email
|
349
|
-
|
350
|
-
show all columns
|
351
|
-
--clear --show all
|
352
|
-
|
353
|
-
show a subtable:
|
354
|
-
--clear --show id,email,upstream_user_identities:all
|
355
|
-
|
356
|
-
show a specific column in the subtable:
|
357
|
-
--clear --show id,email,upstream_user_identities:spec.upstream_idp_id
|
358
|
-
"""
|
359
|
-
column_names = OrderedDict()
|
360
|
-
if not clear:
|
361
|
-
for name in base_columns:
|
362
|
-
column_names[name] = column(name, optional=True)
|
363
|
-
|
364
|
-
if not show:
|
365
|
-
return list(column_names.values())
|
366
|
-
|
367
|
-
for column_name in show.split(","):
|
368
|
-
if column_name == "all":
|
369
|
-
for c in get_column_names(result_list, subtable_column_name):
|
370
|
-
column_names[c] = column(c, optional=True)
|
371
|
-
elif ":" in column_name:
|
372
|
-
column_names[column_name.split(":")[0]] = make_subtable(
|
373
|
-
ctx, result_list, column_name
|
374
|
-
)
|
375
|
-
else:
|
376
|
-
column_names[column_name] = column(column_name, optional=True)
|
377
|
-
|
378
|
-
return list(column_names.values())
|
291
|
+
def make_columns(*args, **kwargs):
|
292
|
+
return column_builder.make_columns(*args, **kwargs)
|
File without changes
|
@@ -0,0 +1,73 @@
|
|
1
|
+
import agilicus
|
2
|
+
from .. import column_builder
|
3
|
+
|
4
|
+
|
5
|
+
def test_simple():
|
6
|
+
assert column_builder.make_columns(None, [], "") == []
|
7
|
+
|
8
|
+
|
9
|
+
def test_show_single_column():
|
10
|
+
results = [
|
11
|
+
agilicus.User._from_openapi_data(
|
12
|
+
email=agilicus.Email("foo@bar.com"), type="user"
|
13
|
+
)
|
14
|
+
]
|
15
|
+
columns = column_builder.make_columns(None, results, "[email]")
|
16
|
+
assert len(columns) == 1
|
17
|
+
assert columns[0].in_name == "email"
|
18
|
+
assert columns[0].out_name == "email"
|
19
|
+
|
20
|
+
|
21
|
+
def test_show_multi_column():
|
22
|
+
results = [
|
23
|
+
agilicus.User._from_openapi_data(
|
24
|
+
id="one", email=agilicus.Email("foo@bar.com"), type="user"
|
25
|
+
)
|
26
|
+
]
|
27
|
+
columns = column_builder.make_columns(None, results, "[id,email]")
|
28
|
+
assert len(columns) == 2
|
29
|
+
assert columns[0].in_name == "id"
|
30
|
+
assert columns[0].out_name == "id"
|
31
|
+
|
32
|
+
assert columns[1].in_name == "email"
|
33
|
+
assert columns[1].out_name == "email"
|
34
|
+
|
35
|
+
|
36
|
+
def test_rename_col():
|
37
|
+
results = [
|
38
|
+
agilicus.User._from_openapi_data(
|
39
|
+
id="one", email=agilicus.Email("foo@bar.com"), type="user"
|
40
|
+
)
|
41
|
+
]
|
42
|
+
columns = column_builder.make_columns(
|
43
|
+
None, results, "[id(newname=blah),email(newname=huh)]"
|
44
|
+
)
|
45
|
+
assert len(columns) == 2
|
46
|
+
assert columns[0].in_name == "id"
|
47
|
+
assert columns[0].out_name == "blah"
|
48
|
+
|
49
|
+
assert columns[1].in_name == "email"
|
50
|
+
assert columns[1].out_name == "huh"
|
51
|
+
|
52
|
+
|
53
|
+
def test_subtable():
|
54
|
+
spec = agilicus.UpstreamUserIdentitySpec(
|
55
|
+
upstream_user_id="user-id", upstream_idp_id="idp-id", local_user_id="local-id"
|
56
|
+
)
|
57
|
+
identities = [agilicus.UpstreamUserIdentity(spec)]
|
58
|
+
results = [
|
59
|
+
agilicus.User._from_openapi_data(
|
60
|
+
id="one",
|
61
|
+
email=agilicus.Email("foo@bar.com"),
|
62
|
+
type="user",
|
63
|
+
upstream_user_identites=identities,
|
64
|
+
)
|
65
|
+
]
|
66
|
+
columns = column_builder.make_columns(
|
67
|
+
None,
|
68
|
+
results,
|
69
|
+
"[id,email,upstream_user_identities: [upstream_user_id,local_user_id]]",
|
70
|
+
)
|
71
|
+
assert len(columns) == 3
|
72
|
+
assert columns[2].in_name == "upstream_user_identities"
|
73
|
+
assert columns[2].out_name == "upstream_user_identities"
|
agilicus/users.py
CHANGED
@@ -26,7 +26,6 @@ from .output.table import (
|
|
26
26
|
spec_column,
|
27
27
|
status_column,
|
28
28
|
subtable,
|
29
|
-
make_columns,
|
30
29
|
)
|
31
30
|
|
32
31
|
USERS_BASE_URI = "/users"
|
@@ -1189,26 +1188,3 @@ def format_user_orgs(ctx, orgs):
|
|
1189
1188
|
]
|
1190
1189
|
|
1191
1190
|
return format_table(ctx, orgs, columns)
|
1192
|
-
|
1193
|
-
|
1194
|
-
def format_users(
|
1195
|
-
ctx,
|
1196
|
-
users_list,
|
1197
|
-
**kwargs,
|
1198
|
-
):
|
1199
|
-
columns = make_columns(
|
1200
|
-
ctx,
|
1201
|
-
users_list,
|
1202
|
-
[
|
1203
|
-
"id",
|
1204
|
-
"first_name",
|
1205
|
-
"last_name",
|
1206
|
-
"email",
|
1207
|
-
"org_id",
|
1208
|
-
"status",
|
1209
|
-
"created",
|
1210
|
-
"updated",
|
1211
|
-
],
|
1212
|
-
**kwargs,
|
1213
|
-
)
|
1214
|
-
return format_table(ctx, users_list, columns, getter=operator.itemgetter)
|
@@ -67,9 +67,9 @@ agilicus/agilicus_api/api/users_api.py,sha256=LYBkMTRfpgSYHuFgFnkndHdJn9J__dGbqK
|
|
67
67
|
agilicus/agilicus_api/api/users_api_mock.py,sha256=wA_xiqL3Pz3KjljKlsmf5NveLZS1FpbaKJHBp7QvarY,15411
|
68
68
|
agilicus/agilicus_api/api/whoami_api.py,sha256=g871DyNxDhGWCmkr-jiMan9gsz9vf9CTkhZ_0VG5iuQ,7941
|
69
69
|
agilicus/agilicus_api/api/whoami_api_mock.py,sha256=rlvZoWnMCqORMZBg7SOv6d3xp52kELdh6wXcCaIZ93w,346
|
70
|
-
agilicus/agilicus_api/api_client.py,sha256=
|
70
|
+
agilicus/agilicus_api/api_client.py,sha256=zByfZSGzpdL56Th5cUFUiz31gx_C8uDPiIj8XDo8cPo,38845
|
71
71
|
agilicus/agilicus_api/apis/__init__.py,sha256=m_hg6OJsEsMp6mZ1mn9OlaTflLjrU3Jc-jvYD9gi_PA,2092
|
72
|
-
agilicus/agilicus_api/configuration.py,sha256=
|
72
|
+
agilicus/agilicus_api/configuration.py,sha256=N3olY94-AK3IiVFHCZwHYtguOXLAL_d2TgcBhFpeQ8k,18447
|
73
73
|
agilicus/agilicus_api/docs/APIKey.md,sha256=4cKuz4_l9HcEDnUrLwYbEnn9C2WoDayrjfrY1Ixgaf4,1747
|
74
74
|
agilicus/agilicus_api/docs/APIKeyIntrospect.md,sha256=nJ-zkuFm3JMbWFDYYN_vYyQk1snGBtBvIxtCQxamhAU,1019
|
75
75
|
agilicus/agilicus_api/docs/APIKeyIntrospectAuthorizationInfo.md,sha256=7RApOOLjvWQs5sw2jb25g7i3Kta1BiEY-s8VRXfppH8,725
|
@@ -2338,7 +2338,7 @@ agilicus/agilicus_api/test/test_x509_root_certificate.py,sha256=Lfg4RqEI4LW1TcMv
|
|
2338
2338
|
agilicus/agilicus_api/test/test_x509_root_certificate_spec.py,sha256=8rBBKZ1fEUFWalJ-Us0gW8YsEiQ0CvWx9rwvYXY2xSw,2832
|
2339
2339
|
agilicus/agilicus_api/test/test_x509_root_certificate_status.py,sha256=sU8X_0AYylgIY7t39Eu1S_0EkxfJF25QBxIVOQlrwoU,2846
|
2340
2340
|
agilicus/agilicus_api/test/test_xss_settings.py,sha256=e_pj73f8a6buA5B0cZgLV4Pu2BXUyfFmLLxVvW3I3Tw,2746
|
2341
|
-
agilicus/agilicus_api_README.md,sha256=
|
2341
|
+
agilicus/agilicus_api_README.md,sha256=ZPZtB66boJs_i4YT5e-fFnWfGU-JV_fMFIcBFGvO8VE,150199
|
2342
2342
|
agilicus/aliases.ini,sha256=MxqiVo2f2xdUDVF1YDkNW36AIqN8hrYjlTVfraEUZXY,455
|
2343
2343
|
agilicus/amq.py,sha256=yxi-YTbJPVl10s78Hlr1dmrQR63iaSIoROGVILzFPmE,1775
|
2344
2344
|
agilicus/apps.py,sha256=3j7Yj82S8hr4IHw2uzYiJ1-kOq_9PT1G0-0ZbxflAQ0,48757
|
@@ -2364,8 +2364,8 @@ agilicus/desktops.py,sha256=YdZlo5-MP9zNajfQ4xfoHOux1hKkcpnZZDAs3YjvMgU,10013
|
|
2364
2364
|
agilicus/env_config.py,sha256=sqg9hecJYA7jXj58TmZOvmYboqIKbZ5Rxl2Rqe75M4Q,7629
|
2365
2365
|
agilicus/examples/update_user.py,sha256=jGaEVTWFFlD26soSEYYcAtlGfELU85z3YnXAwK5q4fM,1082
|
2366
2366
|
agilicus/features/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2367
|
-
agilicus/features/features.py,sha256=
|
2368
|
-
agilicus/features/features_main.py,sha256=
|
2367
|
+
agilicus/features/features.py,sha256=nqxAo69Bn1zafBB2VbiCXixa17jWMrxN6V0u3iyqs0c,2327
|
2368
|
+
agilicus/features/features_main.py,sha256=InvXz-Eka6ySQAUM-u6KBkRPEY5lviHuZXeow5uqLto,3779
|
2369
2369
|
agilicus/features.py,sha256=wnh3uD57xZRzt4aCYCrGXu4DaMKv2-uwZc3akUiXUYE,1118
|
2370
2370
|
agilicus/file_shares.py,sha256=ZwO3OwfRsDTZu6VwDcvqyC5OeHWnoA9hQ8vzygXGeE8,4326
|
2371
2371
|
agilicus/files.py,sha256=rgyUytII4LjsPdIIJVvqx8GnsUQmowDbGKK0VKGiglk,7272
|
@@ -2385,14 +2385,17 @@ agilicus/labels/labels_main.py,sha256=aXRNRT1CPiUc0x1Gh_VoCmzrbROzsC5e9ycrwPNT0q
|
|
2385
2385
|
agilicus/launchers.py,sha256=Yy59dzHMCz9ZSs_mMjVGaTw3vdNX58WsmIfX56by69U,11077
|
2386
2386
|
agilicus/logs.py,sha256=tS8c_sdre1Dncrl59GVGQ0L3d2jtwlVjvIMl3SHJraY,766
|
2387
2387
|
agilicus/lookups.py,sha256=MNmNsKpP7Fq_poLAnL9xo_iptFilKM9ziGLyIe8VKaw,669
|
2388
|
-
agilicus/main.py,sha256=
|
2388
|
+
agilicus/main.py,sha256=MIkxsAQM3MB2xMP-toZ1iRlQZiXJuEPh7oxFUert3Mk,255835
|
2389
2389
|
agilicus/messages.py,sha256=Ydm-VhAsK23UnYdstv_HsOybBODfui5ubKc7F8R_dsw,5187
|
2390
2390
|
agilicus/metrics.py,sha256=9l0T7ea4Gvcj7A1C4uC4mv6v26_S8HKnmIuxJjq3mQw,1424
|
2391
2391
|
agilicus/orgs.py,sha256=hrKmF8RI4H1htQNWPiwFOzy2EPBLdgNpV4c9CMxYSiM,12701
|
2392
2392
|
agilicus/output/__init__.py,sha256=UKZbHS4t15vazJuN46FN-3HHqkxMXU0p3df2VcsSLcY,110
|
2393
|
+
agilicus/output/column_builder.py,sha256=TWo4t8ygaTUv7qjD_moDroD1bKzzyTIao0FmLy5gs4o,4284
|
2393
2394
|
agilicus/output/console.py,sha256=xBURxlA7H1kmQ7zIKuifs_aQJq1cvmCJ5CtQVSo3_Ns,400
|
2394
2395
|
agilicus/output/json.py,sha256=5UU8Fm_b46y8iu3EPkg2eWwdbCyubgCxIdfecDTd4_Y,663
|
2395
|
-
agilicus/output/table.py,sha256=
|
2396
|
+
agilicus/output/table.py,sha256=RzPMpaFPP5HP7h6LQSQF8nNnDBErJnOjosuCGiDS2jI,7542
|
2397
|
+
agilicus/output/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2398
|
+
agilicus/output/tests/column_builder_test.py,sha256=fKP4V5sqXtmEIr-Q0gWVSFdBqCUtugZkP6G5gML_T7I,2130
|
2396
2399
|
agilicus/pagination/pagination.py,sha256=AG2DI6Kurv6akZ6lV2M3ynDtE8C4js5x3wCOVzasCuI,1576
|
2397
2400
|
agilicus/patches.py,sha256=qTqLOgCAcFZPcPOkgfqMnK9bnqTXMvj_0ERsjRFcZug,1384
|
2398
2401
|
agilicus/permissions.py,sha256=uB65yuDFICp1N10m0cdUjgizx9MQzAbLbAsBSTw1Rcc,2117
|
@@ -2416,11 +2419,11 @@ agilicus/tokens.py,sha256=PAqIE_9nLPEcXAGWP5g9WFAEiUelj56NPb4-gQEvTuA,15177
|
|
2416
2419
|
agilicus/transfers.py,sha256=PYr_fW7dyXNUXzi5Wp5mUjZOvU7MbRzoN-D8Omo-YSQ,1523
|
2417
2420
|
agilicus/trusted_certs/trusted_certs.py,sha256=HCAvYxOA3ooaee2_KbYJd6Yt_dxDEn8hjhy1upVJUYE,7951
|
2418
2421
|
agilicus/trusted_certs/trusted_certs_main.py,sha256=6dHHWXvNIcUa_nA9ptigL4Vibe4nB2wnWFTTJ8AOgXo,5155
|
2419
|
-
agilicus/users.py,sha256=
|
2422
|
+
agilicus/users.py,sha256=lT1EoyjwKjRoc0NoU6ANGHRSetN-t8AMgkllCKZP0UM,38746
|
2420
2423
|
agilicus/version.py,sha256=G9OFdL1v_4dLDfk6I6taDNypM5bbO-JHAwilsu9LYgg,23
|
2421
2424
|
agilicus/whoami.py,sha256=kqghtWMgZOd2rhKmfguDwCTm6A3gNS8Kj-S2IBxBtl0,206
|
2422
|
-
agilicus-1.235.
|
2423
|
-
agilicus-1.235.
|
2424
|
-
agilicus-1.235.
|
2425
|
-
agilicus-1.235.
|
2426
|
-
agilicus-1.235.
|
2425
|
+
agilicus-1.235.7.dist-info/LICENSE.txt,sha256=Zq4tqiCroC2CVrBB_PWjapRdvpae23nljdiaSkOzUho,1061
|
2426
|
+
agilicus-1.235.7.dist-info/METADATA,sha256=5kIvoRTQYYlA8PeqFzf4hi6dilXYLkKy6INVmDxj4uM,3742
|
2427
|
+
agilicus-1.235.7.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
|
2428
|
+
agilicus-1.235.7.dist-info/entry_points.txt,sha256=a66hGozzLkHu0IewFzIMbSAhMTNTddUaA2T3_16Gb_s,51
|
2429
|
+
agilicus-1.235.7.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|