scope-client 1.4.967__py3-none-any.whl → 1.4.968__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.
@@ -197,6 +197,7 @@ from scope_client.api_bindings.models.patch_dataset_locator import PatchDatasetL
197
197
  from scope_client.api_bindings.models.patch_group import PatchGroup
198
198
  from scope_client.api_bindings.models.patch_job import PatchJob
199
199
  from scope_client.api_bindings.models.patch_model import PatchModel
200
+ from scope_client.api_bindings.models.patch_organization import PatchOrganization
200
201
  from scope_client.api_bindings.models.patch_project import PatchProject
201
202
  from scope_client.api_bindings.models.patch_service_account_user import PatchServiceAccountUser
202
203
  from scope_client.api_bindings.models.patch_task_request import PatchTaskRequest
@@ -17,6 +17,7 @@ from typing import Any, Dict, List, Optional, Tuple, Union
17
17
  from typing_extensions import Annotated
18
18
 
19
19
  from scope_client.api_bindings.models.organization import Organization
20
+ from scope_client.api_bindings.models.patch_organization import PatchOrganization
20
21
 
21
22
  from scope_client.api_bindings.api_client import ApiClient, RequestSerialized
22
23
  from scope_client.api_bindings.api_response import ApiResponse
@@ -541,3 +542,286 @@ class OrganizationsV1Api:
541
542
  )
542
543
 
543
544
 
545
+
546
+
547
+ @validate_call
548
+ def patch_organization(
549
+ self,
550
+ patch_organization: PatchOrganization,
551
+ _request_timeout: Union[
552
+ None,
553
+ Annotated[StrictFloat, Field(gt=0)],
554
+ Tuple[
555
+ Annotated[StrictFloat, Field(gt=0)],
556
+ Annotated[StrictFloat, Field(gt=0)]
557
+ ]
558
+ ] = None,
559
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
560
+ _content_type: Optional[StrictStr] = None,
561
+ _headers: Optional[Dict[StrictStr, Any]] = None,
562
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
563
+ ) -> Organization:
564
+ """Patch Organization.
565
+
566
+ Requires organization_update permission.
567
+
568
+ :param patch_organization: (required)
569
+ :type patch_organization: PatchOrganization
570
+ :param _request_timeout: timeout setting for this request. If one
571
+ number provided, it will be total request
572
+ timeout. It can also be a pair (tuple) of
573
+ (connection, read) timeouts.
574
+ :type _request_timeout: int, tuple(int, int), optional
575
+ :param _request_auth: set to override the auth_settings for an a single
576
+ request; this effectively ignores the
577
+ authentication in the spec for a single request.
578
+ :type _request_auth: dict, optional
579
+ :param _content_type: force content-type for the request.
580
+ :type _content_type: str, Optional
581
+ :param _headers: set to override the headers for a single
582
+ request; this effectively ignores the headers
583
+ in the spec for a single request.
584
+ :type _headers: dict, optional
585
+ :param _host_index: set to override the host_index for a single
586
+ request; this effectively ignores the host_index
587
+ in the spec for a single request.
588
+ :type _host_index: int, optional
589
+ :return: Returns the result object.
590
+ """ # noqa: E501
591
+
592
+ _param = self._patch_organization_serialize(
593
+ patch_organization=patch_organization,
594
+ _request_auth=_request_auth,
595
+ _content_type=_content_type,
596
+ _headers=_headers,
597
+ _host_index=_host_index
598
+ )
599
+
600
+ _response_types_map: Dict[str, Optional[str]] = {
601
+ '200': "Organization",
602
+ '500': "InternalServerError",
603
+ '404': "NotFoundError",
604
+ '422': "HTTPValidationError",
605
+ }
606
+ response_data = self.api_client.call_api(
607
+ *_param,
608
+ _request_timeout=_request_timeout
609
+ )
610
+ response_data.read()
611
+ return self.api_client.response_deserialize(
612
+ response_data=response_data,
613
+ response_types_map=_response_types_map,
614
+ ).data
615
+
616
+
617
+ @validate_call
618
+ def patch_organization_with_http_info(
619
+ self,
620
+ patch_organization: PatchOrganization,
621
+ _request_timeout: Union[
622
+ None,
623
+ Annotated[StrictFloat, Field(gt=0)],
624
+ Tuple[
625
+ Annotated[StrictFloat, Field(gt=0)],
626
+ Annotated[StrictFloat, Field(gt=0)]
627
+ ]
628
+ ] = None,
629
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
630
+ _content_type: Optional[StrictStr] = None,
631
+ _headers: Optional[Dict[StrictStr, Any]] = None,
632
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
633
+ ) -> ApiResponse[Organization]:
634
+ """Patch Organization.
635
+
636
+ Requires organization_update permission.
637
+
638
+ :param patch_organization: (required)
639
+ :type patch_organization: PatchOrganization
640
+ :param _request_timeout: timeout setting for this request. If one
641
+ number provided, it will be total request
642
+ timeout. It can also be a pair (tuple) of
643
+ (connection, read) timeouts.
644
+ :type _request_timeout: int, tuple(int, int), optional
645
+ :param _request_auth: set to override the auth_settings for an a single
646
+ request; this effectively ignores the
647
+ authentication in the spec for a single request.
648
+ :type _request_auth: dict, optional
649
+ :param _content_type: force content-type for the request.
650
+ :type _content_type: str, Optional
651
+ :param _headers: set to override the headers for a single
652
+ request; this effectively ignores the headers
653
+ in the spec for a single request.
654
+ :type _headers: dict, optional
655
+ :param _host_index: set to override the host_index for a single
656
+ request; this effectively ignores the host_index
657
+ in the spec for a single request.
658
+ :type _host_index: int, optional
659
+ :return: Returns the result object.
660
+ """ # noqa: E501
661
+
662
+ _param = self._patch_organization_serialize(
663
+ patch_organization=patch_organization,
664
+ _request_auth=_request_auth,
665
+ _content_type=_content_type,
666
+ _headers=_headers,
667
+ _host_index=_host_index
668
+ )
669
+
670
+ _response_types_map: Dict[str, Optional[str]] = {
671
+ '200': "Organization",
672
+ '500': "InternalServerError",
673
+ '404': "NotFoundError",
674
+ '422': "HTTPValidationError",
675
+ }
676
+ response_data = self.api_client.call_api(
677
+ *_param,
678
+ _request_timeout=_request_timeout
679
+ )
680
+ response_data.read()
681
+ return self.api_client.response_deserialize(
682
+ response_data=response_data,
683
+ response_types_map=_response_types_map,
684
+ )
685
+
686
+
687
+ @validate_call
688
+ def patch_organization_without_preload_content(
689
+ self,
690
+ patch_organization: PatchOrganization,
691
+ _request_timeout: Union[
692
+ None,
693
+ Annotated[StrictFloat, Field(gt=0)],
694
+ Tuple[
695
+ Annotated[StrictFloat, Field(gt=0)],
696
+ Annotated[StrictFloat, Field(gt=0)]
697
+ ]
698
+ ] = None,
699
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
700
+ _content_type: Optional[StrictStr] = None,
701
+ _headers: Optional[Dict[StrictStr, Any]] = None,
702
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
703
+ ) -> RESTResponseType:
704
+ """Patch Organization.
705
+
706
+ Requires organization_update permission.
707
+
708
+ :param patch_organization: (required)
709
+ :type patch_organization: PatchOrganization
710
+ :param _request_timeout: timeout setting for this request. If one
711
+ number provided, it will be total request
712
+ timeout. It can also be a pair (tuple) of
713
+ (connection, read) timeouts.
714
+ :type _request_timeout: int, tuple(int, int), optional
715
+ :param _request_auth: set to override the auth_settings for an a single
716
+ request; this effectively ignores the
717
+ authentication in the spec for a single request.
718
+ :type _request_auth: dict, optional
719
+ :param _content_type: force content-type for the request.
720
+ :type _content_type: str, Optional
721
+ :param _headers: set to override the headers for a single
722
+ request; this effectively ignores the headers
723
+ in the spec for a single request.
724
+ :type _headers: dict, optional
725
+ :param _host_index: set to override the host_index for a single
726
+ request; this effectively ignores the host_index
727
+ in the spec for a single request.
728
+ :type _host_index: int, optional
729
+ :return: Returns the result object.
730
+ """ # noqa: E501
731
+
732
+ _param = self._patch_organization_serialize(
733
+ patch_organization=patch_organization,
734
+ _request_auth=_request_auth,
735
+ _content_type=_content_type,
736
+ _headers=_headers,
737
+ _host_index=_host_index
738
+ )
739
+
740
+ _response_types_map: Dict[str, Optional[str]] = {
741
+ '200': "Organization",
742
+ '500': "InternalServerError",
743
+ '404': "NotFoundError",
744
+ '422': "HTTPValidationError",
745
+ }
746
+ response_data = self.api_client.call_api(
747
+ *_param,
748
+ _request_timeout=_request_timeout
749
+ )
750
+ return response_data.response
751
+
752
+
753
+ def _patch_organization_serialize(
754
+ self,
755
+ patch_organization,
756
+ _request_auth,
757
+ _content_type,
758
+ _headers,
759
+ _host_index,
760
+ ) -> RequestSerialized:
761
+
762
+ _host = None
763
+
764
+ _collection_formats: Dict[str, str] = {
765
+ }
766
+
767
+ _path_params: Dict[str, str] = {}
768
+ _query_params: List[Tuple[str, str]] = []
769
+ _header_params: Dict[str, Optional[str]] = _headers or {}
770
+ _form_params: List[Tuple[str, str]] = []
771
+ _files: Dict[
772
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
773
+ ] = {}
774
+ _body_params: Optional[bytes] = None
775
+
776
+ # process the path parameters
777
+ # process the query parameters
778
+ # process the header parameters
779
+ # process the form parameters
780
+ # process the body parameter
781
+ if patch_organization is not None:
782
+ _body_params = patch_organization
783
+
784
+
785
+ # set the HTTP header `Accept`
786
+ if 'Accept' not in _header_params:
787
+ _header_params['Accept'] = self.api_client.select_header_accept(
788
+ [
789
+ 'application/json'
790
+ ]
791
+ )
792
+
793
+ # set the HTTP header `Content-Type`
794
+ if _content_type:
795
+ _header_params['Content-Type'] = _content_type
796
+ else:
797
+ _default_content_type = (
798
+ self.api_client.select_header_content_type(
799
+ [
800
+ 'application/json'
801
+ ]
802
+ )
803
+ )
804
+ if _default_content_type is not None:
805
+ _header_params['Content-Type'] = _default_content_type
806
+
807
+ # authentication setting
808
+ _auth_settings: List[str] = [
809
+ 'OAuth2AuthorizationCode'
810
+ ]
811
+
812
+ return self.api_client.param_serialize(
813
+ method='PATCH',
814
+ resource_path='/api/v1/organization',
815
+ path_params=_path_params,
816
+ query_params=_query_params,
817
+ header_params=_header_params,
818
+ body=_body_params,
819
+ post_params=_form_params,
820
+ files=_files,
821
+ auth_settings=_auth_settings,
822
+ collection_formats=_collection_formats,
823
+ _host=_host,
824
+ _request_auth=_request_auth
825
+ )
826
+
827
+
@@ -155,6 +155,7 @@ from scope_client.api_bindings.models.patch_dataset_locator import PatchDatasetL
155
155
  from scope_client.api_bindings.models.patch_group import PatchGroup
156
156
  from scope_client.api_bindings.models.patch_job import PatchJob
157
157
  from scope_client.api_bindings.models.patch_model import PatchModel
158
+ from scope_client.api_bindings.models.patch_organization import PatchOrganization
158
159
  from scope_client.api_bindings.models.patch_project import PatchProject
159
160
  from scope_client.api_bindings.models.patch_service_account_user import PatchServiceAccountUser
160
161
  from scope_client.api_bindings.models.patch_task_request import PatchTaskRequest
@@ -30,7 +30,7 @@ class Organization(BaseModel):
30
30
  created_at: datetime = Field(description="Time of record creation.")
31
31
  updated_at: datetime = Field(description="Time of last record update.")
32
32
  id: StrictStr = Field(description="ID of the organization.")
33
- name: StrictStr = Field(description="Name of the organization.")
33
+ name: StrictStr = Field(description="Name of the organization. Must be globally unique across all Arthur organizations.")
34
34
  __properties: ClassVar[List[str]] = ["created_at", "updated_at", "id", "name"]
35
35
 
36
36
  model_config = ConfigDict(
@@ -0,0 +1,92 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Arthur Scope
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
+
8
+ The version of the OpenAPI document: 0.1.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from pydantic import BaseModel, ConfigDict, StrictStr
21
+ from typing import Any, ClassVar, Dict, List, Optional
22
+ from typing import Optional, Set
23
+ from typing_extensions import Self
24
+
25
+ class PatchOrganization(BaseModel):
26
+ """
27
+ PatchOrganization
28
+ """ # noqa: E501
29
+ name: Optional[StrictStr] = None
30
+ __properties: ClassVar[List[str]] = ["name"]
31
+
32
+ model_config = ConfigDict(
33
+ populate_by_name=True,
34
+ validate_assignment=True,
35
+ protected_namespaces=(),
36
+ )
37
+
38
+
39
+ def to_str(self) -> str:
40
+ """Returns the string representation of the model using alias"""
41
+ return pprint.pformat(self.model_dump(by_alias=True))
42
+
43
+ def to_json(self) -> str:
44
+ """Returns the JSON representation of the model using alias"""
45
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
46
+ return json.dumps(self.to_dict())
47
+
48
+ @classmethod
49
+ def from_json(cls, json_str: str) -> Optional[Self]:
50
+ """Create an instance of PatchOrganization from a JSON string"""
51
+ return cls.from_dict(json.loads(json_str))
52
+
53
+ def to_dict(self) -> Dict[str, Any]:
54
+ """Return the dictionary representation of the model using alias.
55
+
56
+ This has the following differences from calling pydantic's
57
+ `self.model_dump(by_alias=True)`:
58
+
59
+ * `None` is only added to the output dict for nullable fields that
60
+ were set at model initialization. Other fields with value `None`
61
+ are ignored.
62
+ """
63
+ excluded_fields: Set[str] = set([
64
+ ])
65
+
66
+ _dict = self.model_dump(
67
+ by_alias=True,
68
+ exclude=excluded_fields,
69
+ exclude_none=True,
70
+ )
71
+ # set to None if name (nullable) is None
72
+ # and model_fields_set contains the field
73
+ if self.name is None and "name" in self.model_fields_set:
74
+ _dict['name'] = None
75
+
76
+ return _dict
77
+
78
+ @classmethod
79
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
80
+ """Create an instance of PatchOrganization from a dict"""
81
+ if obj is None:
82
+ return None
83
+
84
+ if not isinstance(obj, dict):
85
+ return cls.model_validate(obj)
86
+
87
+ _obj = cls.model_validate({
88
+ "name": obj.get("name")
89
+ })
90
+ return _obj
91
+
92
+
@@ -28,6 +28,7 @@ class PermissionName(str, Enum):
28
28
  """
29
29
  ORGANIZATION_READ = 'organization_read'
30
30
  ORGANIZATION_DELETE = 'organization_delete'
31
+ ORGANIZATION_UPDATE = 'organization_update'
31
32
  ORGANIZATION_LIST_WORKSPACES = 'organization_list_workspaces'
32
33
  ORGANIZATION_CREATE_WORKSPACE = 'organization_create_workspace'
33
34
  ORGANIZATION_LIST_GROUP_MEMBERSHIPS = 'organization_list_group_memberships'
@@ -27,8 +27,7 @@ class RegisterUser(BaseModel):
27
27
  RegisterUser
28
28
  """ # noqa: E501
29
29
  email: StrictStr = Field(description="The user's email.")
30
- organization_name: StrictStr = Field(description="Name of user's organization in Arthur.")
31
- __properties: ClassVar[List[str]] = ["email", "organization_name"]
30
+ __properties: ClassVar[List[str]] = ["email"]
32
31
 
33
32
  model_config = ConfigDict(
34
33
  populate_by_name=True,
@@ -81,8 +80,7 @@ class RegisterUser(BaseModel):
81
80
  return cls.model_validate(obj)
82
81
 
83
82
  _obj = cls.model_validate({
84
- "email": obj.get("email"),
85
- "organization_name": obj.get("organization_name")
83
+ "email": obj.get("email")
86
84
  })
87
85
  return _obj
88
86
 
@@ -29,6 +29,9 @@ class SensitiveUser(BaseModel):
29
29
  """
30
30
  SensitiveUser
31
31
  """ # noqa: E501
32
+ created_at: datetime = Field(description="Time of record creation.")
33
+ updated_at: datetime = Field(description="Time of last record update.")
34
+ organization_id: StrictStr = Field(description="The ID of the Arthur organization the user belongs to.")
32
35
  id: StrictStr = Field(description="Unique user ID assigned by Arthur.")
33
36
  first_name: StrictStr = Field(description="The user's first name.")
34
37
  last_name: Optional[StrictStr]
@@ -37,12 +40,9 @@ class SensitiveUser(BaseModel):
37
40
  user_type: UserType = Field(description="The type of user.")
38
41
  data_plane_id: Optional[StrictStr] = None
39
42
  client_id: Optional[StrictStr] = None
40
- organization_name: StrictStr = Field(description="Name of user's arthur organization.")
41
- created_at: datetime = Field(description="Time of record creation.")
42
- updated_at: datetime = Field(description="Time of last record update.")
43
- organization_id: StrictStr = Field(description="The ID of the organization the user belongs to.")
43
+ organization_name: StrictStr = Field(description="Name of user's Arthur organization.")
44
44
  credentials: Credentials
45
- __properties: ClassVar[List[str]] = ["id", "first_name", "last_name", "email", "picture", "user_type", "data_plane_id", "client_id", "organization_name", "created_at", "updated_at", "organization_id", "credentials"]
45
+ __properties: ClassVar[List[str]] = ["created_at", "updated_at", "organization_id", "id", "first_name", "last_name", "email", "picture", "user_type", "data_plane_id", "client_id", "organization_name", "credentials"]
46
46
 
47
47
  model_config = ConfigDict(
48
48
  populate_by_name=True,
@@ -123,6 +123,9 @@ class SensitiveUser(BaseModel):
123
123
  return cls.model_validate(obj)
124
124
 
125
125
  _obj = cls.model_validate({
126
+ "created_at": obj.get("created_at"),
127
+ "updated_at": obj.get("updated_at"),
128
+ "organization_id": obj.get("organization_id"),
126
129
  "id": obj.get("id"),
127
130
  "first_name": obj.get("first_name"),
128
131
  "last_name": obj.get("last_name"),
@@ -132,9 +135,6 @@ class SensitiveUser(BaseModel):
132
135
  "data_plane_id": obj.get("data_plane_id"),
133
136
  "client_id": obj.get("client_id"),
134
137
  "organization_name": obj.get("organization_name"),
135
- "created_at": obj.get("created_at"),
136
- "updated_at": obj.get("updated_at"),
137
- "organization_id": obj.get("organization_id"),
138
138
  "credentials": Credentials.from_dict(obj["credentials"]) if obj.get("credentials") is not None else None
139
139
  })
140
140
  return _obj
@@ -28,6 +28,9 @@ class User(BaseModel):
28
28
  """
29
29
  User
30
30
  """ # noqa: E501
31
+ created_at: datetime = Field(description="Time of record creation.")
32
+ updated_at: datetime = Field(description="Time of last record update.")
33
+ organization_id: StrictStr = Field(description="The ID of the Arthur organization the user belongs to.")
31
34
  id: StrictStr = Field(description="Unique user ID assigned by Arthur.")
32
35
  first_name: StrictStr = Field(description="The user's first name.")
33
36
  last_name: Optional[StrictStr]
@@ -36,11 +39,8 @@ class User(BaseModel):
36
39
  user_type: UserType = Field(description="The type of user.")
37
40
  data_plane_id: Optional[StrictStr] = None
38
41
  client_id: Optional[StrictStr] = None
39
- organization_name: StrictStr = Field(description="Name of user's arthur organization.")
40
- created_at: datetime = Field(description="Time of record creation.")
41
- updated_at: datetime = Field(description="Time of last record update.")
42
- organization_id: StrictStr = Field(description="The ID of the organization the user belongs to.")
43
- __properties: ClassVar[List[str]] = ["id", "first_name", "last_name", "email", "picture", "user_type", "data_plane_id", "client_id", "organization_name", "created_at", "updated_at", "organization_id"]
42
+ organization_name: StrictStr = Field(description="Name of user's Arthur organization.")
43
+ __properties: ClassVar[List[str]] = ["created_at", "updated_at", "organization_id", "id", "first_name", "last_name", "email", "picture", "user_type", "data_plane_id", "client_id", "organization_name"]
44
44
 
45
45
  model_config = ConfigDict(
46
46
  populate_by_name=True,
@@ -118,6 +118,9 @@ class User(BaseModel):
118
118
  return cls.model_validate(obj)
119
119
 
120
120
  _obj = cls.model_validate({
121
+ "created_at": obj.get("created_at"),
122
+ "updated_at": obj.get("updated_at"),
123
+ "organization_id": obj.get("organization_id"),
121
124
  "id": obj.get("id"),
122
125
  "first_name": obj.get("first_name"),
123
126
  "last_name": obj.get("last_name"),
@@ -126,10 +129,7 @@ class User(BaseModel):
126
129
  "user_type": obj.get("user_type"),
127
130
  "data_plane_id": obj.get("data_plane_id"),
128
131
  "client_id": obj.get("client_id"),
129
- "organization_name": obj.get("organization_name"),
130
- "created_at": obj.get("created_at"),
131
- "updated_at": obj.get("updated_at"),
132
- "organization_id": obj.get("organization_id")
132
+ "organization_name": obj.get("organization_name")
133
133
  })
134
134
  return _obj
135
135
 
@@ -29,6 +29,9 @@ class UserServiceAccountCredentials(BaseModel):
29
29
  """
30
30
  UserServiceAccountCredentials
31
31
  """ # noqa: E501
32
+ created_at: datetime = Field(description="Time of record creation.")
33
+ updated_at: datetime = Field(description="Time of last record update.")
34
+ organization_id: StrictStr = Field(description="The ID of the Arthur organization the user belongs to.")
32
35
  id: StrictStr = Field(description="Unique user ID assigned by Arthur.")
33
36
  first_name: StrictStr = Field(description="The user's first name.")
34
37
  last_name: Optional[StrictStr]
@@ -37,12 +40,9 @@ class UserServiceAccountCredentials(BaseModel):
37
40
  user_type: UserType = Field(description="The type of user.")
38
41
  data_plane_id: Optional[StrictStr] = None
39
42
  client_id: Optional[StrictStr] = None
40
- organization_name: StrictStr = Field(description="Name of user's arthur organization.")
41
- created_at: datetime = Field(description="Time of record creation.")
42
- updated_at: datetime = Field(description="Time of last record update.")
43
- organization_id: StrictStr = Field(description="The ID of the organization the user belongs to.")
43
+ organization_name: StrictStr = Field(description="Name of user's Arthur organization.")
44
44
  credentials: ServiceAccountCredentials = Field(description="The service account credentials.")
45
- __properties: ClassVar[List[str]] = ["id", "first_name", "last_name", "email", "picture", "user_type", "data_plane_id", "client_id", "organization_name", "created_at", "updated_at", "organization_id", "credentials"]
45
+ __properties: ClassVar[List[str]] = ["created_at", "updated_at", "organization_id", "id", "first_name", "last_name", "email", "picture", "user_type", "data_plane_id", "client_id", "organization_name", "credentials"]
46
46
 
47
47
  model_config = ConfigDict(
48
48
  populate_by_name=True,
@@ -123,6 +123,9 @@ class UserServiceAccountCredentials(BaseModel):
123
123
  return cls.model_validate(obj)
124
124
 
125
125
  _obj = cls.model_validate({
126
+ "created_at": obj.get("created_at"),
127
+ "updated_at": obj.get("updated_at"),
128
+ "organization_id": obj.get("organization_id"),
126
129
  "id": obj.get("id"),
127
130
  "first_name": obj.get("first_name"),
128
131
  "last_name": obj.get("last_name"),
@@ -132,9 +135,6 @@ class UserServiceAccountCredentials(BaseModel):
132
135
  "data_plane_id": obj.get("data_plane_id"),
133
136
  "client_id": obj.get("client_id"),
134
137
  "organization_name": obj.get("organization_name"),
135
- "created_at": obj.get("created_at"),
136
- "updated_at": obj.get("updated_at"),
137
- "organization_id": obj.get("organization_id"),
138
138
  "credentials": ServiceAccountCredentials.from_dict(obj["credentials"]) if obj.get("credentials") is not None else None
139
139
  })
140
140
  return _obj
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: scope_client
3
- Version: 1.4.967
3
+ Version: 1.4.968
4
4
  Summary: Arthur Python API Client Library
5
5
  Author-email: Arthur <info@arthur.ai>
6
6
  License: MIT
@@ -1,5 +1,5 @@
1
1
  scope_client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- scope_client/api_bindings/__init__.py,sha256=_iAagaxIAzP-MCUlxgadM7mpJkITph1bAY8kN6Kq6-Y,23985
2
+ scope_client/api_bindings/__init__.py,sha256=ThSfxWt2jYkIzUYkQlgwrHh78MxFqjejk0jsNE3VD0Y,24067
3
3
  scope_client/api_bindings/api_client.py,sha256=nkt88XDyPiuURu94lnI4MtOfMeYXd_jazGUde0T4xVU,27538
4
4
  scope_client/api_bindings/api_response.py,sha256=eMxw1mpmJcoGZ3gs9z6jM4oYoZ10Gjk333s9sKxGv7s,652
5
5
  scope_client/api_bindings/configuration.py,sha256=a0o2OhNYo7GdZscfNtFKW2kfgoln1mcWE-8E_UeiWv8,15338
@@ -23,7 +23,7 @@ scope_client/api_bindings/api/metric_functions_v1_api.py,sha256=45LccTGUq20MocyP
23
23
  scope_client/api_bindings/api/metrics_v1_api.py,sha256=QumpmMptWgGyCRBhNCUU23IQFLHslg3W3gFL4BMxLMI,52522
24
24
  scope_client/api_bindings/api/models_v1_api.py,sha256=jDB0YnD_GakeprRzpwc2Ywqrq9tA76gb-e_HTWWRoFU,108316
25
25
  scope_client/api_bindings/api/o_auth_v1_api.py,sha256=XCr92645-nAMHQtEa3GdVonWTg4tiRuJ0oxdKgB5888,10708
26
- scope_client/api_bindings/api/organizations_v1_api.py,sha256=wCeGjH3bZzP0MNF1ZmAJDyZ2olu_ANsV9Klr4SZgn2s,20469
26
+ scope_client/api_bindings/api/organizations_v1_api.py,sha256=qASaaC_sSMmY97VKhopZsKseimCU0rfNT0TZrvZUyDk,31434
27
27
  scope_client/api_bindings/api/projects_v1_api.py,sha256=wFqaLcwwxQDrF10VtOgaa8PbOE5VaC6ERNCSrRJaUFQ,59391
28
28
  scope_client/api_bindings/api/registration_v1_api.py,sha256=cPmagSOgnne2cZNgYDKm2L7SZmy8tsaL_xZBFekmnH8,12175
29
29
  scope_client/api_bindings/api/roles_v1_api.py,sha256=LnlGL0BhhNAsXpIIkCyoBV765rw2bcIwWPz3EsyQi18,11234
@@ -32,7 +32,7 @@ scope_client/api_bindings/api/upsolve_v1_api.py,sha256=Vdep9x-_lIJq_kOwtsGqYqkss
32
32
  scope_client/api_bindings/api/users_v1_api.py,sha256=MxLtNxP354ftK-IjSQlkdhpL9SmzJw25SrLNMQ-vuhI,102451
33
33
  scope_client/api_bindings/api/webhooks_v1_api.py,sha256=86tRi7pgwICshf8WVyYA1WrJggThpnsTaON9Mx8R-0M,71286
34
34
  scope_client/api_bindings/api/workspaces_v1_api.py,sha256=OjMc-pJe2JAGgv5ZGTD8_TkQxw82vz2e381-5m37vJ4,58653
35
- scope_client/api_bindings/models/__init__.py,sha256=xdpJhSaMLcINA4t0FuS4fAHjId1YEecafToPSs9ZbFY,21398
35
+ scope_client/api_bindings/models/__init__.py,sha256=NcDaAoNsKcstirr2XgQFOF2sR22mU8GIxpn020KC_nM,21480
36
36
  scope_client/api_bindings/models/aggregation_metric_type.py,sha256=USKpDqhX4TQ4lqIoHOp3q70mydsf1u_zc1EKus9QhYo,783
37
37
  scope_client/api_bindings/models/aggregation_spec.py,sha256=gWFTgLqxNdiIw4iXwbNqKAnAwDpbcgeoFfQ_7VxtKOQ,4109
38
38
  scope_client/api_bindings/models/aggregation_spec_schema.py,sha256=MHGlB9eF8NfOasOHiqj1ZzYiBaIl8y8J2SmQysoSWVU,4624
@@ -163,7 +163,7 @@ scope_client/api_bindings/models/numeric_point.py,sha256=rKsENbmx9V5ELANWr2oEeyb
163
163
  scope_client/api_bindings/models/numeric_time_series.py,sha256=DbDByoYRastxFyfyQ3xw0AOmKcYXqTHOGC6hvtkoD9c,3782
164
164
  scope_client/api_bindings/models/object_type.py,sha256=L58VjaX1mD5MRlxmABO6R4_rBIRkrfSqlcLH88iUJlo,3329
165
165
  scope_client/api_bindings/models/object_value.py,sha256=4KpiwJjt00Xp10s38VHdld8HfTFpX5-1r00APnfkAuI,5887
166
- scope_client/api_bindings/models/organization.py,sha256=0lE5TKrq9URLvR_zy7JnhCvZgwachuxLEuV2aB3cYIk,2934
166
+ scope_client/api_bindings/models/organization.py,sha256=BQJHXIGcrmcGQrxD4JhIEBlaaazysZ5nYdPZM9W1N_o,2991
167
167
  scope_client/api_bindings/models/pagination.py,sha256=XWpYUWgFJIYmtJ3bMOqGlu6ganeK4wUxpZ8mCPC1d1Q,3118
168
168
  scope_client/api_bindings/models/patch_alert_rule.py,sha256=nAWWly90eTCnFDwuSdxRKmcg4hhMM5zvvnU98_OpPvg,4843
169
169
  scope_client/api_bindings/models/patch_connector_spec.py,sha256=EzW-KkOwk0B0hnr5fzsfLcH6ZF5c2sFBoVA9er8o_yk,3754
@@ -173,6 +173,7 @@ scope_client/api_bindings/models/patch_dataset_locator.py,sha256=Mo1AnQfzup1mXNV
173
173
  scope_client/api_bindings/models/patch_group.py,sha256=q8rDHJsJko5n1zbK--Y4iA1xcSi_cvIaYNGPsz6Oa88,3024
174
174
  scope_client/api_bindings/models/patch_job.py,sha256=-51MGIFNEozHLAMBAH6H6uUyRG-vv3AOrNdRcba6wZk,2736
175
175
  scope_client/api_bindings/models/patch_model.py,sha256=UEoEIsHYbhRih5sv5jcBtJ-Ozh4X9UKRZGXgT1hj7jE,3367
176
+ scope_client/api_bindings/models/patch_organization.py,sha256=1_7DFwaxm7qN5idkCn2WqgPbJdq1vaMpNYQFfy05lAo,2715
176
177
  scope_client/api_bindings/models/patch_project.py,sha256=lKbKelM7zHXU_HN4bB7VhE8GfoLAdVj37Csw-Q8DbJg,3032
177
178
  scope_client/api_bindings/models/patch_service_account_user.py,sha256=l7iBIFlTo_I39LA1MuwTVR6FzwbVM_a3b0nQ3jRNl9U,2739
178
179
  scope_client/api_bindings/models/patch_task_request.py,sha256=ZrdlJsieytygYJm4MraqIsOiNUt-EjDIZzRzC8TqL6Q,3779
@@ -180,7 +181,7 @@ scope_client/api_bindings/models/patch_user.py,sha256=Q_RqYiqCFjWsHfTWK0RqpdKpJu
180
181
  scope_client/api_bindings/models/patch_webhook.py,sha256=Nck18gezSVXn3Tsn2FgbmaVWvlajrm_rRY1Lt7XKRtU,3571
181
182
  scope_client/api_bindings/models/patch_workspace.py,sha256=oX4U-aAgTlCZr5Xor8tyZWBZBll5BwgCeqNXyfC4rAc,2530
182
183
  scope_client/api_bindings/models/permission.py,sha256=uxCnKjgZwGxr_-BidbwKWt_TVRnDhtliWd6uq9qI7yU,3002
183
- scope_client/api_bindings/models/permission_name.py,sha256=Xu84yddwkuN0YZmVOjYO4WLNb6DJy8_hxqkrW-9sOrY,7564
184
+ scope_client/api_bindings/models/permission_name.py,sha256=EsyfKSq8QUpf-30sjS8vPZ_dE3TMkELjIuNTqVFQA9M,7612
184
185
  scope_client/api_bindings/models/permission_request_item.py,sha256=czzZsHDgvFOyZe8mjnPJtYO-eDz42jzqjzPtGfPketc,3084
185
186
  scope_client/api_bindings/models/permission_response_item.py,sha256=7D0mG1etQeYIYE9U6if8zIgJh0JEQOruk5aH6TtiNtw,3262
186
187
  scope_client/api_bindings/models/permissions_request.py,sha256=dbh_2kJdTzuZzZ8UjQAdfxnDtOXwFeDIzvdflOaU_3A,3311
@@ -230,7 +231,7 @@ scope_client/api_bindings/models/put_model_metrics_schedule.py,sha256=IV7Hb5ZXc_
230
231
  scope_client/api_bindings/models/put_retrieved_data.py,sha256=WDSM5cHFoevAGyyLqfiB8ExxW4FCQf1a5XBSNhqGdKI,2547
231
232
  scope_client/api_bindings/models/put_task_state_cache_request.py,sha256=KKXZlrZQqzB09NlJWHFB6h0nJ64DWU9dtk4mZmu0jSs,2879
232
233
  scope_client/api_bindings/models/regex_config.py,sha256=y_miFKVjeqFGoF-O2Eo4Xt7wdBWbTzVWvZI8ZJfSXHA,2661
233
- scope_client/api_bindings/models/register_user.py,sha256=Eo2hj58W8WGBr9jDcLWSSm1yztVYIL7h1n01xnLd19I,2700
234
+ scope_client/api_bindings/models/register_user.py,sha256=n7yUSYBkZs1QH_jnqODH-Ht9_bffV99ftyenywDDjeo,2521
234
235
  scope_client/api_bindings/models/resource_kind.py,sha256=O7SKcED4lBIOgmCCofzP-cPY4WeEumZZsKZTrAw5MP0,1166
235
236
  scope_client/api_bindings/models/resource_list_aggregation_spec_schema.py,sha256=mA_F0lSCg6z4lUe7Q7JbkPQ80685VbgcJVxC-hEy1-I,3579
236
237
  scope_client/api_bindings/models/resource_list_alert_rule.py,sha256=NdWI4bX90tr9TsxqJtAQcap1QZO19OZt-rHUrpfXmPw,3482
@@ -267,7 +268,7 @@ scope_client/api_bindings/models/schedule_jobs_job_spec.py,sha256=S75JHtQV3VvJ58
267
268
  scope_client/api_bindings/models/schema_inspection_job_spec.py,sha256=yKpGEstb0ze_F-jajJd8V9Dfulr4wv5BDUoZ19gnNBk,3352
268
269
  scope_client/api_bindings/models/scope_schema_tag.py,sha256=xvPNpX1reIQxcMPPzKZMbJIKRBTjgsTBI3soRfRazHs,982
269
270
  scope_client/api_bindings/models/sensitive_data_plane.py,sha256=YhYmBumL2FuTjqWPv0FLz0xkNRAvvAjbEzDcJmKyhjw,4062
270
- scope_client/api_bindings/models/sensitive_user.py,sha256=lTTowkkooF0HPAnCW60Szmb-bfpIl0zs-rRag9QA640,5519
271
+ scope_client/api_bindings/models/sensitive_user.py,sha256=jBBMTZaktUrF0tCjEybOFSD5zBILwfnQBou7yg1g9SM,5526
271
272
  scope_client/api_bindings/models/service_account_credentials.py,sha256=jjnqsr-YyTFyOwi8jMx1ygyE1uzvyO83FZSe_5iA8R8,2772
272
273
  scope_client/api_bindings/models/sketch_metric.py,sha256=-V2OOnIKS36ucSdAWZQLD3Q3fMUAx5EnLaYFmYHm3P0,3262
273
274
  scope_client/api_bindings/models/sketch_point.py,sha256=liGTVlg7u3B83hX4vOVtKo987G-x8K5Hn97Ru2YNOc4,2784
@@ -279,9 +280,9 @@ scope_client/api_bindings/models/task_response.py,sha256=J_gaN6GokYLh7qcL6g10vnR
279
280
  scope_client/api_bindings/models/toxicity_config.py,sha256=hNi71Gj8Y6w7Bxy8uPwCNeY984zBFDYjNI-psWEERGc,3415
280
281
  scope_client/api_bindings/models/update_model_task_rules_job_spec.py,sha256=KrwhSittkKBCnFhOTBqc3mLUkCg8rl3eb6lpA9YuNuQ,4536
281
282
  scope_client/api_bindings/models/upsolve_token.py,sha256=Tp09Alv4XAG_1Jccgr1Wpn3XyuwupCmMqWvF8LHxnTI,2533
282
- scope_client/api_bindings/models/user.py,sha256=iW9M0isNrpBBLIf_ycbmMCm6sZv6nMn8AhhtWQmZ43o,5071
283
+ scope_client/api_bindings/models/user.py,sha256=DaajZOcQamUJeuAGURSrlyUSesUflnHp9xG32tXxSBk,5078
283
284
  scope_client/api_bindings/models/user_credentials.py,sha256=EfUMAguJoZBFxUY81mPWVFw35F1V_mOx5jDeY5M42H4,2548
284
- scope_client/api_bindings/models/user_service_account_credentials.py,sha256=GW257mS_H-xlgbZNB9FVCQLb7e5yMgBAhGDcbteba3Y,5697
285
+ scope_client/api_bindings/models/user_service_account_credentials.py,sha256=wiuOaWIE9FmEdERkx94jdM41B-OXDeeRrEF71ZRtwqA,5704
285
286
  scope_client/api_bindings/models/user_sort.py,sha256=I7WwH9B9G46681oGjcG-Oa-cHASpTDhqVcXBKfNPuZs,796
286
287
  scope_client/api_bindings/models/user_type.py,sha256=mdMxrQ317Q_Td13CRUcbLVLTN02sjQb_d-5aX4LWRRw,786
287
288
  scope_client/api_bindings/models/validation_error.py,sha256=zxWsSF4di49xg_XpfsxAwfSVYn3vM4o7RUy2IY5-GGo,3112
@@ -298,7 +299,7 @@ scope_client/auth/device_authorizer.py,sha256=bJMIZRjkwQwoSWTLEp7OoXM2MytO3ADSD9
298
299
  scope_client/auth/discovery.py,sha256=hR0MglzRWHdwyi72If5hTnjO50fDJhquP_DD7OzjIQQ,1188
299
300
  scope_client/auth/oauth_api_config.py,sha256=wcEslusOFKr0oTzW0Ku2MhM1mvc-nm4BEJU8LHo1uXA,1347
300
301
  scope_client/auth/session.py,sha256=wCriib5ajfm1e1WTL_QXVCJmEOrGwQg_0v91e5qrC6g,2649
301
- scope_client-1.4.967.dist-info/METADATA,sha256=CITeH5kFxk7kEo3xcKU3fNX5xIbvX8sECGsm30I-8hg,1776
302
- scope_client-1.4.967.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
303
- scope_client-1.4.967.dist-info/top_level.txt,sha256=x6MngS09hi-TUDoUGb3SLzmnf8_cf8IVAVNPSqtTzAY,13
304
- scope_client-1.4.967.dist-info/RECORD,,
302
+ scope_client-1.4.968.dist-info/METADATA,sha256=ykrvJS9Gga2bka__Bv7W8IWPYVZWqueI-ilsq9YdA-8,1776
303
+ scope_client-1.4.968.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
304
+ scope_client-1.4.968.dist-info/top_level.txt,sha256=x6MngS09hi-TUDoUGb3SLzmnf8_cf8IVAVNPSqtTzAY,13
305
+ scope_client-1.4.968.dist-info/RECORD,,