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.

Files changed (26) hide show
  1. legit_api_client/__init__.py +11 -1
  2. legit_api_client/api_client.py +4 -4
  3. legit_api_client/configuration.py +4 -2
  4. legit_api_client/exceptions.py +6 -3
  5. legit_api_client/models/__init__.py +5 -0
  6. legit_api_client/models/basic_issue.py +45 -2
  7. legit_api_client/models/control_classification.py +2 -0
  8. legit_api_client/models/control_source_type.py +1 -0
  9. legit_api_client/models/customer_facing_issue_dto.py +39 -2
  10. legit_api_client/models/dependency_vulnerability_data_dto.py +13 -3
  11. legit_api_client/models/issue_action_type.py +2 -0
  12. legit_api_client/models/issue_reachability.py +39 -0
  13. legit_api_client/models/product_connection_type.py +2 -0
  14. legit_api_client/models/product_unit_issue_dto.py +99 -0
  15. legit_api_client/models/repository_automatic_business_impact_factor.py +43 -0
  16. legit_api_client/models/repository_context_field_dto.py +102 -0
  17. legit_api_client/models/repository_dto.py +16 -1
  18. legit_api_client/models/scm_type.py +2 -0
  19. legit_api_client/models/sdlc_asset_type.py +2 -0
  20. legit_api_client/models/secrets_data_dto.py +9 -2
  21. legit_api_client/models/source_dto.py +99 -0
  22. legit_api_client/rest.py +7 -2
  23. {legit_api_client-1.1.4412.dist-info → legit_api_client-1.1.4579.dist-info}/METADATA +8 -3
  24. {legit_api_client-1.1.4412.dist-info → legit_api_client-1.1.4579.dist-info}/RECORD +26 -21
  25. {legit_api_client-1.1.4412.dist-info → legit_api_client-1.1.4579.dist-info}/WHEEL +0 -0
  26. {legit_api_client-1.1.4412.dist-info → legit_api_client-1.1.4579.dist-info}/top_level.txt +0 -0
@@ -14,7 +14,7 @@
14
14
  """ # noqa: E501
15
15
 
16
16
 
17
- __version__ = "1.1.4412"
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
@@ -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.4412/python'
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.getheader('content-type')
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.getheaders(),
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.getheader("Content-Disposition")
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.4412".\
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 "
@@ -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.getheaders()
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.data or self.body:
173
- error_message += "HTTP response body: {0}\n".format(self.data or self.body)
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
- __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
 
@@ -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
- __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
+ 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
- __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
 
@@ -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
- __properties: ClassVar[List[str]] = ["aiValidationResult", "validityStatus", "validityCheckTime", "verifiedValidationUrl"]
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.4412
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.4412
26
- - Generator version: 7.17.0
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=CIjscJX-bVm6CEcynZnf2rhEXXK6a73RSLewOClxo2w,28383
2
- legit_api_client/api_client.py,sha256=7lG1cIk6ROMO7sp20z1mjgJkO8oVtcs-wKenhQ8PxmU,27805
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=sNHPmlSDvkUBbyohXtGWP_RZ8ZKy6vdVa6RmGHQ6qls,18487
5
- legit_api_client/exceptions.py,sha256=ZxE8OUrStEfTktxeRN53ssT8GDIHHW3DyK0blVuIrkE,6471
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=6msKxIt5Oczs_qT7cXDA8B7yiawgOz7DUSQUh64E6q0,9470
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=pwa_33vcF9jnN87Y8I8DCyjmL3FKkJxt_TvNa3ttiGc,15388
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=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
@@ -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=hLV4RTUCQALHuo6sB5KVG1BudZ1FeGWGSXheDUkpFX0,3638
68
- legit_api_client/models/control_source_type.py,sha256=5fuv0apq9GSVL7igElJsEzYvwyZ0g3CMq6o61VntRYI,2660
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=xNdCOLwEMtxGUUuRfQIXYgux0IJIA9N4zB-DjLqvKko,13473
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=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
@@ -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=mnqdE33pNJ__Ij7gceqz8ObBsyLRc47Clqm_Riip1fA,5086
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=oHW-qi0CZeKZxgbCIWyGOHd3yhXfmgJghEJDg-EII-Q,1660
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=Wdjt0WUerFf7p_XnyBPqiVnJ7U8KGdz5zZ7IF8hvddk,8367
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=-cVclYcVN_k79BnEx2Ezcc9B6YrD1_vUjsj9CmK88Ic,4198
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=ttTIN6mqFF1ZK3OnUT3xOpN8qo6fwYyveRcu2Lzj7f8,4610
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=29IdvW2UFcFgNjuxyniVtzqpUKzmPo1IwOZjYvebEhs,4393
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.4412.dist-info/METADATA,sha256=UPqMFt7FJkwA1AOpddEkevLEXRsvAft4VItz8ntsTks,32670
210
- legit_api_client-1.1.4412.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
211
- legit_api_client-1.1.4412.dist-info/top_level.txt,sha256=3k94tIhdKXTBXkGPCBDQSOnARVo5IwVYlyIfQ18xaDM,17
212
- legit_api_client-1.1.4412.dist-info/RECORD,,
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,,