123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446(* generated by: awso-codegen generate-all --botocore-data vendor/botocore/botocore/data -o aws --runtime-dir lib/runtime/awso --cli-dir awso-cli *)openAwsoopen!Import[@@@warning"-32"]letservice=Service.inspector_scanletapiVersion="2023-08-08"letendpointPrefix="inspector-scan"letserviceFullName="Inspector Scan"letsignatureVersion="v4"letprotocol="rest_json"letglobalEndpoint=endpointPrefix^".amazonaws.com"letserviceAbbreviation="inspector-scan"letsimple_to_jsonto_valuex=Botodata.Json.value_to_json_scalar(to_valuex)letcomposed_to_jsonto_valuex=Botodata.Json.value_to_json(to_valuex)letto_queryto_valuex=Client.Query.of_value(to_valuex)letstructure_to_value_auxst~f=letfilter=function|(k,Somev)->Some(k,v)|_->Noneinletpairkv=(k,v)inletdefer_value(k,dv)=pairkdvin((List.filter_mapst~f:filter)|>(List.map~f:defer_value))|>(funx->`Structure(fx))letstructure_to_value=structure_to_value_aux~f:Fn.idletstructure_to_wrapped_value~wrapper~response=structure_to_value_aux~f:(funx->[(wrapper,(`Structurex));(response,(`Structure[]))])moduleString_=structtypenonrect=stringletcontext_="String"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"String"jletto_json=simple_to_jsonto_valueendmoduleValidationExceptionField=structtypenonrect={name:String_.toption[@ocaml.doc"The name of the validation exception."];message:String_.toption[@ocaml.doc"The validation exception message."]}letmake?name=fun?message->fun()->{name;message}letto_valuex=structure_to_value[("name",(Option.mapx.name~f:String_.to_value));("message",(Option.mapx.message~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"message")inletname=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"name")inmake?message?name()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"String_.of_jsoninletname=field_mapjson__"name"String_.of_jsoninmake?message?name()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The request has failed validation due to missing required fields or having invalid inputs."]moduleInteger=structtypenonrect=intletmakei=iletof_string=Int.of_stringletto_valuex=`Integerxletto_queryv=to_queryto_valuevletto_headerx=Int.to_stringxletof_xmlxml_arg0=Int.of_string(string_of_xml~kind:"an integer for Integer"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleInternalServerExceptionReason=structtypenonrect=|FAILED_TO_GENERATE_SBOM|OTHER|Non_static_idofstringletmakei=iletto_string=function|FAILED_TO_GENERATE_SBOM->"FAILED_TO_GENERATE_SBOM"|OTHER->"OTHER"|Non_static_ids->sletof_string=function|"FAILED_TO_GENERATE_SBOM"->FAILED_TO_GENERATE_SBOM|"OTHER"->OTHER|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration InternalServerExceptionReason"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"InternalServerExceptionReason"j)letto_json=simple_to_jsonto_valueendmoduleValidationExceptionFields=structtypenonrect=ValidationExceptionField.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ValidationExceptionField.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:ValidationExceptionField.of_xml)letof_jsonj=list_of_json~kind:"ValidationExceptionFields"~of_json:ValidationExceptionField.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleValidationExceptionReason=structtypenonrect=|UNKNOWN_OPERATION|CANNOT_PARSE|FIELD_VALIDATION_FAILED|UNSUPPORTED_SBOM_TYPE|OTHER|Non_static_idofstringletmakei=iletto_string=function|UNKNOWN_OPERATION->"UNKNOWN_OPERATION"|CANNOT_PARSE->"CANNOT_PARSE"|FIELD_VALIDATION_FAILED->"FIELD_VALIDATION_FAILED"|UNSUPPORTED_SBOM_TYPE->"UNSUPPORTED_SBOM_TYPE"|OTHER->"OTHER"|Non_static_ids->sletof_string=function|"UNKNOWN_OPERATION"->UNKNOWN_OPERATION|"CANNOT_PARSE"->CANNOT_PARSE|"FIELD_VALIDATION_FAILED"->FIELD_VALIDATION_FAILED|"UNSUPPORTED_SBOM_TYPE"->UNSUPPORTED_SBOM_TYPE|"OTHER"->OTHER|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration ValidationExceptionReason"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ValidationExceptionReason"j)letto_json=simple_to_jsonto_valueendmoduleAccessDeniedException=structtypenonrect={message:String_.toption}letmake?message=fun()->{message}letto_valuex=structure_to_value[("message",(Option.mapx.message~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"message")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"String_.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"You do not have sufficient access to perform this action."]moduleInternalServerException=structtypenonrect={message:String_.toption;reason:InternalServerExceptionReason.toption[@ocaml.doc"The reason for the validation failure."];retryAfterSeconds:Integer.toption[@ocaml.doc"The number of seconds to wait before retrying the request."]}letmake?message=fun?reason->fun?retryAfterSeconds->fun()->{message;reason;retryAfterSeconds}letto_valuex=structure_to_value[("message",(Option.mapx.message~f:String_.to_value));("reason",(Option.mapx.reason~f:InternalServerExceptionReason.to_value));("Retry-After",(Option.mapx.retryAfterSeconds~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letretryAfterSeconds=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"Retry-After")inletreason=(Option.map~f:InternalServerExceptionReason.of_xml)(Xml.childxml_arg0"reason")inletmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"message")inmake?retryAfterSeconds?reason?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letretryAfterSeconds=field_mapjson__"retryAfterSeconds"Integer.of_jsoninletreason=field_mapjson__"reason"InternalServerExceptionReason.of_jsoninletmessage=field_mapjson__"message"String_.of_jsoninmake?retryAfterSeconds?reason?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The request processing has failed because of an unknown error, exception or failure."]moduleSbom=structtypenonrect=unitletmake()=()letof_header_and_body=((fun(xs,pipe)->make())[@warning"-27"])letto_value_=`Structure[]letto_queryv=to_queryto_valuevletof_xml_=make()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_json_=make()letto_jsonv=composed_to_jsonto_valuevendmoduleThrottlingException=structtypenonrect={message:String_.toption;retryAfterSeconds:Integer.toption[@ocaml.doc"The number of seconds to wait before retrying the request."]}letmake?message=fun?retryAfterSeconds->fun()->{message;retryAfterSeconds}letto_valuex=structure_to_value[("message",(Option.mapx.message~f:String_.to_value));("Retry-After",(Option.mapx.retryAfterSeconds~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letretryAfterSeconds=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"Retry-After")inletmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"message")inmake?retryAfterSeconds?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letretryAfterSeconds=field_mapjson__"retryAfterSeconds"Integer.of_jsoninletmessage=field_mapjson__"message"String_.of_jsoninmake?retryAfterSeconds?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The request was denied due to request throttling."]moduleValidationException=structtypenonrect={message:String_.toption;reason:ValidationExceptionReason.toption[@ocaml.doc"The reason for the validation failure."];fields:ValidationExceptionFields.toption[@ocaml.doc"The fields that failed validation."]}letmake?message=fun?reason->fun?fields->fun()->{message;reason;fields}letto_valuex=structure_to_value[("message",(Option.mapx.message~f:String_.to_value));("reason",(Option.mapx.reason~f:ValidationExceptionReason.to_value));("fields",(Option.mapx.fields~f:ValidationExceptionFields.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfields=(Option.map~f:ValidationExceptionFields.of_xml)(Xml.childxml_arg0"fields")inletreason=(Option.map~f:ValidationExceptionReason.of_xml)(Xml.childxml_arg0"reason")inletmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"message")inmake?fields?reason?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfields=field_mapjson__"fields"ValidationExceptionFields.of_jsoninletreason=field_mapjson__"reason"ValidationExceptionReason.of_jsoninletmessage=field_mapjson__"message"String_.of_jsoninmake?fields?reason?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The request has failed validation due to missing required fields or having invalid inputs."]moduleOutputFormat=structtypenonrect=|CYCLONE_DX_1_5|INSPECTOR|INSPECTOR_ALT|Non_static_idofstringletmakei=iletto_string=function|CYCLONE_DX_1_5->"CYCLONE_DX_1_5"|INSPECTOR->"INSPECTOR"|INSPECTOR_ALT->"INSPECTOR_ALT"|Non_static_ids->sletof_string=function|"CYCLONE_DX_1_5"->CYCLONE_DX_1_5|"INSPECTOR"->INSPECTOR|"INSPECTOR_ALT"->INSPECTOR_ALT|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration OutputFormat"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"OutputFormat"j)letto_json=simple_to_jsonto_valueendmoduleScanSbomResponse=structtypenonrect={sbom:Sbom.toption[@ocaml.doc"The vulnerability report for the scanned SBOM."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?sbom=fun()->{sbom}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("sbom",(Option.mapx.sbom~f:Sbom.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsbom=(Option.map~f:Sbom.of_xml)(Xml.childxml_arg0"sbom")inmake?sbom()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsbom=field_mapjson__"sbom"Sbom.of_jsoninmake?sbom()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Scans a provided CycloneDX 1.5 SBOM and reports on any vulnerabilities discovered in that SBOM. You can generate compatible SBOMs for your resources using the Amazon Inspector SBOM generator. The output of this action reports NVD and CVSS scores when NVD and CVSS scores are available. Because the output reports both scores, you might notice a discrepency between them. However, you can triage the severity of either score depending on the vendor of your choosing."]moduleScanSbomRequest=structtypenonrect={sbom:Sbom.t[@ocaml.doc"The JSON file for the SBOM you want to scan. The SBOM must be in CycloneDX 1.5 format. This format limits you to passing 2000 components before throwing a ValidException error."];outputFormat:OutputFormat.toption[@ocaml.doc"The output format for the vulnerability report."]}letcontext_="ScanSbomRequest"letmake?outputFormat=fun~sbom->fun()->{outputFormat;sbom}letto_valuex=structure_to_value[("sbom",(Some(Sbom.to_valuex.sbom)));("outputFormat",(Option.mapx.outputFormat~f:OutputFormat.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letoutputFormat=(Option.map~f:OutputFormat.of_xml)(Xml.childxml_arg0"outputFormat")inletsbom=Sbom.of_xml(Xml.child_exn~context:context_xml_arg0"sbom")inmake?outputFormat~sbom()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letoutputFormat=field_mapjson__"outputFormat"OutputFormat.of_jsoninletsbom=field_map_exnjson__"sbom"Sbom.of_jsoninmake?outputFormat~sbom()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Scans a provided CycloneDX 1.5 SBOM and reports on any vulnerabilities discovered in that SBOM. You can generate compatible SBOMs for your resources using the Amazon Inspector SBOM generator. The output of this action reports NVD and CVSS scores when NVD and CVSS scores are available. Because the output reports both scores, you might notice a discrepency between them. However, you can triage the severity of either score depending on the vendor of your choosing."]