123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601(* 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.cloudtrail_dataletapiVersion="2021-08-11"letendpointPrefix="cloudtrail-data"letserviceFullName="AWS CloudTrail Data Service"letsignatureVersion="v4"letprotocol="rest_json"letglobalEndpoint=endpointPrefix^".amazonaws.com"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[]))])moduleUuid=structtypenonrect=stringletcontext_="Uuid"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:128)>>=(fun()->check_patterni~pattern:"^[-_A-Za-z0-9]+$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"Uuid"jletto_json=simple_to_jsonto_valueendmoduleErrorCode=structtypenonrect=stringletcontext_="ErrorCode"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:128)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ErrorCode"jletto_json=simple_to_jsonto_valueendmoduleErrorMessage=structtypenonrect=stringletcontext_="ErrorMessage"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:1024)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ErrorMessage"jletto_json=simple_to_jsonto_valueendmoduleString_=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_valueendmoduleAuditEventResultEntry=structtypenonrect={eventID:Uuid.toption[@ocaml.doc"The event ID assigned by CloudTrail."];id:Uuid.toption[@ocaml.doc"The original event ID from the source event."]}letmake?eventID=fun?id->fun()->{eventID;id}letto_valuex=structure_to_value[("eventID",(Option.mapx.eventID~f:Uuid.to_value));("id",(Option.mapx.id~f:Uuid.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letid=(Option.map~f:Uuid.of_xml)(Xml.childxml_arg0"id")inleteventID=(Option.map~f:Uuid.of_xml)(Xml.childxml_arg0"eventID")inmake?id?eventID()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letid=field_mapjson__"id"Uuid.of_jsoninleteventID=field_mapjson__"eventID"Uuid.of_jsoninmake?id?eventID()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A response that includes successful and failed event results."]moduleResultErrorEntry=structtypenonrect={errorCode:ErrorCode.toption[@ocaml.doc"The error code for events that could not be ingested by CloudTrail. Possible error codes include: FieldTooLong, FieldNotFound, InvalidChecksum, InvalidData, InvalidRecipient, InvalidEventSource, AccountNotSubscribed, Throttling, and InternalFailure."];errorMessage:ErrorMessage.toption[@ocaml.doc"The message that describes the error for events that could not be ingested by CloudTrail."];id:Uuid.toption[@ocaml.doc"The original event ID from the source event that could not be ingested by CloudTrail."]}letmake?errorCode=fun?errorMessage->fun?id->fun()->{errorCode;errorMessage;id}letto_valuex=structure_to_value[("errorCode",(Option.mapx.errorCode~f:ErrorCode.to_value));("errorMessage",(Option.mapx.errorMessage~f:ErrorMessage.to_value));("id",(Option.mapx.id~f:Uuid.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letid=(Option.map~f:Uuid.of_xml)(Xml.childxml_arg0"id")inleterrorMessage=(Option.map~f:ErrorMessage.of_xml)(Xml.childxml_arg0"errorMessage")inleterrorCode=(Option.map~f:ErrorCode.of_xml)(Xml.childxml_arg0"errorCode")inmake?id?errorMessage?errorCode()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letid=field_mapjson__"id"Uuid.of_jsoninleterrorMessage=field_mapjson__"errorMessage"ErrorMessage.of_jsoninleterrorCode=field_mapjson__"errorCode"ErrorCode.of_jsoninmake?id?errorMessage?errorCode()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Includes the error code and error message for events that could not be ingested by CloudTrail."]moduleAuditEvent=structtypenonrect={eventData:String_.t[@ocaml.doc"The content of an audit event that comes from the event, such as userIdentity, userAgent, and eventSource."];eventDataChecksum:String_.toption[@ocaml.doc"A checksum is a base64-SHA256 algorithm that helps you verify that CloudTrail receives the event that matches with the checksum. Calculate the checksum by running a command like the following: printf %s $eventdata | openssl dgst -binary -sha256 | base64"];id:Uuid.t[@ocaml.doc"The original event ID from the source event."]}letcontext_="AuditEvent"letmake?eventDataChecksum=fun~eventData->fun~id->fun()->{eventDataChecksum;eventData;id}letto_valuex=structure_to_value[("eventData",(Some(String_.to_valuex.eventData)));("eventDataChecksum",(Option.mapx.eventDataChecksum~f:String_.to_value));("id",(Some(Uuid.to_valuex.id)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letid=Uuid.of_xml(Xml.child_exn~context:context_xml_arg0"id")inleteventDataChecksum=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"eventDataChecksum")inleteventData=String_.of_xml(Xml.child_exn~context:context_xml_arg0"eventData")inmake~id?eventDataChecksum~eventData()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letid=field_map_exnjson__"id"Uuid.of_jsoninleteventDataChecksum=field_mapjson__"eventDataChecksum"String_.of_jsoninleteventData=field_map_exnjson__"eventData"String_.of_jsoninmake~id?eventDataChecksum~eventData()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"An event from a source outside of Amazon Web Services that you want CloudTrail to log."]moduleAuditEventResultEntries=structtypenonrect=AuditEventResultEntry.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:100)>>=(fun()->check_list_mini~min:0));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:AuditEventResultEntry.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:AuditEventResultEntry.of_xml)letof_jsonj=list_of_json~kind:"AuditEventResultEntries"~of_json:AuditEventResultEntry.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleChannelInsufficientPermission=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"The caller's account ID must be the same as the channel owner's account ID."]moduleChannelNotFound=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"The channel could not be found."]moduleChannelUnsupportedSchema=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"The schema type of the event is not supported."]moduleDuplicatedAuditEventId=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"Two or more entries in the request have the same event ID."]moduleInvalidChannelARN=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"The specified channel ARN is not a valid channel ARN."]moduleResultErrorEntries=structtypenonrect=ResultErrorEntry.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:100)>>=(fun()->check_list_mini~min:0));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ResultErrorEntry.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:ResultErrorEntry.of_xml)letof_jsonj=list_of_json~kind:"ResultErrorEntries"~of_json:ResultErrorEntry.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleUnsupportedOperationException=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"The operation requested is not supported in this region or account."]moduleAuditEvents=structtypenonrect=AuditEvent.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:100)>>=(fun()->check_list_mini~min:1));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:AuditEvent.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:AuditEvent.of_xml)letof_jsonj=list_of_json~kind:"AuditEvents"~of_json:AuditEvent.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleChannelArn=structtypenonrect=stringletcontext_="ChannelArn"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^arn:.*$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ChannelArn"jletto_json=simple_to_jsonto_valueendmoduleExternalId=structtypenonrect=stringletcontext_="ExternalId"letmakei=letopenResultinok_or_failwith((check_string_mini~min:2)>>=(fun()->(check_string_maxi~max:1224)>>=(fun()->check_patterni~pattern:"^[\\w+=,.@:\\/-]*$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ExternalId"jletto_json=simple_to_jsonto_valueendmodulePutAuditEventsResponse=structtypenonrect={failed:ResultErrorEntries.toption[@ocaml.doc"Lists events in the provided event payload that could not be ingested into CloudTrail, and includes the error code and error message returned for events that could not be ingested."];successful:AuditEventResultEntries.toption[@ocaml.doc"Lists events in the provided event payload that were successfully ingested into CloudTrail."]}typenonrecerror=[`ChannelInsufficientPermissionofChannelInsufficientPermission.t|`ChannelNotFoundofChannelNotFound.t|`ChannelUnsupportedSchemaofChannelUnsupportedSchema.t|`DuplicatedAuditEventIdofDuplicatedAuditEventId.t|`InvalidChannelARNofInvalidChannelARN.t|`UnsupportedOperationExceptionofUnsupportedOperationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?failed=fun?successful->fun()->{failed;successful}leterror_of_jsonnamejson=matchnamewith|"ChannelInsufficientPermission"->`ChannelInsufficientPermission(ChannelInsufficientPermission.of_jsonjson)|"ChannelNotFound"->`ChannelNotFound(ChannelNotFound.of_jsonjson)|"ChannelUnsupportedSchema"->`ChannelUnsupportedSchema(ChannelUnsupportedSchema.of_jsonjson)|"DuplicatedAuditEventId"->`DuplicatedAuditEventId(DuplicatedAuditEventId.of_jsonjson)|"InvalidChannelARN"->`InvalidChannelARN(InvalidChannelARN.of_jsonjson)|"UnsupportedOperationException"->`UnsupportedOperationException(UnsupportedOperationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"ChannelInsufficientPermission"->`ChannelInsufficientPermission(ChannelInsufficientPermission.of_xmlxml)|"ChannelNotFound"->`ChannelNotFound(ChannelNotFound.of_xmlxml)|"ChannelUnsupportedSchema"->`ChannelUnsupportedSchema(ChannelUnsupportedSchema.of_xmlxml)|"DuplicatedAuditEventId"->`DuplicatedAuditEventId(DuplicatedAuditEventId.of_xmlxml)|"InvalidChannelARN"->`InvalidChannelARN(InvalidChannelARN.of_xmlxml)|"UnsupportedOperationException"->`UnsupportedOperationException(UnsupportedOperationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`ChannelInsufficientPermissione->`Assoc[("error",(`String"ChannelInsufficientPermission"));("details",(ChannelInsufficientPermission.to_jsone))]|`ChannelNotFounde->`Assoc[("error",(`String"ChannelNotFound"));("details",(ChannelNotFound.to_jsone))]|`ChannelUnsupportedSchemae->`Assoc[("error",(`String"ChannelUnsupportedSchema"));("details",(ChannelUnsupportedSchema.to_jsone))]|`DuplicatedAuditEventIde->`Assoc[("error",(`String"DuplicatedAuditEventId"));("details",(DuplicatedAuditEventId.to_jsone))]|`InvalidChannelARNe->`Assoc[("error",(`String"InvalidChannelARN"));("details",(InvalidChannelARN.to_jsone))]|`UnsupportedOperationExceptione->`Assoc[("error",(`String"UnsupportedOperationException"));("details",(UnsupportedOperationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("failed",(Option.mapx.failed~f:ResultErrorEntries.to_value));("successful",(Option.mapx.successful~f:AuditEventResultEntries.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsuccessful=(Option.map~f:AuditEventResultEntries.of_xml)(Xml.childxml_arg0"successful")inletfailed=(Option.map~f:ResultErrorEntries.of_xml)(Xml.childxml_arg0"failed")inmake?successful?failed()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsuccessful=field_mapjson__"successful"AuditEventResultEntries.of_jsoninletfailed=field_mapjson__"failed"ResultErrorEntries.of_jsoninmake?successful?failed()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Ingests your application events into CloudTrail Lake. A required parameter, auditEvents, accepts the JSON records (also called payload) of events that you want CloudTrail to ingest. You can add up to 100 of these events (or up to 1 MB) per PutAuditEvents request."]modulePutAuditEventsRequest=structtypenonrect={auditEvents:AuditEvents.t[@ocaml.doc"The JSON payload of events that you want to ingest. You can also point to the JSON event payload in a file."];channelArn:ChannelArn.t[@ocaml.doc"The ARN or ID (the ARN suffix) of a channel."];externalId:ExternalId.toption[@ocaml.doc"A unique identifier that is conditionally required when the channel's resource policy includes an external ID. This value can be any string, such as a passphrase or account number."]}letcontext_="PutAuditEventsRequest"letmake?externalId=fun~auditEvents->fun~channelArn->fun()->{externalId;auditEvents;channelArn}letto_valuex=structure_to_value[("auditEvents",(Some(AuditEvents.to_valuex.auditEvents)));("channelArn",(Some(ChannelArn.to_valuex.channelArn)));("externalId",(Option.mapx.externalId~f:ExternalId.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letexternalId=(Option.map~f:ExternalId.of_xml)(Xml.childxml_arg0"externalId")inletchannelArn=ChannelArn.of_xml(Xml.child_exn~context:context_xml_arg0"channelArn")inletauditEvents=AuditEvents.of_xml(Xml.child_exn~context:context_xml_arg0"auditEvents")inmake?externalId~channelArn~auditEvents()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letexternalId=field_mapjson__"externalId"ExternalId.of_jsoninletchannelArn=field_map_exnjson__"channelArn"ChannelArn.of_jsoninletauditEvents=field_map_exnjson__"auditEvents"AuditEvents.of_jsoninmake?externalId~channelArn~auditEvents()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Ingests your application events into CloudTrail Lake. A required parameter, auditEvents, accepts the JSON records (also called payload) of events that you want CloudTrail to ingest. You can add up to 100 of these events (or up to 1 MB) per PutAuditEvents request."]