/AWS1/IF_ECR=>DESCRIBEIMAGESCANFINDINGS()¶
About DescribeImageScanFindings¶
Returns the scan findings for the specified image.
Method Signature¶
METHODS /AWS1/IF_ECR~DESCRIBEIMAGESCANFINDINGS
IMPORTING
!IV_REGISTRYID TYPE /AWS1/ECRREGISTRYID OPTIONAL
!IV_REPOSITORYNAME TYPE /AWS1/ECRREPOSITORYNAME OPTIONAL
!IO_IMAGEID TYPE REF TO /AWS1/CL_ECRIMAGEIDENTIFIER OPTIONAL
!IV_NEXTTOKEN TYPE /AWS1/ECRNEXTTOKEN OPTIONAL
!IV_MAXRESULTS TYPE /AWS1/ECRMAXRESULTS OPTIONAL
RETURNING
VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_ecrdscimagescanfnds01
RAISING
/AWS1/CX_ECRIMAGENOTFOUNDEX
/AWS1/CX_ECRINVALIDPARAMETEREX
/AWS1/CX_ECRREPOSITORYNOTFNDEX
/AWS1/CX_ECRSCANNOTFOUNDEX
/AWS1/CX_ECRSERVEREXCEPTION
/AWS1/CX_ECRVALIDATIONEX
/AWS1/CX_ECRCLIENTEXC
/AWS1/CX_ECRSERVEREXC
/AWS1/CX_RT_TECHNICAL_GENERIC
/AWS1/CX_RT_SERVICE_GENERIC.
IMPORTING¶
Required arguments:¶
iv_repositoryname TYPE /AWS1/ECRREPOSITORYNAME /AWS1/ECRREPOSITORYNAME¶
The repository for the image for which to describe the scan findings.
io_imageid TYPE REF TO /AWS1/CL_ECRIMAGEIDENTIFIER /AWS1/CL_ECRIMAGEIDENTIFIER¶
imageId
Optional arguments:¶
iv_registryid TYPE /AWS1/ECRREGISTRYID /AWS1/ECRREGISTRYID¶
The Amazon Web Services account ID associated with the registry that contains the repository in which to describe the image scan findings for. If you do not specify a registry, the default registry is assumed.
iv_nexttoken TYPE /AWS1/ECRNEXTTOKEN /AWS1/ECRNEXTTOKEN¶
The
nextTokenvalue returned from a previous paginatedDescribeImageScanFindingsrequest wheremaxResultswas used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned thenextTokenvalue. This value is null when there are no more results to return.
iv_maxresults TYPE /AWS1/ECRMAXRESULTS /AWS1/ECRMAXRESULTS¶
The maximum number of image scan results returned by
DescribeImageScanFindingsin paginated output. When this parameter is used,DescribeImageScanFindingsonly returnsmaxResultsresults in a single page along with anextTokenresponse element. The remaining results of the initial request can be seen by sending anotherDescribeImageScanFindingsrequest with the returnednextTokenvalue. This value can be between 1 and 1000. If this parameter is not used, thenDescribeImageScanFindingsreturns up to 100 results and anextTokenvalue, if applicable.
RETURNING¶
oo_output TYPE REF TO /aws1/cl_ecrdscimagescanfnds01 /AWS1/CL_ECRDSCIMAGESCANFNDS01¶
Domain /AWS1/RT_ACCOUNT_ID Primitive Type NUMC
Examples¶
Syntax Example¶
This is an example of the syntax for calling the method. It includes every possible argument and initializes every possible value. The data provided is not necessarily semantically accurate (for example the value "string" may be provided for something that is intended to be an instance ID, or in some cases two arguments may be mutually exclusive). The syntax shows the ABAP syntax for creating the various data structures.
DATA(lo_result) = lo_client->describeimagescanfindings(
io_imageid = new /aws1/cl_ecrimageidentifier(
iv_imagedigest = |string|
iv_imagetag = |string|
)
iv_maxresults = 123
iv_nexttoken = |string|
iv_registryid = |string|
iv_repositoryname = |string|
).
This is an example of reading all possible response values
lo_result = lo_result.
IF lo_result IS NOT INITIAL.
lv_registryid = lo_result->get_registryid( ).
lv_repositoryname = lo_result->get_repositoryname( ).
lo_imageidentifier = lo_result->get_imageid( ).
IF lo_imageidentifier IS NOT INITIAL.
lv_imagedigest = lo_imageidentifier->get_imagedigest( ).
lv_imagetag = lo_imageidentifier->get_imagetag( ).
ENDIF.
lo_imagescanstatus = lo_result->get_imagescanstatus( ).
IF lo_imagescanstatus IS NOT INITIAL.
lv_scanstatus = lo_imagescanstatus->get_status( ).
lv_scanstatusdescription = lo_imagescanstatus->get_description( ).
ENDIF.
lo_imagescanfindings = lo_result->get_imagescanfindings( ).
IF lo_imagescanfindings IS NOT INITIAL.
lv_scantimestamp = lo_imagescanfindings->get_imagescancompletedat( ).
lv_vulnerabilitysourceupda = lo_imagescanfindings->get_vulnerabilitysrcupddat( ).
LOOP AT lo_imagescanfindings->get_findingseveritycounts( ) into ls_row.
lv_key = ls_row-key.
lo_value = ls_row-value.
IF lo_value IS NOT INITIAL.
lv_severitycount = lo_value->get_value( ).
ENDIF.
ENDLOOP.
LOOP AT lo_imagescanfindings->get_findings( ) into lo_row_1.
lo_row_2 = lo_row_1.
IF lo_row_2 IS NOT INITIAL.
lv_findingname = lo_row_2->get_name( ).
lv_findingdescription = lo_row_2->get_description( ).
lv_url = lo_row_2->get_uri( ).
lv_findingseverity = lo_row_2->get_severity( ).
LOOP AT lo_row_2->get_attributes( ) into lo_row_3.
lo_row_4 = lo_row_3.
IF lo_row_4 IS NOT INITIAL.
lv_attributekey = lo_row_4->get_key( ).
lv_attributevalue = lo_row_4->get_value( ).
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
LOOP AT lo_imagescanfindings->get_enhancedfindings( ) into lo_row_5.
lo_row_6 = lo_row_5.
IF lo_row_6 IS NOT INITIAL.
lv_registryid = lo_row_6->get_awsaccountid( ).
lv_findingdescription = lo_row_6->get_description( ).
lv_findingarn = lo_row_6->get_findingarn( ).
lv_date = lo_row_6->get_firstobservedat( ).
lv_date = lo_row_6->get_lastobservedat( ).
lo_packagevulnerabilitydet = lo_row_6->get_packagevulnerabilitydets( ).
IF lo_packagevulnerabilitydet IS NOT INITIAL.
LOOP AT lo_packagevulnerabilitydet->get_cvss( ) into lo_row_7.
lo_row_8 = lo_row_7.
IF lo_row_8 IS NOT INITIAL.
lv_basescore = lo_row_8->get_basescore( ).
lv_scoringvector = lo_row_8->get_scoringvector( ).
lv_source = lo_row_8->get_source( ).
lv_version = lo_row_8->get_version( ).
ENDIF.
ENDLOOP.
LOOP AT lo_packagevulnerabilitydet->get_referenceurls( ) into lo_row_9.
lo_row_10 = lo_row_9.
IF lo_row_10 IS NOT INITIAL.
lv_url = lo_row_10->get_value( ).
ENDIF.
ENDLOOP.
LOOP AT lo_packagevulnerabilitydet->get_relatedvulnerabilities( ) into lo_row_11.
lo_row_12 = lo_row_11.
IF lo_row_12 IS NOT INITIAL.
lv_relatedvulnerability = lo_row_12->get_value( ).
ENDIF.
ENDLOOP.
lv_source = lo_packagevulnerabilitydet->get_source( ).
lv_url = lo_packagevulnerabilitydet->get_sourceurl( ).
lv_date = lo_packagevulnerabilitydet->get_vendorcreatedat( ).
lv_severity = lo_packagevulnerabilitydet->get_vendorseverity( ).
lv_date = lo_packagevulnerabilitydet->get_vendorupdatedat( ).
lv_vulnerabilityid = lo_packagevulnerabilitydet->get_vulnerabilityid( ).
LOOP AT lo_packagevulnerabilitydet->get_vulnerablepackages( ) into lo_row_13.
lo_row_14 = lo_row_13.
IF lo_row_14 IS NOT INITIAL.
lv_arch = lo_row_14->get_arch( ).
lv_epoch = lo_row_14->get_epoch( ).
lv_filepath = lo_row_14->get_filepath( ).
lv_vulnerablepackagename = lo_row_14->get_name( ).
lv_packagemanager = lo_row_14->get_packagemanager( ).
lv_release = lo_row_14->get_release( ).
lv_sourcelayerhash = lo_row_14->get_sourcelayerhash( ).
lv_version = lo_row_14->get_version( ).
lv_fixedinversion = lo_row_14->get_fixedinversion( ).
ENDIF.
ENDLOOP.
ENDIF.
lo_remediation = lo_row_6->get_remediation( ).
IF lo_remediation IS NOT INITIAL.
lo_recommendation = lo_remediation->get_recommendation( ).
IF lo_recommendation IS NOT INITIAL.
lv_url = lo_recommendation->get_url( ).
lv_recommendationtext = lo_recommendation->get_text( ).
ENDIF.
ENDIF.
LOOP AT lo_row_6->get_resources( ) into lo_row_15.
lo_row_16 = lo_row_15.
IF lo_row_16 IS NOT INITIAL.
lo_resourcedetails = lo_row_16->get_details( ).
IF lo_resourcedetails IS NOT INITIAL.
lo_awsecrcontainerimagedet = lo_resourcedetails->get_awsecrcontainerimage( ).
IF lo_awsecrcontainerimagedet IS NOT INITIAL.
lv_arch = lo_awsecrcontainerimagedet->get_architecture( ).
lv_author = lo_awsecrcontainerimagedet->get_author( ).
lv_imagedigest = lo_awsecrcontainerimagedet->get_imagehash( ).
LOOP AT lo_awsecrcontainerimagedet->get_imagetags( ) into lo_row_17.
lo_row_18 = lo_row_17.
IF lo_row_18 IS NOT INITIAL.
lv_imagetag = lo_row_18->get_value( ).
ENDIF.
ENDLOOP.
lv_platform = lo_awsecrcontainerimagedet->get_platform( ).
lv_date = lo_awsecrcontainerimagedet->get_pushedat( ).
lv_date = lo_awsecrcontainerimagedet->get_lastinuseat( ).
lv_inusecount = lo_awsecrcontainerimagedet->get_inusecount( ).
lv_registryid = lo_awsecrcontainerimagedet->get_registry( ).
lv_repositoryname = lo_awsecrcontainerimagedet->get_repositoryname( ).
ENDIF.
ENDIF.
lv_resourceid = lo_row_16->get_id( ).
LOOP AT lo_row_16->get_tags( ) into ls_row_19.
lv_key_1 = ls_row_19-key.
lo_value_1 = ls_row_19-value.
IF lo_value_1 IS NOT INITIAL.
lv_tagvalue = lo_value_1->get_value( ).
ENDIF.
ENDLOOP.
lv_type = lo_row_16->get_type( ).
ENDIF.
ENDLOOP.
lv_score = lo_row_6->get_score( ).
lo_scoredetails = lo_row_6->get_scoredetails( ).
IF lo_scoredetails IS NOT INITIAL.
lo_cvssscoredetails = lo_scoredetails->get_cvss( ).
IF lo_cvssscoredetails IS NOT INITIAL.
LOOP AT lo_cvssscoredetails->get_adjustments( ) into lo_row_20.
lo_row_21 = lo_row_20.
IF lo_row_21 IS NOT INITIAL.
lv_metric = lo_row_21->get_metric( ).
lv_reason = lo_row_21->get_reason( ).
ENDIF.
ENDLOOP.
lv_score = lo_cvssscoredetails->get_score( ).
lv_source = lo_cvssscoredetails->get_scoresource( ).
lv_scoringvector = lo_cvssscoredetails->get_scoringvector( ).
lv_version = lo_cvssscoredetails->get_version( ).
ENDIF.
ENDIF.
lv_severity = lo_row_6->get_severity( ).
lv_status = lo_row_6->get_status( ).
lv_title = lo_row_6->get_title( ).
lv_type = lo_row_6->get_type( ).
lv_date = lo_row_6->get_updatedat( ).
lv_fixavailable = lo_row_6->get_fixavailable( ).
lv_exploitavailable = lo_row_6->get_exploitavailable( ).
ENDIF.
ENDLOOP.
ENDIF.
lv_nexttoken = lo_result->get_nexttoken( ).
ENDIF.