{       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     SafeNone2T None%&OT An implementation of REST" functor based on http-client and IO !"#$%&'()* + !"#$%&(')* +!"#$%&'()* +None2T!"#$%&(')* +None!"59;$The identifier of a resourceThe type of the resourceGAn array of objects containing resource_id and resource_type attributes The number of tagged volumes The last tagged volume The number of tagged dropletsThe last tagged droplet'Statistics about the droplets resourcesStatistics about the volumes resources NOTE backend resources seem to exist too but I can't find any representation of them :| The tag nameVAn embedded object containing key value pairs of resource type and resource statistics Type of Tags :https://developers.digitalocean.com/documentation/v2/#tagsType of Block Storage (Volume) Chttps://developers.digitalocean.com/documentation/v2/#block-storage3The unique identifier for the Block Storage Volume.7The region that the Block Storage Volume is located in.FAn array containing the IDs of the Droplets the volume is attached to.2A human-redable name for the Block Storage Volume.DAn optional free-form text field to describe a Block Storage Volume.4The size of the Block Storage Volume in GiB (1024^3) GA time value that represents when the Block Storage Volume was created.!Type of Resources.Floating IPs Bhttps://developers.digitalocean.com/documentation/v2/#floating-ips3 Type of Domain zone file entries Dhttps://developers.digitalocean.com/documentation/v2/#domain-records<)Enumeration of possible DNS records typesLType of Domain zones =https://developers.digitalocean.com/documentation/v2/#domains[kType of action status This is returned when action is initiated or when status of some action is requestedeType of Size objects ;https://developers.digitalocean.com/documentation/v2/#sizesr Type of SSH Keys >https://developers.digitalocean.com/documentation/v2/#ssh-keysxType of droplet images <https://developers.digitalocean.com/documentation/v2/#images(Partial) Type of Droplets >https://developers.digitalocean.com/documentation/v2/#droplets"Type of Networks configured for a Droplet}A network is either a list of IPv4 and IPv6 NICs definitions, or no network. We need this because a droplet can contain an 'empty' networks JSON Object entry, instead of null.#Type of a single Network definitionThis type is parameterized with a phantom type which lifts the network address type at the type level (could use DataKinds extension...). This allows distinguishing types of of networks while using same parsing.MA type for various sizes Type parameter is used to define number's magnitude&Enumeration of all possible size slugsA type for describing Regiona A region can be assigned an empty object when it is undefined, or be referenced simply by its slug =https://developers.digitalocean.com/documentation/v2/#regions[String representation of size slugs This maps to corresponding expected JSON string value.-  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop  !"#$%&'()*+,-./0123456789:;<B=>?@ACDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrsvtuwxyz{|}~   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[ \]^_`abcde fghijklmnopqrstuvwx yz{|}~  ,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopNone!"9;!qrstuvwxyz{|}~qr qrstuvwxyz{|}~Safe+,-9;<=?DOQRT21 None29;<=(Cofree closure of CoTagsCommands functorComonadic interpreter for  Tagscommands!free transformer to embed effectsAvailable commands for tags  None:<=)Extract a typed result from a JSON output    None:<=TResource identifier for tagsRoot endpoint for tagsCreate a new Tag Fhttps://developers.digitalocean.com/documentation/v2/#create-a-new-tagRetrieve a Tag Dhttps://developers.digitalocean.com/documentation/v2/#retrieve-a-tag Delete a Tag Bhttps://developers.digitalocean.com/documentation/v2/#delete-a-tag"Tag one or several other resources Dhttps://developers.digitalocean.com/documentation/v2/#tag-a-resource$Untag one or several other resources Fhttps://developers.digitalocean.com/documentation/v2/#untag-a-resource9DSL Interpreter for TagsCommands into IO via the REST DSL   None SafeNone29;<= None!":<=TNone29;<=None!"$#Lookup (first) public IP for given Droplet , if any.4Find the first droplet that matches given Id or nameNone29;<=Comonadic interpreter for DropletCommandsAvailable commands for droplets             None!":<=T    None29;<= !"#$%&'()*+,-./0 !"#$%&'()*+,-./  !"#$%&'()*+,-./0None!":<=T 1234567898 123456789None !"#$%&'()*+,-./8None29;<=:;<=>?@ABCDEFGHIJK:;<=>?@ABCDEFGHIJ :;<=>?@ABCDEFGHIJKNone !":<=QRTLMNOPQRSTUVWXYZVLMNOPQRSTUVWXYZNoneQRT JRun DO actions, extracting authentication token from environment variable  AUTH_TOKEN. 5Run DO actions, passing a built authentication token. IRun DO actions, debugging requests, passing a built authentication token."        !"#$%&'()*+,-./0123456789:;<B=>?@ACDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrsvtuwxyz{|}~     xyz{|}~rstuvwqpefghijklmno[\]^_`abcdWXYZSTUVOPQRLMNGHIJKEF<=>?@ABCD3456789:;./012+,-()*%&'!"#$        "     [ !!"#$$%&''()*++,-./0123456789:;<=>?@@ABCDDEFGHIJKLMNOPQRSTUUVVWXYZZ[\]^_`abcdefghhijklmnopqqrstuvwxyz{|}}~  )     !""#$%&'&()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                $      )                              !"#$%&'()*+,-./012345678hdo-0.5-8eUPc1F3dcv5Ey3fVbp87p Network.DO Network.SSHNetwork.REST.CommandsNetwork.REST.Conduit Network.RESTNetwork.DO.TypesNetwork.DO.PrettyNetwork.DO.PairingNetwork.DO.Tags.CommandsNetwork.DO.Net.CommonNetwork.DO.Tags.NetNetwork.DO.TagsNetwork.DO.NamesNetwork.DO.IP.CommandsNetwork.DO.IP.Net Network.DO.IPNetwork.DO.Droplets.UtilsNetwork.DO.Droplets.CommandsNetwork.DO.Droplets.NetNetwork.DO.Domain.CommandsNetwork.DO.Domain.NetNetwork.DO.DomainNetwork.DO.CommandsNetwork.DO.NetTagPairtagPairResourceIdtagPairResourceTypeTagPairstagPairsResources TagVolumestagVolumesCounttagVolumesLastTagged TagDropletstagDropletsCounttagDropletsLastTagged TagResources tagDroplets tagVolumesTagtagName tagResourcesTagNameVolumevolumeId volumeRegionvolumeDropletIds volumeNamevolumeDescriptionvolumeSizeGigaBytesvolumeCreatedAt ResourceTypeResourceDropletResourceVolumeResourceBackend IPActionTypeAssignUnassignIPActionAssignIP UnassignIPFloatingIPTarget TargetRegion TargetDroplet FloatingIP floatingIpfloatingDropletfloatingRegion DomainRecordrecordId recordType recordName recordDatarecordPriority recordPort recordWeightDNSTypeACNAMETXTPTRSRVNSAAAAMX DomainConfigDomain domainName domainTTL zone_file DomainNamedomainAction DoPowerOff DoPowerOnCreateSnapshotDropletActionTypePowerOffPowerOn MakeSnapshot ActionStatus InProgress CompletedErrored ActionResultactionId actionStatus actionTypeactionStartedAtactionCompletedAtactionResourceIdactionResourceTypeactionRegionSlugSizeszSlugszMemoryszVcpusszDisk szTransferszPrice_MonthlyszPrice_Hourly szRegions szAvailablePrice TransferRateKeykeyIdkeyFingerprint publicKeykeyNameImageimageId imageName distribution imageSlug publicImage imageRegions min_disk_sizeimage_created_at imageType ImageTypeSnapshot TemporaryBackupDroplet dropletIdnamememoryvcpusdisklocked created_atstatus backup_ids snapshot_idsregion size_slugnetworksNetworks NoNetworksv4v6V6V4Network NetworkV4 NetworkV6 ip_addressnetmaskgatewaynetType netmask_v6NetTypePublicPrivateStatusNewActiveOffArchiveDatetheDateBytes bytesSizeGigaMegaIdBoxConfiguration configName boxRegionsizeconfigImageSlugkeysbackgroundCreateKeyId ImageSlugSizeSlugM512G1G2G4G8G16G32G48G64G96Region RegionSlugNoRegion regionName regionSlug regionSizesregionAvailableToolConfigurationToolslackUri authTokenquietResultErrormsgURISlug AuthTokenerror sizeSlugs defaultImage jsonBytes jsonNetwork toJsonNetwork parseRecord resourceTypes failParse outputResult generateNamepublicIPfindByIdOrNameCommandlistKeys listSizes listImages listRegionslistFloatingIPscreateFloatingIPdeleteFloatingIPassignFloatingIPunassignFloatingIP listDomains createDomain deleteDomain listRecords createRecord deleteRecord listDroplets createDroplet showDropletdestroyDroplet dropletActiondropletConsole getActionlistDropletSnapshotslistTags createTag retrieveTag deleteTaguntagResourcesrunDOEnvrunDO runDODebuggetAuthFromEnvsshRESTTRESTGetPostWaitForGetWithPostWith DeleteWithOptionsHeader authorisationgetJSON getJSONWithpostJSON postJSONWithdeleteJSONWithwaitFor runConduit RequestLogRequestLogWithBodyWithBodyBodyDebugNoDebug debugRequest debugResponseoptions$fToJSONTagPair$fToJSONTagPairs$fToJSONTagVolumes$fToJSONTagDroplets$fToJSONTagResources $fToJSONTag$fFromJSONTagPair$fFromJSONTagPairs$fFromJSONTagVolumes$fFromJSONTagDroplets$fFromJSONTagResources $fFromJSONTag$fToJSONVolume$fFromJSONVolume$fToJSONResourceType$fFromJSONResourceType$fReadResourceType$fShowResourceType$fFromJSONIPActionType$fToJSONIPAction$fToJSONFloatingIPTarget$fFromJSONFloatingIP$fToJSONDomainRecord$fFromJSONDomainRecord$fToJSONDNSType$fFromJSONDNSType$fToJSONDomainConfig$fFromJSONDomain$fToJSONDomainName$fFromJSONDomainName$fReadDomainName$fShowDomainName$fToJSONAction$fToJSONDropletActionType$fFromJSONDropletActionType$fFromJSONActionStatus$fFromJSONActionResult$fFromJSONSize $fFromJSONKey$fFromJSONImage$fFromJSONImageType$fToJSONDroplet$fFromJSONDroplet$fToJSONNetworks$fFromJSONNetworks$fToJSONNetwork$fFromJSONNetwork$fToJSONNetwork0$fFromJSONNetwork0$fToJSONNetType$fFromJSONNetType $fToJSONIP $fFromJSONIP$fToJSONStatus$fFromJSONStatus $fToJSONDate$fFromJSONDate $fToJSONBytes$fFromJSONBytes$fFromJSONBytes0$fToJSONBoxConfiguration$fFromJSONSizeSlug$fToJSONSizeSlug$fReadSizeSlug$fShowSizeSlug$fFromJSONRegion $fShowRegion$fToJSONRegion$fDefaultToolConfigurationPrettypretty$fPrettyVolume $fPrettyTag$fPrettyDNSType$fPrettyDomainRecord$fPrettyDomain$fPrettyIPActionType$fPrettyFloatingIP$fPrettyDropletActionType$fPrettyActionResult $fPrettySize$fPrettySizeSlug$fPrettyDouble $fPrettyImage $fPrettyKey $fPretty[] $fPrettyBytes$fPrettyBytes0$fPrettyNetwork$fPrettyNetworks$fPrettyRegion $fPrettyIP$fPrettyNetType$fPrettyStatus$fPrettyDroplet $fPrettyDate $fPrettyError $fPrettyChar $fPrettyMaybe$fPrettyEither $fPretty()PairingMpairMPairingpair:*::+:injlinjrinjrlinjrrinjrrlinjrrrinjrrrlinjrrrr pairEffect pairEffect' pairEffectM$fPairingMProductSumm$fPairingMSumProductm$fPairingM(,)(->)m$fPairing(,)(->)$fPairing(->)(,)$fPairingIdentityIdentityCoTagsCommandsTCoTagsCommands TagsCommandsT TagsCommands createTagH retrieveTagH deleteTagH listTagsH tagResourcesHuntagResourcesH CreateTag RetrieveTag DeleteTagListTagsUntagResources%$fPairingMCoTagsCommandsTagsCommandsm fromResponseListable listEndpoint listFieldrootURI apiVersiontoURItoList queryListerrMissingTokentagsURI tagsEndpoint doCreateTag doRetrieveTag doDeleteTagdoTagResourcesdoUntagResourcestagsCommandsInterpreter $fListableTagleftright CoIPCommandsT CoIPCommandslistFloatingIPsHcreateFloatingIPH deleteIPH actionIPH IPCommandsT IPCommandsListFloatingIPsCreateIPDeleteIPActionIPfloatingIPAction!$fPairingMCoIPCommandsIPCommandsmfloatingIpsURIfloatingIpsEndpoint doCreateIP doDeleteIPdoActionipCommandsInterpreter$fListableFloatingIPCoDropletCommandsDropletCommandsCoDropletCommandsT listDropletsHcreateDropletHdestroyDropletHactionDropletH getActionHlistSnapshotsHconsoleH showDropletHDropletCommandsT ListDroplets CreateDropletDestroyDroplet DropletAction GetAction ListSnapshotsConsole ShowDroplet+$fPairingMCoDropletCommandsDropletCommandsm dropletsURIdropletsEndpointdoListSnapshotsdoCreatedoDestroyDroplet doGetAction doShowDropletdoSshInDropletwaitForBoxToBeUpdropletCommandsInterpreter$fListableDropletCoDomainCommandsTCoDomainCommands listDomainsH createDomainH deleteDomainH listRecordsH createRecordH deleteRecordHDomainCommandsTDomainCommands ListDomains CreateDomain DeleteDomain ListRecords CreateRecord DeleteRecord)$fPairingMCoDomainCommandsDomainCommandsm domainsURIdomainsEndpointdoCreateDomaindoDeleteDomain doListRecordsdoCreateRecorddoDeleteRecorddnsCommandsInterpreter$fListableDomainCoDOTCoDO listKeysH listSizesH listImagesH listRegionsHDOTDOListKeys ListSizes ListImages ListRegions$fPairingMCoDODOm imagesURIkeysURIsizesURI accountURI regionsURI keysEndpoint sizesEndpointimagesEndpointregionsEndpointgenericCommands mkDOClient$fListableRegion$fListableImage$fListableSize $fListableKey