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,281 @@
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 re # noqa: F401
13
+ import sys # noqa: F401
14
+
15
+ from agilicus_api.model_utils import ( # noqa: F401
16
+ ApiTypeError,
17
+ ModelComposed,
18
+ ModelNormal,
19
+ ModelSimple,
20
+ cached_property,
21
+ change_keys_js_to_python,
22
+ convert_js_args_to_python_args,
23
+ date,
24
+ datetime,
25
+ file_type,
26
+ none_type,
27
+ validate_get_composed_info,
28
+ )
29
+ from ..model_utils import OpenApiModel
30
+ from agilicus_api.exceptions import ApiAttributeError
31
+
32
+
33
+ def lazy_import():
34
+ from agilicus_api.model.license_details import LicenseDetails
35
+ globals()['LicenseDetails'] = LicenseDetails
36
+
37
+
38
+ class HypotheticalLicenseDetails(ModelNormal):
39
+ """NOTE: This class is auto generated by OpenAPI Generator.
40
+ Ref: https://openapi-generator.tech
41
+
42
+ Do not edit the class manually.
43
+
44
+ Attributes:
45
+ allowed_values (dict): The key is the tuple path to the attribute
46
+ and the for var_name this is (var_name,). The value is a dict
47
+ with a capitalized key describing the allowed value and an allowed
48
+ value. These dicts store the allowed enum values.
49
+ attribute_map (dict): The key is attribute name
50
+ and the value is json key in definition.
51
+ discriminator_value_class_map (dict): A dict to go from the discriminator
52
+ variable value to the discriminator class name.
53
+ validations (dict): The key is the tuple path to the attribute
54
+ and the for var_name this is (var_name,). The value is a dict
55
+ that stores validations for max_length, min_length, max_items,
56
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
57
+ inclusive_minimum, and regex.
58
+ additional_properties_type (tuple): A tuple of classes accepted
59
+ as additional properties values.
60
+ """
61
+
62
+ allowed_values = {
63
+ }
64
+
65
+ validations = {
66
+ }
67
+
68
+ @property
69
+ def license_details(self):
70
+ return self.get("license_details")
71
+
72
+ @license_details.setter
73
+ def license_details(self, new_value):
74
+ self.license_details = new_value
75
+
76
+ @cached_property
77
+ def additional_properties_type():
78
+ """
79
+ This must be a method because a model may have properties that are
80
+ of type self, this must run after the class is loaded
81
+ """
82
+ lazy_import()
83
+ return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501
84
+
85
+ _nullable = False
86
+
87
+ @cached_property
88
+ def openapi_types():
89
+ """
90
+ This must be a method because a model may have properties that are
91
+ of type self, this must run after the class is loaded
92
+
93
+ Returns
94
+ openapi_types (dict): The key is attribute name
95
+ and the value is attribute type.
96
+ """
97
+ lazy_import()
98
+ return {
99
+ 'license_details': ([LicenseDetails],), # noqa: E501
100
+ }
101
+
102
+ @cached_property
103
+ def discriminator():
104
+ return None
105
+
106
+
107
+
108
+ attribute_map = {
109
+ 'license_details': 'license_details', # noqa: E501
110
+ }
111
+
112
+ read_only_vars = {
113
+ }
114
+
115
+ _composed_schemas = {}
116
+
117
+ @classmethod
118
+ @convert_js_args_to_python_args
119
+ def _from_openapi_data(cls, license_details, *args, **kwargs): # noqa: E501
120
+ """HypotheticalLicenseDetails - a model defined in OpenAPI
121
+
122
+ Args:
123
+ license_details ([LicenseDetails]): List of per-org license details
124
+
125
+ Keyword Args:
126
+ _check_type (bool): if True, values for parameters in openapi_types
127
+ will be type checked and a TypeError will be
128
+ raised if the wrong type is input.
129
+ Defaults to True
130
+ _path_to_item (tuple/list): This is a list of keys or values to
131
+ drill down to the model in received_data
132
+ when deserializing a response
133
+ _spec_property_naming (bool): True if the variable names in the input data
134
+ are serialized names, as specified in the OpenAPI document.
135
+ False if the variable names in the input data
136
+ are pythonic names, e.g. snake case (default)
137
+ _configuration (Configuration): the instance to use when
138
+ deserializing a file_type parameter.
139
+ If passed, type conversion is attempted
140
+ If omitted no type conversion is done.
141
+ _visited_composed_classes (tuple): This stores a tuple of
142
+ classes that we have traveled through so that
143
+ if we see that class again we will not use its
144
+ discriminator again.
145
+ When traveling through a discriminator, the
146
+ composed schema that is
147
+ is traveled through is added to this set.
148
+ For example if Animal has a discriminator
149
+ petType and we pass in "Dog", and the class Dog
150
+ allOf includes Animal, we move through Animal
151
+ once using the discriminator, and pick Dog.
152
+ Then in Dog, we will make an instance of the
153
+ Animal class but this time we won't travel
154
+ through its discriminator because we passed in
155
+ _visited_composed_classes = (Animal,)
156
+ """
157
+
158
+ _check_type = kwargs.pop('_check_type', True)
159
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
160
+ _path_to_item = kwargs.pop('_path_to_item', ())
161
+ _configuration = kwargs.pop('_configuration', None)
162
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
163
+
164
+ self = super(OpenApiModel, cls).__new__(cls)
165
+
166
+ if args:
167
+ raise ApiTypeError(
168
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
169
+ args,
170
+ self.__class__.__name__,
171
+ ),
172
+ path_to_item=_path_to_item,
173
+ valid_classes=(self.__class__,),
174
+ )
175
+
176
+ self._data_store = {}
177
+ self._check_type = _check_type
178
+ self._spec_property_naming = _spec_property_naming
179
+ self._path_to_item = _path_to_item
180
+ self._configuration = _configuration
181
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
182
+
183
+ self.license_details = license_details
184
+ for var_name, var_value in kwargs.items():
185
+ if var_name not in self.attribute_map and \
186
+ self._configuration is not None and \
187
+ self._configuration.discard_unknown_keys and \
188
+ self.additional_properties_type is None:
189
+ # discard variable.
190
+ continue
191
+ setattr(self, var_name, var_value)
192
+ return self
193
+
194
+ def __python_set(val):
195
+ return set(val)
196
+
197
+ required_properties = __python_set([
198
+ '_data_store',
199
+ '_check_type',
200
+ '_spec_property_naming',
201
+ '_path_to_item',
202
+ '_configuration',
203
+ '_visited_composed_classes',
204
+ ])
205
+
206
+ @convert_js_args_to_python_args
207
+ def __init__(self, license_details, *args, **kwargs): # noqa: E501
208
+ """HypotheticalLicenseDetails - a model defined in OpenAPI
209
+
210
+ Args:
211
+ license_details ([LicenseDetails]): List of per-org license details
212
+
213
+ Keyword Args:
214
+ _check_type (bool): if True, values for parameters in openapi_types
215
+ will be type checked and a TypeError will be
216
+ raised if the wrong type is input.
217
+ Defaults to True
218
+ _path_to_item (tuple/list): This is a list of keys or values to
219
+ drill down to the model in received_data
220
+ when deserializing a response
221
+ _spec_property_naming (bool): True if the variable names in the input data
222
+ are serialized names, as specified in the OpenAPI document.
223
+ False if the variable names in the input data
224
+ are pythonic names, e.g. snake case (default)
225
+ _configuration (Configuration): the instance to use when
226
+ deserializing a file_type parameter.
227
+ If passed, type conversion is attempted
228
+ If omitted no type conversion is done.
229
+ _visited_composed_classes (tuple): This stores a tuple of
230
+ classes that we have traveled through so that
231
+ if we see that class again we will not use its
232
+ discriminator again.
233
+ When traveling through a discriminator, the
234
+ composed schema that is
235
+ is traveled through is added to this set.
236
+ For example if Animal has a discriminator
237
+ petType and we pass in "Dog", and the class Dog
238
+ allOf includes Animal, we move through Animal
239
+ once using the discriminator, and pick Dog.
240
+ Then in Dog, we will make an instance of the
241
+ Animal class but this time we won't travel
242
+ through its discriminator because we passed in
243
+ _visited_composed_classes = (Animal,)
244
+ """
245
+
246
+ _check_type = kwargs.pop('_check_type', True)
247
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
248
+ _path_to_item = kwargs.pop('_path_to_item', ())
249
+ _configuration = kwargs.pop('_configuration', None)
250
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
251
+
252
+ if args:
253
+ raise ApiTypeError(
254
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
255
+ args,
256
+ self.__class__.__name__,
257
+ ),
258
+ path_to_item=_path_to_item,
259
+ valid_classes=(self.__class__,),
260
+ )
261
+
262
+ self._data_store = {}
263
+ self._check_type = _check_type
264
+ self._spec_property_naming = _spec_property_naming
265
+ self._path_to_item = _path_to_item
266
+ self._configuration = _configuration
267
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
268
+
269
+ self.license_details = license_details
270
+ for var_name, var_value in kwargs.items():
271
+ if var_name not in self.attribute_map and \
272
+ self._configuration is not None and \
273
+ self._configuration.discard_unknown_keys and \
274
+ self.additional_properties_type is None:
275
+ # discard variable.
276
+ continue
277
+ setattr(self, var_name, var_value)
278
+ if var_name in self.read_only_vars:
279
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
280
+ f"class with read only attributes.")
281
+
@@ -0,0 +1,312 @@
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 re # noqa: F401
13
+ import sys # noqa: F401
14
+
15
+ from agilicus_api.model_utils import ( # noqa: F401
16
+ ApiTypeError,
17
+ ModelComposed,
18
+ ModelNormal,
19
+ ModelSimple,
20
+ cached_property,
21
+ change_keys_js_to_python,
22
+ convert_js_args_to_python_args,
23
+ date,
24
+ datetime,
25
+ file_type,
26
+ none_type,
27
+ validate_get_composed_info,
28
+ )
29
+ from ..model_utils import OpenApiModel
30
+ from agilicus_api.exceptions import ApiAttributeError
31
+
32
+
33
+ def lazy_import():
34
+ from agilicus_api.model.product_table_version import ProductTableVersion
35
+ from agilicus_api.model.product_table_version_string import ProductTableVersionString
36
+ globals()['ProductTableVersion'] = ProductTableVersion
37
+ globals()['ProductTableVersionString'] = ProductTableVersionString
38
+
39
+
40
+ class HypotheticalLicenseDetailsQuery(ModelNormal):
41
+ """NOTE: This class is auto generated by OpenAPI Generator.
42
+ Ref: https://openapi-generator.tech
43
+
44
+ Do not edit the class manually.
45
+
46
+ Attributes:
47
+ allowed_values (dict): The key is the tuple path to the attribute
48
+ and the for var_name this is (var_name,). The value is a dict
49
+ with a capitalized key describing the allowed value and an allowed
50
+ value. These dicts store the allowed enum values.
51
+ attribute_map (dict): The key is attribute name
52
+ and the value is json key in definition.
53
+ discriminator_value_class_map (dict): A dict to go from the discriminator
54
+ variable value to the discriminator class name.
55
+ validations (dict): The key is the tuple path to the attribute
56
+ and the for var_name this is (var_name,). The value is a dict
57
+ that stores validations for max_length, min_length, max_items,
58
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
59
+ inclusive_minimum, and regex.
60
+ additional_properties_type (tuple): A tuple of classes accepted
61
+ as additional properties values.
62
+ """
63
+
64
+ allowed_values = {
65
+ }
66
+
67
+ validations = {
68
+ ('license_ids',): {
69
+ 'max_items': 100,
70
+ },
71
+ }
72
+
73
+ @property
74
+ def product_table_version(self):
75
+ return self.get("product_table_version")
76
+
77
+ @product_table_version.setter
78
+ def product_table_version(self, new_value):
79
+ self.product_table_version = new_value
80
+
81
+ @property
82
+ def license_ids(self):
83
+ return self.get("license_ids")
84
+
85
+ @license_ids.setter
86
+ def license_ids(self, new_value):
87
+ self.license_ids = new_value
88
+
89
+ @property
90
+ def constrain_to_version(self):
91
+ return self.get("constrain_to_version")
92
+
93
+ @constrain_to_version.setter
94
+ def constrain_to_version(self, new_value):
95
+ self.constrain_to_version = new_value
96
+
97
+ @cached_property
98
+ def additional_properties_type():
99
+ """
100
+ This must be a method because a model may have properties that are
101
+ of type self, this must run after the class is loaded
102
+ """
103
+ lazy_import()
104
+ return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501
105
+
106
+ _nullable = False
107
+
108
+ @cached_property
109
+ def openapi_types():
110
+ """
111
+ This must be a method because a model may have properties that are
112
+ of type self, this must run after the class is loaded
113
+
114
+ Returns
115
+ openapi_types (dict): The key is attribute name
116
+ and the value is attribute type.
117
+ """
118
+ lazy_import()
119
+ return {
120
+ 'product_table_version': (ProductTableVersion,), # noqa: E501
121
+ 'license_ids': ([str],), # noqa: E501
122
+ 'constrain_to_version': (ProductTableVersionString,), # noqa: E501
123
+ }
124
+
125
+ @cached_property
126
+ def discriminator():
127
+ return None
128
+
129
+
130
+
131
+ attribute_map = {
132
+ 'product_table_version': 'product_table_version', # noqa: E501
133
+ 'license_ids': 'license_ids', # noqa: E501
134
+ 'constrain_to_version': 'constrain_to_version', # noqa: E501
135
+ }
136
+
137
+ read_only_vars = {
138
+ }
139
+
140
+ _composed_schemas = {}
141
+
142
+ @classmethod
143
+ @convert_js_args_to_python_args
144
+ def _from_openapi_data(cls, product_table_version, license_ids, *args, **kwargs): # noqa: E501
145
+ """HypotheticalLicenseDetailsQuery - a model defined in OpenAPI
146
+
147
+ Args:
148
+ product_table_version (ProductTableVersion):
149
+ license_ids ([str]): List of licenses for which to get details
150
+
151
+ Keyword Args:
152
+ _check_type (bool): if True, values for parameters in openapi_types
153
+ will be type checked and a TypeError will be
154
+ raised if the wrong type is input.
155
+ Defaults to True
156
+ _path_to_item (tuple/list): This is a list of keys or values to
157
+ drill down to the model in received_data
158
+ when deserializing a response
159
+ _spec_property_naming (bool): True if the variable names in the input data
160
+ are serialized names, as specified in the OpenAPI document.
161
+ False if the variable names in the input data
162
+ are pythonic names, e.g. snake case (default)
163
+ _configuration (Configuration): the instance to use when
164
+ deserializing a file_type parameter.
165
+ If passed, type conversion is attempted
166
+ If omitted no type conversion is done.
167
+ _visited_composed_classes (tuple): This stores a tuple of
168
+ classes that we have traveled through so that
169
+ if we see that class again we will not use its
170
+ discriminator again.
171
+ When traveling through a discriminator, the
172
+ composed schema that is
173
+ is traveled through is added to this set.
174
+ For example if Animal has a discriminator
175
+ petType and we pass in "Dog", and the class Dog
176
+ allOf includes Animal, we move through Animal
177
+ once using the discriminator, and pick Dog.
178
+ Then in Dog, we will make an instance of the
179
+ Animal class but this time we won't travel
180
+ through its discriminator because we passed in
181
+ _visited_composed_classes = (Animal,)
182
+ constrain_to_version (ProductTableVersionString): [optional] # noqa: E501
183
+ """
184
+
185
+ _check_type = kwargs.pop('_check_type', True)
186
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
187
+ _path_to_item = kwargs.pop('_path_to_item', ())
188
+ _configuration = kwargs.pop('_configuration', None)
189
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
190
+
191
+ self = super(OpenApiModel, cls).__new__(cls)
192
+
193
+ if args:
194
+ raise ApiTypeError(
195
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
196
+ args,
197
+ self.__class__.__name__,
198
+ ),
199
+ path_to_item=_path_to_item,
200
+ valid_classes=(self.__class__,),
201
+ )
202
+
203
+ self._data_store = {}
204
+ self._check_type = _check_type
205
+ self._spec_property_naming = _spec_property_naming
206
+ self._path_to_item = _path_to_item
207
+ self._configuration = _configuration
208
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
209
+
210
+ self.product_table_version = product_table_version
211
+ self.license_ids = license_ids
212
+ for var_name, var_value in kwargs.items():
213
+ if var_name not in self.attribute_map and \
214
+ self._configuration is not None and \
215
+ self._configuration.discard_unknown_keys and \
216
+ self.additional_properties_type is None:
217
+ # discard variable.
218
+ continue
219
+ setattr(self, var_name, var_value)
220
+ return self
221
+
222
+ def __python_set(val):
223
+ return set(val)
224
+
225
+ required_properties = __python_set([
226
+ '_data_store',
227
+ '_check_type',
228
+ '_spec_property_naming',
229
+ '_path_to_item',
230
+ '_configuration',
231
+ '_visited_composed_classes',
232
+ ])
233
+
234
+ @convert_js_args_to_python_args
235
+ def __init__(self, product_table_version, license_ids, *args, **kwargs): # noqa: E501
236
+ """HypotheticalLicenseDetailsQuery - a model defined in OpenAPI
237
+
238
+ Args:
239
+ product_table_version (ProductTableVersion):
240
+ license_ids ([str]): List of licenses for which to get details
241
+
242
+ Keyword Args:
243
+ _check_type (bool): if True, values for parameters in openapi_types
244
+ will be type checked and a TypeError will be
245
+ raised if the wrong type is input.
246
+ Defaults to True
247
+ _path_to_item (tuple/list): This is a list of keys or values to
248
+ drill down to the model in received_data
249
+ when deserializing a response
250
+ _spec_property_naming (bool): True if the variable names in the input data
251
+ are serialized names, as specified in the OpenAPI document.
252
+ False if the variable names in the input data
253
+ are pythonic names, e.g. snake case (default)
254
+ _configuration (Configuration): the instance to use when
255
+ deserializing a file_type parameter.
256
+ If passed, type conversion is attempted
257
+ If omitted no type conversion is done.
258
+ _visited_composed_classes (tuple): This stores a tuple of
259
+ classes that we have traveled through so that
260
+ if we see that class again we will not use its
261
+ discriminator again.
262
+ When traveling through a discriminator, the
263
+ composed schema that is
264
+ is traveled through is added to this set.
265
+ For example if Animal has a discriminator
266
+ petType and we pass in "Dog", and the class Dog
267
+ allOf includes Animal, we move through Animal
268
+ once using the discriminator, and pick Dog.
269
+ Then in Dog, we will make an instance of the
270
+ Animal class but this time we won't travel
271
+ through its discriminator because we passed in
272
+ _visited_composed_classes = (Animal,)
273
+ constrain_to_version (ProductTableVersionString): [optional] # noqa: E501
274
+ """
275
+
276
+ _check_type = kwargs.pop('_check_type', True)
277
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
278
+ _path_to_item = kwargs.pop('_path_to_item', ())
279
+ _configuration = kwargs.pop('_configuration', None)
280
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
281
+
282
+ if args:
283
+ raise ApiTypeError(
284
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
285
+ args,
286
+ self.__class__.__name__,
287
+ ),
288
+ path_to_item=_path_to_item,
289
+ valid_classes=(self.__class__,),
290
+ )
291
+
292
+ self._data_store = {}
293
+ self._check_type = _check_type
294
+ self._spec_property_naming = _spec_property_naming
295
+ self._path_to_item = _path_to_item
296
+ self._configuration = _configuration
297
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
298
+
299
+ self.product_table_version = product_table_version
300
+ self.license_ids = license_ids
301
+ for var_name, var_value in kwargs.items():
302
+ if var_name not in self.attribute_map and \
303
+ self._configuration is not None and \
304
+ self._configuration.discard_unknown_keys and \
305
+ self.additional_properties_type is None:
306
+ # discard variable.
307
+ continue
308
+ setattr(self, var_name, var_value)
309
+ if var_name in self.read_only_vars:
310
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
311
+ f"class with read only attributes.")
312
+
@@ -322,6 +322,8 @@ from agilicus_api.model.http_request_extractor_source import HttpRequestExtracto
322
322
  from agilicus_api.model.http_rule import HttpRule
323
323
  from agilicus_api.model.http_rule_condition import HttpRuleCondition
324
324
  from agilicus_api.model.http_rule_condition_type import HttpRuleConditionType
325
+ from agilicus_api.model.hypothetical_license_details import HypotheticalLicenseDetails
326
+ from agilicus_api.model.hypothetical_license_details_query import HypotheticalLicenseDetailsQuery
325
327
  from agilicus_api.model.icon import Icon
326
328
  from agilicus_api.model.icon_dimensions import IconDimensions
327
329
  from agilicus_api.model.icon_purpose import IconPurpose
@@ -0,0 +1,38 @@
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.license_details import LicenseDetails
17
+ globals()['LicenseDetails'] = LicenseDetails
18
+ from agilicus_api.model.hypothetical_license_details import HypotheticalLicenseDetails
19
+
20
+
21
+ class TestHypotheticalLicenseDetails(unittest.TestCase):
22
+ """HypotheticalLicenseDetails unit test stubs"""
23
+
24
+ def setUp(self):
25
+ pass
26
+
27
+ def tearDown(self):
28
+ pass
29
+
30
+ def testHypotheticalLicenseDetails(self):
31
+ """Test HypotheticalLicenseDetails"""
32
+ # FIXME: construct object with mandatory attributes with example values
33
+ # model = HypotheticalLicenseDetails() # noqa: E501
34
+ pass
35
+
36
+
37
+ if __name__ == '__main__':
38
+ unittest.main()