capo-codeguru-security 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- capo_codeguru_security/__init__.py +74 -0
- capo_codeguru_security/_async.py +25 -0
- capo_codeguru_security/_auth/_identity.py +16 -0
- capo_codeguru_security/_auth/_providers.py +886 -0
- capo_codeguru_security/_auth/_signers.py +88 -0
- capo_codeguru_security/_auth/_sigv4.py +434 -0
- capo_codeguru_security/_auth/_zapros_handler.py +80 -0
- capo_codeguru_security/_iter.py +113 -0
- capo_codeguru_security/_operations/aws_code_guru_security/batch_get_findings.py +167 -0
- capo_codeguru_security/_operations/aws_code_guru_security/create_scan.py +183 -0
- capo_codeguru_security/_operations/aws_code_guru_security/create_upload_url.py +165 -0
- capo_codeguru_security/_operations/aws_code_guru_security/get_account_configuration.py +161 -0
- capo_codeguru_security/_operations/aws_code_guru_security/get_findings.py +191 -0
- capo_codeguru_security/_operations/aws_code_guru_security/get_metrics_summary.py +176 -0
- capo_codeguru_security/_operations/aws_code_guru_security/get_scan.py +173 -0
- capo_codeguru_security/_operations/aws_code_guru_security/list_findings_metrics.py +185 -0
- capo_codeguru_security/_operations/aws_code_guru_security/list_scans.py +167 -0
- capo_codeguru_security/_operations/aws_code_guru_security/list_tags_for_resource.py +173 -0
- capo_codeguru_security/_operations/aws_code_guru_security/tag_resource.py +173 -0
- capo_codeguru_security/_operations/aws_code_guru_security/untag_resource.py +171 -0
- capo_codeguru_security/_operations/aws_code_guru_security/update_account_configuration.py +172 -0
- capo_codeguru_security/_pagination.py +21 -0
- capo_codeguru_security/_protocol/__init__.py +1 -0
- capo_codeguru_security/_protocol/errors.py +93 -0
- capo_codeguru_security/_protocol/eventstream.py +238 -0
- capo_codeguru_security/_protocol/serialize.py +47 -0
- capo_codeguru_security/_protocol/xml.py +33 -0
- capo_codeguru_security/_rule_engine/__init__.py +0 -0
- capo_codeguru_security/_rule_engine/_aws_partition.py +160 -0
- capo_codeguru_security/_rule_engine/_endpoint_rule_set.py +137 -0
- capo_codeguru_security/_rule_engine/_endpoint_runtime.py +389 -0
- capo_codeguru_security/_services/_aws_config.py +160 -0
- capo_codeguru_security/_services/_pipeline.py +198 -0
- capo_codeguru_security/_services/async_code_guru_security.py +934 -0
- capo_codeguru_security/_services/code_guru_security.py +921 -0
- capo_codeguru_security/errors/__init__.py +33 -0
- capo_codeguru_security/errors/_base.py +94 -0
- capo_codeguru_security/errors/access_denied_exception.py +67 -0
- capo_codeguru_security/errors/conflict_exception.py +67 -0
- capo_codeguru_security/errors/internal_server_exception.py +53 -0
- capo_codeguru_security/errors/resource_not_found_exception.py +69 -0
- capo_codeguru_security/errors/throttling_exception.py +65 -0
- capo_codeguru_security/errors/validation_exception.py +98 -0
- capo_codeguru_security/py.typed +0 -0
- capo_codeguru_security/types/_prelude/blob.py +12 -0
- capo_codeguru_security/types/_prelude/timestamp.py +17 -0
- capo_codeguru_security/types/account_findings_metric.py +118 -0
- capo_codeguru_security/types/analysis_type.py +17 -0
- capo_codeguru_security/types/batch_get_findings_error.py +61 -0
- capo_codeguru_security/types/batch_get_findings_errors.py +35 -0
- capo_codeguru_security/types/batch_get_findings_request.py +47 -0
- capo_codeguru_security/types/batch_get_findings_response.py +61 -0
- capo_codeguru_security/types/categories_with_most_findings.py +37 -0
- capo_codeguru_security/types/category_with_finding_num.py +29 -0
- capo_codeguru_security/types/client_token.py +5 -0
- capo_codeguru_security/types/code_line.py +29 -0
- capo_codeguru_security/types/code_snippet.py +29 -0
- capo_codeguru_security/types/create_scan_request.py +101 -0
- capo_codeguru_security/types/create_scan_response.py +78 -0
- capo_codeguru_security/types/create_upload_url_request.py +31 -0
- capo_codeguru_security/types/create_upload_url_response.py +59 -0
- capo_codeguru_security/types/detector_tags.py +14 -0
- capo_codeguru_security/types/encryption_config.py +28 -0
- capo_codeguru_security/types/error_code.py +20 -0
- capo_codeguru_security/types/error_message.py +5 -0
- capo_codeguru_security/types/file_path.py +62 -0
- capo_codeguru_security/types/finding.py +207 -0
- capo_codeguru_security/types/finding_identifier.py +33 -0
- capo_codeguru_security/types/finding_identifiers.py +33 -0
- capo_codeguru_security/types/finding_metrics_value_per_severity.py +87 -0
- capo_codeguru_security/types/findings.py +29 -0
- capo_codeguru_security/types/findings_metric_list.py +35 -0
- capo_codeguru_security/types/get_account_configuration_request.py +18 -0
- capo_codeguru_security/types/get_account_configuration_response.py +45 -0
- capo_codeguru_security/types/get_findings_request.py +32 -0
- capo_codeguru_security/types/get_findings_response.py +43 -0
- capo_codeguru_security/types/get_metrics_summary_request.py +24 -0
- capo_codeguru_security/types/get_metrics_summary_response.py +42 -0
- capo_codeguru_security/types/get_scan_request.py +27 -0
- capo_codeguru_security/types/get_scan_response.py +132 -0
- capo_codeguru_security/types/header_key.py +5 -0
- capo_codeguru_security/types/header_value.py +5 -0
- capo_codeguru_security/types/kms_key_arn.py +5 -0
- capo_codeguru_security/types/list_findings_metrics_request.py +32 -0
- capo_codeguru_security/types/list_findings_metrics_response.py +49 -0
- capo_codeguru_security/types/list_scans_request.py +26 -0
- capo_codeguru_security/types/list_scans_response.py +43 -0
- capo_codeguru_security/types/list_tags_for_resource_request.py +24 -0
- capo_codeguru_security/types/list_tags_for_resource_response.py +34 -0
- capo_codeguru_security/types/metrics_summary.py +121 -0
- capo_codeguru_security/types/next_token.py +5 -0
- capo_codeguru_security/types/recommendation.py +29 -0
- capo_codeguru_security/types/reference_urls.py +14 -0
- capo_codeguru_security/types/related_vulnerabilities.py +14 -0
- capo_codeguru_security/types/remediation.py +63 -0
- capo_codeguru_security/types/request_header_map.py +29 -0
- capo_codeguru_security/types/resource.py +29 -0
- capo_codeguru_security/types/resource_id.py +32 -0
- capo_codeguru_security/types/s3_url.py +5 -0
- capo_codeguru_security/types/scan_name.py +5 -0
- capo_codeguru_security/types/scan_name_arn.py +5 -0
- capo_codeguru_security/types/scan_name_with_finding_num.py +29 -0
- capo_codeguru_security/types/scan_state.py +18 -0
- capo_codeguru_security/types/scan_summaries.py +29 -0
- capo_codeguru_security/types/scan_summary.py +99 -0
- capo_codeguru_security/types/scan_type.py +17 -0
- capo_codeguru_security/types/scans_with_most_open_critical_findings.py +37 -0
- capo_codeguru_security/types/scans_with_most_open_findings.py +37 -0
- capo_codeguru_security/types/severity.py +20 -0
- capo_codeguru_security/types/status.py +18 -0
- capo_codeguru_security/types/suggested_fix.py +29 -0
- capo_codeguru_security/types/suggested_fixes.py +31 -0
- capo_codeguru_security/types/tag_key.py +5 -0
- capo_codeguru_security/types/tag_key_list.py +17 -0
- capo_codeguru_security/types/tag_map.py +29 -0
- capo_codeguru_security/types/tag_resource_request.py +40 -0
- capo_codeguru_security/types/tag_resource_response.py +18 -0
- capo_codeguru_security/types/tag_value.py +5 -0
- capo_codeguru_security/types/untag_resource_request.py +27 -0
- capo_codeguru_security/types/untag_resource_response.py +18 -0
- capo_codeguru_security/types/update_account_configuration_request.py +45 -0
- capo_codeguru_security/types/update_account_configuration_response.py +45 -0
- capo_codeguru_security/types/uuid.py +5 -0
- capo_codeguru_security/types/validation_exception_field.py +33 -0
- capo_codeguru_security/types/validation_exception_field_list.py +37 -0
- capo_codeguru_security/types/validation_exception_reason.py +20 -0
- capo_codeguru_security/types/vulnerability.py +90 -0
- capo_codeguru_security-0.1.0.dist-info/METADATA +101 -0
- capo_codeguru_security-0.1.0.dist-info/RECORD +132 -0
- capo_codeguru_security-0.1.0.dist-info/WHEEL +5 -0
- capo_codeguru_security-0.1.0.dist-info/licenses/LICENSE +21 -0
- capo_codeguru_security-0.1.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"""Generated from Smithy shape ``com.amazonaws.codegurusecurity#GetAccountConfigurationResponse``."""
|
|
2
|
+
|
|
3
|
+
from typing import TYPE_CHECKING
|
|
4
|
+
|
|
5
|
+
from typing_extensions import TypedDict
|
|
6
|
+
|
|
7
|
+
from capo_codeguru_security.errors import DeserializationError
|
|
8
|
+
|
|
9
|
+
if TYPE_CHECKING:
|
|
10
|
+
import capo_codeguru_security.types.encryption_config
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class GetAccountConfigurationResponse(TypedDict, closed=True):
|
|
14
|
+
encryption_config: "capo_codeguru_security.types.encryption_config.EncryptionConfig"
|
|
15
|
+
"""<p>An <code>EncryptionConfig</code> object that contains the KMS key ARN that is used for encryption. By default, CodeGuru Security uses an AWS-managed key for encryption. To specify your own key, call <code>UpdateAccountConfiguration</code>. If you do not specify a customer-managed key, returns empty.</p>"""
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
# --- restJson1 ser/de ---
|
|
19
|
+
def serialize_json(value: GetAccountConfigurationResponse) -> dict:
|
|
20
|
+
out: dict = {}
|
|
21
|
+
import capo_codeguru_security.types.encryption_config
|
|
22
|
+
|
|
23
|
+
out["encryptionConfig"] = (
|
|
24
|
+
capo_codeguru_security.types.encryption_config.serialize_json(
|
|
25
|
+
value["encryption_config"]
|
|
26
|
+
)
|
|
27
|
+
)
|
|
28
|
+
return out
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def deserialize_json(data: dict) -> GetAccountConfigurationResponse:
|
|
32
|
+
out: GetAccountConfigurationResponse = {} # type: ignore[typeddict-item]
|
|
33
|
+
if data.get("encryptionConfig") is not None:
|
|
34
|
+
import capo_codeguru_security.types.encryption_config
|
|
35
|
+
|
|
36
|
+
out["encryption_config"] = (
|
|
37
|
+
capo_codeguru_security.types.encryption_config.deserialize_json(
|
|
38
|
+
data["encryptionConfig"]
|
|
39
|
+
)
|
|
40
|
+
)
|
|
41
|
+
else:
|
|
42
|
+
raise DeserializationError(
|
|
43
|
+
"GetAccountConfigurationResponse.encryption_config required"
|
|
44
|
+
)
|
|
45
|
+
return out
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"""Generated from Smithy shape ``com.amazonaws.codegurusecurity#GetFindingsRequest``."""
|
|
2
|
+
|
|
3
|
+
from typing import TYPE_CHECKING
|
|
4
|
+
|
|
5
|
+
from typing_extensions import NotRequired, TypedDict
|
|
6
|
+
|
|
7
|
+
if TYPE_CHECKING:
|
|
8
|
+
import capo_codeguru_security.types.next_token
|
|
9
|
+
import capo_codeguru_security.types.scan_name
|
|
10
|
+
import capo_codeguru_security.types.status
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class GetFindingsRequest(TypedDict, closed=True):
|
|
14
|
+
scan_name: "capo_codeguru_security.types.scan_name.ScanName"
|
|
15
|
+
"""<p>The name of the scan you want to retrieve findings from.</p>"""
|
|
16
|
+
next_token: NotRequired["capo_codeguru_security.types.next_token.NextToken"]
|
|
17
|
+
"""<p>A token to use for paginating results that are returned in the response. Set the value of this parameter to null for the first request. For subsequent calls, use the <code>nextToken</code> value returned from the previous request to continue listing results after the first page.</p>"""
|
|
18
|
+
max_results: NotRequired["int"]
|
|
19
|
+
"""<p>The maximum number of results to return in the response. Use this parameter when paginating results. If additional results exist beyond the number you specify, the <code>nextToken</code> element is returned in the response. Use <code>nextToken</code> in a subsequent request to retrieve additional results. If not specified, returns 1000 results.</p>"""
|
|
20
|
+
status: NotRequired["capo_codeguru_security.types.status.Status"]
|
|
21
|
+
"""<p>The status of the findings you want to get. Pass either <code>Open</code>, <code>Closed</code>, or <code>All</code>.</p>"""
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
# --- restJson1 ser/de ---
|
|
25
|
+
def serialize_json(value: GetFindingsRequest) -> dict:
|
|
26
|
+
out: dict = {}
|
|
27
|
+
return out
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def deserialize_json(data: dict) -> GetFindingsRequest:
|
|
31
|
+
out: GetFindingsRequest = {} # type: ignore[typeddict-item]
|
|
32
|
+
return out
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"""Generated from Smithy shape ``com.amazonaws.codegurusecurity#GetFindingsResponse``."""
|
|
2
|
+
|
|
3
|
+
from typing import TYPE_CHECKING
|
|
4
|
+
|
|
5
|
+
from typing_extensions import NotRequired, TypedDict
|
|
6
|
+
|
|
7
|
+
if TYPE_CHECKING:
|
|
8
|
+
import capo_codeguru_security.types.findings
|
|
9
|
+
import capo_codeguru_security.types.next_token
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class GetFindingsResponse(TypedDict, closed=True):
|
|
13
|
+
findings: NotRequired["capo_codeguru_security.types.findings.Findings"]
|
|
14
|
+
"""<p>A list of findings generated by the specified scan.</p>"""
|
|
15
|
+
next_token: NotRequired["capo_codeguru_security.types.next_token.NextToken"]
|
|
16
|
+
"""<p>A pagination token. You can use this in future calls to <code>GetFindings</code> to continue listing results after the current page. </p>"""
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
# --- restJson1 ser/de ---
|
|
20
|
+
def serialize_json(value: GetFindingsResponse) -> dict:
|
|
21
|
+
out: dict = {}
|
|
22
|
+
if "findings" in value:
|
|
23
|
+
import capo_codeguru_security.types.findings
|
|
24
|
+
|
|
25
|
+
out["findings"] = capo_codeguru_security.types.findings.serialize_json(
|
|
26
|
+
value["findings"]
|
|
27
|
+
)
|
|
28
|
+
if "next_token" in value:
|
|
29
|
+
out["nextToken"] = value["next_token"]
|
|
30
|
+
return out
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def deserialize_json(data: dict) -> GetFindingsResponse:
|
|
34
|
+
out: GetFindingsResponse = {} # type: ignore[typeddict-item]
|
|
35
|
+
if data.get("findings") is not None:
|
|
36
|
+
import capo_codeguru_security.types.findings
|
|
37
|
+
|
|
38
|
+
out["findings"] = capo_codeguru_security.types.findings.deserialize_json(
|
|
39
|
+
data["findings"]
|
|
40
|
+
)
|
|
41
|
+
if data.get("nextToken") is not None:
|
|
42
|
+
out["next_token"] = data["nextToken"]
|
|
43
|
+
return out
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"""Generated from Smithy shape ``com.amazonaws.codegurusecurity#GetMetricsSummaryRequest``."""
|
|
2
|
+
|
|
3
|
+
from typing import TYPE_CHECKING
|
|
4
|
+
|
|
5
|
+
from typing_extensions import TypedDict
|
|
6
|
+
|
|
7
|
+
if TYPE_CHECKING:
|
|
8
|
+
import datetime
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class GetMetricsSummaryRequest(TypedDict, closed=True):
|
|
12
|
+
date: "datetime.datetime"
|
|
13
|
+
"""<p>The date you want to retrieve summary metrics from, rounded to the nearest day. The date must be within the past two years.</p>"""
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
# --- restJson1 ser/de ---
|
|
17
|
+
def serialize_json(value: GetMetricsSummaryRequest) -> dict:
|
|
18
|
+
out: dict = {}
|
|
19
|
+
return out
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def deserialize_json(data: dict) -> GetMetricsSummaryRequest:
|
|
23
|
+
out: GetMetricsSummaryRequest = {} # type: ignore[typeddict-item]
|
|
24
|
+
return out
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"""Generated from Smithy shape ``com.amazonaws.codegurusecurity#GetMetricsSummaryResponse``."""
|
|
2
|
+
|
|
3
|
+
from typing import TYPE_CHECKING
|
|
4
|
+
|
|
5
|
+
from typing_extensions import NotRequired, TypedDict
|
|
6
|
+
|
|
7
|
+
if TYPE_CHECKING:
|
|
8
|
+
import capo_codeguru_security.types.metrics_summary
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class GetMetricsSummaryResponse(TypedDict, closed=True):
|
|
12
|
+
metrics_summary: NotRequired[
|
|
13
|
+
"capo_codeguru_security.types.metrics_summary.MetricsSummary"
|
|
14
|
+
]
|
|
15
|
+
"""<p>The summary metrics from the specified date.</p>"""
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
# --- restJson1 ser/de ---
|
|
19
|
+
def serialize_json(value: GetMetricsSummaryResponse) -> dict:
|
|
20
|
+
out: dict = {}
|
|
21
|
+
if "metrics_summary" in value:
|
|
22
|
+
import capo_codeguru_security.types.metrics_summary
|
|
23
|
+
|
|
24
|
+
out["metricsSummary"] = (
|
|
25
|
+
capo_codeguru_security.types.metrics_summary.serialize_json(
|
|
26
|
+
value["metrics_summary"]
|
|
27
|
+
)
|
|
28
|
+
)
|
|
29
|
+
return out
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def deserialize_json(data: dict) -> GetMetricsSummaryResponse:
|
|
33
|
+
out: GetMetricsSummaryResponse = {} # type: ignore[typeddict-item]
|
|
34
|
+
if data.get("metricsSummary") is not None:
|
|
35
|
+
import capo_codeguru_security.types.metrics_summary
|
|
36
|
+
|
|
37
|
+
out["metrics_summary"] = (
|
|
38
|
+
capo_codeguru_security.types.metrics_summary.deserialize_json(
|
|
39
|
+
data["metricsSummary"]
|
|
40
|
+
)
|
|
41
|
+
)
|
|
42
|
+
return out
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"""Generated from Smithy shape ``com.amazonaws.codegurusecurity#GetScanRequest``."""
|
|
2
|
+
|
|
3
|
+
from typing import TYPE_CHECKING
|
|
4
|
+
|
|
5
|
+
from typing_extensions import NotRequired, TypedDict
|
|
6
|
+
|
|
7
|
+
if TYPE_CHECKING:
|
|
8
|
+
import capo_codeguru_security.types.scan_name
|
|
9
|
+
import capo_codeguru_security.types.uuid
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class GetScanRequest(TypedDict, closed=True):
|
|
13
|
+
scan_name: "capo_codeguru_security.types.scan_name.ScanName"
|
|
14
|
+
"""<p>The name of the scan you want to view details about.</p>"""
|
|
15
|
+
run_id: NotRequired["capo_codeguru_security.types.uuid.Uuid"]
|
|
16
|
+
"""<p>UUID that identifies the individual scan run you want to view details about. You retrieve this when you call the <code>CreateScan</code> operation. Defaults to the latest scan run if missing.</p>"""
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
# --- restJson1 ser/de ---
|
|
20
|
+
def serialize_json(value: GetScanRequest) -> dict:
|
|
21
|
+
out: dict = {}
|
|
22
|
+
return out
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def deserialize_json(data: dict) -> GetScanRequest:
|
|
26
|
+
out: GetScanRequest = {} # type: ignore[typeddict-item]
|
|
27
|
+
return out
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"""Generated from Smithy shape ``com.amazonaws.codegurusecurity#GetScanResponse``."""
|
|
2
|
+
|
|
3
|
+
from typing import TYPE_CHECKING
|
|
4
|
+
|
|
5
|
+
from typing_extensions import NotRequired, TypedDict
|
|
6
|
+
|
|
7
|
+
from capo_codeguru_security.errors import DeserializationError
|
|
8
|
+
|
|
9
|
+
if TYPE_CHECKING:
|
|
10
|
+
import datetime
|
|
11
|
+
|
|
12
|
+
import capo_codeguru_security.types.analysis_type
|
|
13
|
+
import capo_codeguru_security.types.error_message
|
|
14
|
+
import capo_codeguru_security.types.scan_name
|
|
15
|
+
import capo_codeguru_security.types.scan_name_arn
|
|
16
|
+
import capo_codeguru_security.types.scan_state
|
|
17
|
+
import capo_codeguru_security.types.uuid
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GetScanResponse(TypedDict, closed=True):
|
|
21
|
+
scan_name: "capo_codeguru_security.types.scan_name.ScanName"
|
|
22
|
+
"""<p>The name of the scan.</p>"""
|
|
23
|
+
run_id: "capo_codeguru_security.types.uuid.Uuid"
|
|
24
|
+
"""<p>UUID that identifies the individual scan run.</p>"""
|
|
25
|
+
scan_state: "capo_codeguru_security.types.scan_state.ScanState"
|
|
26
|
+
"""<p>The current state of the scan. Returns either <code>InProgress</code>, <code>Successful</code>, or <code>Failed</code>.</p>"""
|
|
27
|
+
created_at: "datetime.datetime"
|
|
28
|
+
"""<p>The time the scan was created.</p>"""
|
|
29
|
+
analysis_type: "capo_codeguru_security.types.analysis_type.AnalysisType"
|
|
30
|
+
"""<p>The type of analysis CodeGuru Security performed in the scan, either <code>Security</code> or <code>All</code>. The <code>Security</code> type only generates findings related to security. The <code>All</code> type generates both security findings and quality findings.</p>"""
|
|
31
|
+
updated_at: NotRequired["datetime.datetime"]
|
|
32
|
+
"""<p>The time when the scan was last updated. Only available for <code>STANDARD</code> scan types.</p>"""
|
|
33
|
+
number_of_revisions: NotRequired["int"]
|
|
34
|
+
"""<p>The number of times a scan has been re-run on a revised resource.</p>"""
|
|
35
|
+
scan_name_arn: NotRequired["capo_codeguru_security.types.scan_name_arn.ScanNameArn"]
|
|
36
|
+
"""<p>The ARN for the scan name.</p>"""
|
|
37
|
+
error_message: NotRequired[
|
|
38
|
+
"capo_codeguru_security.types.error_message.ErrorMessage"
|
|
39
|
+
]
|
|
40
|
+
"""<p>Details about the error that causes a scan to fail to be retrieved.</p>"""
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
# --- restJson1 ser/de ---
|
|
44
|
+
def serialize_json(value: GetScanResponse) -> dict:
|
|
45
|
+
out: dict = {}
|
|
46
|
+
out["scanName"] = value["scan_name"]
|
|
47
|
+
out["runId"] = value["run_id"]
|
|
48
|
+
import capo_codeguru_security.types.scan_state
|
|
49
|
+
|
|
50
|
+
out["scanState"] = capo_codeguru_security.types.scan_state.serialize_json(
|
|
51
|
+
value["scan_state"]
|
|
52
|
+
)
|
|
53
|
+
import capo_codeguru_security.types._prelude.timestamp
|
|
54
|
+
|
|
55
|
+
out["createdAt"] = capo_codeguru_security.types._prelude.timestamp.serialize_json(
|
|
56
|
+
value["created_at"]
|
|
57
|
+
)
|
|
58
|
+
import capo_codeguru_security.types.analysis_type
|
|
59
|
+
|
|
60
|
+
out["analysisType"] = capo_codeguru_security.types.analysis_type.serialize_json(
|
|
61
|
+
value["analysis_type"]
|
|
62
|
+
)
|
|
63
|
+
if "updated_at" in value:
|
|
64
|
+
import capo_codeguru_security.types._prelude.timestamp
|
|
65
|
+
|
|
66
|
+
out["updatedAt"] = (
|
|
67
|
+
capo_codeguru_security.types._prelude.timestamp.serialize_json(
|
|
68
|
+
value["updated_at"]
|
|
69
|
+
)
|
|
70
|
+
)
|
|
71
|
+
if "number_of_revisions" in value:
|
|
72
|
+
out["numberOfRevisions"] = value["number_of_revisions"]
|
|
73
|
+
if "scan_name_arn" in value:
|
|
74
|
+
out["scanNameArn"] = value["scan_name_arn"]
|
|
75
|
+
if "error_message" in value:
|
|
76
|
+
out["errorMessage"] = value["error_message"]
|
|
77
|
+
return out
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
def deserialize_json(data: dict) -> GetScanResponse:
|
|
81
|
+
out: GetScanResponse = {} # type: ignore[typeddict-item]
|
|
82
|
+
if data.get("scanName") is not None:
|
|
83
|
+
out["scan_name"] = data["scanName"]
|
|
84
|
+
else:
|
|
85
|
+
raise DeserializationError("GetScanResponse.scan_name required")
|
|
86
|
+
if data.get("runId") is not None:
|
|
87
|
+
out["run_id"] = data["runId"]
|
|
88
|
+
else:
|
|
89
|
+
raise DeserializationError("GetScanResponse.run_id required")
|
|
90
|
+
if data.get("scanState") is not None:
|
|
91
|
+
import capo_codeguru_security.types.scan_state
|
|
92
|
+
|
|
93
|
+
out["scan_state"] = capo_codeguru_security.types.scan_state.deserialize_json(
|
|
94
|
+
data["scanState"]
|
|
95
|
+
)
|
|
96
|
+
else:
|
|
97
|
+
raise DeserializationError("GetScanResponse.scan_state required")
|
|
98
|
+
if data.get("createdAt") is not None:
|
|
99
|
+
import capo_codeguru_security.types._prelude.timestamp
|
|
100
|
+
|
|
101
|
+
out["created_at"] = (
|
|
102
|
+
capo_codeguru_security.types._prelude.timestamp.deserialize_json(
|
|
103
|
+
data["createdAt"]
|
|
104
|
+
)
|
|
105
|
+
)
|
|
106
|
+
else:
|
|
107
|
+
raise DeserializationError("GetScanResponse.created_at required")
|
|
108
|
+
if data.get("analysisType") is not None:
|
|
109
|
+
import capo_codeguru_security.types.analysis_type
|
|
110
|
+
|
|
111
|
+
out["analysis_type"] = (
|
|
112
|
+
capo_codeguru_security.types.analysis_type.deserialize_json(
|
|
113
|
+
data["analysisType"]
|
|
114
|
+
)
|
|
115
|
+
)
|
|
116
|
+
else:
|
|
117
|
+
raise DeserializationError("GetScanResponse.analysis_type required")
|
|
118
|
+
if data.get("updatedAt") is not None:
|
|
119
|
+
import capo_codeguru_security.types._prelude.timestamp
|
|
120
|
+
|
|
121
|
+
out["updated_at"] = (
|
|
122
|
+
capo_codeguru_security.types._prelude.timestamp.deserialize_json(
|
|
123
|
+
data["updatedAt"]
|
|
124
|
+
)
|
|
125
|
+
)
|
|
126
|
+
if data.get("numberOfRevisions") is not None:
|
|
127
|
+
out["number_of_revisions"] = data["numberOfRevisions"]
|
|
128
|
+
if data.get("scanNameArn") is not None:
|
|
129
|
+
out["scan_name_arn"] = data["scanNameArn"]
|
|
130
|
+
if data.get("errorMessage") is not None:
|
|
131
|
+
out["error_message"] = data["errorMessage"]
|
|
132
|
+
return out
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"""Generated from Smithy shape ``com.amazonaws.codegurusecurity#ListFindingsMetricsRequest``."""
|
|
2
|
+
|
|
3
|
+
from typing import TYPE_CHECKING
|
|
4
|
+
|
|
5
|
+
from typing_extensions import NotRequired, TypedDict
|
|
6
|
+
|
|
7
|
+
if TYPE_CHECKING:
|
|
8
|
+
import datetime
|
|
9
|
+
|
|
10
|
+
import capo_codeguru_security.types.next_token
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class ListFindingsMetricsRequest(TypedDict, closed=True):
|
|
14
|
+
next_token: NotRequired["capo_codeguru_security.types.next_token.NextToken"]
|
|
15
|
+
"""<p>A token to use for paginating results that are returned in the response. Set the value of this parameter to null for the first request. For subsequent calls, use the <code>nextToken</code> value returned from the previous request to continue listing results after the first page.</p>"""
|
|
16
|
+
max_results: NotRequired["int"]
|
|
17
|
+
"""<p>The maximum number of results to return in the response. Use this parameter when paginating results. If additional results exist beyond the number you specify, the <code>nextToken</code> element is returned in the response. Use <code>nextToken</code> in a subsequent request to retrieve additional results. If not specified, returns 1000 results.</p>"""
|
|
18
|
+
start_date: "datetime.datetime"
|
|
19
|
+
"""<p>The start date of the interval which you want to retrieve metrics from. Rounds to the nearest day.</p>"""
|
|
20
|
+
end_date: "datetime.datetime"
|
|
21
|
+
"""<p>The end date of the interval which you want to retrieve metrics from. Round to the nearest day.</p>"""
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
# --- restJson1 ser/de ---
|
|
25
|
+
def serialize_json(value: ListFindingsMetricsRequest) -> dict:
|
|
26
|
+
out: dict = {}
|
|
27
|
+
return out
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def deserialize_json(data: dict) -> ListFindingsMetricsRequest:
|
|
31
|
+
out: ListFindingsMetricsRequest = {} # type: ignore[typeddict-item]
|
|
32
|
+
return out
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"""Generated from Smithy shape ``com.amazonaws.codegurusecurity#ListFindingsMetricsResponse``."""
|
|
2
|
+
|
|
3
|
+
from typing import TYPE_CHECKING
|
|
4
|
+
|
|
5
|
+
from typing_extensions import NotRequired, TypedDict
|
|
6
|
+
|
|
7
|
+
if TYPE_CHECKING:
|
|
8
|
+
import capo_codeguru_security.types.findings_metric_list
|
|
9
|
+
import capo_codeguru_security.types.next_token
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class ListFindingsMetricsResponse(TypedDict, closed=True):
|
|
13
|
+
findings_metrics: NotRequired[
|
|
14
|
+
"capo_codeguru_security.types.findings_metric_list.FindingsMetricList"
|
|
15
|
+
]
|
|
16
|
+
"""<p>A list of <code>AccountFindingsMetric</code> objects retrieved from the specified time interval.</p>"""
|
|
17
|
+
next_token: NotRequired["capo_codeguru_security.types.next_token.NextToken"]
|
|
18
|
+
"""<p>A pagination token. You can use this in future calls to <code>ListFindingMetrics</code> to continue listing results after the current page. </p>"""
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
# --- restJson1 ser/de ---
|
|
22
|
+
def serialize_json(value: ListFindingsMetricsResponse) -> dict:
|
|
23
|
+
out: dict = {}
|
|
24
|
+
if "findings_metrics" in value:
|
|
25
|
+
import capo_codeguru_security.types.findings_metric_list
|
|
26
|
+
|
|
27
|
+
out["findingsMetrics"] = (
|
|
28
|
+
capo_codeguru_security.types.findings_metric_list.serialize_json(
|
|
29
|
+
value["findings_metrics"]
|
|
30
|
+
)
|
|
31
|
+
)
|
|
32
|
+
if "next_token" in value:
|
|
33
|
+
out["nextToken"] = value["next_token"]
|
|
34
|
+
return out
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def deserialize_json(data: dict) -> ListFindingsMetricsResponse:
|
|
38
|
+
out: ListFindingsMetricsResponse = {} # type: ignore[typeddict-item]
|
|
39
|
+
if data.get("findingsMetrics") is not None:
|
|
40
|
+
import capo_codeguru_security.types.findings_metric_list
|
|
41
|
+
|
|
42
|
+
out["findings_metrics"] = (
|
|
43
|
+
capo_codeguru_security.types.findings_metric_list.deserialize_json(
|
|
44
|
+
data["findingsMetrics"]
|
|
45
|
+
)
|
|
46
|
+
)
|
|
47
|
+
if data.get("nextToken") is not None:
|
|
48
|
+
out["next_token"] = data["nextToken"]
|
|
49
|
+
return out
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"""Generated from Smithy shape ``com.amazonaws.codegurusecurity#ListScansRequest``."""
|
|
2
|
+
|
|
3
|
+
from typing import TYPE_CHECKING
|
|
4
|
+
|
|
5
|
+
from typing_extensions import NotRequired, TypedDict
|
|
6
|
+
|
|
7
|
+
if TYPE_CHECKING:
|
|
8
|
+
import capo_codeguru_security.types.next_token
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ListScansRequest(TypedDict, closed=True):
|
|
12
|
+
next_token: NotRequired["capo_codeguru_security.types.next_token.NextToken"]
|
|
13
|
+
"""<p>A token to use for paginating results that are returned in the response. Set the value of this parameter to null for the first request. For subsequent calls, use the <code>nextToken</code> value returned from the previous request to continue listing results after the first page.</p>"""
|
|
14
|
+
max_results: NotRequired["int"]
|
|
15
|
+
"""<p>The maximum number of results to return in the response. Use this parameter when paginating results. If additional results exist beyond the number you specify, the <code>nextToken</code> element is returned in the response. Use <code>nextToken</code> in a subsequent request to retrieve additional results. If not specified, returns 100 results.</p>"""
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
# --- restJson1 ser/de ---
|
|
19
|
+
def serialize_json(value: ListScansRequest) -> dict:
|
|
20
|
+
out: dict = {}
|
|
21
|
+
return out
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def deserialize_json(data: dict) -> ListScansRequest:
|
|
25
|
+
out: ListScansRequest = {} # type: ignore[typeddict-item]
|
|
26
|
+
return out
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"""Generated from Smithy shape ``com.amazonaws.codegurusecurity#ListScansResponse``."""
|
|
2
|
+
|
|
3
|
+
from typing import TYPE_CHECKING
|
|
4
|
+
|
|
5
|
+
from typing_extensions import NotRequired, TypedDict
|
|
6
|
+
|
|
7
|
+
if TYPE_CHECKING:
|
|
8
|
+
import capo_codeguru_security.types.next_token
|
|
9
|
+
import capo_codeguru_security.types.scan_summaries
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class ListScansResponse(TypedDict, closed=True):
|
|
13
|
+
summaries: NotRequired["capo_codeguru_security.types.scan_summaries.ScanSummaries"]
|
|
14
|
+
"""<p>A list of <code>ScanSummary</code> objects with information about all scans in an account.</p>"""
|
|
15
|
+
next_token: NotRequired["capo_codeguru_security.types.next_token.NextToken"]
|
|
16
|
+
"""<p>A pagination token. You can use this in future calls to <code>ListScans</code> to continue listing results after the current page.</p>"""
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
# --- restJson1 ser/de ---
|
|
20
|
+
def serialize_json(value: ListScansResponse) -> dict:
|
|
21
|
+
out: dict = {}
|
|
22
|
+
if "summaries" in value:
|
|
23
|
+
import capo_codeguru_security.types.scan_summaries
|
|
24
|
+
|
|
25
|
+
out["summaries"] = capo_codeguru_security.types.scan_summaries.serialize_json(
|
|
26
|
+
value["summaries"]
|
|
27
|
+
)
|
|
28
|
+
if "next_token" in value:
|
|
29
|
+
out["nextToken"] = value["next_token"]
|
|
30
|
+
return out
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def deserialize_json(data: dict) -> ListScansResponse:
|
|
34
|
+
out: ListScansResponse = {} # type: ignore[typeddict-item]
|
|
35
|
+
if data.get("summaries") is not None:
|
|
36
|
+
import capo_codeguru_security.types.scan_summaries
|
|
37
|
+
|
|
38
|
+
out["summaries"] = capo_codeguru_security.types.scan_summaries.deserialize_json(
|
|
39
|
+
data["summaries"]
|
|
40
|
+
)
|
|
41
|
+
if data.get("nextToken") is not None:
|
|
42
|
+
out["next_token"] = data["nextToken"]
|
|
43
|
+
return out
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"""Generated from Smithy shape ``com.amazonaws.codegurusecurity#ListTagsForResourceRequest``."""
|
|
2
|
+
|
|
3
|
+
from typing import TYPE_CHECKING
|
|
4
|
+
|
|
5
|
+
from typing_extensions import TypedDict
|
|
6
|
+
|
|
7
|
+
if TYPE_CHECKING:
|
|
8
|
+
import capo_codeguru_security.types.scan_name_arn
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ListTagsForResourceRequest(TypedDict, closed=True):
|
|
12
|
+
resource_arn: "capo_codeguru_security.types.scan_name_arn.ScanNameArn"
|
|
13
|
+
"""<p>The ARN of the <code>ScanName</code> object. You can retrieve this ARN by calling <code>CreateScan</code>, <code>ListScans</code>, or <code>GetScan</code>.</p>"""
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
# --- restJson1 ser/de ---
|
|
17
|
+
def serialize_json(value: ListTagsForResourceRequest) -> dict:
|
|
18
|
+
out: dict = {}
|
|
19
|
+
return out
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def deserialize_json(data: dict) -> ListTagsForResourceRequest:
|
|
23
|
+
out: ListTagsForResourceRequest = {} # type: ignore[typeddict-item]
|
|
24
|
+
return out
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"""Generated from Smithy shape ``com.amazonaws.codegurusecurity#ListTagsForResourceResponse``."""
|
|
2
|
+
|
|
3
|
+
from typing import TYPE_CHECKING
|
|
4
|
+
|
|
5
|
+
from typing_extensions import NotRequired, TypedDict
|
|
6
|
+
|
|
7
|
+
if TYPE_CHECKING:
|
|
8
|
+
import capo_codeguru_security.types.tag_map
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ListTagsForResourceResponse(TypedDict, closed=True):
|
|
12
|
+
tags: NotRequired["capo_codeguru_security.types.tag_map.TagMap"]
|
|
13
|
+
"""<p>An array of key-value pairs used to tag an existing scan. A tag is a custom attribute label with two parts:</p> <ul> <li> <p>A tag key. For example, <code>CostCenter</code>, <code>Environment</code>, or <code>Secret</code>. Tag keys are case sensitive.</p> </li> <li> <p>An optional tag value field. For example, <code>111122223333</code>, <code>Production</code>, or a team name. Omitting the tag value is the same as using an empty string. Tag values are case sensitive.</p> </li> </ul>"""
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
# --- restJson1 ser/de ---
|
|
17
|
+
def serialize_json(value: ListTagsForResourceResponse) -> dict:
|
|
18
|
+
out: dict = {}
|
|
19
|
+
if "tags" in value:
|
|
20
|
+
import capo_codeguru_security.types.tag_map
|
|
21
|
+
|
|
22
|
+
out["tags"] = capo_codeguru_security.types.tag_map.serialize_json(value["tags"])
|
|
23
|
+
return out
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def deserialize_json(data: dict) -> ListTagsForResourceResponse:
|
|
27
|
+
out: ListTagsForResourceResponse = {} # type: ignore[typeddict-item]
|
|
28
|
+
if data.get("tags") is not None:
|
|
29
|
+
import capo_codeguru_security.types.tag_map
|
|
30
|
+
|
|
31
|
+
out["tags"] = capo_codeguru_security.types.tag_map.deserialize_json(
|
|
32
|
+
data["tags"]
|
|
33
|
+
)
|
|
34
|
+
return out
|