agilicus 1.285.10__py3-none-any.whl → 1.286.0__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.
@@ -841,6 +841,7 @@ agilicus_api/docs/StatsPublishingLevelConfig.md
841
841
  agilicus_api/docs/StorageInfo.md
842
842
  agilicus_api/docs/StorageRegion.md
843
843
  agilicus_api/docs/SupportRequest.md
844
+ agilicus_api/docs/SupportRequestMessage.md
844
845
  agilicus_api/docs/SupportRequestSpec.md
845
846
  agilicus_api/docs/SupportRequestStatus.md
846
847
  agilicus_api/docs/TOTPEnrollment.md
@@ -1687,6 +1688,7 @@ agilicus_api/model/stats_publishing_level_config.py
1687
1688
  agilicus_api/model/storage_info.py
1688
1689
  agilicus_api/model/storage_region.py
1689
1690
  agilicus_api/model/support_request.py
1691
+ agilicus_api/model/support_request_message.py
1690
1692
  agilicus_api/model/support_request_spec.py
1691
1693
  agilicus_api/model/support_request_status.py
1692
1694
  agilicus_api/model/template_extraction.py
@@ -2559,6 +2561,7 @@ agilicus_api/test/test_stats_publishing_level_config.py
2559
2561
  agilicus_api/test/test_storage_info.py
2560
2562
  agilicus_api/test/test_storage_region.py
2561
2563
  agilicus_api/test/test_support_request.py
2564
+ agilicus_api/test/test_support_request_message.py
2562
2565
  agilicus_api/test/test_support_request_spec.py
2563
2566
  agilicus_api/test/test_support_request_status.py
2564
2567
  agilicus_api/test/test_template_extraction.py
@@ -806,6 +806,7 @@ from agilicus_api.model.stats_publishing_level_config import StatsPublishingLeve
806
806
  from agilicus_api.model.storage_info import StorageInfo
807
807
  from agilicus_api.model.storage_region import StorageRegion
808
808
  from agilicus_api.model.support_request import SupportRequest
809
+ from agilicus_api.model.support_request_message import SupportRequestMessage
809
810
  from agilicus_api.model.support_request_spec import SupportRequestSpec
810
811
  from agilicus_api.model.support_request_status import SupportRequestStatus
811
812
  from agilicus_api.model.totp_enrollment import TOTPEnrollment
@@ -56,6 +56,7 @@ from agilicus_api.model.roles import Roles
56
56
  from agilicus_api.model.selector_tag import SelectorTag
57
57
  from agilicus_api.model.service_account import ServiceAccount
58
58
  from agilicus_api.model.support_request import SupportRequest
59
+ from agilicus_api.model.support_request_message import SupportRequestMessage
59
60
  from agilicus_api.model.upstream_user_identity import UpstreamUserIdentity
60
61
  from agilicus_api.model.user import User
61
62
  from agilicus_api.model.user_identity_update import UserIdentityUpdate
@@ -683,6 +684,127 @@ class UsersApi(object):
683
684
  callable=__create_support_request
684
685
  )
685
686
 
687
+ def __create_support_request_message(
688
+ self,
689
+ support_request_message,
690
+ **kwargs
691
+ ):
692
+ """Create support requests message # noqa: E501
693
+
694
+ Creates support requests message by a supporting user so that they can request access to organizations they wish to support. # noqa: E501
695
+ This method makes a synchronous HTTP request by default. To make an
696
+ asynchronous HTTP request, please pass async_req=True
697
+
698
+ >>> thread = api.create_support_request_message(support_request_message, async_req=True)
699
+ >>> result = thread.get()
700
+
701
+ Args:
702
+ support_request_message (SupportRequestMessage):
703
+
704
+ Keyword Args:
705
+ _return_http_data_only (bool): response data without head status
706
+ code and headers. Default is True.
707
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
708
+ will be returned without reading/decoding response data.
709
+ Default is True.
710
+ _request_timeout (float/tuple): timeout setting for this request. If one
711
+ number provided, it will be total request timeout. It can also
712
+ be a pair (tuple) of (connection, read) timeouts.
713
+ Default is None.
714
+ _check_input_type (bool): specifies if type checking
715
+ should be done one the data sent to the server.
716
+ Default is True.
717
+ _check_return_type (bool): specifies if type checking
718
+ should be done one the data received from the server.
719
+ Default is True.
720
+ _host_index (int/None): specifies the index of the server
721
+ that we want to use.
722
+ Default is read from the configuration.
723
+ async_req (bool): execute request asynchronously
724
+
725
+ Returns:
726
+ None
727
+ If the method is called asynchronously, returns the request
728
+ thread.
729
+ """
730
+ kwargs['async_req'] = kwargs.get(
731
+ 'async_req', False
732
+ )
733
+ kwargs['_return_http_data_only'] = kwargs.get(
734
+ '_return_http_data_only', True
735
+ )
736
+ kwargs['_preload_content'] = kwargs.get(
737
+ '_preload_content', True
738
+ )
739
+ kwargs['_request_timeout'] = kwargs.get(
740
+ '_request_timeout', None
741
+ )
742
+ kwargs['_check_input_type'] = kwargs.get(
743
+ '_check_input_type', True
744
+ )
745
+ kwargs['_check_return_type'] = kwargs.get(
746
+ '_check_return_type', True
747
+ )
748
+ kwargs['_host_index'] = kwargs.get('_host_index')
749
+ kwargs['support_request_message'] = \
750
+ support_request_message
751
+ return self.call_with_http_info(**kwargs)
752
+
753
+ if self.create_support_request_message is None:
754
+ self.create_support_request_message = _Endpoint(
755
+ settings={
756
+ 'response_type': None,
757
+ 'auth': [
758
+ 'token-valid'
759
+ ],
760
+ 'endpoint_path': '/v1/support_requests/push',
761
+ 'operation_id': 'create_support_request_message',
762
+ 'http_method': 'POST',
763
+ 'servers': None,
764
+ },
765
+ params_map={
766
+ 'all': [
767
+ 'support_request_message',
768
+ ],
769
+ 'required': [
770
+ 'support_request_message',
771
+ ],
772
+ 'nullable': [
773
+ ],
774
+ 'enum': [
775
+ ],
776
+ 'validation': [
777
+ ]
778
+ },
779
+ root_map={
780
+ 'validations': {
781
+ },
782
+ 'allowed_values': {
783
+ },
784
+ 'openapi_types': {
785
+ 'support_request_message':
786
+ (SupportRequestMessage,),
787
+ },
788
+ 'attribute_map': {
789
+ },
790
+ 'location_map': {
791
+ 'support_request_message': 'body',
792
+ },
793
+ 'collection_format_map': {
794
+ }
795
+ },
796
+ headers_map={
797
+ 'accept': [
798
+ 'application/json'
799
+ ],
800
+ 'content_type': [
801
+ 'application/json'
802
+ ]
803
+ },
804
+ api_client=api_client,
805
+ callable=__create_support_request_message
806
+ )
807
+
686
808
  def __create_upstream_user_identity(
687
809
  self,
688
810
  user_id,
@@ -8025,6 +8147,7 @@ class UsersApi(object):
8025
8147
  create_challenge_method = None
8026
8148
  create_service_account = None
8027
8149
  create_support_request = None
8150
+ create_support_request_message = None
8028
8151
  create_upstream_user_identity = None
8029
8152
  create_user = None
8030
8153
  create_user_identity_update = None
@@ -8,6 +8,7 @@ class UsersApiMock:
8
8
  self.mock_create_challenge_method = MagicMock()
9
9
  self.mock_create_service_account = MagicMock()
10
10
  self.mock_create_support_request = MagicMock()
11
+ self.mock_create_support_request_message = MagicMock()
11
12
  self.mock_create_upstream_user_identity = MagicMock()
12
13
  self.mock_create_user = MagicMock()
13
14
  self.mock_create_user_identity_update = MagicMock()
@@ -91,6 +92,12 @@ class UsersApiMock:
91
92
  """
92
93
  return self.mock_create_support_request(self, *args, **kwargs)
93
94
 
95
+ def create_support_request_message(self, *args, **kwargs):
96
+ """
97
+ This method mocks the original api UsersApi.create_support_request_message with MagicMock.
98
+ """
99
+ return self.mock_create_support_request_message(self, *args, **kwargs)
100
+
94
101
  def create_upstream_user_identity(self, *args, **kwargs):
95
102
  """
96
103
  This method mocks the original api UsersApi.create_upstream_user_identity with MagicMock.
@@ -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.285.10/python'
80
+ self.user_agent = 'OpenAPI-Generator/1.286.0/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: 2025.04.10\n"\
390
- "SDK Package Version: 1.285.10".\
390
+ "SDK Package Version: 1.286.0".\
391
391
  format(env=sys.platform, pyversion=sys.version)
392
392
 
393
393
  def get_host_settings(self):
@@ -0,0 +1,17 @@
1
+ # SupportRequestMessage
2
+
3
+ Configuration containing properties associated with a support request message
4
+
5
+ ## Properties
6
+ Name | Type | Description | Notes
7
+ ------------ | ------------- | ------------- | -------------
8
+ **user_id** | **str** | Unique identifier |
9
+ **org_id** | **str** | Unique identifier |
10
+ **target_user_id** | **str** | Unique identifier |
11
+ **target_org_id** | **str** | Unique identifier |
12
+ **duration** | **int** | Duration for which the support request is valid | [optional]
13
+ **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
14
+
15
+ [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
16
+
17
+
@@ -1,6 +1,6 @@
1
1
  # SupportRequestSpec
2
2
 
3
- Configuration containing properties associated with a support reuest that is allowed to provide support to the organisation.
3
+ Configuration containing properties associated with a support request that is allowed to provide support to the organisation.
4
4
 
5
5
  ## Properties
6
6
  Name | Type | Description | Notes
@@ -9,6 +9,7 @@ Method | HTTP request | Description
9
9
  [**create_challenge_method**](UsersApi.md#create_challenge_method) | **POST** /users/{user_id}/mfa_challenge_methods | Create a multi-factor authentication method
10
10
  [**create_service_account**](UsersApi.md#create_service_account) | **POST** /v1/service_accounts | Create a service account
11
11
  [**create_support_request**](UsersApi.md#create_support_request) | **POST** /v1/support_requests | Create a support request
12
+ [**create_support_request_message**](UsersApi.md#create_support_request_message) | **POST** /v1/support_requests/push | Create support requests message
12
13
  [**create_upstream_user_identity**](UsersApi.md#create_upstream_user_identity) | **POST** /users/{user_id}/upstream_user_identities | Create an upstream user identity
13
14
  [**create_user**](UsersApi.md#create_user) | **POST** /users | Create a user
14
15
  [**create_user_identity_update**](UsersApi.md#create_user_identity_update) | **POST** /users/{user_id}/user_identity_updates | Update a user's core identity information.
@@ -532,6 +533,89 @@ Name | Type | Description | Notes
532
533
 
533
534
  [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
534
535
 
536
+ # **create_support_request_message**
537
+ > create_support_request_message(support_request_message)
538
+
539
+ Create support requests message
540
+
541
+ Creates support requests message by a supporting user so that they can request access to organizations they wish to support.
542
+
543
+ ### Example
544
+
545
+ * Bearer (JWT) Authentication (token-valid):
546
+ ```python
547
+ import time
548
+ import agilicus_api
549
+ from agilicus_api.api import users_api
550
+ from agilicus_api.model.error_message import ErrorMessage
551
+ from agilicus_api.model.support_request_message import SupportRequestMessage
552
+ from pprint import pprint
553
+ # Defining the host is optional and defaults to https://api.agilicus.com
554
+ # See configuration.py for a list of all supported configuration parameters.
555
+ configuration = agilicus_api.Configuration(
556
+ host = "https://api.agilicus.com"
557
+ )
558
+
559
+ # The client must configure the authentication and authorization parameters
560
+ # in accordance with the API server security policy.
561
+ # Examples for each auth method are provided below, use the example that
562
+ # satisfies your auth use case.
563
+
564
+ # Configure Bearer authorization (JWT): token-valid
565
+ configuration = agilicus_api.Configuration(
566
+ access_token = 'YOUR_BEARER_TOKEN'
567
+ )
568
+
569
+ # Enter a context with an instance of the API client
570
+ with agilicus_api.ApiClient(configuration) as api_client:
571
+ # Create an instance of the API class
572
+ api_instance = users_api.UsersApi(api_client)
573
+ support_request_message = SupportRequestMessage(
574
+ user_id="123",
575
+ org_id="123",
576
+ target_user_id="123",
577
+ target_org_id="123",
578
+ duration=1,
579
+ ) # SupportRequestMessage |
580
+
581
+ # example passing only required values which don't have defaults set
582
+ try:
583
+ # Create support requests message
584
+ api_instance.create_support_request_message(support_request_message)
585
+ except agilicus_api.ApiException as e:
586
+ print("Exception when calling UsersApi->create_support_request_message: %s\n" % e)
587
+ ```
588
+
589
+
590
+ ### Parameters
591
+
592
+ Name | Type | Description | Notes
593
+ ------------- | ------------- | ------------- | -------------
594
+ **support_request_message** | [**SupportRequestMessage**](SupportRequestMessage.md)| |
595
+
596
+ ### Return type
597
+
598
+ void (empty response body)
599
+
600
+ ### Authorization
601
+
602
+ [token-valid](../README.md#token-valid)
603
+
604
+ ### HTTP request headers
605
+
606
+ - **Content-Type**: application/json
607
+ - **Accept**: application/json
608
+
609
+
610
+ ### HTTP response details
611
+ | Status code | Description | Response headers |
612
+ |-------------|-------------|------------------|
613
+ **204** | Support request message was created | - |
614
+ **400** | The request body was invalid. See the error message for details. | - |
615
+ **404** | User not found | - |
616
+
617
+ [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
618
+
535
619
  # **create_upstream_user_identity**
536
620
  > UpstreamUserIdentity create_upstream_user_identity(user_id, upstream_user_identity)
537
621
 
@@ -0,0 +1,329 @@
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.04.10
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
+
34
+ class SupportRequestMessage(ModelNormal):
35
+ """NOTE: This class is auto generated by OpenAPI Generator.
36
+ Ref: https://openapi-generator.tech
37
+
38
+ Do not edit the class manually.
39
+
40
+ Attributes:
41
+ allowed_values (dict): The key is the tuple path to the attribute
42
+ and the for var_name this is (var_name,). The value is a dict
43
+ with a capitalized key describing the allowed value and an allowed
44
+ value. These dicts store the allowed enum values.
45
+ attribute_map (dict): The key is attribute name
46
+ and the value is json key in definition.
47
+ discriminator_value_class_map (dict): A dict to go from the discriminator
48
+ variable value to the discriminator class name.
49
+ validations (dict): The key is the tuple path to the attribute
50
+ and the for var_name this is (var_name,). The value is a dict
51
+ that stores validations for max_length, min_length, max_items,
52
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
53
+ inclusive_minimum, and regex.
54
+ additional_properties_type (tuple): A tuple of classes accepted
55
+ as additional properties values.
56
+ """
57
+
58
+ allowed_values = {
59
+ }
60
+
61
+ validations = {
62
+ }
63
+
64
+ @property
65
+ def user_id(self):
66
+ return self.get("user_id")
67
+
68
+ @user_id.setter
69
+ def user_id(self, new_value):
70
+ self.user_id = new_value
71
+
72
+ @property
73
+ def org_id(self):
74
+ return self.get("org_id")
75
+
76
+ @org_id.setter
77
+ def org_id(self, new_value):
78
+ self.org_id = new_value
79
+
80
+ @property
81
+ def target_user_id(self):
82
+ return self.get("target_user_id")
83
+
84
+ @target_user_id.setter
85
+ def target_user_id(self, new_value):
86
+ self.target_user_id = new_value
87
+
88
+ @property
89
+ def target_org_id(self):
90
+ return self.get("target_org_id")
91
+
92
+ @target_org_id.setter
93
+ def target_org_id(self, new_value):
94
+ self.target_org_id = new_value
95
+
96
+ @property
97
+ def duration(self):
98
+ return self.get("duration")
99
+
100
+ @duration.setter
101
+ def duration(self, new_value):
102
+ self.duration = new_value
103
+
104
+ @cached_property
105
+ def additional_properties_type():
106
+ """
107
+ This must be a method because a model may have properties that are
108
+ of type self, this must run after the class is loaded
109
+ """
110
+ return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501
111
+
112
+ _nullable = False
113
+
114
+ @cached_property
115
+ def openapi_types():
116
+ """
117
+ This must be a method because a model may have properties that are
118
+ of type self, this must run after the class is loaded
119
+
120
+ Returns
121
+ openapi_types (dict): The key is attribute name
122
+ and the value is attribute type.
123
+ """
124
+ return {
125
+ 'user_id': (str,), # noqa: E501
126
+ 'org_id': (str,), # noqa: E501
127
+ 'target_user_id': (str,), # noqa: E501
128
+ 'target_org_id': (str,), # noqa: E501
129
+ 'duration': (int,), # noqa: E501
130
+ }
131
+
132
+ @cached_property
133
+ def discriminator():
134
+ return None
135
+
136
+
137
+
138
+ attribute_map = {
139
+ 'user_id': 'user_id', # noqa: E501
140
+ 'org_id': 'org_id', # noqa: E501
141
+ 'target_user_id': 'target_user_id', # noqa: E501
142
+ 'target_org_id': 'target_org_id', # noqa: E501
143
+ 'duration': 'duration', # noqa: E501
144
+ }
145
+
146
+ read_only_vars = {
147
+ }
148
+
149
+ _composed_schemas = {}
150
+
151
+ @classmethod
152
+ @convert_js_args_to_python_args
153
+ def _from_openapi_data(cls, user_id, org_id, target_user_id, target_org_id, *args, **kwargs): # noqa: E501
154
+ """SupportRequestMessage - a model defined in OpenAPI
155
+
156
+ Args:
157
+ user_id (str): Unique identifier
158
+ org_id (str): Unique identifier
159
+ target_user_id (str): Unique identifier
160
+ target_org_id (str): Unique identifier
161
+
162
+ Keyword Args:
163
+ _check_type (bool): if True, values for parameters in openapi_types
164
+ will be type checked and a TypeError will be
165
+ raised if the wrong type is input.
166
+ Defaults to True
167
+ _path_to_item (tuple/list): This is a list of keys or values to
168
+ drill down to the model in received_data
169
+ when deserializing a response
170
+ _spec_property_naming (bool): True if the variable names in the input data
171
+ are serialized names, as specified in the OpenAPI document.
172
+ False if the variable names in the input data
173
+ are pythonic names, e.g. snake case (default)
174
+ _configuration (Configuration): the instance to use when
175
+ deserializing a file_type parameter.
176
+ If passed, type conversion is attempted
177
+ If omitted no type conversion is done.
178
+ _visited_composed_classes (tuple): This stores a tuple of
179
+ classes that we have traveled through so that
180
+ if we see that class again we will not use its
181
+ discriminator again.
182
+ When traveling through a discriminator, the
183
+ composed schema that is
184
+ is traveled through is added to this set.
185
+ For example if Animal has a discriminator
186
+ petType and we pass in "Dog", and the class Dog
187
+ allOf includes Animal, we move through Animal
188
+ once using the discriminator, and pick Dog.
189
+ Then in Dog, we will make an instance of the
190
+ Animal class but this time we won't travel
191
+ through its discriminator because we passed in
192
+ _visited_composed_classes = (Animal,)
193
+ duration (int): Duration for which the support request is valid. [optional] # noqa: E501
194
+ """
195
+
196
+ _check_type = kwargs.pop('_check_type', True)
197
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
198
+ _path_to_item = kwargs.pop('_path_to_item', ())
199
+ _configuration = kwargs.pop('_configuration', None)
200
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
201
+
202
+ self = super(OpenApiModel, cls).__new__(cls)
203
+
204
+ if args:
205
+ raise ApiTypeError(
206
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
207
+ args,
208
+ self.__class__.__name__,
209
+ ),
210
+ path_to_item=_path_to_item,
211
+ valid_classes=(self.__class__,),
212
+ )
213
+
214
+ self._data_store = {}
215
+ self._check_type = _check_type
216
+ self._spec_property_naming = _spec_property_naming
217
+ self._path_to_item = _path_to_item
218
+ self._configuration = _configuration
219
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
220
+
221
+ self.user_id = user_id
222
+ self.org_id = org_id
223
+ self.target_user_id = target_user_id
224
+ self.target_org_id = target_org_id
225
+ for var_name, var_value in kwargs.items():
226
+ if var_name not in self.attribute_map and \
227
+ self._configuration is not None and \
228
+ self._configuration.discard_unknown_keys and \
229
+ self.additional_properties_type is None:
230
+ # discard variable.
231
+ continue
232
+ setattr(self, var_name, var_value)
233
+ return self
234
+
235
+ def __python_set(val):
236
+ return set(val)
237
+
238
+ required_properties = __python_set([
239
+ '_data_store',
240
+ '_check_type',
241
+ '_spec_property_naming',
242
+ '_path_to_item',
243
+ '_configuration',
244
+ '_visited_composed_classes',
245
+ ])
246
+
247
+ @convert_js_args_to_python_args
248
+ def __init__(self, user_id, org_id, target_user_id, target_org_id, *args, **kwargs): # noqa: E501
249
+ """SupportRequestMessage - a model defined in OpenAPI
250
+
251
+ Args:
252
+ user_id (str): Unique identifier
253
+ org_id (str): Unique identifier
254
+ target_user_id (str): Unique identifier
255
+ target_org_id (str): Unique identifier
256
+
257
+ Keyword Args:
258
+ _check_type (bool): if True, values for parameters in openapi_types
259
+ will be type checked and a TypeError will be
260
+ raised if the wrong type is input.
261
+ Defaults to True
262
+ _path_to_item (tuple/list): This is a list of keys or values to
263
+ drill down to the model in received_data
264
+ when deserializing a response
265
+ _spec_property_naming (bool): True if the variable names in the input data
266
+ are serialized names, as specified in the OpenAPI document.
267
+ False if the variable names in the input data
268
+ are pythonic names, e.g. snake case (default)
269
+ _configuration (Configuration): the instance to use when
270
+ deserializing a file_type parameter.
271
+ If passed, type conversion is attempted
272
+ If omitted no type conversion is done.
273
+ _visited_composed_classes (tuple): This stores a tuple of
274
+ classes that we have traveled through so that
275
+ if we see that class again we will not use its
276
+ discriminator again.
277
+ When traveling through a discriminator, the
278
+ composed schema that is
279
+ is traveled through is added to this set.
280
+ For example if Animal has a discriminator
281
+ petType and we pass in "Dog", and the class Dog
282
+ allOf includes Animal, we move through Animal
283
+ once using the discriminator, and pick Dog.
284
+ Then in Dog, we will make an instance of the
285
+ Animal class but this time we won't travel
286
+ through its discriminator because we passed in
287
+ _visited_composed_classes = (Animal,)
288
+ duration (int): Duration for which the support request is valid. [optional] # noqa: E501
289
+ """
290
+
291
+ _check_type = kwargs.pop('_check_type', True)
292
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
293
+ _path_to_item = kwargs.pop('_path_to_item', ())
294
+ _configuration = kwargs.pop('_configuration', None)
295
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
296
+
297
+ if args:
298
+ raise ApiTypeError(
299
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
300
+ args,
301
+ self.__class__.__name__,
302
+ ),
303
+ path_to_item=_path_to_item,
304
+ valid_classes=(self.__class__,),
305
+ )
306
+
307
+ self._data_store = {}
308
+ self._check_type = _check_type
309
+ self._spec_property_naming = _spec_property_naming
310
+ self._path_to_item = _path_to_item
311
+ self._configuration = _configuration
312
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
313
+
314
+ self.user_id = user_id
315
+ self.org_id = org_id
316
+ self.target_user_id = target_user_id
317
+ self.target_org_id = target_org_id
318
+ for var_name, var_value in kwargs.items():
319
+ if var_name not in self.attribute_map and \
320
+ self._configuration is not None and \
321
+ self._configuration.discard_unknown_keys and \
322
+ self.additional_properties_type is None:
323
+ # discard variable.
324
+ continue
325
+ setattr(self, var_name, var_value)
326
+ if var_name in self.read_only_vars:
327
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
328
+ f"class with read only attributes.")
329
+
@@ -755,6 +755,7 @@ from agilicus_api.model.stats_publishing_level_config import StatsPublishingLeve
755
755
  from agilicus_api.model.storage_info import StorageInfo
756
756
  from agilicus_api.model.storage_region import StorageRegion
757
757
  from agilicus_api.model.support_request import SupportRequest
758
+ from agilicus_api.model.support_request_message import SupportRequestMessage
758
759
  from agilicus_api.model.support_request_spec import SupportRequestSpec
759
760
  from agilicus_api.model.support_request_status import SupportRequestStatus
760
761
  from agilicus_api.model.totp_enrollment import TOTPEnrollment
@@ -0,0 +1,36 @@
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.04.10
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.support_request_message import SupportRequestMessage
17
+
18
+
19
+ class TestSupportRequestMessage(unittest.TestCase):
20
+ """SupportRequestMessage unit test stubs"""
21
+
22
+ def setUp(self):
23
+ pass
24
+
25
+ def tearDown(self):
26
+ pass
27
+
28
+ def testSupportRequestMessage(self):
29
+ """Test SupportRequestMessage"""
30
+ # FIXME: construct object with mandatory attributes with example values
31
+ # model = SupportRequestMessage() # noqa: E501
32
+ pass
33
+
34
+
35
+ if __name__ == '__main__':
36
+ unittest.main()
@@ -59,6 +59,13 @@ class TestUsersApi(unittest.TestCase):
59
59
  """
60
60
  pass
61
61
 
62
+ def test_create_support_request_message(self):
63
+ """Test case for create_support_request_message
64
+
65
+ Create support requests message # noqa: E501
66
+ """
67
+ pass
68
+
62
69
  def test_create_upstream_user_identity(self):
63
70
  """Test case for create_upstream_user_identity
64
71
 
@@ -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.04.10
7
- - Package version: 1.285.10
7
+ - Package version: 1.286.0
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
 
@@ -784,6 +784,7 @@ Class | Method | HTTP request | Description
784
784
  *UsersApi* | [**create_challenge_method**](agilicus_api/docs/UsersApi.md#create_challenge_method) | **POST** /users/{user_id}/mfa_challenge_methods | Create a multi-factor authentication method
785
785
  *UsersApi* | [**create_service_account**](agilicus_api/docs/UsersApi.md#create_service_account) | **POST** /v1/service_accounts | Create a service account
786
786
  *UsersApi* | [**create_support_request**](agilicus_api/docs/UsersApi.md#create_support_request) | **POST** /v1/support_requests | Create a support request
787
+ *UsersApi* | [**create_support_request_message**](agilicus_api/docs/UsersApi.md#create_support_request_message) | **POST** /v1/support_requests/push | Create support requests message
787
788
  *UsersApi* | [**create_upstream_user_identity**](agilicus_api/docs/UsersApi.md#create_upstream_user_identity) | **POST** /users/{user_id}/upstream_user_identities | Create an upstream user identity
788
789
  *UsersApi* | [**create_user**](agilicus_api/docs/UsersApi.md#create_user) | **POST** /users | Create a user
789
790
  *UsersApi* | [**create_user_identity_update**](agilicus_api/docs/UsersApi.md#create_user_identity_update) | **POST** /users/{user_id}/user_identity_updates | Update a user's core identity information.
@@ -1587,6 +1588,7 @@ Class | Method | HTTP request | Description
1587
1588
  - [StorageInfo](agilicus_api/docs/StorageInfo.md)
1588
1589
  - [StorageRegion](agilicus_api/docs/StorageRegion.md)
1589
1590
  - [SupportRequest](agilicus_api/docs/SupportRequest.md)
1591
+ - [SupportRequestMessage](agilicus_api/docs/SupportRequestMessage.md)
1590
1592
  - [SupportRequestSpec](agilicus_api/docs/SupportRequestSpec.md)
1591
1593
  - [SupportRequestStatus](agilicus_api/docs/SupportRequestStatus.md)
1592
1594
  - [TOTPEnrollment](agilicus_api/docs/TOTPEnrollment.md)
agilicus/main.py CHANGED
@@ -4574,7 +4574,9 @@ def list_user_desktop_access_info(ctx, user, org_id, **kwargs):
4574
4574
  @click.option(
4575
4575
  "--resource-type",
4576
4576
  default=None,
4577
- type=click.Choice(["application", "application_service", "fileshare", "desktop"]),
4577
+ type=click.Choice(
4578
+ ["application", "application_service", "fileshare", "desktop", "database"]
4579
+ ),
4578
4580
  )
4579
4581
  @click.option("--limit", default=500)
4580
4582
  @click.pass_context
@@ -8616,6 +8618,21 @@ def update_support_request(ctx, support_request_id, **kwargs):
8616
8618
  users.update_support_request(ctx, support_request_id, **kwargs)
8617
8619
 
8618
8620
 
8621
+ @cli.command(name="create-support-request-message")
8622
+ @click.argument("target-user-id", type=str)
8623
+ @click.argument("target-org-id", type=str)
8624
+ @click.option(
8625
+ "--duration", type=int, default=86400, help="duration of support request in seconds"
8626
+ )
8627
+ @click.pass_context
8628
+ def create_support_request_message(
8629
+ ctx, target_user_id, target_org_id, duration, **kwargs
8630
+ ):
8631
+ users.create_support_request_message(
8632
+ ctx, target_user_id, target_org_id, duration, **kwargs
8633
+ )
8634
+
8635
+
8619
8636
  @cli.command(name="add-fake-oidc-issuer")
8620
8637
  @click.argument("issuer-id")
8621
8638
  @click.option("--org-id", default=None)
agilicus/resources.py CHANGED
@@ -27,6 +27,7 @@ permissioned_resource_types = [
27
27
  "group",
28
28
  "launcher",
29
29
  "ssh",
30
+ "database",
30
31
  ]
31
32
  resource_types = permissioned_resource_types + ["service_forwarder"]
32
33
  permissioned_resource_type_enum = click.Choice(permissioned_resource_types)
agilicus/users.py CHANGED
@@ -1242,3 +1242,21 @@ def delete_support_request(ctx, support_request_id, **kwargs):
1242
1242
  apiclient = context.get_apiclient_from_ctx(ctx)
1243
1243
  update_org_from_input_or_ctx(kwargs, ctx, **kwargs)
1244
1244
  return apiclient.user_api.delete_support_request(support_request_id, **kwargs)
1245
+
1246
+
1247
+ def create_support_request_message(
1248
+ ctx, target_user_id, target_org_id, duration=86400, **kwargs
1249
+ ):
1250
+ token = context.get_token(ctx)
1251
+ org_id = context.get_org_id(ctx, token)
1252
+ user_id = get_user_id_from_input_or_ctx(ctx, **kwargs)
1253
+ apiclient = context.get_apiclient_from_ctx(ctx)
1254
+ body = agilicus.SupportRequestMessage(
1255
+ user_id=user_id,
1256
+ org_id=org_id,
1257
+ target_user_id=target_user_id,
1258
+ target_org_id=target_org_id,
1259
+ duration=duration,
1260
+ **input_helpers.strip_none(kwargs),
1261
+ )
1262
+ return apiclient.user_api.create_support_request_message(body)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: agilicus
3
- Version: 1.285.10
3
+ Version: 1.286.0
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=23RwcjtUEabRVD4sKw-U1zx-AgAOd15sN7CnCagyfS8,119829
2
+ agilicus/.openapi-generator/FILES,sha256=yIhPQ7HJLH2j4k8L1n6ZWx70nEhUlMr4MoSnytTm6sE,119968
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=A1WsWrUlZ7-Wr6StjrnKkt2I8sPaE-p2CZie3XZB85Y,4016
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=ueDPc2Oftn0XC0LZfapX88Fp9u1dhdiGpsEXFhrNp_Q,67824
8
+ agilicus/agilicus_api/__init__.py,sha256=mHvi96z1q02odPYSZ_I-Hhfrd9pRN0TFfqbymwajpn8,67901
9
9
  agilicus/agilicus_api/api/__init__.py,sha256=wX02QuCPW9YclBXGwbfv5NVh213HdW_jWBUyZg6ouHo,228
10
10
  agilicus/agilicus_api/api/application_services_api.py,sha256=DXv9q8tLLsuVhkZyf_UneWP3O31zSOB1cg-0VQiQTEA,206067
11
11
  agilicus/agilicus_api/api/application_services_api_mock.py,sha256=uehxTSmv_k5o7gAF8bEG5IHFx8Slg7eTzVSn0XEua-g,11593
@@ -67,13 +67,13 @@ agilicus/agilicus_api/api/tokens_api.py,sha256=ZZpjMuqmrYfDEOWosJPwvWZaMwJqm5jcc
67
67
  agilicus/agilicus_api/api/tokens_api_mock.py,sha256=AHxUBai3OinzYfyuOXFJD2-1ejRlbmZE5kjQrFIBPm4,9976
68
68
  agilicus/agilicus_api/api/trusted_certs_api.py,sha256=1b7_lx6gGo1P1gEgC-GbPoLGPcxZsqyuyKjLP_Ha188,83514
69
69
  agilicus/agilicus_api/api/trusted_certs_api_mock.py,sha256=vS37rAgTW5acoWftViz8_UR6rA56357fIj-62Ycq4og,4178
70
- agilicus/agilicus_api/api/users_api.py,sha256=xOUcgm-qgp8JEuFvXRRcShkSJoKg_Zm7hzQt4k8HD98,328513
71
- agilicus/agilicus_api/api/users_api_mock.py,sha256=OwIrqWy2lYEnE7JZSJ0koHvgcAXdWvWVn8rvUgdB5p0,16880
70
+ agilicus/agilicus_api/api/users_api.py,sha256=m0AYY1Bklnil7A14Fv9gx3r4uM4MFRUZvTjM9U4srXM,333500
71
+ agilicus/agilicus_api/api/users_api_mock.py,sha256=aMSUc12JQAo1O9rp2YnyQldANFGlfi57fMnQyCIrJuE,17209
72
72
  agilicus/agilicus_api/api/whoami_api.py,sha256=_KGR7UHjn52q9S7UXS1qDncs_wJ8WZS5ZEJQODoHym0,7941
73
73
  agilicus/agilicus_api/api/whoami_api_mock.py,sha256=rlvZoWnMCqORMZBg7SOv6d3xp52kELdh6wXcCaIZ93w,346
74
- agilicus/agilicus_api/api_client.py,sha256=SCw9A_b0hOliFO6VRCSCHlqDoUmcRj5E5nR6i-oHP2c,38846
74
+ agilicus/agilicus_api/api_client.py,sha256=cIrvt84h_S3sPthaM9zI2lQSOcpqS4HpbsQF_pavTDQ,38845
75
75
  agilicus/agilicus_api/apis/__init__.py,sha256=aJZD7x-umdSni6ZBr4XxzpH8pwtU9hA5LlCDxcqa1Q8,2224
76
- agilicus/agilicus_api/configuration.py,sha256=9_7sR0TJYftj10CUharDyrr5Ps9FfEtXKMNaHbAwAoY,18448
76
+ agilicus/agilicus_api/configuration.py,sha256=2CrdmcAacRcLLiB-0zE6S2TIQBL_R_fJ3uV1OHlWPo8,18447
77
77
  agilicus/agilicus_api/docs/APIKey.md,sha256=4cKuz4_l9HcEDnUrLwYbEnn9C2WoDayrjfrY1Ixgaf4,1747
78
78
  agilicus/agilicus_api/docs/APIKeyIntrospect.md,sha256=nJ-zkuFm3JMbWFDYYN_vYyQk1snGBtBvIxtCQxamhAU,1019
79
79
  agilicus/agilicus_api/docs/APIKeyIntrospectAuthorizationInfo.md,sha256=7RApOOLjvWQs5sw2jb25g7i3Kta1BiEY-s8VRXfppH8,725
@@ -848,7 +848,8 @@ agilicus/agilicus_api/docs/StatsPublishingLevelConfig.md,sha256=ynseeR6Zu2m3PxCQ
848
848
  agilicus/agilicus_api/docs/StorageInfo.md,sha256=vKZPQ84Pw_f8sHaLkRLmiBV4uVQMl9voR9KFJY0E-58,630
849
849
  agilicus/agilicus_api/docs/StorageRegion.md,sha256=MIwGiQCtiXOEwCcmISKhkF4dzYlJsp4EerPN_UUdHs8,563
850
850
  agilicus/agilicus_api/docs/SupportRequest.md,sha256=8ldaEQ1Ig85FUTXlBrAs_lfvutbuoS7RCkCDGi1yFpA,920
851
- agilicus/agilicus_api/docs/SupportRequestSpec.md,sha256=ieTwWQFHEkRCkLv1ytN9BprBPQ81JPHXNHcLbZX62qc,1100
851
+ agilicus/agilicus_api/docs/SupportRequestMessage.md,sha256=fgMBc2ZqnUExNCN-kDDnUmzm-hfZ34MVimYczPg3j0g,827
852
+ agilicus/agilicus_api/docs/SupportRequestSpec.md,sha256=2wJ5nyHNkgc28m80zcmdh6iUqFxi_qGxFCE7YDYoeVY,1101
852
853
  agilicus/agilicus_api/docs/SupportRequestStatus.md,sha256=S8mEbxPOb8oSXLG3WG2fwVtt_6SGt9zSnT1lwRlIaN4,955
853
854
  agilicus/agilicus_api/docs/TOTPEnrollment.md,sha256=m8kQCpRVUZs0GEycxPhPRoh6FQOb25x5xy3BFmXyqe8,795
854
855
  agilicus/agilicus_api/docs/TOTPEnrollmentAnswer.md,sha256=TlalX6yvEiB4Au5EpZW5hA0hPHLpcT4yu6NZpBa5JSI,665
@@ -927,7 +928,7 @@ agilicus/agilicus_api/docs/UserSSHAccessInfoStatus.md,sha256=YkrbIbQ0YSDvLm3xBkh
927
928
  agilicus/agilicus_api/docs/UserSessionIdentifiers.md,sha256=ACfUc5NUQOua5wov9fwmjUUpSVSYk8-Cij-8HsjcQmw,1302
928
929
  agilicus/agilicus_api/docs/UserStatusEnum.md,sha256=veRPcIdJ2w7yoRJGMS6EAiWmrMy820SBsp-0i817kcg,3116
929
930
  agilicus/agilicus_api/docs/UserSummary.md,sha256=0bqq_hasK22KtpZ2icFg-DB9x4iBPDyb_LN824IU3lw,5424
930
- agilicus/agilicus_api/docs/UsersApi.md,sha256=kd_QUEt_asjqMmBMl9RQ-NCnCUUmlTmUmCvB81iUk68,202838
931
+ agilicus/agilicus_api/docs/UsersApi.md,sha256=1FfjHVmlg1AwuMrkNvn96EbOzEB92pm1Q-avNlpDRdM,205792
931
932
  agilicus/agilicus_api/docs/VNCConnectionInfo.md,sha256=EHg_4_8T0iM1zu-8w9bVbl9jfoLTvIra2NV1qRbjpXw,1089
932
933
  agilicus/agilicus_api/docs/VNCPasswordAuthentication.md,sha256=6PFjJe8hN6VERrDg0JLBHCeUYqteQWRm0g2Zp7MibhM,1303
933
934
  agilicus/agilicus_api/docs/WebAuthNEnrollment.md,sha256=hXNTvOkhO5Roo6wlAAZ8A0Vq_k5jQwUtfgEvYWPUx3E,935
@@ -1694,6 +1695,7 @@ agilicus/agilicus_api/model/stats_publishing_level_config.py,sha256=D9-hM7THCLhh
1694
1695
  agilicus/agilicus_api/model/storage_info.py,sha256=MLvEEsj1B66eeYTLbpuSiyF1uchQjXG70zz9HJxw0BE,13957
1695
1696
  agilicus/agilicus_api/model/storage_region.py,sha256=uFUKOqcAsRSLYyag7PWJhANqMeFEWc8_dln25sR_yr8,13956
1696
1697
  agilicus/agilicus_api/model/support_request.py,sha256=gLQfweoXNor2lNP6Pid6T60v66Hxs-y1Pw8v-kFbkcQ,14583
1698
+ agilicus/agilicus_api/model/support_request_message.py,sha256=dEnm4z8W8kMTkLbFHNDHKbbQwx8GVenUG4sjHgxhPas,15309
1697
1699
  agilicus/agilicus_api/model/support_request_spec.py,sha256=PU1LOxAc5ZSSVhVJ63hYvRKCNzx3sRX4UEqXKxKSmXo,15892
1698
1700
  agilicus/agilicus_api/model/support_request_status.py,sha256=TuEmCNi11q9YrNHHguSJnrtlHnsY8eTkMXuSBNc_ruU,14435
1699
1701
  agilicus/agilicus_api/model/template_extraction.py,sha256=1goS9Fi45X9BFWqhWjr4jUGg2rbbN4RYgGjrBSvBwd0,13616
@@ -1789,7 +1791,7 @@ agilicus/agilicus_api/model/x509_root_certificate_spec.py,sha256=BUiRwU04quBBgB2
1789
1791
  agilicus/agilicus_api/model/x509_root_certificate_status.py,sha256=za2wuR23EE7tAOlwMxJ1oBmN4vQ3PLim-AJ_WwKqaH4,13995
1790
1792
  agilicus/agilicus_api/model/xss_settings.py,sha256=v2KyiTEnkD0fJRa5c3O6tkUpU1AaD0zKCj9M48vgKlU,15489
1791
1793
  agilicus/agilicus_api/model_utils.py,sha256=xaJR13GaL38GJooJPSKUoj6Lb881xm1CE-9VRr6oQ0s,83992
1792
- agilicus/agilicus_api/models/__init__.py,sha256=wsuLjoF89GPXL87-c4lFpa1EqnuDejdyEQqqHOhYbsU,63687
1794
+ agilicus/agilicus_api/models/__init__.py,sha256=SxXBfCsitDBpuaKpx49aTAt31OmhhVmD0hYCr5e1ZIA,63764
1793
1795
  agilicus/agilicus_api/rest.py,sha256=6YvSTkSLYQVPqqU9-R7nSzyhJcfWM9TauHF-jONTUms,14510
1794
1796
  agilicus/agilicus_api/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1795
1797
  agilicus/agilicus_api/test/test_access_requests.py,sha256=yv0VcbFf6jDFtXsrtYSKRNn_UwApD8FuiotRhDeh1j8,3024
@@ -2566,6 +2568,7 @@ agilicus/agilicus_api/test/test_stats_publishing_level_config.py,sha256=0VlzbEmO
2566
2568
  agilicus/agilicus_api/test/test_storage_info.py,sha256=XfgFsmWTAjGBVlHp2_tv8jsiuK1M650-fSnGsX6Y1Y0,2746
2567
2569
  agilicus/agilicus_api/test/test_storage_region.py,sha256=5Rn0VG8XE7ceNyoqEuOdpVAsrlpxy281iLlsfIB1Axo,2760
2568
2570
  agilicus/agilicus_api/test/test_support_request.py,sha256=sNSaCQC-lFVIKPQk8Dor4wvXTgEiBOwWNnSQZaERPT4,3131
2571
+ agilicus/agilicus_api/test/test_support_request_message.py,sha256=hBlYpolER9JneHh0Mx5juu3pyjY2rJR-tRmpZFn-KJ8,2817
2569
2572
  agilicus/agilicus_api/test/test_support_request_spec.py,sha256=QdTu0FGOeCXlM9N2qDb_Bi50NzlTpYl000QIbTOpVqM,2866
2570
2573
  agilicus/agilicus_api/test/test_support_request_status.py,sha256=TptitcIwBazjRaaG_kiqO-DZ72Jiu-hMqmd4pj7ZCls,2909
2571
2574
  agilicus/agilicus_api/test/test_template_extraction.py,sha256=j7qFFdLM4EFmArt_bmfkia7FhBilOQ2WD1VXPxGoxDc,2795
@@ -2645,7 +2648,7 @@ agilicus/agilicus_api/test/test_user_ssh_access_info.py,sha256=J-8FOMSkn8ex5vBJb
2645
2648
  agilicus/agilicus_api/test/test_user_ssh_access_info_status.py,sha256=fM8UoKvP7YfJYYKy7x_e3K9kWK_uyNnctljbQ7SUGUs,3023
2646
2649
  agilicus/agilicus_api/test/test_user_status_enum.py,sha256=1gRy4Eq-exYPwA-FBjD4fF3cl_cEz03G6Nk2sVh2-7M,2768
2647
2650
  agilicus/agilicus_api/test/test_user_summary.py,sha256=xkiv5NQ9DV8ukewp3CrWnPJHpAOe8FKMe4LGS6haVUc,3608
2648
- agilicus/agilicus_api/test/test_users_api.py,sha256=VKCX-DOa164mmzB6pEwASHjgUx1HG2r3S-xmMz3P-qo,12611
2651
+ agilicus/agilicus_api/test/test_users_api.py,sha256=_2vyrKMLnLiHCH4mrP8rHpO7oLRMtDYYjGkyZlYRfwA,12799
2649
2652
  agilicus/agilicus_api/test/test_vnc_connection_info.py,sha256=z66qrIIqpZw81FN6MsFz8kIydjaW4BdZN7q9bDi6MTY,2941
2650
2653
  agilicus/agilicus_api/test/test_vnc_password_authentication.py,sha256=OUP_sMtcJ4LdIzJzaHcmN2AUuiAz9uETSSRSKdcAYR4,2845
2651
2654
  agilicus/agilicus_api/test/test_web_auth_n_enrollment.py,sha256=srI7YsNEQmkNp3Nuz8qRbjn2oRljmq52B36ikzo8aUU,3197
@@ -2664,7 +2667,7 @@ agilicus/agilicus_api/test/test_x509_root_certificate.py,sha256=EUf3M3nayua9gos7
2664
2667
  agilicus/agilicus_api/test/test_x509_root_certificate_spec.py,sha256=HA0CI_UCvyHPvjxa0VFCV5KYfMCwlZFZ_NmgxLnOE_g,2832
2665
2668
  agilicus/agilicus_api/test/test_x509_root_certificate_status.py,sha256=0oWIdhI7Fb-CHU2d9z8Waj-pkDwr0YDAlOKfWpTCCQQ,2846
2666
2669
  agilicus/agilicus_api/test/test_xss_settings.py,sha256=Qg0AQsjkXSKGiyJycvp6HhkImBfrCLpgXvIttGop11g,2746
2667
- agilicus/agilicus_api_README.md,sha256=Ai-oeIXE5cLiewbRsj3xIACLpuztzhNoNud5NHzv7wA,171483
2670
+ agilicus/agilicus_api_README.md,sha256=QXALI6jPA5GCC0uP_BUVyGCewiKhdQ8ozeGD2HYBJj0,171736
2668
2671
  agilicus/aliases.ini,sha256=MxqiVo2f2xdUDVF1YDkNW36AIqN8hrYjlTVfraEUZXY,455
2669
2672
  agilicus/amq.py,sha256=yxi-YTbJPVl10s78Hlr1dmrQR63iaSIoROGVILzFPmE,1775
2670
2673
  agilicus/apps.py,sha256=Mdc_pRXyfa-IvIFH7gNbx0Ob64gUHggZyeSyLUDpjMs,54048
@@ -2719,7 +2722,7 @@ agilicus/labels/labels_main.py,sha256=l2z_41X3sMJoSM483LmAzJE6bKKHVAEvrPjfz7QvFg
2719
2722
  agilicus/launchers.py,sha256=r4nctnVtfP-Ho_HXEfAiMaMqJI0u7pbieHSS3Vd0QBE,11361
2720
2723
  agilicus/logs.py,sha256=Y4XVcLctY-2O-Q_CXbJs9sAqu0NknHKSsqilKiDM_A0,804
2721
2724
  agilicus/lookups.py,sha256=MNmNsKpP7Fq_poLAnL9xo_iptFilKM9ziGLyIe8VKaw,669
2722
- agilicus/main.py,sha256=lJRrx6MueVEVxSpFB5Bqh6NnIrfjwNEJQnyTL3TSewQ,288783
2725
+ agilicus/main.py,sha256=CUZ9S1yi7JaGaOI2snia7-x5JJLw0LNkIJPZWpFJWNk,289285
2723
2726
  agilicus/messages/__init__.py,sha256=cVqfaKUndO-AYfppkdFICM5WvYFFB1hRjXihFWmiGPQ,174
2724
2727
  agilicus/messages/messages.py,sha256=b2eO6BaWI9UZTLETcdy1NotyuNlKIJf6CS_TUzehuk4,9175
2725
2728
  agilicus/messages/messages_main.py,sha256=A0xucYwwUZFIuUc0bAyAqVwofErakmyawq5bwhZKcOU,1598
@@ -2746,7 +2749,7 @@ agilicus/products/products.py,sha256=he27jN3MUyXBdTdV2HRyvUYb0zD3W1TGsuC7NHLKngQ
2746
2749
  agilicus/products/products_main.py,sha256=saa2-e5oeHW6D5AWPcld99KwgQ9nBY3hoW8Jz_5nfMQ,3421
2747
2750
  agilicus/regions.py,sha256=_h4fTwMPJ6XU3ny-8x0Mf3zjM2StbTOWNk8dcq_dJYw,12685
2748
2751
  agilicus/resource_helpers.py,sha256=rATvmW5AN6rt_BIKtJnENyU9QEwujyWaIZV2ou6PPck,1271
2749
- agilicus/resources.py,sha256=zX81nlN2AflbTC0t2Hncz6O2zY-vaqU74SjpaaLMsUI,10589
2752
+ agilicus/resources.py,sha256=PnJwLMSWVQgxSAzjreY-zcyNB2aWM7gtlqUSgrYvb3Y,10605
2750
2753
  agilicus/response.py,sha256=tI2-dAJwhBuuDplSsouuMmCmKHSwR_Mx71af8tgsuYo,468
2751
2754
  agilicus/rules/rules.py,sha256=ALaWcePTAqFXqB9zuXapG4QV0jjZdvDX3a4hYlstL0M,29201
2752
2755
  agilicus/rules/rules_main.py,sha256=3mawQd0C8py7r7MSjXymapskaLw-O-VG1G-Zy3U1i2I,14800
@@ -2761,11 +2764,11 @@ agilicus/tokens.py,sha256=H3_hSNUmyDeidCndQ_rlxqAaliAFIpNDJ1vW-fynwhs,18828
2761
2764
  agilicus/transfers.py,sha256=PYr_fW7dyXNUXzi5Wp5mUjZOvU7MbRzoN-D8Omo-YSQ,1523
2762
2765
  agilicus/trusted_certs/trusted_certs.py,sha256=HCAvYxOA3ooaee2_KbYJd6Yt_dxDEn8hjhy1upVJUYE,7951
2763
2766
  agilicus/trusted_certs/trusted_certs_main.py,sha256=6dHHWXvNIcUa_nA9ptigL4Vibe4nB2wnWFTTJ8AOgXo,5155
2764
- agilicus/users.py,sha256=-LuH9FHaGNWIEqpmgyJx3gfhW5fmkZHWP-G8wKExWpw,41165
2767
+ agilicus/users.py,sha256=bUFtVlTjUeEoQlzsQcfS8ChN0X9mbHs8v0xbkK-cldQ,41772
2765
2768
  agilicus/version.py,sha256=G9OFdL1v_4dLDfk6I6taDNypM5bbO-JHAwilsu9LYgg,23
2766
2769
  agilicus/whoami.py,sha256=kqghtWMgZOd2rhKmfguDwCTm6A3gNS8Kj-S2IBxBtl0,206
2767
- agilicus-1.285.10.dist-info/LICENSE.txt,sha256=Zq4tqiCroC2CVrBB_PWjapRdvpae23nljdiaSkOzUho,1061
2768
- agilicus-1.285.10.dist-info/METADATA,sha256=YYEp5zvoMDSL7Q43wquyEeHv5HNjMrZwcHXKAaPv2RM,3879
2769
- agilicus-1.285.10.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
2770
- agilicus-1.285.10.dist-info/entry_points.txt,sha256=a66hGozzLkHu0IewFzIMbSAhMTNTddUaA2T3_16Gb_s,51
2771
- agilicus-1.285.10.dist-info/RECORD,,
2770
+ agilicus-1.286.0.dist-info/LICENSE.txt,sha256=Zq4tqiCroC2CVrBB_PWjapRdvpae23nljdiaSkOzUho,1061
2771
+ agilicus-1.286.0.dist-info/METADATA,sha256=y9MNF-rs7v-rCquCG0cEMqZ_z5oPCXl3Ojqv3iqI62o,3878
2772
+ agilicus-1.286.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
2773
+ agilicus-1.286.0.dist-info/entry_points.txt,sha256=a66hGozzLkHu0IewFzIMbSAhMTNTddUaA2T3_16Gb_s,51
2774
+ agilicus-1.286.0.dist-info/RECORD,,