legit-api-client 1.1.4412__py3-none-any.whl → 1.1.4579__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.
Potentially problematic release.
This version of legit-api-client might be problematic. Click here for more details.
- legit_api_client/__init__.py +11 -1
- legit_api_client/api_client.py +4 -4
- legit_api_client/configuration.py +4 -2
- legit_api_client/exceptions.py +6 -3
- legit_api_client/models/__init__.py +5 -0
- legit_api_client/models/basic_issue.py +45 -2
- legit_api_client/models/control_classification.py +2 -0
- legit_api_client/models/control_source_type.py +1 -0
- legit_api_client/models/customer_facing_issue_dto.py +39 -2
- legit_api_client/models/dependency_vulnerability_data_dto.py +13 -3
- legit_api_client/models/issue_action_type.py +2 -0
- legit_api_client/models/issue_reachability.py +39 -0
- legit_api_client/models/product_connection_type.py +2 -0
- legit_api_client/models/product_unit_issue_dto.py +99 -0
- legit_api_client/models/repository_automatic_business_impact_factor.py +43 -0
- legit_api_client/models/repository_context_field_dto.py +102 -0
- legit_api_client/models/repository_dto.py +16 -1
- legit_api_client/models/scm_type.py +2 -0
- legit_api_client/models/sdlc_asset_type.py +2 -0
- legit_api_client/models/secrets_data_dto.py +9 -2
- legit_api_client/models/source_dto.py +99 -0
- legit_api_client/rest.py +7 -2
- {legit_api_client-1.1.4412.dist-info → legit_api_client-1.1.4579.dist-info}/METADATA +8 -3
- {legit_api_client-1.1.4412.dist-info → legit_api_client-1.1.4579.dist-info}/RECORD +26 -21
- {legit_api_client-1.1.4412.dist-info → legit_api_client-1.1.4579.dist-info}/WHEEL +0 -0
- {legit_api_client-1.1.4412.dist-info → legit_api_client-1.1.4579.dist-info}/top_level.txt +0 -0
legit_api_client/__init__.py
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
""" # noqa: E501
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
__version__ = "1.1.
|
|
17
|
+
__version__ = "1.1.4579"
|
|
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,10 +191,13 @@ __all__ = [
|
|
|
190
191
|
"ProductUnitDto",
|
|
191
192
|
"ProductUnitDtoCustomFieldsValue",
|
|
192
193
|
"ProductUnitEnvironment",
|
|
194
|
+
"ProductUnitIssueDto",
|
|
193
195
|
"ProductUnitNameDto",
|
|
194
196
|
"ProductUnitType",
|
|
195
197
|
"ProgrammingLanguage",
|
|
196
198
|
"RepositoriesToContainersOperationDto",
|
|
199
|
+
"RepositoryAutomaticBusinessImpactFactor",
|
|
200
|
+
"RepositoryContextFieldDto",
|
|
197
201
|
"RepositoryControlDto",
|
|
198
202
|
"RepositoryDirectory",
|
|
199
203
|
"RepositoryDto",
|
|
@@ -212,6 +216,7 @@ __all__ = [
|
|
|
212
216
|
"SecretsDataDto",
|
|
213
217
|
"Severity",
|
|
214
218
|
"SnoozedType",
|
|
219
|
+
"SourceDto",
|
|
215
220
|
"StringCustomerFacingCursorPagedDto",
|
|
216
221
|
"TagDto",
|
|
217
222
|
"TagSource",
|
|
@@ -367,6 +372,7 @@ from legit_api_client.models.issue_ignoring_reason_dto import IssueIgnoringReaso
|
|
|
367
372
|
from legit_api_client.models.issue_opening_reason_dto import IssueOpeningReasonDto as IssueOpeningReasonDto
|
|
368
373
|
from legit_api_client.models.issue_origin_dto import IssueOriginDto as IssueOriginDto
|
|
369
374
|
from legit_api_client.models.issue_origin_params import IssueOriginParams as IssueOriginParams
|
|
375
|
+
from legit_api_client.models.issue_reachability import IssueReachability as IssueReachability
|
|
370
376
|
from legit_api_client.models.issue_sorting_column import IssueSortingColumn as IssueSortingColumn
|
|
371
377
|
from legit_api_client.models.issue_status import IssueStatus as IssueStatus
|
|
372
378
|
from legit_api_client.models.issue_tag_dto import IssueTagDto as IssueTagDto
|
|
@@ -405,10 +411,13 @@ from legit_api_client.models.product_unit_asset_dto import ProductUnitAssetDto a
|
|
|
405
411
|
from legit_api_client.models.product_unit_dto import ProductUnitDto as ProductUnitDto
|
|
406
412
|
from legit_api_client.models.product_unit_dto_custom_fields_value import ProductUnitDtoCustomFieldsValue as ProductUnitDtoCustomFieldsValue
|
|
407
413
|
from legit_api_client.models.product_unit_environment import ProductUnitEnvironment as ProductUnitEnvironment
|
|
414
|
+
from legit_api_client.models.product_unit_issue_dto import ProductUnitIssueDto as ProductUnitIssueDto
|
|
408
415
|
from legit_api_client.models.product_unit_name_dto import ProductUnitNameDto as ProductUnitNameDto
|
|
409
416
|
from legit_api_client.models.product_unit_type import ProductUnitType as ProductUnitType
|
|
410
417
|
from legit_api_client.models.programming_language import ProgrammingLanguage as ProgrammingLanguage
|
|
411
418
|
from legit_api_client.models.repositories_to_containers_operation_dto import RepositoriesToContainersOperationDto as RepositoriesToContainersOperationDto
|
|
419
|
+
from legit_api_client.models.repository_automatic_business_impact_factor import RepositoryAutomaticBusinessImpactFactor as RepositoryAutomaticBusinessImpactFactor
|
|
420
|
+
from legit_api_client.models.repository_context_field_dto import RepositoryContextFieldDto as RepositoryContextFieldDto
|
|
412
421
|
from legit_api_client.models.repository_control_dto import RepositoryControlDto as RepositoryControlDto
|
|
413
422
|
from legit_api_client.models.repository_directory import RepositoryDirectory as RepositoryDirectory
|
|
414
423
|
from legit_api_client.models.repository_dto import RepositoryDto as RepositoryDto
|
|
@@ -427,6 +436,7 @@ from legit_api_client.models.secret_issue_validity_status import SecretIssueVali
|
|
|
427
436
|
from legit_api_client.models.secrets_data_dto import SecretsDataDto as SecretsDataDto
|
|
428
437
|
from legit_api_client.models.severity import Severity as Severity
|
|
429
438
|
from legit_api_client.models.snoozed_type import SnoozedType as SnoozedType
|
|
439
|
+
from legit_api_client.models.source_dto import SourceDto as SourceDto
|
|
430
440
|
from legit_api_client.models.string_customer_facing_cursor_paged_dto import StringCustomerFacingCursorPagedDto as StringCustomerFacingCursorPagedDto
|
|
431
441
|
from legit_api_client.models.tag_dto import TagDto as TagDto
|
|
432
442
|
from legit_api_client.models.tag_source import TagSource as TagSource
|
legit_api_client/api_client.py
CHANGED
|
@@ -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.
|
|
94
|
+
self.user_agent = 'OpenAPI-Generator/1.1.4579/python'
|
|
95
95
|
self.client_side_validation = configuration.client_side_validation
|
|
96
96
|
|
|
97
97
|
def __enter__(self):
|
|
@@ -312,7 +312,7 @@ class ApiClient:
|
|
|
312
312
|
return_data = self.__deserialize_file(response_data)
|
|
313
313
|
elif response_type is not None:
|
|
314
314
|
match = None
|
|
315
|
-
content_type = response_data.
|
|
315
|
+
content_type = response_data.headers.get('content-type')
|
|
316
316
|
if content_type is not None:
|
|
317
317
|
match = re.search(r"charset=([a-zA-Z\-\d]+)[\s;]?", content_type)
|
|
318
318
|
encoding = match.group(1) if match else "utf-8"
|
|
@@ -329,7 +329,7 @@ class ApiClient:
|
|
|
329
329
|
return ApiResponse(
|
|
330
330
|
status_code = response_data.status,
|
|
331
331
|
data = return_data,
|
|
332
|
-
headers = response_data.
|
|
332
|
+
headers = response_data.headers,
|
|
333
333
|
raw_data = response_data.data
|
|
334
334
|
)
|
|
335
335
|
|
|
@@ -701,7 +701,7 @@ class ApiClient:
|
|
|
701
701
|
os.close(fd)
|
|
702
702
|
os.remove(path)
|
|
703
703
|
|
|
704
|
-
content_disposition = response.
|
|
704
|
+
content_disposition = response.headers.get("Content-Disposition")
|
|
705
705
|
if content_disposition:
|
|
706
706
|
m = re.search(
|
|
707
707
|
r'filename=[\'"]?([^\'"\s]+)[\'"]?',
|
|
@@ -164,7 +164,7 @@ class Configuration:
|
|
|
164
164
|
:param ca_cert_data: verify the peer using concatenated CA certificate data
|
|
165
165
|
in PEM (str) or DER (bytes) format.
|
|
166
166
|
:param cert_file: the path to a client certificate file, for mTLS.
|
|
167
|
-
:param key_file: the path to a client key file, for mTLS.
|
|
167
|
+
:param key_file: the path to a client key file, for mTLS.
|
|
168
168
|
|
|
169
169
|
:Example:
|
|
170
170
|
"""
|
|
@@ -486,6 +486,7 @@ class Configuration:
|
|
|
486
486
|
password = ""
|
|
487
487
|
if self.password is not None:
|
|
488
488
|
password = self.password
|
|
489
|
+
|
|
489
490
|
return urllib3.util.make_headers(
|
|
490
491
|
basic_auth=username + ':' + password
|
|
491
492
|
).get('authorization')
|
|
@@ -515,7 +516,7 @@ class Configuration:
|
|
|
515
516
|
"OS: {env}\n"\
|
|
516
517
|
"Python Version: {pyversion}\n"\
|
|
517
518
|
"Version of the API: 1.0\n"\
|
|
518
|
-
"SDK Package Version: 1.1.
|
|
519
|
+
"SDK Package Version: 1.1.4579".\
|
|
519
520
|
format(env=sys.platform, pyversion=sys.version)
|
|
520
521
|
|
|
521
522
|
def get_host_settings(self) -> List[HostSetting]:
|
|
@@ -563,6 +564,7 @@ class Configuration:
|
|
|
563
564
|
variable_name, variable['default_value'])
|
|
564
565
|
|
|
565
566
|
if 'enum_values' in variable \
|
|
567
|
+
and variable['enum_values'] \
|
|
566
568
|
and used_value not in variable['enum_values']:
|
|
567
569
|
raise ValueError(
|
|
568
570
|
"The variable `{0}` in the host URL has invalid value "
|
legit_api_client/exceptions.py
CHANGED
|
@@ -128,7 +128,7 @@ class ApiException(OpenApiException):
|
|
|
128
128
|
self.body = http_resp.data.decode('utf-8')
|
|
129
129
|
except Exception:
|
|
130
130
|
pass
|
|
131
|
-
self.headers = http_resp.
|
|
131
|
+
self.headers = http_resp.headers
|
|
132
132
|
|
|
133
133
|
@classmethod
|
|
134
134
|
def from_response(
|
|
@@ -169,8 +169,11 @@ class ApiException(OpenApiException):
|
|
|
169
169
|
error_message += "HTTP response headers: {0}\n".format(
|
|
170
170
|
self.headers)
|
|
171
171
|
|
|
172
|
-
if self.
|
|
173
|
-
error_message += "HTTP response body: {0}\n".format(self.
|
|
172
|
+
if self.body:
|
|
173
|
+
error_message += "HTTP response body: {0}\n".format(self.body)
|
|
174
|
+
|
|
175
|
+
if self.data:
|
|
176
|
+
error_message += "HTTP response data: {0}\n".format(self.data)
|
|
174
177
|
|
|
175
178
|
return error_message
|
|
176
179
|
|
|
@@ -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,10 +157,13 @@ 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
|
|
162
164
|
from legit_api_client.models.repositories_to_containers_operation_dto import RepositoriesToContainersOperationDto
|
|
165
|
+
from legit_api_client.models.repository_automatic_business_impact_factor import RepositoryAutomaticBusinessImpactFactor
|
|
166
|
+
from legit_api_client.models.repository_context_field_dto import RepositoryContextFieldDto
|
|
163
167
|
from legit_api_client.models.repository_control_dto import RepositoryControlDto
|
|
164
168
|
from legit_api_client.models.repository_directory import RepositoryDirectory
|
|
165
169
|
from legit_api_client.models.repository_dto import RepositoryDto
|
|
@@ -178,6 +182,7 @@ from legit_api_client.models.secret_issue_validity_status import SecretIssueVali
|
|
|
178
182
|
from legit_api_client.models.secrets_data_dto import SecretsDataDto
|
|
179
183
|
from legit_api_client.models.severity import Severity
|
|
180
184
|
from legit_api_client.models.snoozed_type import SnoozedType
|
|
185
|
+
from legit_api_client.models.source_dto import SourceDto
|
|
181
186
|
from legit_api_client.models.string_customer_facing_cursor_paged_dto import StringCustomerFacingCursorPagedDto
|
|
182
187
|
from legit_api_client.models.tag_dto import TagDto
|
|
183
188
|
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
|
-
|
|
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
|
|
|
@@ -107,6 +107,8 @@ class ControlClassification(str, Enum):
|
|
|
107
107
|
DYNATRACESCA = 'DynatraceSca'
|
|
108
108
|
FORTIFYSCC = 'FortifyScc'
|
|
109
109
|
BRIGHTSECURITY = 'BrightSecurity'
|
|
110
|
+
AWSSECURITYHUB = 'AwsSecurityHub'
|
|
111
|
+
CYTRIX = 'Cytrix'
|
|
110
112
|
|
|
111
113
|
@classmethod
|
|
112
114
|
def from_json(cls, json_str: str) -> Self:
|
|
@@ -67,6 +67,7 @@ class ControlSourceType(str, Enum):
|
|
|
67
67
|
DYNATRACEINTEGRATION = 'DynatraceIntegration'
|
|
68
68
|
FORTIFYSCCINTEGRATION = 'FortifySccIntegration'
|
|
69
69
|
BRIGHTSECURITYINTEGRATION = 'BrightSecurityIntegration'
|
|
70
|
+
CYTRIXINTEGRATION = 'CytrixIntegration'
|
|
70
71
|
|
|
71
72
|
@classmethod
|
|
72
73
|
def from_json(cls, json_str: str) -> Self:
|
|
@@ -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,10 @@ 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
|
-
|
|
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
|
+
remediation_steps: Optional[List[StrictStr]] = Field(default=None, description="Remediation steps for resolving the issue", alias="remediationSteps")
|
|
69
|
+
__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", "remediationSteps"]
|
|
65
70
|
|
|
66
71
|
model_config = ConfigDict(
|
|
67
72
|
populate_by_name=True,
|
|
@@ -111,6 +116,20 @@ class CustomerFacingIssueDto(BaseModel):
|
|
|
111
116
|
# override the default output from pydantic by calling `to_dict()` of dast_data_dto
|
|
112
117
|
if self.dast_data_dto:
|
|
113
118
|
_dict['dastDataDto'] = self.dast_data_dto.to_dict()
|
|
119
|
+
# override the default output from pydantic by calling `to_dict()` of each item in sources (list)
|
|
120
|
+
_items = []
|
|
121
|
+
if self.sources:
|
|
122
|
+
for _item_sources in self.sources:
|
|
123
|
+
if _item_sources:
|
|
124
|
+
_items.append(_item_sources.to_dict())
|
|
125
|
+
_dict['sources'] = _items
|
|
126
|
+
# override the default output from pydantic by calling `to_dict()` of each item in product_units (list)
|
|
127
|
+
_items = []
|
|
128
|
+
if self.product_units:
|
|
129
|
+
for _item_product_units in self.product_units:
|
|
130
|
+
if _item_product_units:
|
|
131
|
+
_items.append(_item_product_units.to_dict())
|
|
132
|
+
_dict['productUnits'] = _items
|
|
114
133
|
# set to None if id (nullable) is None
|
|
115
134
|
# and model_fields_set contains the field
|
|
116
135
|
if self.id is None and "id" in self.model_fields_set:
|
|
@@ -201,6 +220,21 @@ class CustomerFacingIssueDto(BaseModel):
|
|
|
201
220
|
if self.assigned_user_id is None and "assigned_user_id" in self.model_fields_set:
|
|
202
221
|
_dict['assignedUserId'] = None
|
|
203
222
|
|
|
223
|
+
# set to None if sources (nullable) is None
|
|
224
|
+
# and model_fields_set contains the field
|
|
225
|
+
if self.sources is None and "sources" in self.model_fields_set:
|
|
226
|
+
_dict['sources'] = None
|
|
227
|
+
|
|
228
|
+
# set to None if product_units (nullable) is None
|
|
229
|
+
# and model_fields_set contains the field
|
|
230
|
+
if self.product_units is None and "product_units" in self.model_fields_set:
|
|
231
|
+
_dict['productUnits'] = None
|
|
232
|
+
|
|
233
|
+
# set to None if remediation_steps (nullable) is None
|
|
234
|
+
# and model_fields_set contains the field
|
|
235
|
+
if self.remediation_steps is None and "remediation_steps" in self.model_fields_set:
|
|
236
|
+
_dict['remediationSteps'] = None
|
|
237
|
+
|
|
204
238
|
return _dict
|
|
205
239
|
|
|
206
240
|
@classmethod
|
|
@@ -236,7 +270,10 @@ class CustomerFacingIssueDto(BaseModel):
|
|
|
236
270
|
"originLink": obj.get("originLink"),
|
|
237
271
|
"actionId": obj.get("actionId"),
|
|
238
272
|
"policyName": obj.get("policyName"),
|
|
239
|
-
"assignedUserId": obj.get("assignedUserId")
|
|
273
|
+
"assignedUserId": obj.get("assignedUserId"),
|
|
274
|
+
"sources": [SourceDto.from_dict(_item) for _item in obj["sources"]] if obj.get("sources") is not None else None,
|
|
275
|
+
"productUnits": [ProductUnitIssueDto.from_dict(_item) for _item in obj["productUnits"]] if obj.get("productUnits") is not None else None,
|
|
276
|
+
"remediationSteps": obj.get("remediationSteps")
|
|
240
277
|
})
|
|
241
278
|
return _obj
|
|
242
279
|
|
|
@@ -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
|
-
|
|
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
|
|
|
@@ -102,6 +102,8 @@ class IssueActionType(str, Enum):
|
|
|
102
102
|
USERSNOOZEDISSUEUNTILFIXAVAILABLE = 'UserSnoozedIssueUntilFixAvailable'
|
|
103
103
|
ISSUECREATEDFROMMANUALUPLOAD = 'IssueCreatedFromManualUpload'
|
|
104
104
|
PULLREQUESTOPENED = 'PullRequestOpened'
|
|
105
|
+
TAGADDEDTOISSUEBYAUTOMATIONRULE = 'TagAddedToIssueByAutomationRule'
|
|
106
|
+
ISSUECOMMENTEDBYAUTOMATIONRULE = 'IssueCommentedByAutomationRule'
|
|
105
107
|
|
|
106
108
|
@classmethod
|
|
107
109
|
def from_json(cls, json_str: str) -> Self:
|
|
@@ -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
|
+
|
|
@@ -46,6 +46,8 @@ class ProductConnectionType(str, Enum):
|
|
|
46
46
|
AGGREGATEDHOST = 'AggregatedHost'
|
|
47
47
|
CLOUDCOMPUTERESOURCEQUERY = 'CloudComputeResourceQuery'
|
|
48
48
|
CLOUDCOMPUTERESOURCE = 'CloudComputeResource'
|
|
49
|
+
CIWORKFLOWS = 'CiWorkflows'
|
|
50
|
+
CIWORKFLOWSQUERY = 'CiWorkflowsQuery'
|
|
49
51
|
NESTEDPRODUCTREPOSITORY = 'NestedProductRepository'
|
|
50
52
|
|
|
51
53
|
@classmethod
|
|
@@ -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,43 @@
|
|
|
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 RepositoryAutomaticBusinessImpactFactor(str, Enum):
|
|
22
|
+
"""
|
|
23
|
+
RepositoryAutomaticBusinessImpactFactor
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
"""
|
|
27
|
+
allowed enum values
|
|
28
|
+
"""
|
|
29
|
+
UNKNOWN = 'Unknown'
|
|
30
|
+
DEPLOYEDTOCLOUD = 'DeployedToCloud'
|
|
31
|
+
NETWORKFACING = 'NetworkFacing'
|
|
32
|
+
USINGAI = 'UsingAI'
|
|
33
|
+
ISOPENSOURCE = 'IsOpenSource'
|
|
34
|
+
HANDLINGSENSITIVEDATA = 'HandlingSensitiveData'
|
|
35
|
+
REVENUEGENERATING = 'RevenueGenerating'
|
|
36
|
+
EXPOSINGAPI = 'ExposingApi'
|
|
37
|
+
|
|
38
|
+
@classmethod
|
|
39
|
+
def from_json(cls, json_str: str) -> Self:
|
|
40
|
+
"""Create an instance of RepositoryAutomaticBusinessImpactFactor from a JSON string"""
|
|
41
|
+
return cls(json.loads(json_str))
|
|
42
|
+
|
|
43
|
+
|
|
@@ -0,0 +1,102 @@
|
|
|
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, StrictBool
|
|
21
|
+
from typing import Any, ClassVar, Dict, List, Optional
|
|
22
|
+
from legit_api_client.models.repository_automatic_business_impact_factor import RepositoryAutomaticBusinessImpactFactor
|
|
23
|
+
from typing import Optional, Set
|
|
24
|
+
from typing_extensions import Self
|
|
25
|
+
|
|
26
|
+
class RepositoryContextFieldDto(BaseModel):
|
|
27
|
+
"""
|
|
28
|
+
RepositoryContextFieldDto
|
|
29
|
+
""" # noqa: E501
|
|
30
|
+
factor: Optional[RepositoryAutomaticBusinessImpactFactor] = None
|
|
31
|
+
automatic_value: Optional[StrictBool] = Field(default=None, alias="automaticValue")
|
|
32
|
+
manual_value: Optional[StrictBool] = Field(default=None, alias="manualValue")
|
|
33
|
+
__properties: ClassVar[List[str]] = ["factor", "automaticValue", "manualValue"]
|
|
34
|
+
|
|
35
|
+
model_config = ConfigDict(
|
|
36
|
+
populate_by_name=True,
|
|
37
|
+
validate_assignment=True,
|
|
38
|
+
protected_namespaces=(),
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def to_str(self) -> str:
|
|
43
|
+
"""Returns the string representation of the model using alias"""
|
|
44
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
45
|
+
|
|
46
|
+
def to_json(self) -> str:
|
|
47
|
+
"""Returns the JSON representation of the model using alias"""
|
|
48
|
+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
49
|
+
return json.dumps(self.to_dict())
|
|
50
|
+
|
|
51
|
+
@classmethod
|
|
52
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
53
|
+
"""Create an instance of RepositoryContextFieldDto from a JSON string"""
|
|
54
|
+
return cls.from_dict(json.loads(json_str))
|
|
55
|
+
|
|
56
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
57
|
+
"""Return the dictionary representation of the model using alias.
|
|
58
|
+
|
|
59
|
+
This has the following differences from calling pydantic's
|
|
60
|
+
`self.model_dump(by_alias=True)`:
|
|
61
|
+
|
|
62
|
+
* `None` is only added to the output dict for nullable fields that
|
|
63
|
+
were set at model initialization. Other fields with value `None`
|
|
64
|
+
are ignored.
|
|
65
|
+
"""
|
|
66
|
+
excluded_fields: Set[str] = set([
|
|
67
|
+
])
|
|
68
|
+
|
|
69
|
+
_dict = self.model_dump(
|
|
70
|
+
by_alias=True,
|
|
71
|
+
exclude=excluded_fields,
|
|
72
|
+
exclude_none=True,
|
|
73
|
+
)
|
|
74
|
+
# set to None if automatic_value (nullable) is None
|
|
75
|
+
# and model_fields_set contains the field
|
|
76
|
+
if self.automatic_value is None and "automatic_value" in self.model_fields_set:
|
|
77
|
+
_dict['automaticValue'] = None
|
|
78
|
+
|
|
79
|
+
# set to None if manual_value (nullable) is None
|
|
80
|
+
# and model_fields_set contains the field
|
|
81
|
+
if self.manual_value is None and "manual_value" in self.model_fields_set:
|
|
82
|
+
_dict['manualValue'] = None
|
|
83
|
+
|
|
84
|
+
return _dict
|
|
85
|
+
|
|
86
|
+
@classmethod
|
|
87
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
88
|
+
"""Create an instance of RepositoryContextFieldDto from a dict"""
|
|
89
|
+
if obj is None:
|
|
90
|
+
return None
|
|
91
|
+
|
|
92
|
+
if not isinstance(obj, dict):
|
|
93
|
+
return cls.model_validate(obj)
|
|
94
|
+
|
|
95
|
+
_obj = cls.model_validate({
|
|
96
|
+
"factor": obj.get("factor"),
|
|
97
|
+
"automaticValue": obj.get("automaticValue"),
|
|
98
|
+
"manualValue": obj.get("manualValue")
|
|
99
|
+
})
|
|
100
|
+
return _obj
|
|
101
|
+
|
|
102
|
+
|
|
@@ -21,6 +21,7 @@ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, Stri
|
|
|
21
21
|
from typing import Any, ClassVar, Dict, List, Optional, Union
|
|
22
22
|
from legit_api_client.models.collaborator_dto import CollaboratorDto
|
|
23
23
|
from legit_api_client.models.product_unit_name_dto import ProductUnitNameDto
|
|
24
|
+
from legit_api_client.models.repository_context_field_dto import RepositoryContextFieldDto
|
|
24
25
|
from legit_api_client.models.repository_group_dto import RepositoryGroupDto
|
|
25
26
|
from legit_api_client.models.repository_visibility import RepositoryVisibility
|
|
26
27
|
from legit_api_client.models.tag_dto import TagDto
|
|
@@ -40,12 +41,13 @@ class RepositoryDto(BaseModel):
|
|
|
40
41
|
owner: Optional[CollaboratorDto] = None
|
|
41
42
|
tags: Optional[List[TagDto]] = None
|
|
42
43
|
product_units: Optional[List[ProductUnitNameDto]] = Field(default=None, alias="productUnits")
|
|
44
|
+
context_fields: Optional[List[RepositoryContextFieldDto]] = Field(default=None, alias="contextFields")
|
|
43
45
|
issues_count: Optional[StrictInt] = Field(default=None, alias="issuesCount")
|
|
44
46
|
lines_count: Optional[StrictInt] = Field(default=None, alias="linesCount")
|
|
45
47
|
score: Optional[Union[StrictFloat, StrictInt]] = None
|
|
46
48
|
score_out_of100: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="scoreOutOf100")
|
|
47
49
|
group: Optional[RepositoryGroupDto] = None
|
|
48
|
-
__properties: ClassVar[List[str]] = ["id", "name", "url", "visibility", "isActive", "isArchived", "owner", "tags", "productUnits", "issuesCount", "linesCount", "score", "scoreOutOf100", "group"]
|
|
50
|
+
__properties: ClassVar[List[str]] = ["id", "name", "url", "visibility", "isActive", "isArchived", "owner", "tags", "productUnits", "contextFields", "issuesCount", "linesCount", "score", "scoreOutOf100", "group"]
|
|
49
51
|
|
|
50
52
|
model_config = ConfigDict(
|
|
51
53
|
populate_by_name=True,
|
|
@@ -105,6 +107,13 @@ class RepositoryDto(BaseModel):
|
|
|
105
107
|
if _item_product_units:
|
|
106
108
|
_items.append(_item_product_units.to_dict())
|
|
107
109
|
_dict['productUnits'] = _items
|
|
110
|
+
# override the default output from pydantic by calling `to_dict()` of each item in context_fields (list)
|
|
111
|
+
_items = []
|
|
112
|
+
if self.context_fields:
|
|
113
|
+
for _item_context_fields in self.context_fields:
|
|
114
|
+
if _item_context_fields:
|
|
115
|
+
_items.append(_item_context_fields.to_dict())
|
|
116
|
+
_dict['contextFields'] = _items
|
|
108
117
|
# override the default output from pydantic by calling `to_dict()` of group
|
|
109
118
|
if self.group:
|
|
110
119
|
_dict['group'] = self.group.to_dict()
|
|
@@ -148,6 +157,11 @@ class RepositoryDto(BaseModel):
|
|
|
148
157
|
if self.product_units is None and "product_units" in self.model_fields_set:
|
|
149
158
|
_dict['productUnits'] = None
|
|
150
159
|
|
|
160
|
+
# set to None if context_fields (nullable) is None
|
|
161
|
+
# and model_fields_set contains the field
|
|
162
|
+
if self.context_fields is None and "context_fields" in self.model_fields_set:
|
|
163
|
+
_dict['contextFields'] = None
|
|
164
|
+
|
|
151
165
|
# set to None if lines_count (nullable) is None
|
|
152
166
|
# and model_fields_set contains the field
|
|
153
167
|
if self.lines_count is None and "lines_count" in self.model_fields_set:
|
|
@@ -189,6 +203,7 @@ class RepositoryDto(BaseModel):
|
|
|
189
203
|
"owner": CollaboratorDto.from_dict(obj["owner"]) if obj.get("owner") is not None else None,
|
|
190
204
|
"tags": [TagDto.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None,
|
|
191
205
|
"productUnits": [ProductUnitNameDto.from_dict(_item) for _item in obj["productUnits"]] if obj.get("productUnits") is not None else None,
|
|
206
|
+
"contextFields": [RepositoryContextFieldDto.from_dict(_item) for _item in obj["contextFields"]] if obj.get("contextFields") is not None else None,
|
|
192
207
|
"issuesCount": obj.get("issuesCount"),
|
|
193
208
|
"linesCount": obj.get("linesCount"),
|
|
194
209
|
"score": obj.get("score"),
|
|
@@ -132,6 +132,8 @@ class ScmType(str, Enum):
|
|
|
132
132
|
FORTIFYSSC = 'FortifySsc'
|
|
133
133
|
PRISMACLOUDSECURITY = 'PrismaCloudSecurity'
|
|
134
134
|
GOOGLEARTIFACTREGISTRY = 'GoogleArtifactRegistry'
|
|
135
|
+
ASANA = 'Asana'
|
|
136
|
+
CYTRIX = 'Cytrix'
|
|
135
137
|
|
|
136
138
|
@classmethod
|
|
137
139
|
def from_json(cls, json_str: str) -> Self:
|
|
@@ -83,6 +83,7 @@ class SdlcAssetType(str, Enum):
|
|
|
83
83
|
CHECKMARXSAST = 'CheckmarxSast'
|
|
84
84
|
CHECKMARXSCA = 'CheckmarxSca'
|
|
85
85
|
SERVICENOW = 'ServiceNow'
|
|
86
|
+
ASANA = 'Asana'
|
|
86
87
|
BURPSUITE = 'Burpsuite'
|
|
87
88
|
JIRASECRETSCANNING = 'JiraSecretScanning'
|
|
88
89
|
COVERITY = 'Coverity'
|
|
@@ -142,6 +143,7 @@ class SdlcAssetType(str, Enum):
|
|
|
142
143
|
DYNATRACE = 'Dynatrace'
|
|
143
144
|
FORTIFYSSC = 'FortifySsc'
|
|
144
145
|
PRISMACLOUDSECURITY = 'PrismaCloudSecurity'
|
|
146
|
+
CYTRIX = 'Cytrix'
|
|
145
147
|
|
|
146
148
|
@classmethod
|
|
147
149
|
def from_json(cls, json_str: str) -> Self:
|
|
@@ -33,7 +33,8 @@ class SecretsDataDto(BaseModel):
|
|
|
33
33
|
validity_status: Optional[SecretIssueValidityStatus] = Field(default=None, description="Status of the secret validity", alias="validityStatus")
|
|
34
34
|
validity_check_time: Optional[datetime] = Field(default=None, description="Timestamp when the validity was last checked", alias="validityCheckTime")
|
|
35
35
|
verified_validation_url: Optional[StrictStr] = Field(default=None, description="URL used to verify the validity of the secret", alias="verifiedValidationUrl")
|
|
36
|
-
|
|
36
|
+
commit_author_names: Optional[List[StrictStr]] = Field(default=None, description="Names of commit authors who committed this secret", alias="commitAuthorNames")
|
|
37
|
+
__properties: ClassVar[List[str]] = ["aiValidationResult", "validityStatus", "validityCheckTime", "verifiedValidationUrl", "commitAuthorNames"]
|
|
37
38
|
|
|
38
39
|
model_config = ConfigDict(
|
|
39
40
|
populate_by_name=True,
|
|
@@ -89,6 +90,11 @@ class SecretsDataDto(BaseModel):
|
|
|
89
90
|
if self.verified_validation_url is None and "verified_validation_url" in self.model_fields_set:
|
|
90
91
|
_dict['verifiedValidationUrl'] = None
|
|
91
92
|
|
|
93
|
+
# set to None if commit_author_names (nullable) is None
|
|
94
|
+
# and model_fields_set contains the field
|
|
95
|
+
if self.commit_author_names is None and "commit_author_names" in self.model_fields_set:
|
|
96
|
+
_dict['commitAuthorNames'] = None
|
|
97
|
+
|
|
92
98
|
return _dict
|
|
93
99
|
|
|
94
100
|
@classmethod
|
|
@@ -104,7 +110,8 @@ class SecretsDataDto(BaseModel):
|
|
|
104
110
|
"aiValidationResult": obj.get("aiValidationResult"),
|
|
105
111
|
"validityStatus": obj.get("validityStatus"),
|
|
106
112
|
"validityCheckTime": obj.get("validityCheckTime"),
|
|
107
|
-
"verifiedValidationUrl": obj.get("verifiedValidationUrl")
|
|
113
|
+
"verifiedValidationUrl": obj.get("verifiedValidationUrl"),
|
|
114
|
+
"commitAuthorNames": obj.get("commitAuthorNames")
|
|
108
115
|
})
|
|
109
116
|
return _obj
|
|
110
117
|
|
|
@@ -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
|
+
|
legit_api_client/rest.py
CHANGED
|
@@ -48,12 +48,17 @@ class RESTResponse(io.IOBase):
|
|
|
48
48
|
self.data = self.response.data
|
|
49
49
|
return self.data
|
|
50
50
|
|
|
51
|
+
@property
|
|
52
|
+
def headers(self):
|
|
53
|
+
"""Returns a dictionary of response headers."""
|
|
54
|
+
return self.response.headers
|
|
55
|
+
|
|
51
56
|
def getheaders(self):
|
|
52
|
-
"""Returns a dictionary of the response headers."""
|
|
57
|
+
"""Returns a dictionary of the response headers; use ``headers`` instead."""
|
|
53
58
|
return self.response.headers
|
|
54
59
|
|
|
55
60
|
def getheader(self, name, default=None):
|
|
56
|
-
"""Returns a given response header."""
|
|
61
|
+
"""Returns a given response header; use ``headers.get()`` instead."""
|
|
57
62
|
return self.response.headers.get(name, default)
|
|
58
63
|
|
|
59
64
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: legit_api_client
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.4579
|
|
4
4
|
Summary: Inventory
|
|
5
5
|
Home-page:
|
|
6
6
|
Author: OpenAPI Generator community
|
|
@@ -22,8 +22,8 @@ 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.
|
|
26
|
-
- Generator version: 7.
|
|
25
|
+
- Package version: 1.1.4579
|
|
26
|
+
- Generator version: 7.18.0
|
|
27
27
|
- Build package: org.openapitools.codegen.languages.PythonClientCodegen
|
|
28
28
|
|
|
29
29
|
## Requirements.
|
|
@@ -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,10 +361,13 @@ 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)
|
|
366
368
|
- [RepositoriesToContainersOperationDto](docs/RepositoriesToContainersOperationDto.md)
|
|
369
|
+
- [RepositoryAutomaticBusinessImpactFactor](docs/RepositoryAutomaticBusinessImpactFactor.md)
|
|
370
|
+
- [RepositoryContextFieldDto](docs/RepositoryContextFieldDto.md)
|
|
367
371
|
- [RepositoryControlDto](docs/RepositoryControlDto.md)
|
|
368
372
|
- [RepositoryDirectory](docs/RepositoryDirectory.md)
|
|
369
373
|
- [RepositoryDto](docs/RepositoryDto.md)
|
|
@@ -382,6 +386,7 @@ Class | Method | HTTP request | Description
|
|
|
382
386
|
- [SecretsDataDto](docs/SecretsDataDto.md)
|
|
383
387
|
- [Severity](docs/Severity.md)
|
|
384
388
|
- [SnoozedType](docs/SnoozedType.md)
|
|
389
|
+
- [SourceDto](docs/SourceDto.md)
|
|
385
390
|
- [StringCustomerFacingCursorPagedDto](docs/StringCustomerFacingCursorPagedDto.md)
|
|
386
391
|
- [TagDto](docs/TagDto.md)
|
|
387
392
|
- [TagSource](docs/TagSource.md)
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
legit_api_client/__init__.py,sha256=
|
|
2
|
-
legit_api_client/api_client.py,sha256=
|
|
1
|
+
legit_api_client/__init__.py,sha256=LxShwv4OpJ4p97hAuB1H58WQe0Y-VlpWE651zuw9tWQ,29081
|
|
2
|
+
legit_api_client/api_client.py,sha256=Xbn6YhGs_6f5nxPhqkpuuc1XswIjPC43cibQjwWmbX4,27804
|
|
3
3
|
legit_api_client/api_response.py,sha256=eMxw1mpmJcoGZ3gs9z6jM4oYoZ10Gjk333s9sKxGv7s,652
|
|
4
|
-
legit_api_client/configuration.py,sha256=
|
|
5
|
-
legit_api_client/exceptions.py,sha256=
|
|
4
|
+
legit_api_client/configuration.py,sha256=y6a0BxgbcSi87beSS-we4jydNjdqKzNYTrfVyhvIdGg,18537
|
|
5
|
+
legit_api_client/exceptions.py,sha256=FQhdQym8Gv0T7Q5dppOeb-yBbB_jgov4wNAmRaz1EM0,6538
|
|
6
6
|
legit_api_client/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
|
-
legit_api_client/rest.py,sha256=
|
|
7
|
+
legit_api_client/rest.py,sha256=4g4Zi4xX1187Af75nEgTesIYeIJmdpV0pWws4VM2iD0,9657
|
|
8
8
|
legit_api_client/api/__init__.py,sha256=qujrNT-z3igma0Ie6S699yl61_QMenwg3BEMOOHchVM,1387
|
|
9
9
|
legit_api_client/api/amazon_ecr_key_integration_api.py,sha256=MiQ4bzBxPHeaHv-YWHFXNemQK5Q19NBPR_YrhST8bqU,10476
|
|
10
10
|
legit_api_client/api/amazon_ecr_role_integration_api.py,sha256=M4I_SpnGVUHXu-6i47mxbR0Dye62uM7nVOXnpc0opxk,10488
|
|
@@ -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=
|
|
29
|
+
legit_api_client/models/__init__.py,sha256=tr3_hQNwnunWahV0chP3mcKNw681iCi_qM1mMbJcGpo,15808
|
|
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=
|
|
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
|
|
@@ -64,8 +64,8 @@ legit_api_client/models/container_image_dto.py,sha256=lAZ9QUozOd7Up-5Fz55spEbJNq
|
|
|
64
64
|
legit_api_client/models/container_image_version_dto.py,sha256=iBQRJ44IQFJiuxWkF5yQDeMcBBZTmz-61LQE6itGREo,3719
|
|
65
65
|
legit_api_client/models/container_to_cloud_resource_operation_dto.py,sha256=SUcFWAEIpXh-mtJ42poGk8x_8cmwEeomWFVE68U-Lnc,3336
|
|
66
66
|
legit_api_client/models/container_to_repository_operation_dto.py,sha256=Tb1WkEeuMlGIIKnye1HjjJ2hGyxtkvFBfP-FQb7rv54,3293
|
|
67
|
-
legit_api_client/models/control_classification.py,sha256=
|
|
68
|
-
legit_api_client/models/control_source_type.py,sha256=
|
|
67
|
+
legit_api_client/models/control_classification.py,sha256=Q0lPBdqlLyiA_zUkB9gS-axViXk8h4mpiye_qUql_rk,3698
|
|
68
|
+
legit_api_client/models/control_source_type.py,sha256=9s7g4yfzqTRNXK1iyvk7uLQIFez7OCNzXDNWl6U7Uww,2704
|
|
69
69
|
legit_api_client/models/control_type.py,sha256=RaLY3-aMAnyQ6vboN3dsxLmsPvDc05re45BwVwSb7ew,1132
|
|
70
70
|
legit_api_client/models/correlated_cloud_instance.py,sha256=oNI24xF5yU0B6IuN8_DspjUoD60sDzrZ1ZedxYMEo6s,2999
|
|
71
71
|
legit_api_client/models/correlated_repository_dto.py,sha256=bA6j87oQvIEP0uxq3jWKAxMOkK399IOQJ8XdrGIsVvc,2999
|
|
@@ -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=
|
|
93
|
+
legit_api_client/models/customer_facing_issue_dto.py,sha256=W90B-TaPnTTLTxJtk5rkhq46UOoKNq_1_Cu1vlbYLhs,15753
|
|
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=
|
|
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
|
|
@@ -122,7 +122,7 @@ legit_api_client/models/integration_failing_reason.py,sha256=YxHWNb7z-orCpn6oeYe
|
|
|
122
122
|
legit_api_client/models/integration_management_dto.py,sha256=YXwWxRmVEGwN-q1mQz1romha5qwW4ZEunYlei6iVyBQ,7150
|
|
123
123
|
legit_api_client/models/integration_status.py,sha256=o4-vVppNyc_uBS6zlP1naQTccpk6EX7Ug2MF278EikQ,832
|
|
124
124
|
legit_api_client/models/integration_type.py,sha256=IzPg9R287l8-0kJukduplEVoNov1iz5t3orx13JNhBg,942
|
|
125
|
-
legit_api_client/models/issue_action_type.py,sha256=
|
|
125
|
+
legit_api_client/models/issue_action_type.py,sha256=mRoK9C6jXiLTBxajALUIHwbUvl2PsSzTnzw0XSWNKuk,5228
|
|
126
126
|
legit_api_client/models/issue_assignment.py,sha256=-b6CRAvet15pPV8GK_fpsFL6o6cddjz0RPy6jysnPyg,810
|
|
127
127
|
legit_api_client/models/issue_closing_location_dto.py,sha256=ZIZHKYnk86e8TfiRIMo7cTPXUBHZA0UK9dR3yTrNNDQ,806
|
|
128
128
|
legit_api_client/models/issue_comment_dto.py,sha256=Fo-HqIR6J9l5VIqwSR8ojhERTfco2KOM0tLwefr4tfs,3839
|
|
@@ -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
|
|
@@ -164,22 +165,25 @@ legit_api_client/models/patch_security_champion_id_dto.py,sha256=Lr65QeEat1Jzv5O
|
|
|
164
165
|
legit_api_client/models/permission_meta_type.py,sha256=64PoK7YbaLAU7hJZF7qGGjwMBcxklC1ZUEvmZ2MyWiM,805
|
|
165
166
|
legit_api_client/models/policy_dto.py,sha256=-MhBgOyTHyVJMXabtebh_wh1XErIlweA4gRwEkgIv9g,7064
|
|
166
167
|
legit_api_client/models/problem_details.py,sha256=i3GtidBVbXMCpVAUcn1SYWZTVzi0utXCLqMkwrLtROg,4500
|
|
167
|
-
legit_api_client/models/product_connection_type.py,sha256=
|
|
168
|
+
legit_api_client/models/product_connection_type.py,sha256=Jdo92SQnjk_9D_rN142KMGbLRSdyQf1kQzQJlkqO8NU,1734
|
|
168
169
|
legit_api_client/models/product_tree_node_dto.py,sha256=dp5Kq22iVXYjZfX7SFwbOZtUBaIAmEkTeHkcgSJmnuI,3986
|
|
169
170
|
legit_api_client/models/product_unit_asset_dto.py,sha256=n7yjcpUwH7fG-0dHA6hfpeH4NfygHH_AfXL0k-6cemI,3734
|
|
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
|
|
176
178
|
legit_api_client/models/repositories_to_containers_operation_dto.py,sha256=PzNKcI9EfIzEjJWxe5FkWeE6Pf3iHnTB5r0gH8txtyw,3734
|
|
179
|
+
legit_api_client/models/repository_automatic_business_impact_factor.py,sha256=rePWxXvt9XHHh_fdBW0mYGaYx7grjz_0P-_t40ZkIto,1072
|
|
180
|
+
legit_api_client/models/repository_context_field_dto.py,sha256=SHWt5dVYU0KfMwRNJzrwYLnQpIUtgVhYS1QYfOy0zYo,3492
|
|
177
181
|
legit_api_client/models/repository_control_dto.py,sha256=gZI8FoMGjUW7y1_KFpqFfRE2IJDkwFrbP1L51eE_0vE,4280
|
|
178
182
|
legit_api_client/models/repository_directory.py,sha256=NF2zHDfvf8MeH0PCjMsLMiUm3GpsKJJGS3BKrJ70uKw,3151
|
|
179
|
-
legit_api_client/models/repository_dto.py,sha256=
|
|
183
|
+
legit_api_client/models/repository_dto.py,sha256=a_v_g2JsxLQ3OQ1kfWqzAfEx9JZrEWuzwuITJ-9E5H0,9356
|
|
180
184
|
legit_api_client/models/repository_group_dto.py,sha256=XIe4BIAYHWyrKyM1bJ7ghQHkAHSLthc1YYydchfRKl8,3381
|
|
181
185
|
legit_api_client/models/repository_visibility.py,sha256=2xUvIxsmwWKee8OINo5PNYAZif_i43Yu3SWBXdCq2qg,801
|
|
182
|
-
legit_api_client/models/scm_type.py,sha256=-
|
|
186
|
+
legit_api_client/models/scm_type.py,sha256=-X_GfBARFIzkhh5TPciM_yM6cuLY67cwbmajqqs46Zo,4240
|
|
183
187
|
legit_api_client/models/sdlc_asset_dto.py,sha256=uNbgb783VmQrMkotIYI8JtUKMeoZtyfyDsrqk0KinIU,5377
|
|
184
188
|
legit_api_client/models/sdlc_asset_graph_asset_dto.py,sha256=ufGlqWG69_QGicpWGIeVIWDyWm7JPBJOvp-QhrTQs58,4221
|
|
185
189
|
legit_api_client/models/sdlc_asset_graph_dto.py,sha256=eURM_sRA3TDZjVd6Vp_UjHumtgwVAOQ4kxkMfVAG4KI,4034
|
|
@@ -187,11 +191,12 @@ legit_api_client/models/sdlc_asset_graph_evidence_dto.py,sha256=1Hr4eW-Ho3oFQnlO
|
|
|
187
191
|
legit_api_client/models/sdlc_asset_graph_link_dto.py,sha256=rmFoLCNsfhPF2JDhVRrogBGHA_wpuDzDhYcNDGf226E,4229
|
|
188
192
|
legit_api_client/models/sdlc_asset_graph_link_dto_evidences.py,sha256=v9VbaZaqCC4ybrVrU96uR7DKvby2k65blR8EeboWwoM,4292
|
|
189
193
|
legit_api_client/models/sdlc_asset_meta_type.py,sha256=bpFEpe-3XJD_l0Q-QDbzRpP35uW1qshycaywMbrPCqw,1200
|
|
190
|
-
legit_api_client/models/sdlc_asset_type.py,sha256=
|
|
194
|
+
legit_api_client/models/sdlc_asset_type.py,sha256=GU2xw3YVTRgCZNCxvtipNO_EK76ZcRBHybN0HfM9jOo,4652
|
|
191
195
|
legit_api_client/models/secret_issue_validity_status.py,sha256=bQep4aVRfc-nqrYunzUkCSTFnL_vjojvt8dKV7tQYmo,1008
|
|
192
|
-
legit_api_client/models/secrets_data_dto.py,sha256=
|
|
196
|
+
legit_api_client/models/secrets_data_dto.py,sha256=m3kjVVD4YKhdrCVwRvJuVbrs-FEdzyQbUz8Q4c0z-HI,4899
|
|
193
197
|
legit_api_client/models/severity.py,sha256=9EWzcMpoR05-DNp19iEfCxFxHJJqlYjRksVzzzoq47g,775
|
|
194
198
|
legit_api_client/models/snoozed_type.py,sha256=CkGMSlP_bGbMiqhO9ir5mqwBr1ziZVVOknr8NCkwKCc,778
|
|
199
|
+
legit_api_client/models/source_dto.py,sha256=l3Hb17WQlEbD2kP--Oj9Q8I71d39Qni3Yx0G1iFsRns,3318
|
|
195
200
|
legit_api_client/models/string_customer_facing_cursor_paged_dto.py,sha256=nlGAvneeSG_whjexuC38HNgI2kcVZDyFIQDG_pj7iMk,3321
|
|
196
201
|
legit_api_client/models/tag_dto.py,sha256=kO8NnKidM70CYpXo-RfXfB897_M-zQy1asYGF_7nYgk,3228
|
|
197
202
|
legit_api_client/models/tag_source.py,sha256=F0dCMjnGf6L5hjA3eDrh205HAnekN1MDmRaHMna7dF0,892
|
|
@@ -206,7 +211,7 @@ legit_api_client/models/workspace_group_tree_node_dto.py,sha256=zV5vmSc0bjqkH7hS
|
|
|
206
211
|
legit_api_client/models/workspace_hierarchy_dto.py,sha256=qU9eTOHNh3d-XeOM6CbrkTLEwSX0cdjJkbVb03GHS_Y,4522
|
|
207
212
|
legit_api_client/models/workspace_tree_node_dto.py,sha256=TlM1PPVbuGDQKlgl3Ht_EEj8lJLMqTdVE3_k8QFJldE,3527
|
|
208
213
|
legit_api_client/models/workspace_type.py,sha256=d-Dy1JkWLAZgZgTHMTaF01QT2Cv1Eexg6HqcKqPEOjs,756
|
|
209
|
-
legit_api_client-1.1.
|
|
210
|
-
legit_api_client-1.1.
|
|
211
|
-
legit_api_client-1.1.
|
|
212
|
-
legit_api_client-1.1.
|
|
214
|
+
legit_api_client-1.1.4579.dist-info/METADATA,sha256=asqiMrwOh5LNMjnexAfbAa7kVpYtJOf1h5p33L9A8rg,32968
|
|
215
|
+
legit_api_client-1.1.4579.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
216
|
+
legit_api_client-1.1.4579.dist-info/top_level.txt,sha256=3k94tIhdKXTBXkGPCBDQSOnARVo5IwVYlyIfQ18xaDM,17
|
|
217
|
+
legit_api_client-1.1.4579.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|