legit-api-client 1.1.4411__py3-none-any.whl → 1.1.4413__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.
@@ -14,7 +14,7 @@
14
14
  """ # noqa: E501
15
15
 
16
16
 
17
- __version__ = "1.1.4411"
17
+ __version__ = "1.1.4413"
18
18
 
19
19
  # Define package exports
20
20
  __all__ = [
@@ -152,6 +152,7 @@ __all__ = [
152
152
  "IssueOpeningReasonDto",
153
153
  "IssueOriginDto",
154
154
  "IssueOriginParams",
155
+ "IssueReachability",
155
156
  "IssueSortingColumn",
156
157
  "IssueStatus",
157
158
  "IssueTagDto",
@@ -190,6 +191,7 @@ __all__ = [
190
191
  "ProductUnitDto",
191
192
  "ProductUnitDtoCustomFieldsValue",
192
193
  "ProductUnitEnvironment",
194
+ "ProductUnitIssueDto",
193
195
  "ProductUnitNameDto",
194
196
  "ProductUnitType",
195
197
  "ProgrammingLanguage",
@@ -212,6 +214,7 @@ __all__ = [
212
214
  "SecretsDataDto",
213
215
  "Severity",
214
216
  "SnoozedType",
217
+ "SourceDto",
215
218
  "StringCustomerFacingCursorPagedDto",
216
219
  "TagDto",
217
220
  "TagSource",
@@ -367,6 +370,7 @@ from legit_api_client.models.issue_ignoring_reason_dto import IssueIgnoringReaso
367
370
  from legit_api_client.models.issue_opening_reason_dto import IssueOpeningReasonDto as IssueOpeningReasonDto
368
371
  from legit_api_client.models.issue_origin_dto import IssueOriginDto as IssueOriginDto
369
372
  from legit_api_client.models.issue_origin_params import IssueOriginParams as IssueOriginParams
373
+ from legit_api_client.models.issue_reachability import IssueReachability as IssueReachability
370
374
  from legit_api_client.models.issue_sorting_column import IssueSortingColumn as IssueSortingColumn
371
375
  from legit_api_client.models.issue_status import IssueStatus as IssueStatus
372
376
  from legit_api_client.models.issue_tag_dto import IssueTagDto as IssueTagDto
@@ -405,6 +409,7 @@ from legit_api_client.models.product_unit_asset_dto import ProductUnitAssetDto a
405
409
  from legit_api_client.models.product_unit_dto import ProductUnitDto as ProductUnitDto
406
410
  from legit_api_client.models.product_unit_dto_custom_fields_value import ProductUnitDtoCustomFieldsValue as ProductUnitDtoCustomFieldsValue
407
411
  from legit_api_client.models.product_unit_environment import ProductUnitEnvironment as ProductUnitEnvironment
412
+ from legit_api_client.models.product_unit_issue_dto import ProductUnitIssueDto as ProductUnitIssueDto
408
413
  from legit_api_client.models.product_unit_name_dto import ProductUnitNameDto as ProductUnitNameDto
409
414
  from legit_api_client.models.product_unit_type import ProductUnitType as ProductUnitType
410
415
  from legit_api_client.models.programming_language import ProgrammingLanguage as ProgrammingLanguage
@@ -427,6 +432,7 @@ from legit_api_client.models.secret_issue_validity_status import SecretIssueVali
427
432
  from legit_api_client.models.secrets_data_dto import SecretsDataDto as SecretsDataDto
428
433
  from legit_api_client.models.severity import Severity as Severity
429
434
  from legit_api_client.models.snoozed_type import SnoozedType as SnoozedType
435
+ from legit_api_client.models.source_dto import SourceDto as SourceDto
430
436
  from legit_api_client.models.string_customer_facing_cursor_paged_dto import StringCustomerFacingCursorPagedDto as StringCustomerFacingCursorPagedDto
431
437
  from legit_api_client.models.tag_dto import TagDto as TagDto
432
438
  from legit_api_client.models.tag_source import TagSource as TagSource
@@ -91,7 +91,7 @@ class ApiClient:
91
91
  self.default_headers[header_name] = header_value
92
92
  self.cookie = cookie
93
93
  # Set default User-Agent.
94
- self.user_agent = 'OpenAPI-Generator/1.1.4411/python'
94
+ self.user_agent = 'OpenAPI-Generator/1.1.4413/python'
95
95
  self.client_side_validation = configuration.client_side_validation
96
96
 
97
97
  def __enter__(self):
@@ -515,7 +515,7 @@ class Configuration:
515
515
  "OS: {env}\n"\
516
516
  "Python Version: {pyversion}\n"\
517
517
  "Version of the API: 1.0\n"\
518
- "SDK Package Version: 1.1.4411".\
518
+ "SDK Package Version: 1.1.4413".\
519
519
  format(env=sys.platform, pyversion=sys.version)
520
520
 
521
521
  def get_host_settings(self) -> List[HostSetting]:
@@ -118,6 +118,7 @@ from legit_api_client.models.issue_ignoring_reason_dto import IssueIgnoringReaso
118
118
  from legit_api_client.models.issue_opening_reason_dto import IssueOpeningReasonDto
119
119
  from legit_api_client.models.issue_origin_dto import IssueOriginDto
120
120
  from legit_api_client.models.issue_origin_params import IssueOriginParams
121
+ from legit_api_client.models.issue_reachability import IssueReachability
121
122
  from legit_api_client.models.issue_sorting_column import IssueSortingColumn
122
123
  from legit_api_client.models.issue_status import IssueStatus
123
124
  from legit_api_client.models.issue_tag_dto import IssueTagDto
@@ -156,6 +157,7 @@ from legit_api_client.models.product_unit_asset_dto import ProductUnitAssetDto
156
157
  from legit_api_client.models.product_unit_dto import ProductUnitDto
157
158
  from legit_api_client.models.product_unit_dto_custom_fields_value import ProductUnitDtoCustomFieldsValue
158
159
  from legit_api_client.models.product_unit_environment import ProductUnitEnvironment
160
+ from legit_api_client.models.product_unit_issue_dto import ProductUnitIssueDto
159
161
  from legit_api_client.models.product_unit_name_dto import ProductUnitNameDto
160
162
  from legit_api_client.models.product_unit_type import ProductUnitType
161
163
  from legit_api_client.models.programming_language import ProgrammingLanguage
@@ -178,6 +180,7 @@ from legit_api_client.models.secret_issue_validity_status import SecretIssueVali
178
180
  from legit_api_client.models.secrets_data_dto import SecretsDataDto
179
181
  from legit_api_client.models.severity import Severity
180
182
  from legit_api_client.models.snoozed_type import SnoozedType
183
+ from legit_api_client.models.source_dto import SourceDto
181
184
  from legit_api_client.models.string_customer_facing_cursor_paged_dto import StringCustomerFacingCursorPagedDto
182
185
  from legit_api_client.models.tag_dto import TagDto
183
186
  from legit_api_client.models.tag_source import TagSource
@@ -17,9 +17,13 @@ import pprint
17
17
  import re # noqa: F401
18
18
  import json
19
19
 
20
+ from datetime import datetime
20
21
  from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr
21
22
  from typing import Any, ClassVar, Dict, List, Optional, Union
23
+ from legit_api_client.models.closing_reason import ClosingReason
24
+ from legit_api_client.models.issue_status import IssueStatus
22
25
  from legit_api_client.models.issue_type import IssueType
26
+ from legit_api_client.models.origin_type import OriginType
23
27
  from legit_api_client.models.severity import Severity
24
28
  from typing import Optional, Set
25
29
  from typing_extensions import Self
@@ -32,7 +36,14 @@ class BasicIssue(BaseModel):
32
36
  severity: Optional[Severity] = Field(default=None, description="Severity level of the issue")
33
37
  id: Optional[StrictStr] = Field(default=None, description="Unique identifier for the issue")
34
38
  score: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Risk score of the issue (0-100)")
35
- __properties: ClassVar[List[str]] = ["issueType", "severity", "id", "score"]
39
+ status: Optional[IssueStatus] = Field(default=None, description="Current status of the issue")
40
+ detected_at: Optional[datetime] = Field(default=None, description="Timestamp when the issue was first detected by legit, in ISO 8601 format", alias="detectedAt")
41
+ last_closed_at: Optional[datetime] = Field(default=None, description="Timestamp when the issue was last closed (if applicable), in ISO 8601 format", alias="lastClosedAt")
42
+ closing_reason: Optional[ClosingReason] = Field(default=None, description="Reason why the issue was closed (if applicable)", alias="closingReason")
43
+ origin_type: Optional[OriginType] = Field(default=None, description="Type of asset where the issue was found", alias="originType")
44
+ origin_id: Optional[StrictStr] = Field(default=None, description="Identifier of the asset where the issue was found", alias="originId")
45
+ policy_name: Optional[StrictStr] = Field(default=None, description="Name of the policy that detected this issue", alias="policyName")
46
+ __properties: ClassVar[List[str]] = ["issueType", "severity", "id", "score", "status", "detectedAt", "lastClosedAt", "closingReason", "originType", "originId", "policyName"]
36
47
 
37
48
  model_config = ConfigDict(
38
49
  populate_by_name=True,
@@ -83,6 +94,31 @@ class BasicIssue(BaseModel):
83
94
  if self.score is None and "score" in self.model_fields_set:
84
95
  _dict['score'] = None
85
96
 
97
+ # set to None if detected_at (nullable) is None
98
+ # and model_fields_set contains the field
99
+ if self.detected_at is None and "detected_at" in self.model_fields_set:
100
+ _dict['detectedAt'] = None
101
+
102
+ # set to None if last_closed_at (nullable) is None
103
+ # and model_fields_set contains the field
104
+ if self.last_closed_at is None and "last_closed_at" in self.model_fields_set:
105
+ _dict['lastClosedAt'] = None
106
+
107
+ # set to None if closing_reason (nullable) is None
108
+ # and model_fields_set contains the field
109
+ if self.closing_reason is None and "closing_reason" in self.model_fields_set:
110
+ _dict['closingReason'] = None
111
+
112
+ # set to None if origin_id (nullable) is None
113
+ # and model_fields_set contains the field
114
+ if self.origin_id is None and "origin_id" in self.model_fields_set:
115
+ _dict['originId'] = None
116
+
117
+ # set to None if policy_name (nullable) is None
118
+ # and model_fields_set contains the field
119
+ if self.policy_name is None and "policy_name" in self.model_fields_set:
120
+ _dict['policyName'] = None
121
+
86
122
  return _dict
87
123
 
88
124
  @classmethod
@@ -98,7 +134,14 @@ class BasicIssue(BaseModel):
98
134
  "issueType": obj.get("issueType"),
99
135
  "severity": obj.get("severity"),
100
136
  "id": obj.get("id"),
101
- "score": obj.get("score")
137
+ "score": obj.get("score"),
138
+ "status": obj.get("status"),
139
+ "detectedAt": obj.get("detectedAt"),
140
+ "lastClosedAt": obj.get("lastClosedAt"),
141
+ "closingReason": obj.get("closingReason"),
142
+ "originType": obj.get("originType"),
143
+ "originId": obj.get("originId"),
144
+ "policyName": obj.get("policyName")
102
145
  })
103
146
  return _obj
104
147
 
@@ -27,9 +27,11 @@ from legit_api_client.models.issue_closing_location_dto import IssueClosingLocat
27
27
  from legit_api_client.models.issue_status import IssueStatus
28
28
  from legit_api_client.models.issue_type import IssueType
29
29
  from legit_api_client.models.origin_type import OriginType
30
+ from legit_api_client.models.product_unit_issue_dto import ProductUnitIssueDto
30
31
  from legit_api_client.models.secrets_data_dto import SecretsDataDto
31
32
  from legit_api_client.models.severity import Severity
32
33
  from legit_api_client.models.snoozed_type import SnoozedType
34
+ from legit_api_client.models.source_dto import SourceDto
33
35
  from typing import Optional, Set
34
36
  from typing_extensions import Self
35
37
 
@@ -61,7 +63,9 @@ class CustomerFacingIssueDto(BaseModel):
61
63
  action_id: Optional[StrictStr] = Field(default=None, description="Unique identifier for the action the issue belongs to", alias="actionId")
62
64
  policy_name: Optional[StrictStr] = Field(default=None, description="Name of the policy that detected this issue", alias="policyName")
63
65
  assigned_user_id: Optional[StrictStr] = Field(default=None, description="ID of the user assigned to handle this issue (if applicable)", alias="assignedUserId")
64
- __properties: ClassVar[List[str]] = ["id", "title", "detectedAt", "lastClosedAt", "lastActionTime", "status", "issueType", "severity", "policySeverity", "closingReason", "closingLocation", "statusChangedNote", "snoozedType", "snoozedUntil", "score", "secretsDataDto", "dependencyVulnerabilityDataDto", "dastDataDto", "originId", "originType", "originLink", "actionId", "policyName", "assignedUserId"]
66
+ sources: Optional[List[SourceDto]] = Field(default=None, description="The sources the issue originated from")
67
+ product_units: Optional[List[ProductUnitIssueDto]] = Field(default=None, alias="productUnits")
68
+ __properties: ClassVar[List[str]] = ["id", "title", "detectedAt", "lastClosedAt", "lastActionTime", "status", "issueType", "severity", "policySeverity", "closingReason", "closingLocation", "statusChangedNote", "snoozedType", "snoozedUntil", "score", "secretsDataDto", "dependencyVulnerabilityDataDto", "dastDataDto", "originId", "originType", "originLink", "actionId", "policyName", "assignedUserId", "sources", "productUnits"]
65
69
 
66
70
  model_config = ConfigDict(
67
71
  populate_by_name=True,
@@ -111,6 +115,20 @@ class CustomerFacingIssueDto(BaseModel):
111
115
  # override the default output from pydantic by calling `to_dict()` of dast_data_dto
112
116
  if self.dast_data_dto:
113
117
  _dict['dastDataDto'] = self.dast_data_dto.to_dict()
118
+ # override the default output from pydantic by calling `to_dict()` of each item in sources (list)
119
+ _items = []
120
+ if self.sources:
121
+ for _item_sources in self.sources:
122
+ if _item_sources:
123
+ _items.append(_item_sources.to_dict())
124
+ _dict['sources'] = _items
125
+ # override the default output from pydantic by calling `to_dict()` of each item in product_units (list)
126
+ _items = []
127
+ if self.product_units:
128
+ for _item_product_units in self.product_units:
129
+ if _item_product_units:
130
+ _items.append(_item_product_units.to_dict())
131
+ _dict['productUnits'] = _items
114
132
  # set to None if id (nullable) is None
115
133
  # and model_fields_set contains the field
116
134
  if self.id is None and "id" in self.model_fields_set:
@@ -201,6 +219,16 @@ class CustomerFacingIssueDto(BaseModel):
201
219
  if self.assigned_user_id is None and "assigned_user_id" in self.model_fields_set:
202
220
  _dict['assignedUserId'] = None
203
221
 
222
+ # set to None if sources (nullable) is None
223
+ # and model_fields_set contains the field
224
+ if self.sources is None and "sources" in self.model_fields_set:
225
+ _dict['sources'] = None
226
+
227
+ # set to None if product_units (nullable) is None
228
+ # and model_fields_set contains the field
229
+ if self.product_units is None and "product_units" in self.model_fields_set:
230
+ _dict['productUnits'] = None
231
+
204
232
  return _dict
205
233
 
206
234
  @classmethod
@@ -236,7 +264,9 @@ class CustomerFacingIssueDto(BaseModel):
236
264
  "originLink": obj.get("originLink"),
237
265
  "actionId": obj.get("actionId"),
238
266
  "policyName": obj.get("policyName"),
239
- "assignedUserId": obj.get("assignedUserId")
267
+ "assignedUserId": obj.get("assignedUserId"),
268
+ "sources": [SourceDto.from_dict(_item) for _item in obj["sources"]] if obj.get("sources") is not None else None,
269
+ "productUnits": [ProductUnitIssueDto.from_dict(_item) for _item in obj["productUnits"]] if obj.get("productUnits") is not None else None
240
270
  })
241
271
  return _obj
242
272
 
@@ -17,9 +17,10 @@ import pprint
17
17
  import re # noqa: F401
18
18
  import json
19
19
 
20
- from pydantic import BaseModel, ConfigDict, Field
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr
21
21
  from typing import Any, ClassVar, Dict, List, Optional
22
22
  from legit_api_client.models.dependency_fix_type import DependencyFixType
23
+ from legit_api_client.models.issue_reachability import IssueReachability
23
24
  from typing import Optional, Set
24
25
  from typing_extensions import Self
25
26
 
@@ -28,7 +29,9 @@ class DependencyVulnerabilityDataDto(BaseModel):
28
29
  DependencyVulnerabilityDataDto
29
30
  """ # noqa: E501
30
31
  minimal_dependency_fix_type: Optional[DependencyFixType] = Field(default=None, description="The minimum fix type required to resolve the vulnerability", alias="minimalDependencyFixType")
31
- __properties: ClassVar[List[str]] = ["minimalDependencyFixType"]
32
+ vulnerability_id: Optional[StrictStr] = Field(default=None, description="The vulnerability id (for CVE's its the CVE-id)", alias="vulnerabilityId")
33
+ reachability: Optional[IssueReachability] = Field(default=None, description="Reachability status of the vulnerable dependency")
34
+ __properties: ClassVar[List[str]] = ["minimalDependencyFixType", "vulnerabilityId", "reachability"]
32
35
 
33
36
  model_config = ConfigDict(
34
37
  populate_by_name=True,
@@ -69,6 +72,11 @@ class DependencyVulnerabilityDataDto(BaseModel):
69
72
  exclude=excluded_fields,
70
73
  exclude_none=True,
71
74
  )
75
+ # set to None if vulnerability_id (nullable) is None
76
+ # and model_fields_set contains the field
77
+ if self.vulnerability_id is None and "vulnerability_id" in self.model_fields_set:
78
+ _dict['vulnerabilityId'] = None
79
+
72
80
  return _dict
73
81
 
74
82
  @classmethod
@@ -81,7 +89,9 @@ class DependencyVulnerabilityDataDto(BaseModel):
81
89
  return cls.model_validate(obj)
82
90
 
83
91
  _obj = cls.model_validate({
84
- "minimalDependencyFixType": obj.get("minimalDependencyFixType")
92
+ "minimalDependencyFixType": obj.get("minimalDependencyFixType"),
93
+ "vulnerabilityId": obj.get("vulnerabilityId"),
94
+ "reachability": obj.get("reachability")
85
95
  })
86
96
  return _obj
87
97
 
@@ -0,0 +1,39 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Inventory
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
+
8
+ The version of the OpenAPI document: 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 json
17
+ from enum import Enum
18
+ from typing_extensions import Self
19
+
20
+
21
+ class IssueReachability(str, Enum):
22
+ """
23
+ IssueReachability
24
+ """
25
+
26
+ """
27
+ allowed enum values
28
+ """
29
+ UNKNOWN = 'Unknown'
30
+ REACHABLE = 'Reachable'
31
+ UNREACHABLE = 'Unreachable'
32
+ POTENTIALLYREACHABLE = 'PotentiallyReachable'
33
+
34
+ @classmethod
35
+ def from_json(cls, json_str: str) -> Self:
36
+ """Create an instance of IssueReachability from a JSON string"""
37
+ return cls(json.loads(json_str))
38
+
39
+
@@ -0,0 +1,99 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Inventory
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
+
8
+ The version of the OpenAPI document: 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, Field, 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 ProductUnitIssueDto(BaseModel):
26
+ """
27
+ ProductUnitIssueDto
28
+ """ # noqa: E501
29
+ product_unit_id: Optional[StrictStr] = Field(default=None, description="The product unit the issues belong to", alias="productUnitId")
30
+ product_unit_name: Optional[StrictStr] = Field(default=None, description="The name of the product unit the issues belong to", alias="productUnitName")
31
+ __properties: ClassVar[List[str]] = ["productUnitId", "productUnitName"]
32
+
33
+ model_config = ConfigDict(
34
+ populate_by_name=True,
35
+ validate_assignment=True,
36
+ protected_namespaces=(),
37
+ )
38
+
39
+
40
+ def to_str(self) -> str:
41
+ """Returns the string representation of the model using alias"""
42
+ return pprint.pformat(self.model_dump(by_alias=True))
43
+
44
+ def to_json(self) -> str:
45
+ """Returns the JSON representation of the model using alias"""
46
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
47
+ return json.dumps(self.to_dict())
48
+
49
+ @classmethod
50
+ def from_json(cls, json_str: str) -> Optional[Self]:
51
+ """Create an instance of ProductUnitIssueDto from a JSON string"""
52
+ return cls.from_dict(json.loads(json_str))
53
+
54
+ def to_dict(self) -> Dict[str, Any]:
55
+ """Return the dictionary representation of the model using alias.
56
+
57
+ This has the following differences from calling pydantic's
58
+ `self.model_dump(by_alias=True)`:
59
+
60
+ * `None` is only added to the output dict for nullable fields that
61
+ were set at model initialization. Other fields with value `None`
62
+ are ignored.
63
+ """
64
+ excluded_fields: Set[str] = set([
65
+ ])
66
+
67
+ _dict = self.model_dump(
68
+ by_alias=True,
69
+ exclude=excluded_fields,
70
+ exclude_none=True,
71
+ )
72
+ # set to None if product_unit_id (nullable) is None
73
+ # and model_fields_set contains the field
74
+ if self.product_unit_id is None and "product_unit_id" in self.model_fields_set:
75
+ _dict['productUnitId'] = None
76
+
77
+ # set to None if product_unit_name (nullable) is None
78
+ # and model_fields_set contains the field
79
+ if self.product_unit_name is None and "product_unit_name" in self.model_fields_set:
80
+ _dict['productUnitName'] = None
81
+
82
+ return _dict
83
+
84
+ @classmethod
85
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
86
+ """Create an instance of ProductUnitIssueDto from a dict"""
87
+ if obj is None:
88
+ return None
89
+
90
+ if not isinstance(obj, dict):
91
+ return cls.model_validate(obj)
92
+
93
+ _obj = cls.model_validate({
94
+ "productUnitId": obj.get("productUnitId"),
95
+ "productUnitName": obj.get("productUnitName")
96
+ })
97
+ return _obj
98
+
99
+
@@ -0,0 +1,99 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Inventory
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
+
8
+ The version of the OpenAPI document: 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, Field, 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 SourceDto(BaseModel):
26
+ """
27
+ SourceDto
28
+ """ # noqa: E501
29
+ integration_id: Optional[StrictStr] = Field(default=None, description="Unique identifier for the integration that the issue originated from", alias="integrationId")
30
+ source_name: Optional[StrictStr] = Field(default=None, description="The name of the tool that the issue originated from", alias="sourceName")
31
+ __properties: ClassVar[List[str]] = ["integrationId", "sourceName"]
32
+
33
+ model_config = ConfigDict(
34
+ populate_by_name=True,
35
+ validate_assignment=True,
36
+ protected_namespaces=(),
37
+ )
38
+
39
+
40
+ def to_str(self) -> str:
41
+ """Returns the string representation of the model using alias"""
42
+ return pprint.pformat(self.model_dump(by_alias=True))
43
+
44
+ def to_json(self) -> str:
45
+ """Returns the JSON representation of the model using alias"""
46
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
47
+ return json.dumps(self.to_dict())
48
+
49
+ @classmethod
50
+ def from_json(cls, json_str: str) -> Optional[Self]:
51
+ """Create an instance of SourceDto from a JSON string"""
52
+ return cls.from_dict(json.loads(json_str))
53
+
54
+ def to_dict(self) -> Dict[str, Any]:
55
+ """Return the dictionary representation of the model using alias.
56
+
57
+ This has the following differences from calling pydantic's
58
+ `self.model_dump(by_alias=True)`:
59
+
60
+ * `None` is only added to the output dict for nullable fields that
61
+ were set at model initialization. Other fields with value `None`
62
+ are ignored.
63
+ """
64
+ excluded_fields: Set[str] = set([
65
+ ])
66
+
67
+ _dict = self.model_dump(
68
+ by_alias=True,
69
+ exclude=excluded_fields,
70
+ exclude_none=True,
71
+ )
72
+ # set to None if integration_id (nullable) is None
73
+ # and model_fields_set contains the field
74
+ if self.integration_id is None and "integration_id" in self.model_fields_set:
75
+ _dict['integrationId'] = None
76
+
77
+ # set to None if source_name (nullable) is None
78
+ # and model_fields_set contains the field
79
+ if self.source_name is None and "source_name" in self.model_fields_set:
80
+ _dict['sourceName'] = None
81
+
82
+ return _dict
83
+
84
+ @classmethod
85
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
86
+ """Create an instance of SourceDto from a dict"""
87
+ if obj is None:
88
+ return None
89
+
90
+ if not isinstance(obj, dict):
91
+ return cls.model_validate(obj)
92
+
93
+ _obj = cls.model_validate({
94
+ "integrationId": obj.get("integrationId"),
95
+ "sourceName": obj.get("sourceName")
96
+ })
97
+ return _obj
98
+
99
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: legit_api_client
3
- Version: 1.1.4411
3
+ Version: 1.1.4413
4
4
  Summary: Inventory
5
5
  Home-page:
6
6
  Author: OpenAPI Generator community
@@ -22,7 +22,7 @@ No description provided (generated by Openapi Generator https://github.com/opena
22
22
  This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
23
23
 
24
24
  - API version: 1.0
25
- - Package version: 1.1.4411
25
+ - Package version: 1.1.4413
26
26
  - Generator version: 7.17.0
27
27
  - Build package: org.openapitools.codegen.languages.PythonClientCodegen
28
28
 
@@ -322,6 +322,7 @@ Class | Method | HTTP request | Description
322
322
  - [IssueOpeningReasonDto](docs/IssueOpeningReasonDto.md)
323
323
  - [IssueOriginDto](docs/IssueOriginDto.md)
324
324
  - [IssueOriginParams](docs/IssueOriginParams.md)
325
+ - [IssueReachability](docs/IssueReachability.md)
325
326
  - [IssueSortingColumn](docs/IssueSortingColumn.md)
326
327
  - [IssueStatus](docs/IssueStatus.md)
327
328
  - [IssueTagDto](docs/IssueTagDto.md)
@@ -360,6 +361,7 @@ Class | Method | HTTP request | Description
360
361
  - [ProductUnitDto](docs/ProductUnitDto.md)
361
362
  - [ProductUnitDtoCustomFieldsValue](docs/ProductUnitDtoCustomFieldsValue.md)
362
363
  - [ProductUnitEnvironment](docs/ProductUnitEnvironment.md)
364
+ - [ProductUnitIssueDto](docs/ProductUnitIssueDto.md)
363
365
  - [ProductUnitNameDto](docs/ProductUnitNameDto.md)
364
366
  - [ProductUnitType](docs/ProductUnitType.md)
365
367
  - [ProgrammingLanguage](docs/ProgrammingLanguage.md)
@@ -382,6 +384,7 @@ Class | Method | HTTP request | Description
382
384
  - [SecretsDataDto](docs/SecretsDataDto.md)
383
385
  - [Severity](docs/Severity.md)
384
386
  - [SnoozedType](docs/SnoozedType.md)
387
+ - [SourceDto](docs/SourceDto.md)
385
388
  - [StringCustomerFacingCursorPagedDto](docs/StringCustomerFacingCursorPagedDto.md)
386
389
  - [TagDto](docs/TagDto.md)
387
390
  - [TagSource](docs/TagSource.md)
@@ -1,7 +1,7 @@
1
- legit_api_client/__init__.py,sha256=Mkar99thwAyxFgBvccWuzjuIq_gxBtZh9hOc4iBuhYk,28383
2
- legit_api_client/api_client.py,sha256=aWhTHoQed9YoOrmU3StY9KIwUAG7DB3JPAQ966VG2Rk,27805
1
+ legit_api_client/__init__.py,sha256=LutxdvGZA6jcvvSMHph3nMGLjlCUwj2YgL3xzdpxoyw,28718
2
+ legit_api_client/api_client.py,sha256=A663ke3t6mn-dnqI3mENXrc8oAkRNxy0sYdRUkjY6PI,27805
3
3
  legit_api_client/api_response.py,sha256=eMxw1mpmJcoGZ3gs9z6jM4oYoZ10Gjk333s9sKxGv7s,652
4
- legit_api_client/configuration.py,sha256=Ol_YqVmsjZLZxjoOe_72eu8uRGUInrfP5RH347HHuVE,18487
4
+ legit_api_client/configuration.py,sha256=H2QD-6kvwINPyHl04m5EFXaEPdr6cRo2AjddsrELSdI,18487
5
5
  legit_api_client/exceptions.py,sha256=ZxE8OUrStEfTktxeRN53ssT8GDIHHW3DyK0blVuIrkE,6471
6
6
  legit_api_client/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  legit_api_client/rest.py,sha256=6msKxIt5Oczs_qT7cXDA8B7yiawgOz7DUSQUh64E6q0,9470
@@ -26,7 +26,7 @@ legit_api_client/api/saved_queries_api.py,sha256=fSrPQjxbno6q8nDInlugohVoBE9BedR
26
26
  legit_api_client/api/sdlc_assets_api.py,sha256=AkWc7Vr3HhLiEw21SYnIEoBWpUiBaQYM6snqshNoUhE,39773
27
27
  legit_api_client/api/tags_api.py,sha256=Rs5-RyIDxQKrDgAFl-RazKhbgbv_q0Q-3wBYeXhSUjE,32570
28
28
  legit_api_client/api/workspaces_api.py,sha256=Eb_BTJkE-zt5fnGEY6wnHH6OHp_nboh9TEsOGyxI-eg,85370
29
- legit_api_client/models/__init__.py,sha256=pwa_33vcF9jnN87Y8I8DCyjmL3FKkJxt_TvNa3ttiGc,15388
29
+ legit_api_client/models/__init__.py,sha256=YBhoSB6BTmX-R7nHI5TaPgJznmq5YwBFlU6En9uBYR8,15597
30
30
  legit_api_client/models/add_issue_comment_dto.py,sha256=yXcBOfZzi0UcojpCcFqpO_umOpZZp53qCX3GY4x2DaQ,2575
31
31
  legit_api_client/models/ai_secret_validation_result.py,sha256=Qniyaz_12c-6iexAtQFVaHfJ_MFCImjckv4e_xxFToc,877
32
32
  legit_api_client/models/amazon_ecr_key_integration_create_dto.py,sha256=Inj8_WcHKM26G26o730PYiuPsD2wMP0RLOnjnf-Pw2E,4616
@@ -40,7 +40,7 @@ legit_api_client/models/automatic_check_dto.py,sha256=4yywratPbVvfh1yZy5Es1-q1g2
40
40
  legit_api_client/models/aws_region.py,sha256=j6CwnlX6HjD7kDRUJS6iX39jFxGqyndvbCgnuN4G2YU,1478
41
41
  legit_api_client/models/azure_container_registry_integration_create_dto.py,sha256=Hx1x0HAHKrlOr-nK52fbAW8I1eOJqarFFGBHl_Vwp9k,5553
42
42
  legit_api_client/models/azure_container_registry_integration_edit_dto.py,sha256=UInTWJBLbieR8cfgz8JXxU0O3X-LE7nLdf2P_qGie7E,5545
43
- legit_api_client/models/basic_issue.py,sha256=pzPdGkLKdWx5v8TS9EA8oACUoKkCsQ32Iv8I7MSYKQ8,3577
43
+ legit_api_client/models/basic_issue.py,sha256=eYDBeykf3vYiUMVlkyuHPoijxvOfF90Q4bWcpHKqfm4,6380
44
44
  legit_api_client/models/broker_connection_status.py,sha256=rJiX_8P9AkETriqh0XbR8quD_mQKbsGkhQmpTFiHl6Q,821
45
45
  legit_api_client/models/broker_dto.py,sha256=UCtLGh9XCwHTbEs2v9NWpUCOu0T2C_m1196gkpYdIN4,4324
46
46
  legit_api_client/models/broker_status.py,sha256=Gw6BzvIlHs4Wv2lxt7I3ikgKrfQSx3EeE5QinUItEfc,791
@@ -90,7 +90,7 @@ legit_api_client/models/customer_facing_dependency_dto.py,sha256=01o67I5vIc3NysT
90
90
  legit_api_client/models/customer_facing_dependency_dto_customer_facing_cursor_paged_dto.py,sha256=QpQdpwYbyecJ6Asm1ucgXkZ1D73KpsmUuE4lBZeW7RU,3931
91
91
  legit_api_client/models/customer_facing_dependency_license.py,sha256=YSCTQja0U4xcEFUzSMgyftyjN8ptUmyqXdYxVVHaY18,2925
92
92
  legit_api_client/models/customer_facing_issue_action_dto.py,sha256=OOxwHnVPcNVts8PN09__rvGOBAg4PrTJsr0Iv88iQ9o,3528
93
- legit_api_client/models/customer_facing_issue_dto.py,sha256=xNdCOLwEMtxGUUuRfQIXYgux0IJIA9N4zB-DjLqvKko,13473
93
+ legit_api_client/models/customer_facing_issue_dto.py,sha256=KJHaz8QGgKNFynTM3AMPuBf-uVCnc8chFusC4H8vomg,15268
94
94
  legit_api_client/models/customer_facing_issue_to_action_history_dto.py,sha256=D2iXGCUNSIix_Xgd_Ij7D7d9K_1cwyVYMMtP22cYqQ0,3888
95
95
  legit_api_client/models/customer_facing_issue_to_additional_data_dto.py,sha256=KkVdverEeT1mY6Heb3tqSAJq8bI0bXCUVtaRd34Bw-8,3517
96
96
  legit_api_client/models/customer_facing_issue_to_comments_dto.py,sha256=DzB6uoOz-UJtGW6s2Wv-daSxw0i0xTo-oZ38zbkMaE4,3790
@@ -106,7 +106,7 @@ legit_api_client/models/dast_data_dto.py,sha256=5-KaTVW66D7FoPVf5BAXxurBbIj0Aocm
106
106
  legit_api_client/models/dependency_category.py,sha256=afz1E1psRPdfMgJgx2UX0LJdlkr9q6eKyskg5SimeZw,861
107
107
  legit_api_client/models/dependency_declaration.py,sha256=YltbxWVTqNztVxcYhQejLJJP79Me_nfYYBTLbEbf46g,856
108
108
  legit_api_client/models/dependency_fix_type.py,sha256=ze02O_uFlqC4qxk-Mj1JIv6BlZjP_xk4D2RsZ-Z_0OY,916
109
- legit_api_client/models/dependency_vulnerability_data_dto.py,sha256=pcR07xuBkPI0O4_nQOklEwrRnT_RSu6ay_bkmSDOJts,2847
109
+ legit_api_client/models/dependency_vulnerability_data_dto.py,sha256=bW-ySlCy7pZAuW9VjFBnmQOHqPy4ONgWPj4W_ahhDSg,3608
110
110
  legit_api_client/models/detailed_sdlc_asset_information_dto.py,sha256=Vj-YH0LRkNkY4oH2jyZDb4hs1Z5U5-Orut1v8Tsg_Eg,5020
111
111
  legit_api_client/models/discovered_sdlc_asset_dto.py,sha256=U0ikxqTqnnQF9bUHI5C8Mmz5PYznCbDqLMrZIqjNfhQ,3993
112
112
  legit_api_client/models/discovery_connection_evidence_type.py,sha256=sdziV4T4NZsvsI6Swd1AuYgBGkGd2cSjNGvb3Uuzjy0,1162
@@ -132,6 +132,7 @@ legit_api_client/models/issue_ignoring_reason_dto.py,sha256=s0C6zGy6uU-f8fUMeO0V
132
132
  legit_api_client/models/issue_opening_reason_dto.py,sha256=f2RThQQ4bToKe7mMBSMvsnlnomFSItu8wvnB7_tn4UU,1056
133
133
  legit_api_client/models/issue_origin_dto.py,sha256=Y4Uxu4jK35wG5Pn1clBk-KRLHC7Vva5t6YdknUNOr6s,3494
134
134
  legit_api_client/models/issue_origin_params.py,sha256=9ItvBqOMLMbLwmQ-ARXxQr2Klp3VcW6A0cuqLrTQrSU,3000
135
+ legit_api_client/models/issue_reachability.py,sha256=Ba7rvqBR6dp4HKHvFy7nJiAQLEtB1wfOMGaZzkwEYis,854
135
136
  legit_api_client/models/issue_sorting_column.py,sha256=NCLk_XV2m9W7EAUp8auhz6sY65bZis1TKzKewO9Fp34,795
136
137
  legit_api_client/models/issue_status.py,sha256=bJxMIKsY8End9jasIeFtlFc7phQD4vucrLgj_4Angu0,812
137
138
  legit_api_client/models/issue_tag_dto.py,sha256=Ttt1DvIqGSV86bsozcT68GJ7b_4rYmYiw96k8mD82kE,3242
@@ -170,6 +171,7 @@ legit_api_client/models/product_unit_asset_dto.py,sha256=n7yjcpUwH7fG-0dHA6hfpeH
170
171
  legit_api_client/models/product_unit_dto.py,sha256=8iIN_f9LcF69L7Ohc7UPO-qRZ-fdng2Fun96obqRBmY,9445
171
172
  legit_api_client/models/product_unit_dto_custom_fields_value.py,sha256=7MKAs92N6tnbHZPTImI5ocCAp8wUUZS0f9l55-EKwGo,9616
172
173
  legit_api_client/models/product_unit_environment.py,sha256=-2xDgDlbWP7bNM7WTruHalsy7R9R4uFzmeEgXsR8DPs,821
174
+ legit_api_client/models/product_unit_issue_dto.py,sha256=n-XK0pumAvUERRXJV0_xoLc3grD5VZXz1gyl66YKbDk,3378
173
175
  legit_api_client/models/product_unit_name_dto.py,sha256=VjVxN-BlyG_ki-PB05sz7q9MZLdHtj6Ma_a7epRTscs,2979
174
176
  legit_api_client/models/product_unit_type.py,sha256=pypSeYTKM9TkuFmkLm-aHCaKTDWH5WZ26JnKdSVvKQk,914
175
177
  legit_api_client/models/programming_language.py,sha256=DM_lfSwVgsCEOly6yn3wcE7ETPJ4h-JZkBQQS32Tch0,1350
@@ -192,6 +194,7 @@ legit_api_client/models/secret_issue_validity_status.py,sha256=bQep4aVRfc-nqrYun
192
194
  legit_api_client/models/secrets_data_dto.py,sha256=29IdvW2UFcFgNjuxyniVtzqpUKzmPo1IwOZjYvebEhs,4393
193
195
  legit_api_client/models/severity.py,sha256=9EWzcMpoR05-DNp19iEfCxFxHJJqlYjRksVzzzoq47g,775
194
196
  legit_api_client/models/snoozed_type.py,sha256=CkGMSlP_bGbMiqhO9ir5mqwBr1ziZVVOknr8NCkwKCc,778
197
+ legit_api_client/models/source_dto.py,sha256=l3Hb17WQlEbD2kP--Oj9Q8I71d39Qni3Yx0G1iFsRns,3318
195
198
  legit_api_client/models/string_customer_facing_cursor_paged_dto.py,sha256=nlGAvneeSG_whjexuC38HNgI2kcVZDyFIQDG_pj7iMk,3321
196
199
  legit_api_client/models/tag_dto.py,sha256=kO8NnKidM70CYpXo-RfXfB897_M-zQy1asYGF_7nYgk,3228
197
200
  legit_api_client/models/tag_source.py,sha256=F0dCMjnGf6L5hjA3eDrh205HAnekN1MDmRaHMna7dF0,892
@@ -206,7 +209,7 @@ legit_api_client/models/workspace_group_tree_node_dto.py,sha256=zV5vmSc0bjqkH7hS
206
209
  legit_api_client/models/workspace_hierarchy_dto.py,sha256=qU9eTOHNh3d-XeOM6CbrkTLEwSX0cdjJkbVb03GHS_Y,4522
207
210
  legit_api_client/models/workspace_tree_node_dto.py,sha256=TlM1PPVbuGDQKlgl3Ht_EEj8lJLMqTdVE3_k8QFJldE,3527
208
211
  legit_api_client/models/workspace_type.py,sha256=d-Dy1JkWLAZgZgTHMTaF01QT2Cv1Eexg6HqcKqPEOjs,756
209
- legit_api_client-1.1.4411.dist-info/METADATA,sha256=dAWXeHMWoLtLyMnDEZ9SVIB9sE2i6SJG4pr9iYNgAMk,32670
210
- legit_api_client-1.1.4411.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
211
- legit_api_client-1.1.4411.dist-info/top_level.txt,sha256=3k94tIhdKXTBXkGPCBDQSOnARVo5IwVYlyIfQ18xaDM,17
212
- legit_api_client-1.1.4411.dist-info/RECORD,,
212
+ legit_api_client-1.1.4413.dist-info/METADATA,sha256=kdY8oU0T6E_dgV1sSkrI4-MMbiYpPg5jTS9egoGjUss,32808
213
+ legit_api_client-1.1.4413.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
214
+ legit_api_client-1.1.4413.dist-info/top_level.txt,sha256=3k94tIhdKXTBXkGPCBDQSOnARVo5IwVYlyIfQ18xaDM,17
215
+ legit_api_client-1.1.4413.dist-info/RECORD,,