agilicus 1.295.1__py3-none-any.whl → 1.295.2__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.
@@ -0,0 +1,40 @@
1
+ """
2
+ Agilicus API
3
+
4
+ Agilicus is API-first. Modern software is controlled by other software, is open, is available for you to use the way you want, securely, simply. The OpenAPI Specification in YAML format is available on [www](https://www.agilicus.com/www/api/agilicus-openapi.yaml) for importing to other tools. A rendered, online viewable and usable version of this specification is available at [api](https://www.agilicus.com/api). You may try the API inline directly in the web page. To do so, first obtain an Authentication Token (the simplest way is to install the Python SDK, and then run `agilicus-cli --issuer https://MYISSUER get-token`). You will need an org-id for most calls (and can obtain from `agilicus-cli --issuer https://MYISSUER list-orgs`). The `MYISSUER` will typically be `auth.MYDOMAIN`, and you will see it as you sign-in to the administrative UI. This API releases on Bearer-Token authentication. To obtain a valid bearer token you will need to Authenticate to an Issuer with OpenID Connect (a superset of OAUTH2). Your \"issuer\" will look like https://auth.MYDOMAIN. For example, when you signed-up, if you said \"use my own domain name\" and assigned a CNAME of cloud.example.com, then your issuer would be https://auth.cloud.example.com. If you selected \"use an Agilicus supplied domain name\", your issuer would look like https://auth.myorg.agilicus.cloud. For test purposes you can use our [Python SDK](https://pypi.org/project/agilicus/) and run `agilicus-cli --issuer https://auth.MYDOMAIN get-token`. This API may be used in any language runtime that supports OpenAPI 3.0, or, you may use our [Python SDK](https://pypi.org/project/agilicus/), our [Typescript SDK](https://www.npmjs.com/package/@agilicus/angular), or our [Golang SDK](https://git.agilicus.com/pub/sdk-go). 100% of the activities in our system our API-driven, from our web-admin, through our progressive web applications, to all internals: there is nothing that is not accessible. For more information, see [developer resources](https://www.agilicus.com/developer). # noqa: E501
5
+
6
+ The version of the OpenAPI document: 2025.07.18
7
+ Contact: dev@agilicus.com
8
+ Generated by: https://openapi-generator.tech
9
+ """
10
+
11
+
12
+ import sys
13
+ import unittest
14
+
15
+ import agilicus_api
16
+ from agilicus_api.model.product_table_version import ProductTableVersion
17
+ from agilicus_api.model.product_table_version_string import ProductTableVersionString
18
+ globals()['ProductTableVersion'] = ProductTableVersion
19
+ globals()['ProductTableVersionString'] = ProductTableVersionString
20
+ from agilicus_api.model.hypothetical_license_details_query import HypotheticalLicenseDetailsQuery
21
+
22
+
23
+ class TestHypotheticalLicenseDetailsQuery(unittest.TestCase):
24
+ """HypotheticalLicenseDetailsQuery unit test stubs"""
25
+
26
+ def setUp(self):
27
+ pass
28
+
29
+ def tearDown(self):
30
+ pass
31
+
32
+ def testHypotheticalLicenseDetailsQuery(self):
33
+ """Test HypotheticalLicenseDetailsQuery"""
34
+ # FIXME: construct object with mandatory attributes with example values
35
+ # model = HypotheticalLicenseDetailsQuery() # noqa: E501
36
+ pass
37
+
38
+
39
+ if __name__ == '__main__':
40
+ unittest.main()
@@ -24,6 +24,13 @@ class TestLicensingApi(unittest.TestCase):
24
24
  def tearDown(self):
25
25
  pass
26
26
 
27
+ def test_create_hypothetical_license_details_query(self):
28
+ """Test case for create_hypothetical_license_details_query
29
+
30
+ Query a hypothetical set of license details # noqa: E501
31
+ """
32
+ pass
33
+
27
34
  def test_create_license(self):
28
35
  """Test case for create_license
29
36
 
@@ -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: 2025.07.18
7
- - Package version: 1.295.1
7
+ - Package version: 1.295.2
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
 
@@ -613,6 +613,7 @@ Class | Method | HTTP request | Description
613
613
  *LaunchersApi* | [**get_launcher**](agilicus_api/docs/LaunchersApi.md#get_launcher) | **GET** /v1/launchers/{launcher_id} | Get a single launcher
614
614
  *LaunchersApi* | [**list_launchers**](agilicus_api/docs/LaunchersApi.md#list_launchers) | **GET** /v1/launchers | Get all launchers
615
615
  *LaunchersApi* | [**replace_launcher**](agilicus_api/docs/LaunchersApi.md#replace_launcher) | **PUT** /v1/launchers/{launcher_id} | Create or update a launcher
616
+ *LicensingApi* | [**create_hypothetical_license_details_query**](agilicus_api/docs/LicensingApi.md#create_hypothetical_license_details_query) | **POST** /v1/license_details/hypothetical | Query a hypothetical set of license details
616
617
  *LicensingApi* | [**create_license**](agilicus_api/docs/LicensingApi.md#create_license) | **POST** /v1/licenses | Create a license
617
618
  *LicensingApi* | [**create_product_table_version**](agilicus_api/docs/LicensingApi.md#create_product_table_version) | **POST** /v1/product_table_versions | Create a product table version
618
619
  *LicensingApi* | [**delete_license**](agilicus_api/docs/LicensingApi.md#delete_license) | **DELETE** /v1/licenses/{license_id} | Delete a license
@@ -1179,6 +1180,8 @@ Class | Method | HTTP request | Description
1179
1180
  - [HttpRule](agilicus_api/docs/HttpRule.md)
1180
1181
  - [HttpRuleCondition](agilicus_api/docs/HttpRuleCondition.md)
1181
1182
  - [HttpRuleConditionType](agilicus_api/docs/HttpRuleConditionType.md)
1183
+ - [HypotheticalLicenseDetails](agilicus_api/docs/HypotheticalLicenseDetails.md)
1184
+ - [HypotheticalLicenseDetailsQuery](agilicus_api/docs/HypotheticalLicenseDetailsQuery.md)
1182
1185
  - [Icon](agilicus_api/docs/Icon.md)
1183
1186
  - [IconDimensions](agilicus_api/docs/IconDimensions.md)
1184
1187
  - [IconPurpose](agilicus_api/docs/IconPurpose.md)
agilicus/billing.py CHANGED
@@ -26,6 +26,8 @@ from .output.table import (
26
26
 
27
27
  from .licensing.licenses import apply_constraint_and_vars
28
28
 
29
+ BILLING_SUBSCRIPTIONS_FILTER_TYPES = ["no-license-id"]
30
+
29
31
 
30
32
  def delete_billing_account(ctx, billing_account_id=None, **kwargs):
31
33
  client = get_apiclient_from_ctx(ctx)
@@ -132,7 +134,7 @@ def list_accounts(ctx, page_size=100, page_at_id=None, **kwargs):
132
134
  )
133
135
 
134
136
 
135
- def list_subscriptions(ctx, page_size=100, page_at_id=None, **kwargs):
137
+ def list_subscriptions(ctx, page_size=100, page_at_id=None, filter=None, **kwargs):
136
138
  client = get_apiclient_from_ctx(ctx)
137
139
  pop_item_if_none(kwargs)
138
140
  org_id = get_org_from_input_or_ctx(ctx, **kwargs)
@@ -143,7 +145,7 @@ def list_subscriptions(ctx, page_size=100, page_at_id=None, **kwargs):
143
145
 
144
146
  if page_at_id is None:
145
147
  page_at_id = ""
146
- return get_many_entries(
148
+ results = get_many_entries(
147
149
  client.billing_api.list_subscriptions,
148
150
  "billing_subscriptions",
149
151
  maximum=kwargs.get("limit", None),
@@ -152,6 +154,15 @@ def list_subscriptions(ctx, page_size=100, page_at_id=None, **kwargs):
152
154
  page_callback=client.refresh_token,
153
155
  **kwargs,
154
156
  )
157
+ if not filter:
158
+ return results
159
+ if filter == "no-license-id":
160
+ new_results = []
161
+ for subscription in results:
162
+ if not subscription.spec.license_id:
163
+ new_results.append(subscription)
164
+ return new_results
165
+ return results
155
166
 
156
167
 
157
168
  def format_accounts(
@@ -16,6 +16,7 @@ from ..output.table import (
16
16
  )
17
17
 
18
18
  from .formatters import constraint_columns
19
+ from ..licensing.product_table_versions import list_product_table_versions
19
20
 
20
21
 
21
22
  def list_licenses(ctx, **kwargs):
@@ -152,3 +153,51 @@ def format_license_details(ctx, resources):
152
153
  ]
153
154
 
154
155
  return format_table(ctx, resources, columns)
156
+
157
+
158
+ def get_licensed_product(product_label, product_table):
159
+ if not product_label:
160
+ return None
161
+
162
+ product_tokens = product_label.split("-")
163
+
164
+ if len(product_tokens) < 2:
165
+ return None
166
+ elif len(product_tokens) == 2:
167
+ normalized_product_name = product_tokens[0]
168
+ else:
169
+ normalized_product_name = "-".join(product_tokens[0:2])
170
+
171
+ for licensed_product in product_table["products"]:
172
+ if str(licensed_product["name"]) == normalized_product_name:
173
+ return licensed_product
174
+ return None
175
+
176
+
177
+ def add_license_to_billing_sub(ctx, bsub, product_name=None, product_table_version=None):
178
+ if bsub.spec.license_id:
179
+ raise Exception("subscription already has a license_id set!")
180
+
181
+ product_table = list_product_table_versions(ctx, published=True, limit=1)
182
+ product_version = product_table[0]
183
+
184
+ if not product_table_version:
185
+ product_table_version = product_version["spec"]["version"]
186
+
187
+ product_table = product_version["spec"].get("product_table")
188
+ if not product_name:
189
+ product_name = get_licensed_product(
190
+ bsub.status.product.spec.label, product_table
191
+ )
192
+ if not product_name:
193
+ raise Exception(
194
+ "could not find a suitable licensed for product label: "
195
+ f"{bsub.status.product.spec.label}"
196
+ )
197
+
198
+ result = add_license(
199
+ ctx,
200
+ product_table_version=str(product_table_version),
201
+ product_name=str(product_name),
202
+ )
203
+ bsub.spec.license_id = result.metadata.id
agilicus/main.py CHANGED
@@ -87,6 +87,7 @@ from .credentials_commands import credentials_main
87
87
  from .files_pkg import files_main
88
88
  from .policy_config import policy_config_main
89
89
  from .licensing import licensing_main
90
+ from .licensing.licenses import add_license_to_billing_sub
90
91
 
91
92
  from .version import __version__
92
93
 
@@ -7070,14 +7071,15 @@ def list_billing_accounts(ctx, **kwargs):
7070
7071
  @cli.command(name="list-billing-subscriptions")
7071
7072
  @click.option("--org-id", default=None)
7072
7073
  @click.option("--billing-account-id", default=None)
7073
- @click.option("--limit", default=500, type=int)
7074
- @click.option("--page-at-id", default=None)
7074
+ @click.option("--limit", default=None, type=int)
7075
+ @click.option("--page-at-id", default="")
7075
7076
  @click.option("--page-size", default=100, type=int)
7076
7077
  @click.option("--get-subscription-data", is_flag=True, default=False)
7077
7078
  @click.option("--get-usage-metrics", is_flag=True, default=False)
7078
7079
  @click.option("--get-stripe-status", is_flag=True, default=False)
7079
7080
  @click.option("--has-cancel-detail", is_flag=True, default=None)
7080
7081
  @click.option("--active-orgs-since", default=None, type=click.DateTime())
7082
+ @click.option("--filter", type=click.Choice(billing.BILLING_SUBSCRIPTIONS_FILTER_TYPES))
7081
7083
  @click.pass_context
7082
7084
  def list_billing_subscriptions(ctx, get_stripe_status=False, **kwargs):
7083
7085
  if get_stripe_status:
@@ -7299,6 +7301,19 @@ def override_replace(
7299
7301
  @click.option("--trial-period", type=int, default=None)
7300
7302
  @click.option("--dev-mode", is_flag=True, default=None)
7301
7303
  @click.option("--license-id", default=None)
7304
+ @click.option("--add-license", is_flag=True)
7305
+ @click.option(
7306
+ "--product-table-version",
7307
+ type=str,
7308
+ default=None,
7309
+ help="when adding license, override a table version",
7310
+ )
7311
+ @click.option(
7312
+ "--product-name",
7313
+ type=str,
7314
+ default=None,
7315
+ help="when adding license, override a product name",
7316
+ )
7302
7317
  @click.pass_context
7303
7318
  def update_subscription(
7304
7319
  ctx,
@@ -7310,6 +7325,9 @@ def update_subscription(
7310
7325
  subscription_reconcile=None,
7311
7326
  dev_mode=None,
7312
7327
  license_id=None,
7328
+ add_license=None,
7329
+ product_table_version=None,
7330
+ product_name=None,
7313
7331
  **kwargs,
7314
7332
  ):
7315
7333
  """Update the min/max overrides in a customer subscription."""
@@ -7372,6 +7390,9 @@ def update_subscription(
7372
7390
  if subscription_reconcile is not None:
7373
7391
  params["subscription_reconcile"] = subscription_reconcile
7374
7392
 
7393
+ if add_license:
7394
+ add_license_to_billing_sub(ctx, bsub, product_name, product_table_version)
7395
+
7375
7396
  sub = billing.update_subscription(
7376
7397
  ctx,
7377
7398
  billing_subscription_id=kwargs["billing_subscription_id"],
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: agilicus
3
- Version: 1.295.1
3
+ Version: 1.295.2
4
4
  Summary: Agilicus SDK
5
5
  Home-page: https://www.agilicus.com/
6
6
  License: MIT
@@ -1,11 +1,11 @@
1
1
  agilicus/.gitignore,sha256=TyHq6BCuVrFiqgUb1QAayLxWcBseKwEOoKJTQb_-iW8,5
2
- agilicus/.openapi-generator/FILES,sha256=l5cPGeOsrVIl77Rj--OwdFbqbB7NhmatXGqyvK5pM8g,125312
2
+ agilicus/.openapi-generator/FILES,sha256=EVJAxvjtfe3Ch-4VFtoVKJ3kYqvVztH7QJNF-06xpOA,125637
3
3
  agilicus/.openapi-generator/VERSION,sha256=LXsIFraL1muXBEww1sZWaewc9ji87Ih3gIa04Z37RYM,14
4
4
  agilicus/.openapi-generator-ignore,sha256=pu2PTide7pJtJ-DFLzDy0cTYQJRlrB-8RRH3zGLeUds,1040
5
5
  agilicus/__init__.py,sha256=Qxd9iQtVIZzzogmw8JjNvA6nSbgUJ22sAK-ibvB4hg8,4095
6
6
  agilicus/access.py,sha256=UEHHhE3cCaCjxXQDjhKxQAoUEMWandygN0d-yEIIf8A,5457
7
7
  agilicus/admin.py,sha256=rPXaddSiGpq3MBMQyFagy2RAHPhZkKN8ZGkMuN-MZqg,9991
8
- agilicus/agilicus_api/__init__.py,sha256=px0FtZ8vpj0g8OjIlYT5JU7Mln1Nj3tCpE9Ka6dRa74,70841
8
+ agilicus/agilicus_api/__init__.py,sha256=_QfEpLkqZKpkLIcF2UDGjAsPuZsuGzqzMT1e7FKXLzM,71026
9
9
  agilicus/agilicus_api/api/__init__.py,sha256=wX02QuCPW9YclBXGwbfv5NVh213HdW_jWBUyZg6ouHo,228
10
10
  agilicus/agilicus_api/api/application_services_api.py,sha256=vJl23kKDfvjKvQaJu2a2VLE6gFadlc8ZOjpjrvVp4HM,206067
11
11
  agilicus/agilicus_api/api/application_services_api_mock.py,sha256=uehxTSmv_k5o7gAF8bEG5IHFx8Slg7eTzVSn0XEua-g,11593
@@ -41,8 +41,8 @@ agilicus/agilicus_api/api/labels_api.py,sha256=masUZITOEUjeaYapc44DiTFaKyiFzkEV7
41
41
  agilicus/agilicus_api/api/labels_api_mock.py,sha256=ezN7URWdOlec-RTFnXUQI9bvVEaH7zGl6XfXapQ3OiY,3946
42
42
  agilicus/agilicus_api/api/launchers_api.py,sha256=79wSscra0bAKjwL4JmxvQy9NpH8wt2gIL416sXaPOWI,29612
43
43
  agilicus/agilicus_api/api/launchers_api_mock.py,sha256=xTKffM5RAWW3ey1OK7nuC7YgV90HNu_LeTXfqjeWtuQ,1440
44
- agilicus/agilicus_api/api/licensing_api.py,sha256=p9fAW-l5qnx5Y8GBiwifPP2LdJpsBY-OSrJsfaUKoh0,58529
45
- agilicus/agilicus_api/api/licensing_api_mock.py,sha256=pKQG0I9EyhMpFr4XVMqnQdNX4K7qf3PI0McPABuRfoM,3326
44
+ agilicus/agilicus_api/api/licensing_api.py,sha256=lFtNlxAh-5LB6QeRjf68v1BuQq89OiKh4R3FdRhVIXE,64077
45
+ agilicus/agilicus_api/api/licensing_api_mock.py,sha256=K-TltdlB3igCHakSn3625lnQ1Ep1WjCf9Wv2AFyheX8,3703
46
46
  agilicus/agilicus_api/api/lookups_api.py,sha256=D-sOiebXeCTrUTGhr9cDe-WSL6BpSFlP0lvk95olz0w,12666
47
47
  agilicus/agilicus_api/api/lookups_api_mock.py,sha256=QYAyrjg4xHsq4oLR4gKfK7JbP5jQgeG12T9gJgXqErs,647
48
48
  agilicus/agilicus_api/api/messages_api.py,sha256=Cdz8R7zoQBgnfEMIZojJH3-mcJiT1HRbBdvMx-d5GCI,78617
@@ -73,9 +73,9 @@ agilicus/agilicus_api/api/users_api.py,sha256=XrzTWosEvc46aXMAECOh9ra1AVL6osMQIp
73
73
  agilicus/agilicus_api/api/users_api_mock.py,sha256=GP0l1NcvX0ynOiZhRtuArS4D7lviWYADG_5KZNSNY-s,18930
74
74
  agilicus/agilicus_api/api/whoami_api.py,sha256=Ei6Tj40I_Zs6GTAauCVBxneMYF8AsiB0XK50aKSJgd4,7941
75
75
  agilicus/agilicus_api/api/whoami_api_mock.py,sha256=rlvZoWnMCqORMZBg7SOv6d3xp52kELdh6wXcCaIZ93w,346
76
- agilicus/agilicus_api/api_client.py,sha256=dvCLivdR-_Atnd0IMeov_Dqs91Rrh7Emo8tDIGVbj2c,38845
76
+ agilicus/agilicus_api/api_client.py,sha256=mnH8ON3I--JXFIP0icptQ678QHLfznY_NEun-QW71OI,38845
77
77
  agilicus/agilicus_api/apis/__init__.py,sha256=ijG84bKeWq8lCvqXBtmWXrEnDMfw2t5qu5nQwgAyckU,2280
78
- agilicus/agilicus_api/configuration.py,sha256=itNv-a20zFnNHHddmOc5eFr0dtjf-LNI3a9M37cSwYs,18447
78
+ agilicus/agilicus_api/configuration.py,sha256=3T-yadS50l0wNQtP6W82tgLrCm98frPlXC12cXvmh9U,18447
79
79
  agilicus/agilicus_api/docs/APIKey.md,sha256=4cKuz4_l9HcEDnUrLwYbEnn9C2WoDayrjfrY1Ixgaf4,1747
80
80
  agilicus/agilicus_api/docs/APIKeyIntrospect.md,sha256=nJ-zkuFm3JMbWFDYYN_vYyQk1snGBtBvIxtCQxamhAU,1019
81
81
  agilicus/agilicus_api/docs/APIKeyIntrospectAuthorizationInfo.md,sha256=7RApOOLjvWQs5sw2jb25g7i3Kta1BiEY-s8VRXfppH8,725
@@ -403,6 +403,8 @@ agilicus/agilicus_api/docs/HttpRequestExtractorSource.md,sha256=pHWisRhbkirv2HQY
403
403
  agilicus/agilicus_api/docs/HttpRule.md,sha256=DCMr-jvGfSDFbf4d9rrUtLJpiYq-0NP-I7PlnWnuOhQ,1916
404
404
  agilicus/agilicus_api/docs/HttpRuleCondition.md,sha256=RMN1lfKZlQ5wMhfZEcpSmihwTiLWJL8YgWV95vQ2fI8,1862
405
405
  agilicus/agilicus_api/docs/HttpRuleConditionType.md,sha256=4tMGUvY3uf-EbcYqLkTQemYKHtIivvujr7U3hjj1ZbQ,600
406
+ agilicus/agilicus_api/docs/HypotheticalLicenseDetails.md,sha256=A_a0S-dJstr41NlUvahQOBhBzqwTSl9RbK2Z0MXxtEs,640
407
+ agilicus/agilicus_api/docs/HypotheticalLicenseDetailsQuery.md,sha256=ne1K2A9ezU1p_5ixomdvnaCciLt4CvqGs1TEIfQnb4U,1438
406
408
  agilicus/agilicus_api/docs/Icon.md,sha256=yXrrUP6VAbhkcXTePse4FvYIhwWiRTvWRoUNe8nQYjY,1006
407
409
  agilicus/agilicus_api/docs/IconDimensions.md,sha256=Tvg14cTLaGivYCdyimZi8u-GxIsKdQFZz-GWjfYC1xw,710
408
410
  agilicus/agilicus_api/docs/IconPurpose.md,sha256=NaZvWjfHf_pVHCNur7XuVeFqC5oWzC-Vv0p5QxIrZ4Q,1058
@@ -468,7 +470,7 @@ agilicus/agilicus_api/docs/LicensedFeature.md,sha256=Rxi3TEDbRGOJsav0S7vNdLReldv
468
470
  agilicus/agilicus_api/docs/LicensedFeatureName.md,sha256=GfNH4EgqlqsxixLAlfPAdHLaxoPORafLGbmay75Vfjg,552
469
471
  agilicus/agilicus_api/docs/LicensedProduct.md,sha256=oeCHgUz3tULOQU9evucFcQ7ghiZcm5uhPIj_uruCRmI,1107
470
472
  agilicus/agilicus_api/docs/LicensedProductName.md,sha256=3yXj0F6UnIAzaVQp-9q0sAguyvrEzSLNDVC-bX-ozTA,552
471
- agilicus/agilicus_api/docs/LicensingApi.md,sha256=yvKW_as_nYxZUxi88HqQtoKjU6WWQQiGzrEkKDxVTWc,38145
473
+ agilicus/agilicus_api/docs/LicensingApi.md,sha256=fmEfsW1Xprg3i5qQyup9ZkgJkQNczIeul7TvN6CnNyo,44149
472
474
  agilicus/agilicus_api/docs/ListAPIKeysResponse.md,sha256=KUJywGuu--nLr95xwwPsGp_28cU4ALreI8n-uKPmI9M,1272
473
475
  agilicus/agilicus_api/docs/ListAccessRequestsResponse.md,sha256=-tUhb6otlQyktm3WePJ7ySkgR9RQGhDmyeBudxTF0k0,860
474
476
  agilicus/agilicus_api/docs/ListActiveUsersResponse.md,sha256=n0xBgqAYccmXGvchLsZdhG5OnRa2ZVpyyAzyJ7P_FkI,635
@@ -1302,6 +1304,8 @@ agilicus/agilicus_api/model/http_rule_condition.py,sha256=lA2Qh-9wtSd7cVestoJJic
1302
1304
  agilicus/agilicus_api/model/http_rule_condition_type.py,sha256=QLzRKoyf2sXgIkxbH9hkZ3M6370gyoORLgHoGLSaj2g,13565
1303
1305
  agilicus/agilicus_api/model/http_security_settings.py,sha256=Kj2zYK4gO1Qj6VOgYc0V1cE6kQjAbNCzwrJLeNLjWBg,20363
1304
1306
  agilicus/agilicus_api/model/http_summary_stats.py,sha256=yZRktozOv0AgZVg7rERHEqjOH3qzGzpyNgAH_sv9nEs,19779
1307
+ agilicus/agilicus_api/model/hypothetical_license_details.py,sha256=w_r1N1sPadufW4jA65lw5r-DGv54iA_ljpNOCEK8Q7s,13792
1308
+ agilicus/agilicus_api/model/hypothetical_license_details_query.py,sha256=Tkes-4f1BlpvN1M5SxUNMuv9Y8OVKS_wwD0C7PSppec,15183
1305
1309
  agilicus/agilicus_api/model/icon.py,sha256=PyOTvyJSj-ePunATt-TVAqHBZ0AN7rDmik-wYFz9rU4,14838
1306
1310
  agilicus/agilicus_api/model/icon_dimensions.py,sha256=wnex_NX8GlXCVl8BNSHm3NHZakOiUBkzUHjEMINuZMg,13953
1307
1311
  agilicus/agilicus_api/model/icon_purpose.py,sha256=Kdxzk2HX2M3rzMtLqtTdNUTfn-4LPod4EMH7Zwcsbx0,14971
@@ -1868,7 +1872,7 @@ agilicus/agilicus_api/model/x509_root_certificate_spec.py,sha256=7Tl9Lt6thn3xbi_
1868
1872
  agilicus/agilicus_api/model/x509_root_certificate_status.py,sha256=CDtNNjzbkUa9w3DDqUxeYt7ESyNa2mgWUXzVUuCtxvU,13995
1869
1873
  agilicus/agilicus_api/model/xss_settings.py,sha256=oANHCWVxGdsuC8TDuxJtksY-DQNFdkWNqnO4nZ-6POo,15489
1870
1874
  agilicus/agilicus_api/model_utils.py,sha256=Uv1X7kAL89WWRA0UrnoOl6qA9MxRzhCF8LVdVJU36_I,83992
1871
- agilicus/agilicus_api/models/__init__.py,sha256=JQwzLdHFN00jxyBkBpAhsS1T4Lc7fppah-0AUmt-KBM,66648
1875
+ agilicus/agilicus_api/models/__init__.py,sha256=F2Z7prCxBB8mrb2FAPkLdgrTGECZPBAvDBx1iB6zxMg,66833
1872
1876
  agilicus/agilicus_api/rest.py,sha256=FrWJrv-eT-TL_PHI7fTyq3QQpJnt-Hr45DSUvwq9bOI,14510
1873
1877
  agilicus/agilicus_api/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1874
1878
  agilicus/agilicus_api/test/test_access_requests.py,sha256=QHbdaHDyDg4hbtwTyFPuqhVfRuKZnUpYDg0IHBxenxU,3024
@@ -2198,6 +2202,8 @@ agilicus/agilicus_api/test/test_http_rule_condition.py,sha256=cO4XdEFGkL6ZR9sjxf
2198
2202
  agilicus/agilicus_api/test/test_http_rule_condition_type.py,sha256=_a12NWWvHBVrPfU_WoBUvgWbIlWdxe_N8JDBKT1ExJE,2818
2199
2203
  agilicus/agilicus_api/test/test_http_security_settings.py,sha256=PV4Q-VcxealWsrx3AHj-SxlP0dtyMr7fJC54gO51NHk,4551
2200
2204
  agilicus/agilicus_api/test/test_http_summary_stats.py,sha256=s5iNqUd8bqCDdElYHEnZaQUmc-7pq6qywsoODodmMnc,2782
2205
+ agilicus/agilicus_api/test/test_hypothetical_license_details.py,sha256=JLWZlmVCZ12F1yz2frmi3K4C7mkqemZ2Ckkq7IjgfkE,2959
2206
+ agilicus/agilicus_api/test/test_hypothetical_license_details_query.py,sha256=BzuGxBCUoMWvanc67idTgDWnRDtZv956pYFYDH6rMj4,3169
2201
2207
  agilicus/agilicus_api/test/test_icon.py,sha256=HWzzNp0OMt_PrEf_EqgbRDe7eSfxfla1mIrn2DnAk1M,2898
2202
2208
  agilicus/agilicus_api/test/test_icon_dimensions.py,sha256=Sktbo7apatZd6ZZbxM7IvrSVBoBZprHnGx0XYd3-Ib0,2767
2203
2209
  agilicus/agilicus_api/test/test_icon_purpose.py,sha256=rBhMm4nZtRHq1AHwUpBdkllo7HVf7w6-s4Z1PgJSTqo,2746
@@ -2263,7 +2269,7 @@ agilicus/agilicus_api/test/test_licensed_feature.py,sha256=EdYTuDJQXBrR9i_U8kw43
2263
2269
  agilicus/agilicus_api/test/test_licensed_feature_name.py,sha256=mY2EePtqDSFR0h5mHAttM-BfaCa1x5eMQvEec_03e4o,2803
2264
2270
  agilicus/agilicus_api/test/test_licensed_product.py,sha256=MRYMUrSc9oCPxOR9JvEZw2srpaBEumg4Ozgr6vqMw38,3305
2265
2271
  agilicus/agilicus_api/test/test_licensed_product_name.py,sha256=HVUd_K_l8Npd6kbPEOLvUAywnjOQA_7hvzWGdEsidAc,2803
2266
- agilicus/agilicus_api/test/test_licensing_api.py,sha256=uk_XMARLuRYM5mlTv75lusawNjSbF1gWLMlBkgozC7M,4380
2272
+ agilicus/agilicus_api/test/test_licensing_api.py,sha256=CDsWTCtyGOqdYUlq3uV0LopbeBzbQVVLtnJqRs18nTI,4602
2267
2273
  agilicus/agilicus_api/test/test_list_access_requests_response.py,sha256=AhMqR9X1HoIup0K256c0W32NTYb2iFJ1_FjXrAR1cXo,3184
2268
2274
  agilicus/agilicus_api/test/test_list_active_users_response.py,sha256=5gTokWvktl_N4kZyesxIOX13sefzmltzlvbtiptB4XE,2960
2269
2275
  agilicus/agilicus_api/test/test_list_agent_connector_instance_response.py,sha256=B3zeBwYBV3BfPJNc2LlkNRIvHNHeQSvf84UrBAFdLyU,3050
@@ -2782,13 +2788,13 @@ agilicus/agilicus_api/test/test_x509_root_certificate.py,sha256=7pRW-oXvm0VaugMY
2782
2788
  agilicus/agilicus_api/test/test_x509_root_certificate_spec.py,sha256=G43FvejhcleqkbstqBoJiYJo7ryaae1maiun4DaRu9U,2832
2783
2789
  agilicus/agilicus_api/test/test_x509_root_certificate_status.py,sha256=KDzSgI3cHZGx5LTN9L7QaLSuoLorIkHcP7L7lMI_2Hw,2846
2784
2790
  agilicus/agilicus_api/test/test_xss_settings.py,sha256=g49HnKShrWcymDPT8Q0VnQ-r5nPhOjt8jaPPr23Sy7M,2746
2785
- agilicus/agilicus_api_README.md,sha256=yMwWAN05FbwNrepp-2ZTb48B7IKPuqX8LASdk_DbVN0,178505
2791
+ agilicus/agilicus_api_README.md,sha256=06mgJy7h1ytkyKRkKyXP6oGbnYQpqm9mmAJEAL7lRYE,178909
2786
2792
  agilicus/aliases.ini,sha256=MxqiVo2f2xdUDVF1YDkNW36AIqN8hrYjlTVfraEUZXY,455
2787
2793
  agilicus/amq.py,sha256=yxi-YTbJPVl10s78Hlr1dmrQR63iaSIoROGVILzFPmE,1775
2788
2794
  agilicus/apps.py,sha256=Mdc_pRXyfa-IvIFH7gNbx0Ob64gUHggZyeSyLUDpjMs,54048
2789
2795
  agilicus/audit_destinations.py,sha256=twQon8YiiaW0ZP1nb0C0-XoTEXayEhFr7DrXryHJits,6908
2790
2796
  agilicus/audits.py,sha256=Jn9QijV6x_E0WH4teEs3HFr0RlTCU32k9yxJrpL0gu4,4235
2791
- agilicus/billing.py,sha256=0XSPqEdGb8kIW6VmKc40hVM3ILW6nvBBspgwfjWYXwQ,28212
2797
+ agilicus/billing.py,sha256=t6Kjn8rz2FLzkiw9-ucoPRBNxZBoQKBLm3exvI-tZ3U,28566
2792
2798
  agilicus/catalogues.py,sha256=K8pcc-GLXzSXxvPauNNxIBN4fBVi1jTp57eAv_XmGqA,3218
2793
2799
  agilicus/certificate.py,sha256=Vv5xJK0kckvlmeJJ6rBV7FANODd3nQgSKWT1vJtOpqs,3953
2794
2800
  agilicus/challenges.py,sha256=Ig9888pHGMigBxI_e8m2T_HZiqbU6TxsBXT2EKZoIUY,6968
@@ -2838,12 +2844,12 @@ agilicus/labels/labels_main.py,sha256=l2z_41X3sMJoSM483LmAzJE6bKKHVAEvrPjfz7QvFg
2838
2844
  agilicus/launchers.py,sha256=r4nctnVtfP-Ho_HXEfAiMaMqJI0u7pbieHSS3Vd0QBE,11361
2839
2845
  agilicus/licensing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2840
2846
  agilicus/licensing/formatters.py,sha256=oZAey_PTD8ywy8ujhgsOTcMcIRnIkVqgNFBEJhViyxE,608
2841
- agilicus/licensing/licenses.py,sha256=J1ux3bNfA8q8qpqulp17LVJnD3jxKtXJYuRMh_1W-Gc,4321
2847
+ agilicus/licensing/licenses.py,sha256=Vl_pWAcqtXV4wfNBLse2cORDwRcqWdZ_0M3_-aw5bSI,5940
2842
2848
  agilicus/licensing/licensing_main.py,sha256=0DE4sPZ2ZN7nUDCR5ik5HfcoxxjO70LZwwYHH6Duysk,4916
2843
2849
  agilicus/licensing/product_table_versions.py,sha256=Zk8L--z8wu6DPnbtYMGifc2J2KdNtnTBgyJv-CRAbr8,3038
2844
2850
  agilicus/logs.py,sha256=Y4XVcLctY-2O-Q_CXbJs9sAqu0NknHKSsqilKiDM_A0,804
2845
2851
  agilicus/lookups.py,sha256=MNmNsKpP7Fq_poLAnL9xo_iptFilKM9ziGLyIe8VKaw,669
2846
- agilicus/main.py,sha256=2ffNsKW9FTttOg2hi1TwH5QM2x8vXI8MNZgq-mRm420,294971
2852
+ agilicus/main.py,sha256=pt_iGryVQ3jGMSxmOAtNcrTYX-I-kQn_i6Y_rVDoNyI,295610
2847
2853
  agilicus/messages/__init__.py,sha256=cVqfaKUndO-AYfppkdFICM5WvYFFB1hRjXihFWmiGPQ,174
2848
2854
  agilicus/messages/messages.py,sha256=b2eO6BaWI9UZTLETcdy1NotyuNlKIJf6CS_TUzehuk4,9175
2849
2855
  agilicus/messages/messages_main.py,sha256=A0xucYwwUZFIuUc0bAyAqVwofErakmyawq5bwhZKcOU,1598
@@ -2890,8 +2896,8 @@ agilicus/trusted_certs/trusted_certs_main.py,sha256=6dHHWXvNIcUa_nA9ptigL4Vibe4n
2890
2896
  agilicus/users.py,sha256=dDt86whkSHif85cb5w7ocVcBO0wKpMEo8H79b082qRM,44474
2891
2897
  agilicus/version.py,sha256=G9OFdL1v_4dLDfk6I6taDNypM5bbO-JHAwilsu9LYgg,23
2892
2898
  agilicus/whoami.py,sha256=kqghtWMgZOd2rhKmfguDwCTm6A3gNS8Kj-S2IBxBtl0,206
2893
- agilicus-1.295.1.dist-info/LICENSE.txt,sha256=Zq4tqiCroC2CVrBB_PWjapRdvpae23nljdiaSkOzUho,1061
2894
- agilicus-1.295.1.dist-info/METADATA,sha256=cj1ErzendKc9Pxh-bWJxhDuoJRoQxKxEe7vJpFutmxI,3878
2895
- agilicus-1.295.1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
2896
- agilicus-1.295.1.dist-info/entry_points.txt,sha256=a66hGozzLkHu0IewFzIMbSAhMTNTddUaA2T3_16Gb_s,51
2897
- agilicus-1.295.1.dist-info/RECORD,,
2899
+ agilicus-1.295.2.dist-info/LICENSE.txt,sha256=Zq4tqiCroC2CVrBB_PWjapRdvpae23nljdiaSkOzUho,1061
2900
+ agilicus-1.295.2.dist-info/METADATA,sha256=Oft0ugFinIjmTuu0ywob7Y2I-NdXZ-XRoAKV866tfbg,3878
2901
+ agilicus-1.295.2.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
2902
+ agilicus-1.295.2.dist-info/entry_points.txt,sha256=a66hGozzLkHu0IewFzIMbSAhMTNTddUaA2T3_16Gb_s,51
2903
+ agilicus-1.295.2.dist-info/RECORD,,