Full Code of apache/jclouds for AI

master 554418e58ac8 cached
7733 files
27.2 MB
7.6M tokens
52330 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (30,704K chars total). Download the full file to get everything.
Repository: apache/jclouds
Branch: master
Commit: 554418e58ac8
Files: 7733
Total size: 27.2 MB

Directory structure:
gitextract_4xvek8ry/

├── .asf.yaml
├── .dir-locals.el
├── .gitattributes
├── .github/
│   └── workflows/
│       └── ci.yaml
├── .gitignore
├── .mailmap
├── CONTRIBUTING.md
├── README.md
├── all/
│   └── pom.xml
├── allblobstore/
│   └── pom.xml
├── allcompute/
│   └── pom.xml
├── allloadbalancer/
│   └── pom.xml
├── apis/
│   ├── atmos/
│   │   ├── README.txt
│   │   ├── bnd.bnd
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── jclouds/
│   │       │               └── atmos/
│   │       │                   ├── AtmosApiMetadata.java
│   │       │                   ├── AtmosClient.java
│   │       │                   ├── AtmosResponseException.java
│   │       │                   ├── binders/
│   │       │                   │   ├── BindMetadataToHeaders.java
│   │       │                   │   └── BindUserMetadataToHeaders.java
│   │       │                   ├── blobstore/
│   │       │                   │   ├── AtmosBlobRequestSigner.java
│   │       │                   │   ├── AtmosBlobStore.java
│   │       │                   │   ├── config/
│   │       │                   │   │   └── AtmosBlobStoreContextModule.java
│   │       │                   │   └── functions/
│   │       │                   │       ├── BlobMetadataToObject.java
│   │       │                   │       ├── BlobStoreListOptionsToListOptions.java
│   │       │                   │       ├── BlobToContentMetadata.java
│   │       │                   │       ├── BlobToObject.java
│   │       │                   │       ├── BlobToSystemMetadata.java
│   │       │                   │       ├── DirectoryEntryListToResourceMetadataList.java
│   │       │                   │       ├── ObjectToBlob.java
│   │       │                   │       └── ObjectToBlobMetadata.java
│   │       │                   ├── config/
│   │       │                   │   ├── AtmosHttpApiModule.java
│   │       │                   │   ├── AtmosObjectModule.java
│   │       │                   │   └── AtmosParserModule.java
│   │       │                   ├── domain/
│   │       │                   │   ├── AtmosError.java
│   │       │                   │   ├── AtmosObject.java
│   │       │                   │   ├── BoundedSet.java
│   │       │                   │   ├── DirectoryEntry.java
│   │       │                   │   ├── FileType.java
│   │       │                   │   ├── MutableContentMetadata.java
│   │       │                   │   ├── SystemMetadata.java
│   │       │                   │   ├── UploadInfo.java
│   │       │                   │   ├── UserMetadata.java
│   │       │                   │   └── internal/
│   │       │                   │       ├── AtmosObjectImpl.java
│   │       │                   │       ├── BoundedLinkedHashSet.java
│   │       │                   │       └── DelegatingMutableContentMetadata.java
│   │       │                   ├── fallbacks/
│   │       │                   │   ├── EndpointIfAlreadyExists.java
│   │       │                   │   └── TrueOn404FalseOnPathNotEmpty.java
│   │       │                   ├── filters/
│   │       │                   │   ├── ShareUrl.java
│   │       │                   │   └── SignRequest.java
│   │       │                   ├── functions/
│   │       │                   │   ├── AtmosObjectName.java
│   │       │                   │   ├── ParseDirectoryListFromContentAndHeaders.java
│   │       │                   │   ├── ParseObjectFromHeadersAndHttpContent.java
│   │       │                   │   ├── ParseSystemMetadataFromHeaders.java
│   │       │                   │   ├── ParseUserMetadataFromHeaders.java
│   │       │                   │   └── ReturnTrueIfGroupACLIsOtherRead.java
│   │       │                   ├── handlers/
│   │       │                   │   ├── AtmosClientErrorRetryHandler.java
│   │       │                   │   ├── AtmosServerErrorRetryHandler.java
│   │       │                   │   └── ParseAtmosErrorFromXmlContent.java
│   │       │                   ├── options/
│   │       │                   │   ├── ListOptions.java
│   │       │                   │   └── PutOptions.java
│   │       │                   ├── reference/
│   │       │                   │   ├── AtmosErrorCode.java
│   │       │                   │   └── AtmosHeaders.java
│   │       │                   ├── util/
│   │       │                   │   └── AtmosUtils.java
│   │       │                   └── xml/
│   │       │                       ├── ErrorHandler.java
│   │       │                       └── ListDirectoryResponseHandler.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── jclouds/
│   │           │           └── atmos/
│   │           │               ├── AtmosApiMetadataTest.java
│   │           │               ├── AtmosClientLiveTest.java
│   │           │               ├── AtmosClientTest.java
│   │           │               ├── binders/
│   │           │               │   ├── BindMetadataToHeadersTest.java
│   │           │               │   └── BindUserMetadataToHeadersTest.java
│   │           │               ├── blobstore/
│   │           │               │   ├── AtmosBlobRequestSignerTest.java
│   │           │               │   ├── functions/
│   │           │               │   │   ├── ListOptionsToBlobStoreListOptions.java
│   │           │               │   │   └── ResourceMetadataListToDirectoryEntryList.java
│   │           │               │   └── integration/
│   │           │               │       ├── AtmosBlobSignerLiveTest.java
│   │           │               │       ├── AtmosContainerIntegrationLiveTest.java
│   │           │               │       ├── AtmosContainerLiveTest.java
│   │           │               │       ├── AtmosIntegrationLiveTest.java
│   │           │               │       ├── AtmosLiveTest.java
│   │           │               │       └── AtmosServiceIntegrationLiveTest.java
│   │           │               ├── fallbacks/
│   │           │               │   └── EndpointIfAlreadyExistsTest.java
│   │           │               ├── filters/
│   │           │               │   └── SignRequestTest.java
│   │           │               ├── functions/
│   │           │               │   ├── AtmosObjectNameTest.java
│   │           │               │   ├── ParseDirectoryListFromContentAndHeadersTest.java
│   │           │               │   ├── ParseObjectFromHeadersAndHttpContentTest.java
│   │           │               │   ├── ParseSystemMetadataFromHeadersTest.java
│   │           │               │   └── ParseUserMetadataFromHeadersTest.java
│   │           │               ├── handlers/
│   │           │               │   └── AtmosServerErrorRetryHandlerTest.java
│   │           │               ├── options/
│   │           │               │   └── ListOptionsTest.java
│   │           │               └── xml/
│   │           │                   ├── ErrorHandlerTest.java
│   │           │                   └── ListDirectoryResponseHandlerTest.java
│   │           └── resources/
│   │               ├── error.xml
│   │               ├── hashstring.txt
│   │               ├── list_basic.xml
│   │               ├── list_meta.xml
│   │               └── log4j.xml
│   ├── byon/
│   │   ├── README.txt
│   │   ├── bnd.bnd
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── jclouds/
│   │       │               └── byon/
│   │       │                   ├── BYONApiMetadata.java
│   │       │                   ├── Node.java
│   │       │                   ├── config/
│   │       │                   │   ├── BYONComputeServiceContextModule.java
│   │       │                   │   ├── CacheNodeStoreModule.java
│   │       │                   │   ├── ConfiguresNodeStore.java
│   │       │                   │   └── YamlNodeStoreModule.java
│   │       │                   ├── domain/
│   │       │                   │   └── YamlNode.java
│   │       │                   ├── functions/
│   │       │                   │   ├── NodeToNodeMetadata.java
│   │       │                   │   └── NodesFromYamlStream.java
│   │       │                   ├── internal/
│   │       │                   │   └── BYONComputeServiceAdapter.java
│   │       │                   └── suppliers/
│   │       │                       ├── NodesParsedFromSupplier.java
│   │       │                       └── SupplyFromProviderURIOrNodesProperty.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── jclouds/
│   │           │           └── byon/
│   │           │               ├── BYONApiMetadataTest.java
│   │           │               ├── BYONComputeServiceLiveTest.java
│   │           │               ├── BYONComputeServiceTest.java
│   │           │               ├── config/
│   │           │               │   ├── CacheNodeStoreModuleTest.java
│   │           │               │   └── YamlNodeStoreModuleTest.java
│   │           │               ├── functions/
│   │           │               │   ├── NodeToNodeMetadataTest.java
│   │           │               │   └── NodesFromYamlTest.java
│   │           │               └── suppliers/
│   │           │                   ├── NodesParsedFromSupplierTest.java
│   │           │                   └── SupplyFromProviderURIOrNodesPropertyTest.java
│   │           └── resources/
│   │               ├── log4j.xml
│   │               ├── test1.yaml
│   │               ├── test_location.yaml
│   │               ├── test_with_url.yaml
│   │               └── testkey.txt
│   ├── chef/
│   │   ├── bnd.bnd
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── jclouds/
│   │       │               ├── chef/
│   │       │               │   ├── ChefApi.java
│   │       │               │   ├── ChefApiMetadata.java
│   │       │               │   ├── ChefService.java
│   │       │               │   ├── binders/
│   │       │               │   │   ├── BindChecksumsToJsonPayload.java
│   │       │               │   │   ├── BindCreateClientOptionsToJsonPayload.java
│   │       │               │   │   ├── BindGenerateKeyForClientToJsonPayload.java
│   │       │               │   │   ├── BindGroupToUpdateRequestJsonPayload.java
│   │       │               │   │   ├── DatabagItemId.java
│   │       │               │   │   ├── EnvironmentName.java
│   │       │               │   │   ├── GroupName.java
│   │       │               │   │   ├── NodeName.java
│   │       │               │   │   └── RoleName.java
│   │       │               │   ├── config/
│   │       │               │   │   ├── ChefBootstrapModule.java
│   │       │               │   │   ├── ChefHttpApiModule.java
│   │       │               │   │   ├── ChefParserModule.java
│   │       │               │   │   ├── ChefProperties.java
│   │       │               │   │   ├── InstallChef.java
│   │       │               │   │   └── Validator.java
│   │       │               │   ├── domain/
│   │       │               │   │   ├── Attribute.java
│   │       │               │   │   ├── BootstrapConfig.java
│   │       │               │   │   ├── ChecksumStatus.java
│   │       │               │   │   ├── Client.java
│   │       │               │   │   ├── CookbookDefinition.java
│   │       │               │   │   ├── CookbookVersion.java
│   │       │               │   │   ├── DatabagItem.java
│   │       │               │   │   ├── Environment.java
│   │       │               │   │   ├── Group.java
│   │       │               │   │   ├── Grouping.java
│   │       │               │   │   ├── Metadata.java
│   │       │               │   │   ├── Node.java
│   │       │               │   │   ├── Resource.java
│   │       │               │   │   ├── Role.java
│   │       │               │   │   ├── Sandbox.java
│   │       │               │   │   ├── SearchResult.java
│   │       │               │   │   ├── UploadSandbox.java
│   │       │               │   │   └── User.java
│   │       │               │   ├── features/
│   │       │               │   │   └── OrganizationApi.java
│   │       │               │   ├── filters/
│   │       │               │   │   └── SignedHeaderAuth.java
│   │       │               │   ├── functions/
│   │       │               │   │   ├── BootstrapConfigForGroup.java
│   │       │               │   │   ├── ClientForGroup.java
│   │       │               │   │   ├── GroupToBootScript.java
│   │       │               │   │   ├── ParseCookbookDefinitionFromJson.java
│   │       │               │   │   ├── ParseCookbookDefinitionListFromJson.java
│   │       │               │   │   ├── ParseCookbookNamesFromJson.java
│   │       │               │   │   ├── ParseCookbookVersionsFromJson.java
│   │       │               │   │   ├── ParseErrorFromJsonOrReturnBody.java
│   │       │               │   │   ├── ParseKeySetFromJson.java
│   │       │               │   │   ├── ParseSearchClientsFromJson.java
│   │       │               │   │   ├── ParseSearchDatabagFromJson.java
│   │       │               │   │   ├── ParseSearchEnvironmentsFromJson.java
│   │       │               │   │   ├── ParseSearchNodesFromJson.java
│   │       │               │   │   ├── ParseSearchResultFromJson.java
│   │       │               │   │   ├── ParseSearchRolesFromJson.java
│   │       │               │   │   └── UriForResource.java
│   │       │               │   ├── handlers/
│   │       │               │   │   ├── ChefApiErrorRetryHandler.java
│   │       │               │   │   └── ChefErrorHandler.java
│   │       │               │   ├── internal/
│   │       │               │   │   └── BaseChefService.java
│   │       │               │   ├── options/
│   │       │               │   │   ├── CreateClientOptions.java
│   │       │               │   │   └── SearchOptions.java
│   │       │               │   ├── predicates/
│   │       │               │   │   └── CookbookVersionPredicates.java
│   │       │               │   ├── strategy/
│   │       │               │   │   ├── CleanupStaleNodesAndClients.java
│   │       │               │   │   ├── CreateNodeAndPopulateAutomaticAttributes.java
│   │       │               │   │   ├── DeleteAllClientsInList.java
│   │       │               │   │   ├── DeleteAllNodesInList.java
│   │       │               │   │   ├── ListClients.java
│   │       │               │   │   ├── ListCookbookVersions.java
│   │       │               │   │   ├── ListCookbookVersionsInEnvironment.java
│   │       │               │   │   ├── ListEnvironments.java
│   │       │               │   │   ├── ListNodes.java
│   │       │               │   │   ├── ListNodesInEnvironment.java
│   │       │               │   │   ├── UpdateAutomaticAttributesOnNode.java
│   │       │               │   │   └── internal/
│   │       │               │   │       ├── BaseListCookbookVersionsImpl.java
│   │       │               │   │       ├── BaseListNodesImpl.java
│   │       │               │   │       ├── CleanupStaleNodesAndClientsImpl.java
│   │       │               │   │       ├── CreateNodeAndPopulateAutomaticAttributesImpl.java
│   │       │               │   │       ├── DeleteAllClientsInListImpl.java
│   │       │               │   │       ├── DeleteAllNodesInListImpl.java
│   │       │               │   │       ├── ListClientsImpl.java
│   │       │               │   │       ├── ListCookbookVersionsImpl.java
│   │       │               │   │       ├── ListCookbookVersionsInEnvironmentImpl.java
│   │       │               │   │       ├── ListEnvironmentsImpl.java
│   │       │               │   │       ├── ListNodesImpl.java
│   │       │               │   │       ├── ListNodesInEnvironmentImpl.java
│   │       │               │   │       └── UpdateAutomaticAttributesOnNodeImpl.java
│   │       │               │   ├── suppliers/
│   │       │               │   │   └── ChefVersionSupplier.java
│   │       │               │   └── util/
│   │       │               │       ├── ChefUtils.java
│   │       │               │       ├── CollectionUtils.java
│   │       │               │       └── RunListBuilder.java
│   │       │               └── ohai/
│   │       │                   ├── Automatic.java
│   │       │                   ├── AutomaticSupplier.java
│   │       │                   ├── config/
│   │       │                   │   ├── ConfiguresOhai.java
│   │       │                   │   ├── JMXOhaiModule.java
│   │       │                   │   └── OhaiModule.java
│   │       │                   ├── functions/
│   │       │                   │   ├── ByteArrayToMacAddress.java
│   │       │                   │   ├── MapSetToMultimap.java
│   │       │                   │   └── NestSlashKeys.java
│   │       │                   └── suppliers/
│   │       │                       └── UptimeSecondsSupplier.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── jclouds/
│   │           │           ├── chef/
│   │           │           │   ├── BaseChefApiExpectTest.java
│   │           │           │   ├── ChefApiDelegationTest.java
│   │           │           │   ├── ChefApiExpectTest.java
│   │           │           │   ├── ChefApiLiveTest.java
│   │           │           │   ├── ChefApiMetadataTest.java
│   │           │           │   ├── ChefApiTest.java
│   │           │           │   ├── binders/
│   │           │           │   │   ├── BindGroupToUpdateRequestJsonPayloadTest.java
│   │           │           │   │   ├── BindHexEncodedMD5sToJsonPayloadTest.java
│   │           │           │   │   └── GroupNameTest.java
│   │           │           │   ├── config/
│   │           │           │   │   └── ChefParserModuleTest.java
│   │           │           │   ├── domain/
│   │           │           │   │   └── RoleTest.java
│   │           │           │   ├── features/
│   │           │           │   │   ├── OrganizationApiExpectTest.java
│   │           │           │   │   └── OrganizationApiLiveTest.java
│   │           │           │   ├── filters/
│   │           │           │   │   └── SignedHeaderAuthTest.java
│   │           │           │   ├── functions/
│   │           │           │   │   ├── BootstrapConfigForGroupTest.java
│   │           │           │   │   ├── ClientForGroupTest.java
│   │           │           │   │   ├── GroupToBootScriptTest.java
│   │           │           │   │   ├── ParseClientFromJsonTest.java
│   │           │           │   │   ├── ParseCookbookDefinitionFromJsonTest.java
│   │           │           │   │   ├── ParseCookbookDefinitionListFromJsonTest.java
│   │           │           │   │   ├── ParseCookbookNamesFromJsonTest.java
│   │           │           │   │   ├── ParseCookbookVersionFromJsonTest.java
│   │           │           │   │   ├── ParseCookbookVersionsFromJsonTest.java
│   │           │           │   │   ├── ParseDataBagItemFromJsonTest.java
│   │           │           │   │   ├── ParseErrorFromJsonOrReturnBodyTest.java
│   │           │           │   │   ├── ParseKeySetFromJsonTest.java
│   │           │           │   │   ├── ParseNodeFromJsonTest.java
│   │           │           │   │   ├── ParseSandboxFromJsonTest.java
│   │           │           │   │   ├── ParseSearchDataBagItemFromJsonTest.java
│   │           │           │   │   ├── ParseUploadSandboxFromJsonTest.java
│   │           │           │   │   └── UriForResourceTest.java
│   │           │           │   ├── handlers/
│   │           │           │   │   └── ChefApiErrorRetryHandlerTest.java
│   │           │           │   ├── internal/
│   │           │           │   │   ├── BaseChefLiveTest.java
│   │           │           │   │   └── BaseChefServiceTest.java
│   │           │           │   ├── strategy/
│   │           │           │   │   └── internal/
│   │           │           │   │       ├── CleanupStaleNodesAndClientsImplLiveTest.java
│   │           │           │   │       ├── CreateNodeAndPopulateAutomaticAttributesImplLiveTest.java
│   │           │           │   │       ├── CreateNodeAndPopulateAutomaticAttributesImplTest.java
│   │           │           │   │       ├── DeleteAllApisAndNodesInListImplLiveTest.java
│   │           │           │   │       ├── ListCookbookVersionsInEnvironmentImplLiveTest.java
│   │           │           │   │       ├── ListNodesImplLiveTest.java
│   │           │           │   │       ├── ListNodesInEnvironmentImplLiveTest.java
│   │           │           │   │       ├── UpdateAutomaticAttributesOnNodeImplLiveTest.java
│   │           │           │   │       └── UpdateAutomaticAttributesOnNodeImplTest.java
│   │           │           │   ├── suppliers/
│   │           │           │   │   └── ChefVersionSupplierTest.java
│   │           │           │   └── util/
│   │           │           │       ├── ChefUtilsTest.java
│   │           │           │       └── RunListBuilderTest.java
│   │           │           └── ohai/
│   │           │               ├── config/
│   │           │               │   ├── JMXTest.java
│   │           │               │   └── OhaiModuleTest.java
│   │           │               └── functions/
│   │           │                   ├── ByteArrayToMacAddressTest.java
│   │           │                   └── NestSlashKeysTest.java
│   │           └── resources/
│   │               ├── apache-chef-demo-cookbook.json
│   │               ├── bootstrap-env-noattrs.sh
│   │               ├── bootstrap-env.sh
│   │               ├── bootstrap-node-env.sh
│   │               ├── bootstrap-ssl.sh
│   │               ├── bootstrap.sh
│   │               ├── brew-cookbook.json
│   │               ├── chef.crt
│   │               ├── client-no-pub-key.json
│   │               ├── client.json
│   │               ├── clients_list.json
│   │               ├── data_list.json
│   │               ├── env_cookbooks.json
│   │               ├── environment_recipes.json
│   │               ├── group-update.json
│   │               ├── group.json
│   │               ├── groups.json
│   │               ├── logback.xml
│   │               ├── mysql-cookbook.json
│   │               ├── node.json
│   │               ├── nodes_list.json
│   │               ├── privkey.txt
│   │               ├── pubkey.txt
│   │               ├── roles_list.json
│   │               ├── sandbox.json
│   │               ├── search_role.json
│   │               ├── search_role_empty.json
│   │               ├── tomcat-cookbook.json
│   │               ├── upload-site.json
│   │               └── user.json
│   ├── cloudstack/
│   │   ├── bnd.bnd
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── jclouds/
│   │       │               └── cloudstack/
│   │       │                   ├── AsyncJobException.java
│   │       │                   ├── CloudStackApi.java
│   │       │                   ├── CloudStackApiMetadata.java
│   │       │                   ├── CloudStackContext.java
│   │       │                   ├── CloudStackDomainApi.java
│   │       │                   ├── CloudStackGlobalApi.java
│   │       │                   ├── binders/
│   │       │                   │   ├── BindAccountSecurityGroupPairsToIndexedQueryParams.java
│   │       │                   │   ├── BindCIDRsToCommaDelimitedQueryParam.java
│   │       │                   │   ├── BindIdListToCommaDelimitedQueryParam.java
│   │       │                   │   ├── BindSnapshotPolicyScheduleToQueryParam.java
│   │       │                   │   ├── BindTemplateMetadataToQueryParams.java
│   │       │                   │   └── ResourceLimitToQueryParams.java
│   │       │                   ├── compute/
│   │       │                   │   ├── CloudStackComputeService.java
│   │       │                   │   ├── config/
│   │       │                   │   │   └── CloudStackComputeServiceContextModule.java
│   │       │                   │   ├── extensions/
│   │       │                   │   │   ├── CloudStackImageExtension.java
│   │       │                   │   │   └── CloudStackSecurityGroupExtension.java
│   │       │                   │   ├── functions/
│   │       │                   │   │   ├── CloudStackSecurityGroupToSecurityGroup.java
│   │       │                   │   │   ├── IngressRuleToIpPermission.java
│   │       │                   │   │   ├── OrphanedGroupsByZoneId.java
│   │       │                   │   │   ├── ServiceOfferingToHardware.java
│   │       │                   │   │   ├── TemplateToImage.java
│   │       │                   │   │   ├── TemplateToOperatingSystem.java
│   │       │                   │   │   ├── VirtualMachineToNodeMetadata.java
│   │       │                   │   │   └── ZoneToLocation.java
│   │       │                   │   ├── loaders/
│   │       │                   │   │   ├── CreateUniqueKeyPair.java
│   │       │                   │   │   └── FindSecurityGroupOrCreate.java
│   │       │                   │   ├── options/
│   │       │                   │   │   └── CloudStackTemplateOptions.java
│   │       │                   │   ├── predicates/
│   │       │                   │   │   └── AllNodesInGroupTerminated.java
│   │       │                   │   └── strategy/
│   │       │                   │       ├── AdvancedNetworkOptionsConverter.java
│   │       │                   │       ├── BasicNetworkOptionsConverter.java
│   │       │                   │       ├── CloudStackComputeServiceAdapter.java
│   │       │                   │       └── OptionsConverter.java
│   │       │                   ├── config/
│   │       │                   │   ├── CloudStackHttpApiModule.java
│   │       │                   │   ├── CloudStackParserModule.java
│   │       │                   │   ├── CloudStackProperties.java
│   │       │                   │   └── CredentialType.java
│   │       │                   ├── domain/
│   │       │                   │   ├── Account.java
│   │       │                   │   ├── Alert.java
│   │       │                   │   ├── AllocationState.java
│   │       │                   │   ├── ApiKeyPair.java
│   │       │                   │   ├── AsyncCreateResponse.java
│   │       │                   │   ├── AsyncJob.java
│   │       │                   │   ├── AsyncJobError.java
│   │       │                   │   ├── Capabilities.java
│   │       │                   │   ├── Capacity.java
│   │       │                   │   ├── Cluster.java
│   │       │                   │   ├── ConfigurationEntry.java
│   │       │                   │   ├── DiskOffering.java
│   │       │                   │   ├── Domain.java
│   │       │                   │   ├── EncryptedPasswordAndPrivateKey.java
│   │       │                   │   ├── Event.java
│   │       │                   │   ├── ExtractMode.java
│   │       │                   │   ├── FirewallRule.java
│   │       │                   │   ├── GuestIPType.java
│   │       │                   │   ├── Host.java
│   │       │                   │   ├── IPForwardingRule.java
│   │       │                   │   ├── ISO.java
│   │       │                   │   ├── ISOExtraction.java
│   │       │                   │   ├── ISOPermissions.java
│   │       │                   │   ├── IngressRule.java
│   │       │                   │   ├── JobResult.java
│   │       │                   │   ├── LoadBalancerRule.java
│   │       │                   │   ├── LoginResponse.java
│   │       │                   │   ├── NIC.java
│   │       │                   │   ├── Network.java
│   │       │                   │   ├── NetworkOffering.java
│   │       │                   │   ├── NetworkOfferingAvailabilityType.java
│   │       │                   │   ├── NetworkService.java
│   │       │                   │   ├── NetworkType.java
│   │       │                   │   ├── OSType.java
│   │       │                   │   ├── PermissionOperation.java
│   │       │                   │   ├── Pod.java
│   │       │                   │   ├── PortForwardingRule.java
│   │       │                   │   ├── Project.java
│   │       │                   │   ├── PublicIPAddress.java
│   │       │                   │   ├── ResourceLimit.java
│   │       │                   │   ├── SecurityGroup.java
│   │       │                   │   ├── ServiceOffering.java
│   │       │                   │   ├── Snapshot.java
│   │       │                   │   ├── SnapshotPolicy.java
│   │       │                   │   ├── SnapshotPolicySchedule.java
│   │       │                   │   ├── SshKeyPair.java
│   │       │                   │   ├── StoragePool.java
│   │       │                   │   ├── StorageType.java
│   │       │                   │   ├── SystemVmType.java
│   │       │                   │   ├── Tag.java
│   │       │                   │   ├── Template.java
│   │       │                   │   ├── TemplateExtraction.java
│   │       │                   │   ├── TemplateFilter.java
│   │       │                   │   ├── TemplateMetadata.java
│   │       │                   │   ├── TemplatePermission.java
│   │       │                   │   ├── TrafficType.java
│   │       │                   │   ├── UsageRecord.java
│   │       │                   │   ├── User.java
│   │       │                   │   ├── VMGroup.java
│   │       │                   │   ├── VirtualMachine.java
│   │       │                   │   ├── VlanIPRange.java
│   │       │                   │   ├── Volume.java
│   │       │                   │   ├── Zone.java
│   │       │                   │   ├── ZoneAndName.java
│   │       │                   │   └── ZoneSecurityGroupNamePortsCidrs.java
│   │       │                   ├── features/
│   │       │                   │   ├── AccountApi.java
│   │       │                   │   ├── AddressApi.java
│   │       │                   │   ├── AsyncJobApi.java
│   │       │                   │   ├── ConfigurationApi.java
│   │       │                   │   ├── DomainAccountApi.java
│   │       │                   │   ├── DomainDomainApi.java
│   │       │                   │   ├── DomainLimitApi.java
│   │       │                   │   ├── DomainUserApi.java
│   │       │                   │   ├── EventApi.java
│   │       │                   │   ├── FirewallApi.java
│   │       │                   │   ├── GlobalAccountApi.java
│   │       │                   │   ├── GlobalAlertApi.java
│   │       │                   │   ├── GlobalCapacityApi.java
│   │       │                   │   ├── GlobalConfigurationApi.java
│   │       │                   │   ├── GlobalDomainApi.java
│   │       │                   │   ├── GlobalHostApi.java
│   │       │                   │   ├── GlobalOfferingApi.java
│   │       │                   │   ├── GlobalPodApi.java
│   │       │                   │   ├── GlobalStoragePoolApi.java
│   │       │                   │   ├── GlobalUsageApi.java
│   │       │                   │   ├── GlobalUserApi.java
│   │       │                   │   ├── GlobalVlanApi.java
│   │       │                   │   ├── GlobalZoneApi.java
│   │       │                   │   ├── GuestOSApi.java
│   │       │                   │   ├── HypervisorApi.java
│   │       │                   │   ├── ISOApi.java
│   │       │                   │   ├── LimitApi.java
│   │       │                   │   ├── LoadBalancerApi.java
│   │       │                   │   ├── NATApi.java
│   │       │                   │   ├── NetworkApi.java
│   │       │                   │   ├── OfferingApi.java
│   │       │                   │   ├── ProjectApi.java
│   │       │                   │   ├── SSHKeyPairApi.java
│   │       │                   │   ├── SecurityGroupApi.java
│   │       │                   │   ├── SessionApi.java
│   │       │                   │   ├── SnapshotApi.java
│   │       │                   │   ├── TagApi.java
│   │       │                   │   ├── TemplateApi.java
│   │       │                   │   ├── VMGroupApi.java
│   │       │                   │   ├── VirtualMachineApi.java
│   │       │                   │   ├── VolumeApi.java
│   │       │                   │   └── ZoneApi.java
│   │       │                   ├── filters/
│   │       │                   │   ├── AddSessionKeyAndJSessionIdToRequest.java
│   │       │                   │   ├── AuthenticationFilter.java
│   │       │                   │   └── QuerySigner.java
│   │       │                   ├── functions/
│   │       │                   │   ├── CloudStackFallbacks.java
│   │       │                   │   ├── CreateFirewallRulesForIP.java
│   │       │                   │   ├── CreatePortForwardingRulesForIP.java
│   │       │                   │   ├── CreateSecurityGroupIfNeeded.java
│   │       │                   │   ├── DateToYyyyMmDd.java
│   │       │                   │   ├── GetFirewallRulesByVirtualMachine.java
│   │       │                   │   ├── GetIPForwardingRulesByVirtualMachine.java
│   │       │                   │   ├── ParseAsyncJobFromHttpResponse.java
│   │       │                   │   ├── ParseAsyncJobsFromHttpResponse.java
│   │       │                   │   ├── ParseEventTypesFromHttpResponse.java
│   │       │                   │   ├── ParseIdToNameEntryFromHttpResponse.java
│   │       │                   │   ├── ParseIdToNameFromHttpResponse.java
│   │       │                   │   ├── ParseLoginResponseFromHttpResponse.java
│   │       │                   │   ├── ParseNamesFromHttpResponse.java
│   │       │                   │   ├── ParseTypedAsyncJob.java
│   │       │                   │   ├── ReuseOrAssociateNewPublicIPAddress.java
│   │       │                   │   ├── StaticNATVirtualMachineInNetwork.java
│   │       │                   │   ├── WindowsLoginCredentialsFromEncryptedData.java
│   │       │                   │   └── ZoneIdToZone.java
│   │       │                   ├── handlers/
│   │       │                   │   ├── CloudStackErrorHandler.java
│   │       │                   │   └── InvalidateSessionAndRetryOn401AndLogoutOnClose.java
│   │       │                   ├── internal/
│   │       │                   │   └── CloudStackContextImpl.java
│   │       │                   ├── loaders/
│   │       │                   │   └── LoginWithPasswordCredentials.java
│   │       │                   ├── options/
│   │       │                   │   ├── AccountInDomainOptions.java
│   │       │                   │   ├── AddClusterOptions.java
│   │       │                   │   ├── AddHostOptions.java
│   │       │                   │   ├── AddSecondaryStorageOptions.java
│   │       │                   │   ├── AssignVirtualMachineOptions.java
│   │       │                   │   ├── AssociateIPAddressOptions.java
│   │       │                   │   ├── CreateAccountOptions.java
│   │       │                   │   ├── CreateDiskOfferingOptions.java
│   │       │                   │   ├── CreateDomainOptions.java
│   │       │                   │   ├── CreateFirewallRuleOptions.java
│   │       │                   │   ├── CreateIPForwardingRuleOptions.java
│   │       │                   │   ├── CreateLoadBalancerRuleOptions.java
│   │       │                   │   ├── CreateNetworkOptions.java
│   │       │                   │   ├── CreatePodOptions.java
│   │       │                   │   ├── CreateServiceOfferingOptions.java
│   │       │                   │   ├── CreateSnapshotOptions.java
│   │       │                   │   ├── CreateTagsOptions.java
│   │       │                   │   ├── CreateTemplateOptions.java
│   │       │                   │   ├── CreateUserOptions.java
│   │       │                   │   ├── CreateVMGroupOptions.java
│   │       │                   │   ├── CreateVlanIPRangeOptions.java
│   │       │                   │   ├── CreateZoneOptions.java
│   │       │                   │   ├── DeleteHostOptions.java
│   │       │                   │   ├── DeleteISOOptions.java
│   │       │                   │   ├── DeleteTagsOptions.java
│   │       │                   │   ├── DeleteTemplateOptions.java
│   │       │                   │   ├── DeployVirtualMachineOptions.java
│   │       │                   │   ├── ExtractISOOptions.java
│   │       │                   │   ├── ExtractTemplateOptions.java
│   │       │                   │   ├── GenerateUsageRecordsOptions.java
│   │       │                   │   ├── ListAccountsOptions.java
│   │       │                   │   ├── ListAlertsOptions.java
│   │       │                   │   ├── ListAsyncJobsOptions.java
│   │       │                   │   ├── ListCapacityOptions.java
│   │       │                   │   ├── ListClustersOptions.java
│   │       │                   │   ├── ListConfigurationEntriesOptions.java
│   │       │                   │   ├── ListDiskOfferingsOptions.java
│   │       │                   │   ├── ListDomainChildrenOptions.java
│   │       │                   │   ├── ListDomainsOptions.java
│   │       │                   │   ├── ListEgressFirewallRulesOptions.java
│   │       │                   │   ├── ListEventsOptions.java
│   │       │                   │   ├── ListFirewallRulesOptions.java
│   │       │                   │   ├── ListHostsOptions.java
│   │       │                   │   ├── ListIPForwardingRulesOptions.java
│   │       │                   │   ├── ListISOsOptions.java
│   │       │                   │   ├── ListLoadBalancerRulesOptions.java
│   │       │                   │   ├── ListNetworkOfferingsOptions.java
│   │       │                   │   ├── ListNetworksOptions.java
│   │       │                   │   ├── ListOSTypesOptions.java
│   │       │                   │   ├── ListPodsOptions.java
│   │       │                   │   ├── ListPortForwardingRulesOptions.java
│   │       │                   │   ├── ListProjectsOptions.java
│   │       │                   │   ├── ListPublicIPAddressesOptions.java
│   │       │                   │   ├── ListResourceLimitsOptions.java
│   │       │                   │   ├── ListSSHKeyPairsOptions.java
│   │       │                   │   ├── ListSecurityGroupsOptions.java
│   │       │                   │   ├── ListServiceOfferingsOptions.java
│   │       │                   │   ├── ListSnapshotPoliciesOptions.java
│   │       │                   │   ├── ListSnapshotsOptions.java
│   │       │                   │   ├── ListStoragePoolsOptions.java
│   │       │                   │   ├── ListTagsOptions.java
│   │       │                   │   ├── ListTemplatesOptions.java
│   │       │                   │   ├── ListUsageRecordsOptions.java
│   │       │                   │   ├── ListUsersOptions.java
│   │       │                   │   ├── ListVMGroupsOptions.java
│   │       │                   │   ├── ListVirtualMachinesOptions.java
│   │       │                   │   ├── ListVlanIPRangesOptions.java
│   │       │                   │   ├── ListVolumesOptions.java
│   │       │                   │   ├── ListZonesOptions.java
│   │       │                   │   ├── RegisterISOOptions.java
│   │       │                   │   ├── RegisterTemplateOptions.java
│   │       │                   │   ├── StopVirtualMachineOptions.java
│   │       │                   │   ├── UpdateAccountOptions.java
│   │       │                   │   ├── UpdateClusterOptions.java
│   │       │                   │   ├── UpdateDiskOfferingOptions.java
│   │       │                   │   ├── UpdateDomainOptions.java
│   │       │                   │   ├── UpdateHostOptions.java
│   │       │                   │   ├── UpdateISOOptions.java
│   │       │                   │   ├── UpdateISOPermissionsOptions.java
│   │       │                   │   ├── UpdateLoadBalancerRuleOptions.java
│   │       │                   │   ├── UpdateNetworkOfferingOptions.java
│   │       │                   │   ├── UpdatePodOptions.java
│   │       │                   │   ├── UpdateServiceOfferingOptions.java
│   │       │                   │   ├── UpdateTemplateOptions.java
│   │       │                   │   ├── UpdateTemplatePermissionsOptions.java
│   │       │                   │   ├── UpdateUserOptions.java
│   │       │                   │   ├── UpdateVMGroupOptions.java
│   │       │                   │   ├── UpdateVirtualMachineOptions.java
│   │       │                   │   └── UpdateZoneOptions.java
│   │       │                   ├── predicates/
│   │       │                   │   ├── CorrectHypervisorForZone.java
│   │       │                   │   ├── JobComplete.java
│   │       │                   │   ├── LoadBalancerRuleActive.java
│   │       │                   │   ├── NetworkOfferingPredicates.java
│   │       │                   │   ├── NetworkPredicates.java
│   │       │                   │   ├── OSCategoryIn.java
│   │       │                   │   ├── PublicIPAddressPredicates.java
│   │       │                   │   ├── SecurityGroupPredicates.java
│   │       │                   │   ├── SshKeyPairPredicates.java
│   │       │                   │   ├── TemplatePredicates.java
│   │       │                   │   ├── UserPredicates.java
│   │       │                   │   ├── VirtualMachineDestroyed.java
│   │       │                   │   ├── VirtualMachineExpunged.java
│   │       │                   │   ├── VirtualMachineRunning.java
│   │       │                   │   └── ZonePredicates.java
│   │       │                   ├── strategy/
│   │       │                   │   └── BlockUntilJobCompletesAndReturnResult.java
│   │       │                   ├── suppliers/
│   │       │                   │   ├── GetCurrentUser.java
│   │       │                   │   ├── NetworksForCurrentUser.java
│   │       │                   │   ├── ProjectsForCurrentUser.java
│   │       │                   │   └── ZoneIdToZoneSupplier.java
│   │       │                   └── util/
│   │       │                       ├── ApiKeyPairs.java
│   │       │                       └── SnapshotPolicySchedules.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── jclouds/
│   │           │           └── cloudstack/
│   │           │               ├── CloudStackApiMetadataTest.java
│   │           │               ├── CloudStackContextBuilderTest.java
│   │           │               ├── PasswordAuthenticationExpectTest.java
│   │           │               ├── compute/
│   │           │               │   ├── CloudStackComputeServiceAdapterExpectTest.java
│   │           │               │   ├── CloudStackComputeServiceAdapterLiveTest.java
│   │           │               │   ├── CloudStackComputeServiceLiveTest.java
│   │           │               │   ├── CloudStackExperimentLiveTest.java
│   │           │               │   ├── extensions/
│   │           │               │   │   ├── CloudStackImageExtensionExpectTest.java
│   │           │               │   │   ├── CloudStackImageExtensionLiveTest.java
│   │           │               │   │   ├── CloudStackSecurityGroupExtensionExpectTest.java
│   │           │               │   │   └── CloudStackSecurityGroupExtensionLiveTest.java
│   │           │               │   ├── functions/
│   │           │               │   │   ├── CloudStackSecurityGroupToSecurityGroupTest.java
│   │           │               │   │   ├── IngressRuleToIpPermissionTest.java
│   │           │               │   │   ├── ServiceOfferingToHardwareTest.java
│   │           │               │   │   ├── TemplateToImageTest.java
│   │           │               │   │   ├── TemplateToOperatingSystemTest.java
│   │           │               │   │   ├── VirtualMachineToNodeMetadataTest.java
│   │           │               │   │   └── ZoneToLocationTest.java
│   │           │               │   ├── loaders/
│   │           │               │   │   ├── CreateUniqueKeyPairTest.java
│   │           │               │   │   └── FindSecurityGroupOrCreateTest.java
│   │           │               │   ├── options/
│   │           │               │   │   └── CloudStackTemplateOptionsTest.java
│   │           │               │   └── strategy/
│   │           │               │       └── OptionsConverterTest.java
│   │           │               ├── domain/
│   │           │               │   └── VirtualMachineTest.java
│   │           │               ├── features/
│   │           │               │   ├── AccountApiExpectTest.java
│   │           │               │   ├── AccountApiLiveTest.java
│   │           │               │   ├── AccountApiTest.java
│   │           │               │   ├── AddressApiLiveTest.java
│   │           │               │   ├── AddressApiTest.java
│   │           │               │   ├── AsyncJobApiLiveTest.java
│   │           │               │   ├── AsyncJobApiTest.java
│   │           │               │   ├── ConfigurationApiLiveTest.java
│   │           │               │   ├── ConfigurationApiTest.java
│   │           │               │   ├── DomainAccountApiLiveTest.java
│   │           │               │   ├── DomainAccountApiTest.java
│   │           │               │   ├── DomainDomainApiExpectTest.java
│   │           │               │   ├── DomainDomainApiLiveTest.java
│   │           │               │   ├── DomainLimitApiLiveTest.java
│   │           │               │   ├── DomainLimitApiTest.java
│   │           │               │   ├── DomainUserApiLiveTest.java
│   │           │               │   ├── EventApiLiveTest.java
│   │           │               │   ├── EventApiTest.java
│   │           │               │   ├── FirewallApiExpectTest.java
│   │           │               │   ├── FirewallApiLiveTest.java
│   │           │               │   ├── FirewallApiTest.java
│   │           │               │   ├── GlobalAccountApiLiveTest.java
│   │           │               │   ├── GlobalAccountApiTest.java
│   │           │               │   ├── GlobalAlertApiLiveTest.java
│   │           │               │   ├── GlobalAlertApiTest.java
│   │           │               │   ├── GlobalCapacityApiLiveTest.java
│   │           │               │   ├── GlobalCapacityApiTest.java
│   │           │               │   ├── GlobalConfigurationApiExpectTest.java
│   │           │               │   ├── GlobalConfigurationApiLiveTest.java
│   │           │               │   ├── GlobalDomainApiExpectTest.java
│   │           │               │   ├── GlobalDomainApiLiveTest.java
│   │           │               │   ├── GlobalHostApiExpectTest.java
│   │           │               │   ├── GlobalHostApiLiveTest.java
│   │           │               │   ├── GlobalHostApiTest.java
│   │           │               │   ├── GlobalOfferingApiLiveTest.java
│   │           │               │   ├── GlobalOfferingApiTest.java
│   │           │               │   ├── GlobalPodApiExpectTest.java
│   │           │               │   ├── GlobalPodApiLiveTest.java
│   │           │               │   ├── GlobalStoragePoolApiLiveTest.java
│   │           │               │   ├── GlobalStoragePoolApiTest.java
│   │           │               │   ├── GlobalUsageApiLiveTest.java
│   │           │               │   ├── GlobalUsageApiTest.java
│   │           │               │   ├── GlobalUserApiLiveTest.java
│   │           │               │   ├── GlobalUserApiTest.java
│   │           │               │   ├── GlobalVlanApiExpectTest.java
│   │           │               │   ├── GlobalVlanApiLiveTest.java
│   │           │               │   ├── GlobalZoneApiExpectTest.java
│   │           │               │   ├── GlobalZoneApiLiveTest.java
│   │           │               │   ├── GuestOSApiLiveTest.java
│   │           │               │   ├── GuestOSApiTest.java
│   │           │               │   ├── HypervisorApiLiveTest.java
│   │           │               │   ├── HypervisorApiTest.java
│   │           │               │   ├── ISOApiExpectTest.java
│   │           │               │   ├── ISOApiLiveTest.java
│   │           │               │   ├── ISOApiTest.java
│   │           │               │   ├── LimitApiLiveTest.java
│   │           │               │   ├── LimitApiTest.java
│   │           │               │   ├── LoadBalancerApiLiveTest.java
│   │           │               │   ├── LoadBalancerApiTest.java
│   │           │               │   ├── NATApiLiveTest.java
│   │           │               │   ├── NATApiTest.java
│   │           │               │   ├── NetworkApiLiveTest.java
│   │           │               │   ├── NetworkApiTest.java
│   │           │               │   ├── OfferingApiLiveTest.java
│   │           │               │   ├── OfferingApiTest.java
│   │           │               │   ├── ProjectApiExpectTest.java
│   │           │               │   ├── ProjectApiLiveTest.java
│   │           │               │   ├── ProjectApiTest.java
│   │           │               │   ├── SSHKeyPairApiExpectTest.java
│   │           │               │   ├── SSHKeyPairApiLiveTest.java
│   │           │               │   ├── SSHKeyPairApiTest.java
│   │           │               │   ├── SecurityGroupApiLiveTest.java
│   │           │               │   ├── SecurityGroupApiTest.java
│   │           │               │   ├── SessionApiExpectTest.java
│   │           │               │   ├── SessionApiLiveTest.java
│   │           │               │   ├── SnapshotApiLiveTest.java
│   │           │               │   ├── SnapshotApiTest.java
│   │           │               │   ├── TagApiExpectTest.java
│   │           │               │   ├── TagApiLiveTest.java
│   │           │               │   ├── TagApiTest.java
│   │           │               │   ├── TemplateApiLiveTest.java
│   │           │               │   ├── TemplateApiTest.java
│   │           │               │   ├── VMGroupApiLiveTest.java
│   │           │               │   ├── VMGroupApiTest.java
│   │           │               │   ├── VirtualMachineApiExpectTest.java
│   │           │               │   ├── VirtualMachineApiLiveTest.java
│   │           │               │   ├── VirtualMachineApiTest.java
│   │           │               │   ├── VolumeApiExpectTest.java
│   │           │               │   ├── VolumeApiLiveTest.java
│   │           │               │   ├── VolumeApiTest.java
│   │           │               │   ├── ZoneApiExpectTest.java
│   │           │               │   ├── ZoneApiLiveTest.java
│   │           │               │   └── ZoneApiTest.java
│   │           │               ├── filters/
│   │           │               │   └── QuerySignerTest.java
│   │           │               ├── functions/
│   │           │               │   ├── BlockUntilJobCompletesAndReturnResultTest.java
│   │           │               │   ├── CreateSecurityGroupIfNeededTest.java
│   │           │               │   ├── ParseAsyncJobFromHttpResponseTest.java
│   │           │               │   ├── ParseAsyncJobsFromHttpResponseTest.java
│   │           │               │   ├── ReuseOrAssociateNewPublicIPAddressTest.java
│   │           │               │   ├── StaticNATVirtualMachineInNetworkLiveTest.java
│   │           │               │   └── WindowsLoginCredentialsFromEncryptedDataTest.java
│   │           │               ├── handlers/
│   │           │               │   ├── CloudStackErrorHandlerTest.java
│   │           │               │   └── InvalidateSessionAndRetryOn401AndLogoutOnCloseTest.java
│   │           │               ├── internal/
│   │           │               │   ├── BaseCloudStackApiLiveTest.java
│   │           │               │   ├── BaseCloudStackApiTest.java
│   │           │               │   ├── BaseCloudStackComputeServiceContextExpectTest.java
│   │           │               │   └── BaseCloudStackExpectTest.java
│   │           │               ├── loaders/
│   │           │               │   └── LoginWithPasswordCredentialsTest.java
│   │           │               ├── options/
│   │           │               │   ├── AddClusterOptionsTest.java
│   │           │               │   ├── AddHostOptionsTest.java
│   │           │               │   ├── AddSecondaryStorageOptionsTest.java
│   │           │               │   ├── AssociateIPAddressOptionsTest.java
│   │           │               │   ├── CreateAccountOptionsTest.java
│   │           │               │   ├── CreateDiskOfferingOptionsTest.java
│   │           │               │   ├── CreateIPForwardingRuleOptionsTest.java
│   │           │               │   ├── CreateNetworkOptionsTest.java
│   │           │               │   ├── CreatePodOptionsTest.java
│   │           │               │   ├── CreateServiceOfferingOptionsTest.java
│   │           │               │   ├── CreateTagsOptionsTest.java
│   │           │               │   ├── CreateUserOptionsTest.java
│   │           │               │   ├── CreateVlanIPRangeOptionsTest.java
│   │           │               │   ├── DeleteHostOptionsTest.java
│   │           │               │   ├── DeleteTagsOptionsTest.java
│   │           │               │   ├── GenerateUsageRecordsOptionsTest.java
│   │           │               │   ├── ListAccountsOptionsTest.java
│   │           │               │   ├── ListAlertsOptionsTest.java
│   │           │               │   ├── ListAsyncJobsOptionsTest.java
│   │           │               │   ├── ListCapacityOptionsTest.java
│   │           │               │   ├── ListClustersOptionsTest.java
│   │           │               │   ├── ListDiskOfferingsOptionsTest.java
│   │           │               │   ├── ListHostsOptionsTest.java
│   │           │               │   ├── ListIPForwardingRulesOptionsTest.java
│   │           │               │   ├── ListISOsOptionsTest.java
│   │           │               │   ├── ListLoadBalancerRulesOptionsTest.java
│   │           │               │   ├── ListNetworkOfferingsOptionsTest.java
│   │           │               │   ├── ListNetworksOptionsTest.java
│   │           │               │   ├── ListOSTypesOptionsTest.java
│   │           │               │   ├── ListPodsOptionsTest.java
│   │           │               │   ├── ListPortForwardingRulesOptionsTest.java
│   │           │               │   ├── ListProjectsOptionsTest.java
│   │           │               │   ├── ListPublicIPAddressesOptionsTest.java
│   │           │               │   ├── ListSecurityGroupsOptionsTest.java
│   │           │               │   ├── ListServiceOfferingsOptionsTest.java
│   │           │               │   ├── ListStoragePoolsOptionsTest.java
│   │           │               │   ├── ListTagsOptionsTest.java
│   │           │               │   ├── ListTemplatesOptionsTest.java
│   │           │               │   ├── ListUsageRecordsOptionsTest.java
│   │           │               │   ├── ListUsersOptionsTest.java
│   │           │               │   ├── ListVirtualMachinesOptionsTest.java
│   │           │               │   ├── ListVlanIPRangesOptionsTest.java
│   │           │               │   ├── ListZonesOptionsTest.java
│   │           │               │   ├── UpdateAccountOptionsTest.java
│   │           │               │   ├── UpdateClusterOptionsTest.java
│   │           │               │   ├── UpdateDiskOfferingOptionsTest.java
│   │           │               │   ├── UpdateHostOptionsTest.java
│   │           │               │   ├── UpdateNetworkOfferingOptionsTest.java
│   │           │               │   ├── UpdatePodOptionsTest.java
│   │           │               │   ├── UpdateServiceOfferingOptionsTest.java
│   │           │               │   └── UpdateUserOptionsTest.java
│   │           │               ├── parse/
│   │           │               │   ├── DeleteIPForwardingRuleResponseTest.java
│   │           │               │   ├── DeleteNetworkResponseTest.java
│   │           │               │   ├── DeployVirtualMachineResponse3xTest.java
│   │           │               │   ├── DeployVirtualMachineResponse4xTest.java
│   │           │               │   ├── DisableStaticNATResponseTest.java
│   │           │               │   ├── EnableStaticNATResponseWhereResponseDoesntHaveJobTest.java
│   │           │               │   ├── JobResultResponseTest.java
│   │           │               │   ├── ListAccountsResponseTest.java
│   │           │               │   ├── ListAlertsResponseTest.java
│   │           │               │   ├── ListCapabilitiesResponseTest.java
│   │           │               │   ├── ListCapacityResponseTest.java
│   │           │               │   ├── ListClustersResponseTest.java
│   │           │               │   ├── ListConfigurationEntriesResponseTest.java
│   │           │               │   ├── ListDiskOfferingsResponseTest.java
│   │           │               │   ├── ListDomainsResponseTest.java
│   │           │               │   ├── ListFirewallRulesResponseTest.java
│   │           │               │   ├── ListHostsResponseTest.java
│   │           │               │   ├── ListHypervisorsResponseTest.java
│   │           │               │   ├── ListIPForwardingRulesResponseTest.java
│   │           │               │   ├── ListLoadBalancerRulesResponseTest.java
│   │           │               │   ├── ListNetworkOfferingsResponseTest.java
│   │           │               │   ├── ListNetworksResponseTest.java
│   │           │               │   ├── ListOSCategoriesResponseTest.java
│   │           │               │   ├── ListOSTypesResponseTest.java
│   │           │               │   ├── ListPodsResponseTest.java
│   │           │               │   ├── ListPortForwardingRulesResponseTest.java
│   │           │               │   ├── ListPublicIPAddressesResponseTest.java
│   │           │               │   ├── ListSSHKeyPairsResponseTest.java
│   │           │               │   ├── ListSecurityGroupsResponseTest.java
│   │           │               │   ├── ListServiceOfferingsResponseTest.java
│   │           │               │   ├── ListStoragePoolsResponseTest.java
│   │           │               │   ├── ListTagsResponseTest.java
│   │           │               │   ├── ListTemplatesResponseTest.java
│   │           │               │   ├── ListUsageRecordsResponseTest.java
│   │           │               │   ├── ListVirtualMachinesResponse3xTest.java
│   │           │               │   ├── ListVirtualMachinesResponseTest.java
│   │           │               │   ├── ListVlanIPRangesResponseTest.java
│   │           │               │   ├── ListZonesResponseTest.java
│   │           │               │   └── RegisterUserKeysResponseTest.java
│   │           │               └── predicates/
│   │           │                   ├── JobCompleteTest.java
│   │           │                   ├── NetworkPredicatesTest.java
│   │           │                   ├── OSCategoryInTest.java
│   │           │                   ├── PublicIPAddressPredicatesTest.java
│   │           │                   ├── SecurityGroupPredicatesTest.java
│   │           │                   ├── TemplatePredicatesTest.java
│   │           │                   ├── UserPredicatesTest.java
│   │           │                   ├── VirtualMachineDestroyedTest.java
│   │           │                   ├── VirtualMachineExpungedTest.java
│   │           │                   ├── VirtualMachineRunningTest.java
│   │           │                   └── ZonePredicatesTest.java
│   │           └── resources/
│   │               ├── addclusterresponse.json
│   │               ├── addhostresponse.json
│   │               ├── addsecondarystorageresponse.json
│   │               ├── authorizesecuritygroupingressresponse.json
│   │               ├── cancelhostmaintenanceresponse.json
│   │               ├── createdomainresponse.json
│   │               ├── createegressfirewallrulesresponse.json
│   │               ├── createfirewallrulesresponse.json
│   │               ├── createkeypairresponse.json
│   │               ├── createpodresponse.json
│   │               ├── createportforwardingrulesresponse.json
│   │               ├── createsecuritygroupresponse.json
│   │               ├── createsshkeypairresponse-2.json
│   │               ├── createsshkeypairresponse.json
│   │               ├── createtagsresponse.json
│   │               ├── createtemplateresponse-imageextension.json
│   │               ├── createtemplateresponse.json
│   │               ├── createvlaniprangeresponse.json
│   │               ├── createzoneresponse.json
│   │               ├── deletedomainresponse.json
│   │               ├── deleteegressfirewallrulesresponse.json
│   │               ├── deletefirewallrulesresponse.json
│   │               ├── deleteipforwardingruleresponse.json
│   │               ├── deletenetworkresponse.json
│   │               ├── deleteportforwardingrulesresponse.json
│   │               ├── deletesecuritygroupresponse.json
│   │               ├── deletetagsresponse.json
│   │               ├── deletetemplateresponse.json
│   │               ├── deletezoneresponse.json
│   │               ├── deployvirtualmachineresponse.json
│   │               ├── deployvirtualmachineresponse4x.json
│   │               ├── disablestaticnatresponse.json
│   │               ├── enablestaticnatresponse-withoutjob.json
│   │               ├── getdomainresponse.json
│   │               ├── getegressfirewallrulesresponse.json
│   │               ├── getfirewallrulesresponse.json
│   │               ├── getisoresponse.json
│   │               ├── getportforwardingrulesresponse.json
│   │               ├── getsecuritygroupresponse.json
│   │               ├── getsecuritygroupresponse_extension_byid.json
│   │               ├── getsecuritygroupresponse_extension_byid_empty.json
│   │               ├── getsecuritygroupresponse_extension_byid_with_cidr.json
│   │               ├── getsecuritygroupresponse_extension_byid_with_group.json
│   │               ├── getvmpasswordresponse.json
│   │               ├── getzoneresponse-2.json
│   │               ├── getzoneresponse.json
│   │               ├── listaccountsresponse.json
│   │               ├── listalertsresponse.json
│   │               ├── listasyncjobsresponse.json
│   │               ├── listcapabilitiesresponse.json
│   │               ├── listcapacityresponse.json
│   │               ├── listclustersresponse.json
│   │               ├── listconfigurationsresponse.json
│   │               ├── listdiskofferingsresponse.json
│   │               ├── listdomainchildrenresponse.json
│   │               ├── listdomainsresponse.json
│   │               ├── listegressfirewallrulesresponse.json
│   │               ├── listeventtypesresponse.json
│   │               ├── listfirewallrulesresponse.json
│   │               ├── listhostsresponse.json
│   │               ├── listhypervisorsresponse.json
│   │               ├── listipforwardingrulesresponse.json
│   │               ├── listisosresponse.json
│   │               ├── listloadbalancerrulesresponse.json
│   │               ├── listnetworkofferingsresponse.json
│   │               ├── listnetworksresponse-2.json
│   │               ├── listnetworksresponse.json
│   │               ├── listoscategoriesresponse.json
│   │               ├── listostypesresponse.json
│   │               ├── listpodsresponse.json
│   │               ├── listportforwardingrulesresponse.json
│   │               ├── listprojectsresponse.json
│   │               ├── listpublicipaddressesresponse.json
│   │               ├── listresourcelimitsresponse.json
│   │               ├── listsecuritygroupsresponse.json
│   │               ├── listserviceofferingsresponse.json
│   │               ├── listsshkeypairsresponse.json
│   │               ├── liststoragepoolsresponse.json
│   │               ├── listtagsresponse.json
│   │               ├── listtemplatesresponse-imageextension.json
│   │               ├── listtemplatesresponse.json
│   │               ├── listusagerecordsresponse.json
│   │               ├── listvirtualmachinesresponse-imageextension.json
│   │               ├── listvirtualmachinesresponse.json
│   │               ├── listvirtualmachinesresponse3x.json
│   │               ├── listvlaniprangesresponse.json
│   │               ├── listvolumesresponse-imageextension.json
│   │               ├── listzonesresponse.json
│   │               ├── listzonesresponse_single.json
│   │               ├── loginresponse.json
│   │               ├── logoutresponse.json
│   │               ├── preparehostformaintenanceresponse.json
│   │               ├── queryasyncjobresultresponse-authorizeingress.json
│   │               ├── queryasyncjobresultresponse-createtemplate-imageextension.json
│   │               ├── queryasyncjobresultresponse-createtemplate.json
│   │               ├── queryasyncjobresultresponse-createvolume.json
│   │               ├── queryasyncjobresultresponse-extracttemplate.json
│   │               ├── queryasyncjobresultresponse-ipaddress.json
│   │               ├── queryasyncjobresultresponse-ipforwardingrule.json
│   │               ├── queryasyncjobresultresponse-stopvirtualmachine-imageextension.json
│   │               ├── queryasyncjobresultresponse-virtualmachine-securitygroup.json
│   │               ├── queryasyncjobresultresponse-virtualmachine.json
│   │               ├── reconnecthostresponse.json
│   │               ├── registerisoresponse.json
│   │               ├── registersshkeypairresponse.json
│   │               ├── registeruserkeysresponse.json
│   │               ├── revokesecuritygroupingressresponse.json
│   │               ├── stopvirtualmachineresponse-imageextension.json
│   │               ├── updateclusterresponse.json
│   │               ├── updateconfigurationsresponse.json
│   │               ├── updatedomainresponse.json
│   │               ├── updatehostresponse.json
│   │               ├── updatepodresponse.json
│   │               └── updatezoneresponse.json
│   ├── cloudwatch/
│   │   ├── bnd.bnd
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── jclouds/
│   │       │               └── cloudwatch/
│   │       │                   ├── CloudWatch.java
│   │       │                   ├── CloudWatchApi.java
│   │       │                   ├── CloudWatchApiMetadata.java
│   │       │                   ├── binders/
│   │       │                   │   ├── AlarmNamesBinder.java
│   │       │                   │   ├── GetMetricStatisticsBinder.java
│   │       │                   │   └── MetricDataBinder.java
│   │       │                   ├── config/
│   │       │                   │   └── CloudWatchHttpApiModule.java
│   │       │                   ├── domain/
│   │       │                   │   ├── Alarm.java
│   │       │                   │   ├── AlarmHistoryItem.java
│   │       │                   │   ├── AutoScalingConstants.java
│   │       │                   │   ├── ComparisonOperator.java
│   │       │                   │   ├── Datapoint.java
│   │       │                   │   ├── Dimension.java
│   │       │                   │   ├── DynamoDBConstants.java
│   │       │                   │   ├── EBSConstants.java
│   │       │                   │   ├── EC2Constants.java
│   │       │                   │   ├── ELBConstants.java
│   │       │                   │   ├── EMRConstants.java
│   │       │                   │   ├── GetMetricStatistics.java
│   │       │                   │   ├── GetMetricStatisticsResponse.java
│   │       │                   │   ├── HistoryItemType.java
│   │       │                   │   ├── ListMetricsResponse.java
│   │       │                   │   ├── Metric.java
│   │       │                   │   ├── MetricDatum.java
│   │       │                   │   ├── Namespaces.java
│   │       │                   │   ├── RDSConstants.java
│   │       │                   │   ├── SNSConstants.java
│   │       │                   │   ├── SQSConstants.java
│   │       │                   │   ├── StatisticValues.java
│   │       │                   │   ├── Statistics.java
│   │       │                   │   ├── StorageGatewayConstants.java
│   │       │                   │   └── Unit.java
│   │       │                   ├── features/
│   │       │                   │   ├── AlarmApi.java
│   │       │                   │   └── MetricApi.java
│   │       │                   ├── functions/
│   │       │                   │   ├── ISO8601Format.java
│   │       │                   │   ├── ListAlarmHistoryToPagedIterable.java
│   │       │                   │   ├── ListAlarmsToPagedIterable.java
│   │       │                   │   └── MetricsToPagedIterable.java
│   │       │                   ├── handlers/
│   │       │                   │   └── CloudWatchErrorHandler.java
│   │       │                   ├── options/
│   │       │                   │   ├── GetMetricStatisticsOptions.java
│   │       │                   │   ├── ListAlarmHistoryOptions.java
│   │       │                   │   ├── ListAlarmsForMetric.java
│   │       │                   │   ├── ListAlarmsOptions.java
│   │       │                   │   ├── ListMetricsOptions.java
│   │       │                   │   └── SaveAlarmOptions.java
│   │       │                   └── xml/
│   │       │                       ├── AlarmHistoryItemHandler.java
│   │       │                       ├── DatapointHandler.java
│   │       │                       ├── DimensionHandler.java
│   │       │                       ├── GetMetricStatisticsResponseHandler.java
│   │       │                       ├── GetMetricStatisticsResponseHandlerV2.java
│   │       │                       ├── ListAlarmHistoryResponseHandler.java
│   │       │                       ├── ListAlarmsForMetricResponseHandler.java
│   │       │                       ├── ListAlarmsResponseHandler.java
│   │       │                       ├── ListMetricsResponseHandler.java
│   │       │                       ├── MetricAlarmHandler.java
│   │       │                       └── MetricHandler.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── jclouds/
│   │           │           └── cloudwatch/
│   │           │               ├── CloudWatchApiMetadataTest.java
│   │           │               ├── CloudWatchLiveTest.java
│   │           │               ├── CloudWatchTest.java
│   │           │               ├── binders/
│   │           │               │   ├── AlarmNamesBinderTest.java
│   │           │               │   └── MetricDataBinderTest.java
│   │           │               ├── features/
│   │           │               │   ├── AlarmApiExpectTest.java
│   │           │               │   ├── AlarmApiLiveTest.java
│   │           │               │   ├── MetricApiExpectTest.java
│   │           │               │   └── MetricApiLiveTest.java
│   │           │               ├── internal/
│   │           │               │   ├── BaseCloudWatchApiExpectTest.java
│   │           │               │   ├── BaseCloudWatchApiLiveTest.java
│   │           │               │   └── BaseCloudWatchExpectTest.java
│   │           │               ├── options/
│   │           │               │   ├── GetMetricStatisticsOptionsTest.java
│   │           │               │   ├── ListAlarmHistoryOptionsTest.java
│   │           │               │   ├── ListAlarmsForMetricTest.java
│   │           │               │   ├── ListAlarmsOptionsTest.java
│   │           │               │   └── SaveAlarmOptionsTest.java
│   │           │               └── xml/
│   │           │                   ├── GetMetricStatisticsResponseHandlerTest.java
│   │           │                   ├── ListAlarmHistoryResponseHandlerTest.java
│   │           │                   ├── ListAlarmsForMetricResponseHandlerTest.java
│   │           │                   └── ListAlarmsResponseHandlerTest.java
│   │           └── resources/
│   │               ├── DescribeAlarmHistoryResponse.xml
│   │               ├── DescribeAlarmsForMetricResponse.xml
│   │               ├── DescribeAlarmsResponse.xml
│   │               ├── InvalidFormatResponse.xml
│   │               ├── LimitExceededResponse.xml
│   │               ├── VoidResponse.xml
│   │               ├── get_metric_statistics.xml
│   │               ├── list_metrics.xml
│   │               ├── list_metrics_marker.xml
│   │               └── log4j.xml
│   ├── docker/
│   │   ├── README.md
│   │   ├── bnd.bnd
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── jclouds/
│   │       │               └── docker/
│   │       │                   ├── DockerApi.java
│   │       │                   ├── DockerApiMetadata.java
│   │       │                   ├── compute/
│   │       │                   │   ├── config/
│   │       │                   │   │   ├── DockerComputeServiceContextModule.java
│   │       │                   │   │   └── LoginPortLookupModule.java
│   │       │                   │   ├── functions/
│   │       │                   │   │   ├── ContainerToNodeMetadata.java
│   │       │                   │   │   ├── CustomLoginPortFromImage.java
│   │       │                   │   │   ├── ImageToImage.java
│   │       │                   │   │   ├── LoginPortForContainer.java
│   │       │                   │   │   ├── PublicPortForContainerPort.java
│   │       │                   │   │   └── StateToStatus.java
│   │       │                   │   ├── options/
│   │       │                   │   │   └── DockerTemplateOptions.java
│   │       │                   │   └── strategy/
│   │       │                   │       └── DockerComputeServiceAdapter.java
│   │       │                   ├── config/
│   │       │                   │   ├── DockerHttpApiModule.java
│   │       │                   │   ├── DockerOkHttpClientSupplier.java
│   │       │                   │   └── DockerParserModule.java
│   │       │                   ├── domain/
│   │       │                   │   ├── Config.java
│   │       │                   │   ├── Container.java
│   │       │                   │   ├── ContainerSummary.java
│   │       │                   │   ├── Exec.java
│   │       │                   │   ├── ExecCreateParams.java
│   │       │                   │   ├── ExecInspect.java
│   │       │                   │   ├── ExecStartParams.java
│   │       │                   │   ├── ExposedPorts.java
│   │       │                   │   ├── HostConfig.java
│   │       │                   │   ├── Image.java
│   │       │                   │   ├── ImageHistory.java
│   │       │                   │   ├── ImageSummary.java
│   │       │                   │   ├── Info.java
│   │       │                   │   ├── Network.java
│   │       │                   │   ├── NetworkSettings.java
│   │       │                   │   ├── Node.java
│   │       │                   │   ├── Port.java
│   │       │                   │   ├── Resource.java
│   │       │                   │   ├── State.java
│   │       │                   │   ├── StatusCode.java
│   │       │                   │   └── Version.java
│   │       │                   ├── features/
│   │       │                   │   ├── ContainerApi.java
│   │       │                   │   ├── ImageApi.java
│   │       │                   │   ├── MiscApi.java
│   │       │                   │   └── NetworkApi.java
│   │       │                   ├── handlers/
│   │       │                   │   └── DockerErrorHandler.java
│   │       │                   ├── internal/
│   │       │                   │   └── NullSafeCopies.java
│   │       │                   ├── options/
│   │       │                   │   ├── AttachOptions.java
│   │       │                   │   ├── BuildOptions.java
│   │       │                   │   ├── CommitOptions.java
│   │       │                   │   ├── CreateImageOptions.java
│   │       │                   │   ├── DeleteImageOptions.java
│   │       │                   │   ├── ListContainerOptions.java
│   │       │                   │   ├── ListImageOptions.java
│   │       │                   │   └── RemoveContainerOptions.java
│   │       │                   ├── suppliers/
│   │       │                   │   ├── DockerSSLContextSupplier.java
│   │       │                   │   ├── DockerUntrustedSSLContextSupplier.java
│   │       │                   │   └── SSLContextBuilder.java
│   │       │                   └── util/
│   │       │                       ├── DockerInputStream.java
│   │       │                       └── StdStreamData.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── jclouds/
│   │           │           └── docker/
│   │           │               ├── DockerApiMetadataTest.java
│   │           │               ├── compute/
│   │           │               │   ├── BaseDockerApiLiveTest.java
│   │           │               │   ├── DockerComputeServiceAdapterLiveTest.java
│   │           │               │   ├── DockerComputeServiceLiveTest.java
│   │           │               │   ├── SshToCustomPortLiveTest.java
│   │           │               │   ├── functions/
│   │           │               │   │   ├── ContainerToNodeMetadataTest.java
│   │           │               │   │   ├── CustomLoginPortFromImageTest.java
│   │           │               │   │   ├── ImageToImageTest.java
│   │           │               │   │   └── StateToStatusTest.java
│   │           │               │   ├── options/
│   │           │               │   │   └── DockerTemplateOptionsTest.java
│   │           │               │   └── strategy/
│   │           │               │       └── PredicateLocateImageByNameTest.java
│   │           │               ├── config/
│   │           │               │   └── DockerParserModuleTest.java
│   │           │               ├── domain/
│   │           │               │   ├── ConfigTest.java
│   │           │               │   └── ContainerTest.java
│   │           │               ├── features/
│   │           │               │   ├── ContainerApiLiveTest.java
│   │           │               │   ├── ContainerApiMockTest.java
│   │           │               │   ├── ImageApiLiveTest.java
│   │           │               │   ├── ImageApiMockTest.java
│   │           │               │   ├── MiscApiLiveTest.java
│   │           │               │   ├── MiscApiMockTest.java
│   │           │               │   ├── NetworkApiLiveTest.java
│   │           │               │   └── NetworkApiMockTest.java
│   │           │               ├── internal/
│   │           │               │   ├── BaseDockerMockTest.java
│   │           │               │   ├── BaseDockerParseTest.java
│   │           │               │   └── DockerTestUtils.java
│   │           │               └── parse/
│   │           │                   ├── ContainerParseTest.java
│   │           │                   ├── ContainerVersionMajor1Minor21.java
│   │           │                   ├── ContainersParseTest.java
│   │           │                   ├── HistoryParseTest.java
│   │           │                   ├── ImageParseTest.java
│   │           │                   ├── ImagesParseTest.java
│   │           │                   ├── Info2ParseTest.java
│   │           │                   ├── InfoParseTest.java
│   │           │                   ├── NetworkParseTest.java
│   │           │                   ├── NetworksParseTest.java
│   │           │                   └── VersionParseTest.java
│   │           └── resources/
│   │               ├── Dockerfile
│   │               ├── SimpleDockerfile
│   │               ├── cert.pem
│   │               ├── container-1.21-create.json
│   │               ├── container-1.21-inspect.json
│   │               ├── container-creation.json
│   │               ├── container.json
│   │               ├── containers.json
│   │               ├── exec.json
│   │               ├── exec.start
│   │               ├── execInspect.json
│   │               ├── history-apiver22.json
│   │               ├── history.json
│   │               ├── image.json
│   │               ├── images.json
│   │               ├── info.json
│   │               ├── info2.json
│   │               ├── key.pem
│   │               ├── logback.xml
│   │               ├── network-creation.json
│   │               ├── network.json
│   │               ├── networks.json
│   │               └── version.json
│   ├── ec2/
│   │   ├── README.txt
│   │   ├── bnd.bnd
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── jclouds/
│   │       │               └── ec2/
│   │       │                   ├── EC2Api.java
│   │       │                   ├── EC2ApiMetadata.java
│   │       │                   ├── EC2Fallbacks.java
│   │       │                   ├── binders/
│   │       │                   │   ├── BindBlockDeviceMappingToIndexedFormParams.java
│   │       │                   │   ├── BindBundleIdsToIndexedFormParams.java
│   │       │                   │   ├── BindFiltersToIndexedFormParams.java
│   │       │                   │   ├── BindGroupIdsToIndexedFormParams.java
│   │       │                   │   ├── BindGroupNamesToIndexedFormParams.java
│   │       │                   │   ├── BindInstanceIdsToIndexedFormParams.java
│   │       │                   │   ├── BindIpPermissionToIndexedFormParams.java
│   │       │                   │   ├── BindIpPermissionsToIndexedFormParams.java
│   │       │                   │   ├── BindKeyNamesToIndexedFormParams.java
│   │       │                   │   ├── BindProductCodesToIndexedFormParams.java
│   │       │                   │   ├── BindPublicIpsToIndexedFormParams.java
│   │       │                   │   ├── BindResourceIdsToIndexedFormParams.java
│   │       │                   │   ├── BindS3UploadPolicyAndSignature.java
│   │       │                   │   ├── BindSubnetIdsToIndexedFormParams.java
│   │       │                   │   ├── BindTagKeysToIndexedFormParams.java
│   │       │                   │   ├── BindTagsToIndexedFormParams.java
│   │       │                   │   ├── BindUserGroupsToIndexedFormParams.java
│   │       │                   │   ├── BindUserIdGroupPairToSourceSecurityGroupFormParams.java
│   │       │                   │   ├── BindUserIdsToIndexedFormParams.java
│   │       │                   │   ├── BindVolumeIdsToIndexedFormParams.java
│   │       │                   │   └── IfNotNullBindAvailabilityZoneToFormParam.java
│   │       │                   ├── compute/
│   │       │                   │   ├── EC2ComputeService.java
│   │       │                   │   ├── EC2ComputeServiceContext.java
│   │       │                   │   ├── config/
│   │       │                   │   │   ├── EC2BindComputeStrategiesByClass.java
│   │       │                   │   │   ├── EC2BindComputeSuppliersByClass.java
│   │       │                   │   │   ├── EC2ComputeServiceContextModule.java
│   │       │                   │   │   ├── EC2ComputeServiceDependenciesModule.java
│   │       │                   │   │   └── EC2ResolveImagesModule.java
│   │       │                   │   ├── domain/
│   │       │                   │   │   ├── EC2HardwareBuilder.java
│   │       │                   │   │   ├── PasswordDataAndPrivateKey.java
│   │       │                   │   │   ├── RegionAndName.java
│   │       │                   │   │   └── RegionNameAndIngressRules.java
│   │       │                   │   ├── extensions/
│   │       │                   │   │   ├── EC2ImageExtension.java
│   │       │                   │   │   └── EC2SecurityGroupExtension.java
│   │       │                   │   ├── functions/
│   │       │                   │   │   ├── AddElasticIpsToNodemetadata.java
│   │       │                   │   │   ├── CreateUniqueKeyPair.java
│   │       │                   │   │   ├── CredentialsForInstance.java
│   │       │                   │   │   ├── EC2ImageParser.java
│   │       │                   │   │   ├── EC2SecurityGroupIdFromName.java
│   │       │                   │   │   ├── EC2SecurityGroupToSecurityGroup.java
│   │       │                   │   │   ├── ImagesToRegionAndIdMap.java
│   │       │                   │   │   ├── PasswordCredentialsFromWindowsInstance.java
│   │       │                   │   │   ├── PresentInstances.java
│   │       │                   │   │   ├── RunningInstanceToNodeMetadata.java
│   │       │                   │   │   └── WindowsLoginCredentialsFromEncryptedData.java
│   │       │                   │   ├── internal/
│   │       │                   │   │   ├── EC2ComputeServiceContextImpl.java
│   │       │                   │   │   └── EC2TemplateBuilderImpl.java
│   │       │                   │   ├── loaders/
│   │       │                   │   │   ├── CreateSecurityGroupIfNeeded.java
│   │       │                   │   │   ├── LoadAllocationIdForInstanceOrNull.java
│   │       │                   │   │   ├── LoadPublicIpForInstanceOrNull.java
│   │       │                   │   │   └── RegionAndIdToImage.java
│   │       │                   │   ├── options/
│   │       │                   │   │   └── EC2TemplateOptions.java
│   │       │                   │   ├── predicates/
│   │       │                   │   │   ├── EC2ImagePredicates.java
│   │       │                   │   │   └── SecurityGroupPresent.java
│   │       │                   │   ├── strategy/
│   │       │                   │   │   ├── CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions.java
│   │       │                   │   │   ├── DescribeImagesParallel.java
│   │       │                   │   │   ├── EC2CreateNodesInGroupThenAddToSet.java
│   │       │                   │   │   ├── EC2DestroyNodeStrategy.java
│   │       │                   │   │   ├── EC2GetImageStrategy.java
│   │       │                   │   │   ├── EC2GetNodeMetadataStrategy.java
│   │       │                   │   │   ├── EC2ListNodesStrategy.java
│   │       │                   │   │   ├── EC2PopulateDefaultLoginCredentialsForImageStrategy.java
│   │       │                   │   │   ├── EC2RebootNodeStrategy.java
│   │       │                   │   │   ├── EC2ResumeNodeStrategy.java
│   │       │                   │   │   ├── EC2SuspendNodeStrategy.java
│   │       │                   │   │   └── ReviseParsedImage.java
│   │       │                   │   ├── suppliers/
│   │       │                   │   │   ├── EC2HardwareSupplier.java
│   │       │                   │   │   ├── EC2ImageSupplier.java
│   │       │                   │   │   └── RegionAndNameToImageSupplier.java
│   │       │                   │   └── util/
│   │       │                   │       └── EC2ComputeUtils.java
│   │       │                   ├── config/
│   │       │                   │   ├── BaseEC2HttpApiModule.java
│   │       │                   │   └── EC2HttpApiModule.java
│   │       │                   ├── domain/
│   │       │                   │   ├── Attachment.java
│   │       │                   │   ├── AvailabilityZoneInfo.java
│   │       │                   │   ├── BlockDevice.java
│   │       │                   │   ├── BlockDeviceMapping.java
│   │       │                   │   ├── BundleInstanceS3Storage.java
│   │       │                   │   ├── BundleTask.java
│   │       │                   │   ├── Hypervisor.java
│   │       │                   │   ├── Image.java
│   │       │                   │   ├── ImageAttribute.java
│   │       │                   │   ├── InstanceState.java
│   │       │                   │   ├── InstanceStateChange.java
│   │       │                   │   ├── InstanceType.java
│   │       │                   │   ├── KeyPair.java
│   │       │                   │   ├── PasswordData.java
│   │       │                   │   ├── Permission.java
│   │       │                   │   ├── PublicIpInstanceIdPair.java
│   │       │                   │   ├── Reservation.java
│   │       │                   │   ├── ReservedInstancesOffering.java
│   │       │                   │   ├── RootDeviceType.java
│   │       │                   │   ├── RunningInstance.java
│   │       │                   │   ├── SecurityGroup.java
│   │       │                   │   ├── Snapshot.java
│   │       │                   │   ├── Subnet.java
│   │       │                   │   ├── Tag.java
│   │       │                   │   ├── UserIdGroupPair.java
│   │       │                   │   ├── VirtualizationType.java
│   │       │                   │   └── Volume.java
│   │       │                   ├── features/
│   │       │                   │   ├── AMIApi.java
│   │       │                   │   ├── AvailabilityZoneAndRegionApi.java
│   │       │                   │   ├── ElasticBlockStoreApi.java
│   │       │                   │   ├── ElasticIPAddressApi.java
│   │       │                   │   ├── InstanceApi.java
│   │       │                   │   ├── KeyPairApi.java
│   │       │                   │   ├── SecurityGroupApi.java
│   │       │                   │   ├── SubnetApi.java
│   │       │                   │   ├── TagApi.java
│   │       │                   │   └── WindowsApi.java
│   │       │                   ├── functions/
│   │       │                   │   ├── ConvertUnencodedBytesToBase64EncodedString.java
│   │       │                   │   └── EncodedRSAPublicKeyToBase64.java
│   │       │                   ├── options/
│   │       │                   │   ├── BundleInstanceS3StorageOptions.java
│   │       │                   │   ├── CreateImageOptions.java
│   │       │                   │   ├── CreateSnapshotOptions.java
│   │       │                   │   ├── CreateVolumeOptions.java
│   │       │                   │   ├── DescribeAvailabilityZonesOptions.java
│   │       │                   │   ├── DescribeImagesOptions.java
│   │       │                   │   ├── DescribeRegionsOptions.java
│   │       │                   │   ├── DescribeSnapshotsOptions.java
│   │       │                   │   ├── DetachVolumeOptions.java
│   │       │                   │   ├── RegisterImageBackedByEbsOptions.java
│   │       │                   │   ├── RegisterImageOptions.java
│   │       │                   │   ├── RunInstancesOptions.java
│   │       │                   │   └── internal/
│   │       │                   │       └── BaseEC2RequestOptions.java
│   │       │                   ├── predicates/
│   │       │                   │   ├── InstanceHasIpAddress.java
│   │       │                   │   ├── InstanceStateRunning.java
│   │       │                   │   ├── InstanceStateStopped.java
│   │       │                   │   ├── InstanceStateTerminated.java
│   │       │                   │   ├── SnapshotCompleted.java
│   │       │                   │   ├── VolumeAttached.java
│   │       │                   │   ├── VolumeAvailable.java
│   │       │                   │   └── VolumeDetached.java
│   │       │                   ├── reference/
│   │       │                   │   └── EC2Constants.java
│   │       │                   ├── suppliers/
│   │       │                   │   ├── DescribeAvailabilityZonesInRegion.java
│   │       │                   │   └── DescribeRegionsForRegionURIs.java
│   │       │                   ├── util/
│   │       │                   │   ├── IpPermissions.java
│   │       │                   │   ├── SubnetFilterBuilder.java
│   │       │                   │   ├── TagFilterBuilder.java
│   │       │                   │   └── Tags.java
│   │       │                   └── xml/
│   │       │                       ├── AllocateAddressResponseHandler.java
│   │       │                       ├── AttachmentHandler.java
│   │       │                       ├── BaseReservationHandler.java
│   │       │                       ├── BlockDeviceMappingHandler.java
│   │       │                       ├── BooleanValueHandler.java
│   │       │                       ├── BundleTaskHandler.java
│   │       │                       ├── CreateVolumeResponseHandler.java
│   │       │                       ├── DescribeAddressesResponseHandler.java
│   │       │                       ├── DescribeAvailabilityZonesResponseHandler.java
│   │       │                       ├── DescribeBundleTasksResponseHandler.java
│   │       │                       ├── DescribeImagesResponseHandler.java
│   │       │                       ├── DescribeInstancesResponseHandler.java
│   │       │                       ├── DescribeKeyPairsResponseHandler.java
│   │       │                       ├── DescribeRegionsResponseHandler.java
│   │       │                       ├── DescribeSecurityGroupsResponseHandler.java
│   │       │                       ├── DescribeSnapshotsResponseHandler.java
│   │       │                       ├── DescribeSubnetsResponseHandler.java
│   │       │                       ├── DescribeTagsResponseHandler.java
│   │       │                       ├── DescribeVolumesResponseHandler.java
│   │       │                       ├── GetConsoleOutputResponseHandler.java
│   │       │                       ├── GetPasswordDataResponseHandler.java
│   │       │                       ├── ImageIdHandler.java
│   │       │                       ├── InstanceInitiatedShutdownBehaviorHandler.java
│   │       │                       ├── InstanceStateChangeHandler.java
│   │       │                       ├── InstanceTypeHandler.java
│   │       │                       ├── IpPermissionHandler.java
│   │       │                       ├── KeyPairResponseHandler.java
│   │       │                       ├── PermissionHandler.java
│   │       │                       ├── RunInstancesResponseHandler.java
│   │       │                       ├── SecurityGroupHandler.java
│   │       │                       ├── SnapshotHandler.java
│   │       │                       ├── StringValueHandler.java
│   │       │                       ├── SubnetHandler.java
│   │       │                       ├── TagHandler.java
│   │       │                       ├── TagSetHandler.java
│   │       │                       └── UnencodeStringValueHandler.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── jclouds/
│   │           │           └── ec2/
│   │           │               ├── CloudApplicationArchitecturesEC2ApiLiveTest.java
│   │           │               ├── EBSBootEC2ApiLiveTest.java
│   │           │               ├── EC2ApiMetadataTest.java
│   │           │               ├── EC2ContextBuilderText.java
│   │           │               ├── binders/
│   │           │               │   ├── BindBlockDeviceMappingToIndexedFormParamsTest.java
│   │           │               │   ├── BindBundleIdsToIndexedFormParamsTest.java
│   │           │               │   ├── BindFiltersToIndexedFormParamsTest.java
│   │           │               │   ├── BindGroupNamesToIndexedFormParamsTest.java
│   │           │               │   ├── BindInstanceIdsToIndexedFormParamsTest.java
│   │           │               │   ├── BindKeyNamesToIndexedFormParamsTest.java
│   │           │               │   ├── BindProductCodesToIndexedFormParamsTest.java
│   │           │               │   ├── BindPublicIpsToIndexedFormParamsTest.java
│   │           │               │   ├── BindResourceIdsToIndexedFormParamsTest.java
│   │           │               │   ├── BindS3UploadPolicyAndSignatureTest.java
│   │           │               │   ├── BindTagKeysToIndexedFormParamsTest.java
│   │           │               │   ├── BindTagsToIndexedFormParamsTest.java
│   │           │               │   ├── BindUserGroupsToIndexedFormParamsTest.java
│   │           │               │   ├── BindUserIdGroupPairToSourceSecurityGroupFormParamsTest.java
│   │           │               │   ├── BindUserIdsToIndexedFormParamsTest.java
│   │           │               │   ├── BindVolumeIdsToIndexedFormParamsTest.java
│   │           │               │   └── IfNotNullBindAvailabilityZoneToFormParamTest.java
│   │           │               ├── compute/
│   │           │               │   ├── EC2ComputeServiceExpectTest.java
│   │           │               │   ├── EC2ComputeServiceLiveTest.java
│   │           │               │   ├── EC2TemplateBuilderLiveTest.java
│   │           │               │   ├── EC2TemplateBuilderTest.java
│   │           │               │   ├── TestCanRecreateGroupLiveTest.java
│   │           │               │   ├── config/
│   │           │               │   │   └── EC2ComputeServiceContextModuleTest.java
│   │           │               │   ├── extensions/
│   │           │               │   │   ├── EC2ImageExtensionExpectTest.java
│   │           │               │   │   ├── EC2ImageExtensionLiveTest.java
│   │           │               │   │   ├── EC2SecurityGroupExtensionExpectTest.java
│   │           │               │   │   └── EC2SecurityGroupExtensionLiveTest.java
│   │           │               │   ├── functions/
│   │           │               │   │   ├── AddElasticIpsToNodemetadataTest.java
│   │           │               │   │   ├── CreateUniqueKeyPairTest.java
│   │           │               │   │   ├── EC2ImageParserTest.java
│   │           │               │   │   ├── EC2SecurityGroupToSecurityGroupTest.java
│   │           │               │   │   ├── PresentInstancesTest.java
│   │           │               │   │   ├── RunningInstanceToNodeMetadataTest.java
│   │           │               │   │   └── WindowsLoginCredentialsFromEncryptedDataTest.java
│   │           │               │   ├── internal/
│   │           │               │   │   ├── BaseEC2ComputeServiceContextExpectTest.java
│   │           │               │   │   ├── BaseEC2ComputeServiceExpectTest.java
│   │           │               │   │   └── EC2TemplateBuilderImplTest.java
│   │           │               │   ├── loaders/
│   │           │               │   │   ├── CreateSecurityGroupIfNeededTest.java
│   │           │               │   │   ├── LoadPublicIpForInstanceOrNullTest.java
│   │           │               │   │   └── RegionAndIdToImageTest.java
│   │           │               │   ├── options/
│   │           │               │   │   └── EC2TemplateOptionsTest.java
│   │           │               │   └── strategy/
│   │           │               │       ├── CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptionsTest.java
│   │           │               │       ├── EC2CreateNodesInGroupThenAddToSetTest.java
│   │           │               │       └── EC2DestroyNodeStrategyTest.java
│   │           │               ├── config/
│   │           │               │   └── EC2HttpApiModuleExpectTest.java
│   │           │               ├── features/
│   │           │               │   ├── AMIApiExpectTest.java
│   │           │               │   ├── AMIApiLiveTest.java
│   │           │               │   ├── AMIApiTest.java
│   │           │               │   ├── AvailabilityZoneAndRegionApiLiveTest.java
│   │           │               │   ├── AvailabilityZoneAndRegionApiTest.java
│   │           │               │   ├── BaseEC2ApiTest.java
│   │           │               │   ├── EC2ElasticBlockStoreApiExpectTest.java
│   │           │               │   ├── ElasticBlockStoreApiLiveTest.java
│   │           │               │   ├── ElasticBlockStoreApiTest.java
│   │           │               │   ├── ElasticIPAddressApiExpectTest.java
│   │           │               │   ├── ElasticIPAddressApiLiveTest.java
│   │           │               │   ├── ElasticIPAddressApiTest.java
│   │           │               │   ├── InstanceApiExpectTest.java
│   │           │               │   ├── InstanceApiLiveTest.java
│   │           │               │   ├── InstanceApiTest.java
│   │           │               │   ├── KeyPairApiExpectTest.java
│   │           │               │   ├── KeyPairApiLiveTest.java
│   │           │               │   ├── KeyPairApiTest.java
│   │           │               │   ├── SecurityGroupApiExpectTest.java
│   │           │               │   ├── SecurityGroupApiLiveTest.java
│   │           │               │   ├── SecurityGroupApiTest.java
│   │           │               │   ├── SubnetApiExpectTest.java
│   │           │               │   ├── SubnetApiLiveTest.java
│   │           │               │   ├── TagApiExpectTest.java
│   │           │               │   ├── WindowsApiExpectTest.java
│   │           │               │   ├── WindowsApiLiveTest.java
│   │           │               │   ├── WindowsApiTest.java
│   │           │               │   └── internal/
│   │           │               │       └── BaseTagApiLiveTest.java
│   │           │               ├── functions/
│   │           │               │   ├── ConvertUnencodedBytesToBase64EncodedStringTest.java
│   │           │               │   └── EncodedRSAPublicKeyToBase64Test.java
│   │           │               ├── internal/
│   │           │               │   ├── BaseEC2ApiExpectTest.java
│   │           │               │   ├── BaseEC2ApiLiveTest.java
│   │           │               │   ├── BaseEC2ApiMockTest.java
│   │           │               │   └── BaseEC2ExpectTest.java
│   │           │               ├── options/
│   │           │               │   ├── BundleInstanceS3StorageOptionsTest.java
│   │           │               │   ├── CreateImageOptionsTest.java
│   │           │               │   ├── CreateSnapshotOptionsTest.java
│   │           │               │   ├── CreateVolumeOptionsTest.java
│   │           │               │   ├── DescribeImagesOptionsTest.java
│   │           │               │   ├── DescribeSnapshotsOptionsTest.java
│   │           │               │   ├── DetachVolumeOptionsTest.java
│   │           │               │   ├── RegisterImageBackedByEbsOptionsTest.java
│   │           │               │   ├── RegisterImageOptionsTest.java
│   │           │               │   └── RunInstancesOptionsTest.java
│   │           │               ├── parse/
│   │           │               │   ├── DescribeSubnetsResponseTest.java
│   │           │               │   ├── DescribeTagsResponseTest.java
│   │           │               │   └── GetPasswordDataResponseTest.java
│   │           │               ├── predicates/
│   │           │               │   └── VolumeDetachedTest.java
│   │           │               ├── suppliers/
│   │           │               │   ├── DescribeAvailabilityZonesInRegionMockTest.java
│   │           │               │   └── DescribeRegionsForRegionURIsMockTest.java
│   │           │               ├── util/
│   │           │               │   ├── IpPermissionsTest.java
│   │           │               │   └── TagsTest.java
│   │           │               └── xml/
│   │           │                   ├── AllocateAddressResponseHandlerTest.java
│   │           │                   ├── AttachmentHandlerTest.java
│   │           │                   ├── BaseEC2HandlerTest.java
│   │           │                   ├── BlockDeviceMappingHandlerTest.java
│   │           │                   ├── BundleTaskHandlerTest.java
│   │           │                   ├── CreateVolumeResponseHandlerTest.java
│   │           │                   ├── DescribeAddressesResponseHandlerTest.java
│   │           │                   ├── DescribeAvailabilityZonesResponseHandlerTest.java
│   │           │                   ├── DescribeBundleTasksResponseHandlerTest.java
│   │           │                   ├── DescribeImagesResponseHandlerTest.java
│   │           │                   ├── DescribeInstanceAttributeTest.java
│   │           │                   ├── DescribeInstancesResponseHandlerTest.java
│   │           │                   ├── DescribeKeyPairsResponseHandlerTest.java
│   │           │                   ├── DescribeRegionsResponseHandlerTest.java
│   │           │                   ├── DescribeSecurityGroupsResponseHandlerTest.java
│   │           │                   ├── DescribeSnapshotsResponseHandlerTest.java
│   │           │                   ├── DescribeVolumesResponseHandlerTest.java
│   │           │                   ├── GetConsoleOutputResponseHandlerTest.java
│   │           │                   ├── InstanceStateChangeHandlerTest.java
│   │           │                   ├── KeyPairResponseHandlerTest.java
│   │           │                   ├── PermissionHandlerTest.java
│   │           │                   ├── RunInstancesResponseHandlerTest.java
│   │           │                   └── SnapshotHandlerTest.java
│   │           └── resources/
│   │               ├── allocate_address.xml
│   │               ├── amzn_images.xml
│   │               ├── attach.xml
│   │               ├── authorize_securitygroup_ingress_response.xml
│   │               ├── availabilityZones-ap-northeast-1.xml
│   │               ├── availabilityZones-ap-southeast-1.xml
│   │               ├── availabilityZones-eu-west-1.xml
│   │               ├── availabilityZones-sa-east-1.xml
│   │               ├── availabilityZones-us-east-1.xml
│   │               ├── availabilityZones-us-west-1.xml
│   │               ├── availabilityZones-us-west-2.xml
│   │               ├── availabilityZones.xml
│   │               ├── bundle_instance.xml
│   │               ├── cancel_bundle_task.xml
│   │               ├── create_keypair.xml
│   │               ├── created_securitygroup.xml
│   │               ├── created_snapshot.xml
│   │               ├── created_volume.xml
│   │               ├── delete_keypair.xml
│   │               ├── delete_placementgroup.xml
│   │               ├── delete_securitygroup.xml
│   │               ├── describe_addresses.xml
│   │               ├── describe_addresses_single.xml
│   │               ├── describe_addresses_with_tags.xml
│   │               ├── describe_bundle_tasks.xml
│   │               ├── describe_image_attribute_blockDeviceMapping.xml
│   │               ├── describe_image_attribute_launchPermission.xml
│   │               ├── describe_images.xml
│   │               ├── describe_images_ebs.xml
│   │               ├── describe_images_imageextension0.xml
│   │               ├── describe_images_imageextension1.xml
│   │               ├── describe_images_imageextension2.xml
│   │               ├── describe_images_nova.xml
│   │               ├── describe_images_tags.xml
│   │               ├── describe_images_windows.xml
│   │               ├── describe_instances.xml
│   │               ├── describe_instances_ebs.xml
│   │               ├── describe_instances_empty.xml
│   │               ├── describe_instances_multiple.xml
│   │               ├── describe_instances_running-1.xml
│   │               ├── describe_instances_running-named.xml
│   │               ├── describe_instances_running.xml
│   │               ├── describe_instances_running_securitygroups.xml
│   │               ├── describe_instances_three_ids.xml
│   │               ├── describe_keypairs.xml
│   │               ├── describe_keypairs_jcloudssingle.xml
│   │               ├── describe_securitygroups.xml
│   │               ├── describe_securitygroups_empty.xml
│   │               ├── describe_securitygroups_extension_cidr.xml
│   │               ├── describe_securitygroups_extension_group.xml
│   │               ├── describe_securitygroups_extension_new.xml
│   │               ├── describe_securitygroups_extension_single.xml
│   │               ├── describe_snapshots.xml
│   │               ├── describe_subnets.xml
│   │               ├── describe_tags.xml
│   │               ├── describe_volumes.xml
│   │               ├── describe_volumes_single.xml
│   │               ├── disableApiTermination.xml
│   │               ├── get_console_output_response.xml
│   │               ├── get_passworddata.xml
│   │               ├── instanceInitiatedShutdownBehavior.xml
│   │               ├── instanceType.xml
│   │               ├── log4j.xml
│   │               ├── new_instance.xml
│   │               ├── new_securitygroup.xml
│   │               ├── ramdisk.xml
│   │               ├── regionEndpoints-additional.xml
│   │               ├── regionEndpoints-all.xml
│   │               ├── regionEndpoints.xml
│   │               ├── run_instances.xml
│   │               ├── run_instances_cloudbridge.xml
│   │               ├── run_instances_three.xml
│   │               ├── start_instances.xml
│   │               ├── stop_instances.xml
│   │               ├── terminate_instances.xml
│   │               └── userData.xml
│   ├── elasticstack/
│   │   ├── README.txt
│   │   ├── bnd.bnd
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── jclouds/
│   │       │               └── elasticstack/
│   │       │                   ├── ElasticStackApi.java
│   │       │                   ├── ElasticStackApiMetadata.java
│   │       │                   ├── binders/
│   │       │                   │   ├── BindDriveDataToPlainTextString.java
│   │       │                   │   ├── BindDriveToPlainTextString.java
│   │       │                   │   └── BindServerToPlainTextString.java
│   │       │                   ├── compute/
│   │       │                   │   ├── ElasticStackComputeServiceAdapter.java
│   │       │                   │   ├── config/
│   │       │                   │   │   └── ElasticStackComputeServiceContextModule.java
│   │       │                   │   └── functions/
│   │       │                   │       ├── ServerInfoToNodeMetadata.java
│   │       │                   │       ├── StandardDriveToWellKnownImage.java
│   │       │                   │       └── WellKnownImageToImage.java
│   │       │                   ├── config/
│   │       │                   │   └── ElasticStackHttpApiModule.java
│   │       │                   ├── domain/
│   │       │                   │   ├── BlockDevice.java
│   │       │                   │   ├── ClaimType.java
│   │       │                   │   ├── CreateDriveRequest.java
│   │       │                   │   ├── Device.java
│   │       │                   │   ├── Drive.java
│   │       │                   │   ├── DriveData.java
│   │       │                   │   ├── DriveInfo.java
│   │       │                   │   ├── DriveMetrics.java
│   │       │                   │   ├── DriveStatus.java
│   │       │                   │   ├── IDEDevice.java
│   │       │                   │   ├── ImageConversionType.java
│   │       │                   │   ├── Item.java
│   │       │                   │   ├── MediaType.java
│   │       │                   │   ├── Model.java
│   │       │                   │   ├── NIC.java
│   │       │                   │   ├── SCSIDevice.java
│   │       │                   │   ├── Server.java
│   │       │                   │   ├── ServerInfo.java
│   │       │                   │   ├── ServerMetrics.java
│   │       │                   │   ├── ServerStatus.java
│   │       │                   │   ├── StandardDrive.java
│   │       │                   │   ├── VNC.java
│   │       │                   │   └── WellKnownImage.java
│   │       │                   ├── functions/
│   │       │                   │   ├── BaseDriveToMap.java
│   │       │                   │   ├── CreateDriveRequestToMap.java
│   │       │                   │   ├── DriveDataToMap.java
│   │       │                   │   ├── KeyValuesDelimitedByBlankLinesToDriveInfo.java
│   │       │                   │   ├── KeyValuesDelimitedByBlankLinesToServerInfo.java
│   │       │                   │   ├── ListOfKeyValuesDelimitedByBlankLinesToDriveInfoSet.java
│   │       │                   │   ├── ListOfKeyValuesDelimitedByBlankLinesToListOfMaps.java
│   │       │                   │   ├── ListOfKeyValuesDelimitedByBlankLinesToServerInfoSet.java
│   │       │                   │   ├── ListOfKeyValuesDelimitedByBlankLinesToStandardDriveSet.java
│   │       │                   │   ├── ListOfMapsToListOfKeyValuesDelimitedByBlankLines.java
│   │       │                   │   ├── MapToDevices.java
│   │       │                   │   ├── MapToDriveInfo.java
│   │       │                   │   ├── MapToDriveMetrics.java
│   │       │                   │   ├── MapToNICs.java
│   │       │                   │   ├── MapToServerInfo.java
│   │       │                   │   ├── MapToServerMetrics.java
│   │       │                   │   ├── MapToStandardDrive.java
│   │       │                   │   ├── ReturnPayload.java
│   │       │                   │   ├── ServerToMap.java
│   │       │                   │   └── SplitNewlines.java
│   │       │                   ├── handlers/
│   │       │                   │   └── ElasticStackErrorHandler.java
│   │       │                   ├── predicates/
│   │       │                   │   └── DriveClaimed.java
│   │       │                   ├── reference/
│   │       │                   │   └── ElasticStackConstants.java
│   │       │                   ├── suppliers/
│   │       │                   │   ├── StandardDiskImageSupplier.java
│   │       │                   │   └── WellKnownImageSupplier.java
│   │       │                   └── util/
│   │       │                       └── Servers.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── jclouds/
│   │           │           └── elasticstack/
│   │           │               ├── ElasticStackApiLiveTest.java
│   │           │               ├── ElasticStackApiMetadataTest.java
│   │           │               ├── ElasticStackApiTest.java
│   │           │               ├── ElasticStackMockTest.java
│   │           │               ├── binders/
│   │           │               │   ├── BindDriveDataToPlainTextStringTest.java
│   │           │               │   ├── BindDriveToPlainTextStringTest.java
│   │           │               │   └── BindServerToPlainTextStringTest.java
│   │           │               ├── compute/
│   │           │               │   ├── ElasticStackComputeServiceAdapterTest.java
│   │           │               │   ├── ElasticStackComputeServiceLiveTest.java
│   │           │               │   └── functions/
│   │           │               │       ├── GetImageIdFromServerTest.java
│   │           │               │       └── StandardDriveToWellKnownImageTest.java
│   │           │               ├── functions/
│   │           │               │   ├── BaseDriveToMapTest.java
│   │           │               │   ├── CreateDriveRequestToMapTest.java
│   │           │               │   ├── DriveDataToMapTest.java
│   │           │               │   ├── KeyValuesDelimitedByBlankLinesToDriveInfoTest.java
│   │           │               │   ├── KeyValuesDelimitedByBlankLinesToServerInfoTest.java
│   │           │               │   ├── ListOfKeyValuesDelimitedByBlankLinesToDriveInfoSetTest.java
│   │           │               │   ├── ListOfKeyValuesDelimitedByBlankLinesToListOfMapsTest.java
│   │           │               │   ├── ListOfKeyValuesDelimitedByBlankLinesToServerInfoSetTest.java
│   │           │               │   ├── ListOfKeyValuesDelimitedByBlankLinesToStandardDriveSetTest.java
│   │           │               │   ├── ListOfMapsToListOfKeyValuesDelimitedByBlankLinesTest.java
│   │           │               │   ├── MapToDriveInfoTest.java
│   │           │               │   ├── MapToServerInfoTest.java
│   │           │               │   ├── MapToStandardDriveTest.java
│   │           │               │   ├── ServerToMapTest.java
│   │           │               │   └── SplitNewlinesTest.java
│   │           │               ├── handlers/
│   │           │               │   └── ElasticStackErrorHandlerTest.java
│   │           │               └── suppliers/
│   │           │                   └── MockStandardDiskImageSupplier.java
│   │           └── resources/
│   │               ├── create_drive.txt
│   │               ├── create_server.txt
│   │               ├── drive.txt
│   │               ├── drive_data.txt
│   │               ├── log4j.xml
│   │               ├── new_server.txt
│   │               ├── new_server2.txt
│   │               ├── server2.txt
│   │               ├── servers.txt
│   │               ├── standard_drive.txt
│   │               ├── standard_drives.txt
│   │               ├── standard_drives_uuids.txt
│   │               └── uuids.txt
│   ├── filesystem/
│   │   ├── README.txt
│   │   ├── bnd.bnd
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── jclouds/
│   │       │               └── filesystem/
│   │       │                   ├── FilesystemApiMetadata.java
│   │       │                   ├── config/
│   │       │                   │   └── FilesystemBlobStoreContextModule.java
│   │       │                   ├── predicates/
│   │       │                   │   └── validators/
│   │       │                   │       ├── FilesystemBlobKeyValidator.java
│   │       │                   │       ├── FilesystemContainerNameValidator.java
│   │       │                   │       └── internal/
│   │       │                   │           ├── FilesystemBlobKeyValidatorImpl.java
│   │       │                   │           └── FilesystemContainerNameValidatorImpl.java
│   │       │                   ├── reference/
│   │       │                   │   └── FilesystemConstants.java
│   │       │                   ├── strategy/
│   │       │                   │   └── internal/
│   │       │                   │       └── FilesystemStorageStrategyImpl.java
│   │       │                   └── util/
│   │       │                       ├── Utils.java
│   │       │                       └── internal/
│   │       │                           └── FileSystemBlobUtilsImpl.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── jclouds/
│   │           │           └── filesystem/
│   │           │               ├── FilesystemApiMetadataTest.java
│   │           │               ├── FilesystemBlobStoreTest.java
│   │           │               ├── integration/
│   │           │               │   ├── FilesystemBlobIntegrationTest.java
│   │           │               │   ├── FilesystemContainerIntegrationTest.java
│   │           │               │   └── FilesystemServiceIntegrationTest.java
│   │           │               ├── predicates/
│   │           │               │   └── validators/
│   │           │               │       └── internal/
│   │           │               │           ├── FilesystemBlobKeyValidatorTest.java
│   │           │               │           └── FilesystemContainerNameValidatorTest.java
│   │           │               ├── strategy/
│   │           │               │   └── internal/
│   │           │               │       └── FilesystemStorageStrategyImplTest.java
│   │           │               └── utils/
│   │           │                   └── TestUtils.java
│   │           └── resources/
│   │               └── logging.properties
│   ├── glacier/
│   │   ├── README.md
│   │   ├── bnd.bnd
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── jclouds/
│   │       │               └── glacier/
│   │       │                   ├── GlacierApiMetadata.java
│   │       │                   ├── GlacierClient.java
│   │       │                   ├── GlacierResponseException.java
│   │       │                   ├── binders/
│   │       │                   │   ├── BindArchiveOutputRangeToHeaders.java
│   │       │                   │   ├── BindArchiveSizeToHeaders.java
│   │       │                   │   ├── BindContentRangeToHeaders.java
│   │       │                   │   ├── BindDescriptionToHeaders.java
│   │       │                   │   ├── BindHashesToHeaders.java
│   │       │                   │   ├── BindJobRequestToJsonPayload.java
│   │       │                   │   ├── BindMultipartTreeHashToHeaders.java
│   │       │                   │   └── BindPartSizeToHeaders.java
│   │       │                   ├── blobstore/
│   │       │                   │   ├── GlacierBlobStore.java
│   │       │                   │   ├── config/
│   │       │                   │   │   └── GlacierBlobStoreContextModule.java
│   │       │                   │   ├── functions/
│   │       │                   │   │   ├── ArchiveMetadataCollectionToStorageMetadata.java
│   │       │                   │   │   ├── ListContainerOptionsToInventoryRetrievalJobRequest.java
│   │       │                   │   │   ├── PaginatedVaultCollectionToStorageMetadata.java
│   │       │                   │   │   └── VaultMetadataToStorageMetadata.java
│   │       │                   │   └── strategy/
│   │       │                   │       ├── MultipartUploadStrategy.java
│   │       │                   │       ├── PayloadSlice.java
│   │       │                   │       ├── PollingStrategy.java
│   │       │                   │       ├── SlicingStrategy.java
│   │       │                   │       └── internal/
│   │       │                   │           ├── BasePollingStrategy.java
│   │       │                   │           ├── BaseSlicingStrategy.java
│   │       │                   │           ├── ClearVaultStrategy.java
│   │       │                   │           └── SequentialMultipartUploadStrategy.java
│   │       │                   ├── config/
│   │       │                   │   ├── GlacierHttpApiModule.java
│   │       │                   │   └── GlacierParserModule.java
│   │       │                   ├── domain/
│   │       │                   │   ├── ArchiveMetadata.java
│   │       │                   │   ├── ArchiveMetadataCollection.java
│   │       │                   │   ├── ArchiveRetrievalJobRequest.java
│   │       │                   │   ├── GlacierError.java
│   │       │                   │   ├── InventoryRetrievalJobRequest.java
│   │       │                   │   ├── InventoryRetrievalParameters.java
│   │       │                   │   ├── JobMetadata.java
│   │       │                   │   ├── JobRequest.java
│   │       │                   │   ├── JobStatus.java
│   │       │                   │   ├── MultipartUploadMetadata.java
│   │       │                   │   ├── PaginatedJobCollection.java
│   │       │                   │   ├── PaginatedMultipartUploadCollection.java
│   │       │                   │   ├── PaginatedVaultCollection.java
│   │       │                   │   ├── PartMetadata.java
│   │       │                   │   └── VaultMetadata.java
│   │       │                   ├── fallbacks/
│   │       │                   │   └── FalseOnIllegalArgumentException.java
│   │       │                   ├── filters/
│   │       │                   │   └── RequestAuthorizeSignature.java
│   │       │                   ├── functions/
│   │       │                   │   ├── GetPayloadFromHttpContent.java
│   │       │                   │   ├── ParseArchiveIdHeader.java
│   │       │                   │   ├── ParseArchiveMetadataCollectionFromHttpContent.java
│   │       │                   │   ├── ParseJobIdHeader.java
│   │       │                   │   ├── ParseJobMetadataFromHttpContent.java
│   │       │                   │   ├── ParseJobMetadataListFromHttpContent.java
│   │       │                   │   ├── ParseMultipartUploadIdHeader.java
│   │       │                   │   ├── ParseMultipartUploadListFromHttpContent.java
│   │       │                   │   ├── ParseMultipartUploadPartListFromHttpContent.java
│   │       │                   │   ├── ParseMultipartUploadTreeHashHeader.java
│   │       │                   │   ├── ParseVaultMetadataFromHttpContent.java
│   │       │                   │   └── ParseVaultMetadataListFromHttpContent.java
│   │       │                   ├── handlers/
│   │       │                   │   └── ParseGlacierErrorFromJsonContent.java
│   │       │                   ├── options/
│   │       │                   │   └── PaginationOptions.java
│   │       │                   ├── predicates/
│   │       │                   │   └── validators/
│   │       │                   │       ├── DescriptionValidator.java
│   │       │                   │       ├── PartSizeValidator.java
│   │       │                   │       ├── PayloadValidator.java
│   │       │                   │       └── VaultNameValidator.java
│   │       │                   ├── reference/
│   │       │                   │   └── GlacierHeaders.java
│   │       │                   └── util/
│   │       │                       ├── AWSRequestSignerV4.java
│   │       │                       ├── ContentRange.java
│   │       │                       └── TreeHash.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── jclouds/
│   │           │           └── glacier/
│   │           │               ├── GlacierApiMetadataTest.java
│   │           │               ├── GlacierClientLiveTest.java
│   │           │               ├── GlacierClientLongLiveTest.java
│   │           │               ├── GlacierClientMockTest.java
│   │           │               ├── blobstore/
│   │           │               │   └── strategy/
│   │           │               │       └── internal/
│   │           │               │           ├── BaseSlicingStrategyTest.java
│   │           │               │           └── MultipartUploadStrategyMockTest.java
│   │           │               ├── predicates/
│   │           │               │   └── validators/
│   │           │               │       ├── DescriptionValidatorTest.java
│   │           │               │       ├── PartSizeValidatorTest.java
│   │           │               │       ├── PayloadValidatorTest.java
│   │           │               │       └── VaultNameValidatorTest.java
│   │           │               └── util/
│   │           │                   ├── AWSRequestSignerV4Test.java
│   │           │                   ├── ContentRangeTest.java
│   │           │                   ├── TestUtils.java
│   │           │                   └── TreeHashTest.java
│   │           └── resources/
│   │               ├── json/
│   │               │   ├── describeJobResponseBody.json
│   │               │   ├── describeVaultResponseBody.json
│   │               │   ├── getJobOutputResponseBody.json
│   │               │   ├── listJobsResponseBody.json
│   │               │   ├── listMultipartUploadsResponseBody.json
│   │               │   ├── listMultipartUploadsWithEmptyListResponseBody.json
│   │               │   ├── listPartsResponseBody.json
│   │               │   ├── listVaultsResponseBody.json
│   │               │   ├── listVaultsWithEmptyListResponseBody.json
│   │               │   └── listVaultsWithQueryParamsResponseBody.json
│   │               └── testng.xml
│   ├── oauth/
│   │   ├── README
│   │   ├── bnd.bnd
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── jclouds/
│   │       │               └── oauth/
│   │       │                   └── v2/
│   │       │                       ├── AuthorizationApi.java
│   │       │                       ├── OAuthFallbacks.java
│   │       │                       ├── config/
│   │       │                       │   ├── Authorization.java
│   │       │                       │   ├── CertificateFingerprintSupplier.java
│   │       │                       │   ├── CredentialType.java
│   │       │                       │   ├── OAuthConfigFactory.java
│   │       │                       │   ├── OAuthModule.java
│   │       │                       │   ├── OAuthProperties.java
│   │       │                       │   ├── OAuthScopes.java
│   │       │                       │   └── PrivateKeySupplier.java
│   │       │                       ├── domain/
│   │       │                       │   ├── CertificateFingerprint.java
│   │       │                       │   ├── Claims.java
│   │       │                       │   ├── ClientCredentialsAuthArgs.java
│   │       │                       │   ├── ClientCredentialsClaims.java
│   │       │                       │   ├── ClientSecret.java
│   │       │                       │   └── Token.java
│   │       │                       ├── filters/
│   │       │                       │   ├── BearerTokenFromCredentials.java
│   │       │                       │   ├── ClientCredentialsJWTBearerTokenFlow.java
│   │       │                       │   ├── ClientCredentialsSecretFlow.java
│   │       │                       │   ├── JWTBearerTokenFlow.java
│   │       │                       │   └── OAuthFilter.java
│   │       │                       └── functions/
│   │       │                           ├── ClaimsToAssertion.java
│   │       │                           └── ClientCredentialsClaimsToAssertion.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── jclouds/
│   │           │           └── oauth/
│   │           │               └── v2/
│   │           │                   ├── AuthorizationApiLiveTest.java
│   │           │                   ├── AuthorizationApiMockTest.java
│   │           │                   ├── OAuthTestUtils.java
│   │           │                   ├── config/
│   │           │                   │   └── PrivateKeySupplierTest.java
│   │           │                   ├── filters/
│   │           │                   │   └── TestJWTBearerTokenFlow.java
│   │           │                   └── functions/
│   │           │                       └── ClaimsToAssertionTest.java
│   │           └── resources/
│   │               ├── logback.xml
│   │               ├── testcert.pem
│   │               └── testpk.pem
│   ├── openstack-cinder/
│   │   ├── bnd.bnd
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── jclouds/
│   │       │               └── openstack/
│   │       │                   └── cinder/
│   │       │                       └── v1/
│   │       │                           ├── CinderApi.java
│   │       │                           ├── CinderApiMetadata.java
│   │       │                           ├── config/
│   │       │                           │   ├── CinderHttpApiModule.java
│   │       │                           │   └── CinderParserModule.java
│   │       │                           ├── domain/
│   │       │                           │   ├── AvailabilityZone.java
│   │       │                           │   ├── Snapshot.java
│   │       │                           │   ├── SnapshotExtendedAttributes.java
│   │       │                           │   ├── Volume.java
│   │       │                           │   ├── VolumeAttachment.java
│   │       │                           │   ├── VolumeQuota.java
│   │       │                           │   ├── VolumeType.java
│   │       │                           │   └── ZoneState.java
│   │       │                           ├── extensions/
│   │       │                           │   ├── AvailabilityZoneApi.java
│   │       │                           │   └── ExtensionNamespaces.java
│   │       │                           ├── features/
│   │       │                           │   ├── QuotaApi.java
│   │       │                           │   ├── SnapshotApi.java
│   │       │                           │   ├── VolumeApi.java
│   │       │                           │   └── VolumeTypeApi.java
│   │       │                           ├── handlers/
│   │       │                           │   └── CinderErrorHandler.java
│   │       │                           ├── options/
│   │       │                           │   ├── CreateSnapshotOptions.java
│   │       │                           │   └── CreateVolumeOptions.java
│   │       │                           └── predicates/
│   │       │                               ├── SnapshotPredicates.java
│   │       │                               └── VolumePredicates.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── jclouds/
│   │           │           └── openstack/
│   │           │               └── cinder/
│   │           │                   └── v1/
│   │           │                       ├── domain/
│   │           │                       │   └── VolumeTest.java
│   │           │                       ├── features/
│   │           │                       │   ├── AvailabilityZoneApiExpectTest.java
│   │           │                       │   ├── AvailabilityZoneApiLiveTest.java
│   │           │                       │   ├── QuotasApiExpectTest.java
│   │           │                       │   ├── QuotasApiLiveTest.java
│   │           │                       │   ├── SnapshotApiExpectTest.java
│   │           │                       │   ├── VolumeAndSnapshotApiLiveTest.java
│   │           │                       │   ├── VolumeApiExpectTest.java
│   │           │                       │   ├── VolumeTypeApiExpectTest.java
│   │           │                       │   └── VolumeTypeApiLiveTest.java
│   │           │                       └── internal/
│   │           │                           ├── BaseCinderApiExpectTest.java
│   │           │                           ├── BaseCinderApiLiveTest.java
│   │           │                           └── BaseCinderExpectTest.java
│   │           └── resources/
│   │               ├── availability_zones_list.json
│   │               ├── quotas.json
│   │               ├── snapshot_create.json
│   │               ├── snapshot_create_response.json
│   │               ├── snapshot_get.json
│   │               ├── snapshot_list_details.json
│   │               ├── snapshot_list_simple.json
│   │               ├── volume_create.json
│   │               ├── volume_create_response.json
│   │               ├── volume_get.json
│   │               ├── volume_list_details.json
│   │               ├── volume_list_simple.json
│   │               ├── volume_type_get.json
│   │               └── volume_type_list_simple.json
│   ├── openstack-keystone/
│   │   ├── bnd.bnd
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── jclouds/
│   │       │               └── openstack/
│   │       │                   ├── keystone/
│   │       │                   │   ├── auth/
│   │       │                   │   │   ├── AuthHeaders.java
│   │       │                   │   │   ├── AuthenticationApi.java
│   │       │                   │   │   ├── config/
│   │       │                   │   │   │   ├── Authentication.java
│   │       │                   │   │   │   ├── AuthenticationModule.java
│   │       │                   │   │   │   ├── CredentialType.java
│   │       │                   │   │   │   └── CredentialTypes.java
│   │       │                   │   │   ├── domain/
│   │       │                   │   │   │   ├── ApiAccessKeyCredentials.java
│   │       │                   │   │   │   ├── AuthInfo.java
│   │       │                   │   │   │   ├── PasswordCredentials.java
│   │       │                   │   │   │   ├── TenantOrDomainAndCredentials.java
│   │       │                   │   │   │   └── TokenCredentials.java
│   │       │                   │   │   ├── filters/
│   │       │                   │   │   │   └── AuthenticateRequest.java
│   │       │                   │   │   ├── functions/
│   │       │                   │   │   │   ├── AuthenticateApiAccessKeyCredentials.java
│   │       │                   │   │   │   ├── AuthenticatePasswordCredentials.java
│   │       │                   │   │   │   ├── AuthenticateTokenCredentials.java
│   │       │                   │   │   │   └── BaseAuthenticator.java
│   │       │                   │   │   └── handlers/
│   │       │                   │   │       └── RetryOnRenew.java
│   │       │                   │   ├── catalog/
│   │       │                   │   │   ├── ServiceEndpoint.java
│   │       │                   │   │   ├── config/
│   │       │                   │   │   │   ├── InternalUrlModule.java
│   │       │                   │   │   │   ├── KeystoneAdminURLModule.java
│   │       │                   │   │   │   └── ServiceCatalogModule.java
│   │       │                   │   │   ├── functions/
│   │       │                   │   │   │   ├── AdminEndpointResolutionStrategy.java
│   │       │                   │   │   │   ├── AdminURL.java
│   │       │                   │   │   │   ├── BaseEndpointResolutionStrategy.java
│   │       │                   │   │   │   ├── InternalURL.java
│   │       │                   │   │   │   ├── PublicURLOrInternal.java
│   │       │                   │   │   │   ├── ReturnRegionOrProvider.java
│   │       │                   │   │   │   ├── ServiceEndpointResolutionStrategy.java
│   │       │                   │   │   │   └── ServiceEndpointToRegion.java
│   │       │                   │   │   └── suppliers/
│   │       │                   │   │       ├── LocationIdToURIFromServiceEndpointsForTypeAndVersion.java
│   │       │                   │   │       ├── RegionIdToAdminURIFromServiceEndpointsForTypeAndVersion.java
│   │       │                   │   │       ├── RegionIdToAdminURISupplier.java
│   │       │                   │   │       └── RegionIdToURIFromServiceEndpointsForTypeAndVersion.java
│   │       │                   │   ├── config/
│   │       │                   │   │   └── KeystoneProperties.java
│   │       │                   │   ├── v2_0/
│   │       │                   │   │   ├── KeystoneApi.java
│   │       │                   │   │   ├── KeystoneApiMetadata.java
│   │       │                   │   │   ├── KeystoneFallbacks.java
│   │       │                   │   │   ├── auth/
│   │       │                   │   │   │   └── V2AuthenticationApi.java
│   │       │                   │   │   ├── binders/
│   │       │                   │   │   │   └── BindAuthToJsonPayload.java
│   │       │                   │   │   ├── catalog/
│   │       │                   │   │   │   └── V2ServiceCatalog.java
│   │       │                   │   │   ├── config/
│   │       │                   │   │   │   ├── KeystoneHttpApiModule.java
│   │       │                   │   │   │   ├── KeystoneParserModule.java
│   │       │                   │   │   │   └── NamespaceAliases.java
│   │       │                   │   │   ├── domain/
│   │       │                   │   │   │   ├── Access.java
│   │       │                   │   │   │   ├── ApiMetadata.java
│   │       │                   │   │   │   ├── Endpoint.java
│   │       │                   │   │   │   ├── MediaType.java
│   │       │                   │   │   │   ├── Role.java
│   │       │                   │   │   │   ├── Service.java
│   │       │                   │   │   │   ├── Tenant.java
│   │       │                   │   │   │   ├── Token.java
│   │       │                   │   │   │   └── User.java
│   │       │                   │   │   ├── extensions/
│   │       │                   │   │   │   ├── ExtensionAliases.java
│   │       │                   │   │   │   ├── ExtensionNames.java
│   │       │                   │   │   │   ├── ExtensionNamespaces.java
│   │       │                   │   │   │   ├── RoleAdminApi.java
│   │       │                   │   │   │   ├── ServiceAdminApi.java
│   │       │                   │   │   │   ├── TenantAdminApi.java
│   │       │                   │   │   │   └── UserAdminApi.java
│   │       │                   │   │   ├── features/
│   │       │                   │   │   │   ├── ServiceApi.java
│   │       │                   │   │   │   ├── TenantApi.java
│   │       │                   │   │   │   ├── TokenApi.java
│   │       │                   │   │   │   └── UserApi.java
│   │       │                   │   │   ├── functions/
│   │       │                   │   │   │   └── internal/
│   │       │                   │   │   │       ├── ParseServices.java
│   │       │                   │   │   │       ├── ParseTenants.java
│   │       │                   │   │   │       └── ParseUsers.java
│   │       │                   │   │   ├── handlers/
│   │       │                   │   │   │   └── KeystoneErrorHandler.java
│   │       │                   │   │   └── options/
│   │       │                   │   │       ├── CreateTenantOptions.java
│   │       │                   │   │       ├── CreateUserOptions.java
│   │       │                   │   │       ├── UpdateTenantOptions.java
│   │       │                   │   │       └── UpdateUserOptions.java
│   │       │                   │   └── v3/
│   │       │                   │       ├── KeystoneApi.java
│   │       │                   │       ├── KeystoneApiMetadata.java
│   │       │                   │       ├── auth/
│   │       │                   │       │   └── V3AuthenticationApi.java
│   │       │                   │       ├── binders/
│   │       │                   │       │   ├── BindAccessKeyAuthToJsonPayload.java
│   │       │                   │       │   ├── BindAuthToJsonPayload.java
│   │       │                   │       │   ├── BindPasswordAuthToJsonPayload.java
│   │       │                   │       │   └── BindTokenAuthToJsonPayload.java
│   │       │                   │       ├── catalog/
│   │       │                   │       │   └── V3ServiceCatalog.java
│   │       │                   │       ├── config/
│   │       │                   │       │   └── KeystoneHttpApiModule.java
│   │       │                   │       ├── domain/
│   │       │                   │       │   ├── Auth.java
│   │       │                   │       │   ├── Catalog.java
│   │       │                   │       │   ├── Endpoint.java
│   │       │                   │       │   ├── Group.java
│   │       │                   │       │   ├── Link.java
│   │       │                   │       │   ├── Project.java
│   │       │                   │       │   ├── Region.java
│   │       │                   │       │   ├── Token.java
│   │       │                   │       │   └── User.java
│   │       │                   │       ├── features/
│   │       │                   │       │   ├── AuthApi.java
│   │       │                   │       │   ├── CatalogApi.java
│   │       │                   │       │   ├── ProjectApi.java
│   │       │                   │       │   ├── RegionApi.java
│   │       │                   │       │   └── UserApi.java
│   │       │                   │       └── parsers/
│   │       │                   │           └── ParseTokenFromHttpResponse.java
│   │       │                   └── v2_0/
│   │       │                       ├── ServiceType.java
│   │       │                       ├── domain/
│   │       │                       │   ├── Extension.java
│   │       │                       │   ├── Limit.java
│   │       │                       │   ├── Limits.java
│   │       │                       │   ├── Link.java
│   │       │                       │   ├── PaginatedCollection.java
│   │       │                       │   ├── RateLimit.java
│   │       │                       │   └── Resource.java
│   │       │                       ├── features/
│   │       │                       │   └── ExtensionApi.java
│   │       │                       ├── functions/
│   │       │                       │   └── PresentWhenExtensionAnnotationMatchesExtensionSet.java
│   │       │                       ├── options/
│   │       │                       │   └── PaginationOptions.java
│   │       │                       ├── predicates/
│   │       │                       │   ├── ExtensionPredicates.java
│   │       │                       │   └── LinkPredicates.java
│   │       │                       └── services/
│   │       │                           ├── Compute.java
│   │       │                           ├── Extension.java
│   │       │                           ├── Identity.java
│   │       │                           ├── Image.java
│   │       │                           └── ObjectStore.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── jclouds/
│   │           │           └── openstack/
│   │           │               ├── keystone/
│   │           │               │   ├── auth/
│   │           │               │   │   ├── config/
│   │           │               │   │   │   ├── CredentialTypesTest.java
│   │           │               │   │   │   └── ProviderModuleExpectTest.java
│   │           │               │   │   ├── handlers/
│   │           │               │   │   │   └── RetryOnRenewTest.java
│   │           │               │   │   └── suppliers/
│   │           │               │   │       ├── LocationIdToURIFromAccessForTypeAndVersionTest.java
│   │           │               │   │       ├── RegionIdToAdminURIFromAccessForTypeAndVersionTest.java
│   │           │               │   │       └── RegionIdToURIFromAccessForTypeAndVersionTest.java
│   │           │               │   ├── catalog/
│   │           │               │   │   └── functions/
│   │           │               │   │       ├── AdminURLTest.java
│   │           │               │   │       ├── InternalURLTest.java
│   │           │               │   │       ├── PublicURLOrInternalTest.java
│   │           │               │   │       └── ReturnRegionOrProviderTest.java
│   │           │               │   ├── v2_0/
│   │           │               │   │   ├── KeystoneApiExpectTest.java
│   │           │               │   │   ├── KeystoneApiLiveTest.java
│   │           │               │   │   ├── extensions/
│   │           │               │   │   │   ├── RoleAdminApiLiveTest.java
│   │           │               │   │   │   ├── RoleAdminApiMockTest.java
│   │           │               │   │   │   ├── ServiceAdminApiLiveTest.java
│   │           │               │   │   │   ├── ServiceAdminApiMockTest.java
│   │           │               │   │   │   ├── TenantAdminApiLiveTest.java
│   │           │               │   │   │   ├── TenantAdminApiMockTest.java
│   │           │               │   │   │   ├── UserAdminApiLiveTest.java
│   │           │               │   │   │   └── UserAdminApiMockTest.java
│   │           │               │   │   ├── features/
│   │           │               │   │   │   ├── ServiceApiExpectTest.java
│   │           │               │   │   │   ├── ServiceApiLiveTest.java
│   │           │               │   │   │   ├── TenantApiExpectTest.java
│   │           │               │   │   │   ├── TenantApiLiveTest.java
│   │           │               │   │   │   ├── TokenApiExpectTest.java
│   │           │               │   │   │   ├── TokenApiLiveTest.java
│   │           │               │   │   │   ├── UserApiExpectTest.java
│   │           │               │   │   │   └── UserApiLiveTest.java
│   │           │               │   │   ├── functions/
│   │           │               │   │   │   └── internal/
│   │           │               │   │   │       └── ParseUsersTest.java
│   │           │               │   │   ├── internal/
│   │           │               │   │   │   ├── BaseKeystoneApiLiveTest.java
│   │           │               │   │   │   ├── BaseKeystoneRestApiExpectTest.java
│   │           │               │   │   │   └── KeystoneFixture.java
│   │           │               │   │   └── parse/
│   │           │               │   │       ├── ParseAccessTest.java
│   │           │               │   │       ├── ParseAdminAccessTest.java
│   │           │               │   │       ├── ParseDevstackApiMetadataTest.java
│   │           │               │   │       ├── ParseMinimalAccessTest.java
│   │           │               │   │       ├── ParseRackspaceAccessTest.java
│   │           │               │   │       ├── ParseRackspaceApiMetadataTest.java
│   │           │               │   │       ├── ParseRackspaceCryptoTokenAccessTest.java
│   │           │               │   │       └── ParseRandomEndpointVersionAccessTest.java
│   │           │               │   └── v3/
│   │           │               │       ├── auth/
│   │           │               │       │   ├── V3AuthenticationApiLiveTest.java
│   │           │               │       │   └── V3AuthenticationApiMockTest.java
│   │           │               │       ├── features/
│   │           │               │       │   ├── AuthApiLiveTest.java
│   │           │               │       │   ├── AuthApiMockTest.java
│   │           │               │       │   ├── CatalogApiLiveTest.java
│   │           │               │       │   ├── CatalogApiMockTest.java
│   │           │               │       │   ├── ProjectApiLiveTest.java
│   │           │               │       │   ├── ProjectApiMockTest.java
│   │           │               │       │   ├── RegionApiLiveTest.java
│   │           │               │       │   ├── RegionApiMockTest.java
│   │           │               │       │   ├── UserApiLiveTest.java
│   │           │               │       │   └── UserApiMockTest.java
│   │           │               │       └── internal/
│   │           │               │           ├── BaseV3KeystoneApiLiveTest.java
│   │           │               │           └── BaseV3KeystoneApiMockTest.java
│   │           │               └── v2_0/
│   │           │                   ├── functions/
│   │           │                   │   └── PresentWhenExtensionAnnotationNamespaceEqualsAnyNamespaceInExtensionsSetTest.java
│   │           │                   ├── internal/
│   │           │                   │   └── BaseOpenStackMockTest.java
│   │           │                   ├── options/
│   │           │                   │   └── PaginationOptionsTest.java
│   │           │                   └── predicates/
│   │           │                       ├── ExtensionPredicatesTest.java
│   │           │                       └── LinkPredicatesTest.java
│   │           └── resources/
│   │               ├── access_minimal.json
│   │               ├── access_version_uids.json
│   │               ├── adminAuth.json
│   │               ├── admin_extensions.json
│   │               ├── devstackVersion.json
│   │               ├── keystoneAuthResponse.json
│   │               ├── keystoneAuthResponse_openstack.json
│   │               ├── logback.xml
│   │               ├── raxAuth.json
│   │               ├── raxCryptoAuth.json
│   │               ├── raxVersion.json
│   │               ├── role_create_response.json
│   │               ├── role_list_response.json
│   │               ├── service_create_response.json
│   │               ├── service_list_response.json
│   │               ├── tenant_create_response.json
│   │               ├── tenant_details.json
│   │               ├── tenant_list.json
│   │               ├── tenant_list_att.json
│   │               ├── tenant_update_response.json
│   │               ├── token_details.json
│   │               ├── user_create_response.json
│   │               ├── user_details.json
│   │               ├── user_endpoints.json
│   │               ├── user_list.json
│   │               ├── user_role_list.json
│   │               ├── user_tenant_role_list.json
│   │               ├── user_update_response.json
│   │               └── v3/
│   │                   ├── auth-accesskey.json
│   │                   ├── auth-password-project-scoped-id-domain-id.json
│   │                   ├── auth-password-project-scoped-id-domain-name.json
│   │                   ├── auth-password-project-scoped-name-domain-backwards-compat.json
│   │                   ├── auth-password-project-scoped-name-domain-id.json
│   │                   ├── auth-password-project-scoped-name-domain-name.json
│   │                   ├── auth-password-scoped.json
│   │                   ├── auth-password.json
│   │                   ├── auth-token-scoped.json
│   │                   ├── auth-token.json
│   │                   ├── endpoints.json
│   │                   ├── groups.json
│   │                   ├── project.json
│   │                   ├── projects.json
│   │                   ├── region.json
│   │                   ├── regions.json
│   │                   ├── token.json
│   │                   ├── user.json
│   │                   └── users.json
│   ├── openstack-neutron/
│   │   ├── README.md
│   │   ├── bnd.bnd
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── jclouds/
│   │       │               └── openstack/
│   │       │                   └── neutron/
│   │       │                       └── v2/
│   │       │                           ├── NeutronApi.java
│   │       │                           ├── NeutronApiMetadata.java
│   │       │                           ├── config/
│   │       │                           │   └── NeutronHttpApiModule.java
│   │       │                           ├── domain/
│   │       │                           │   ├── AddressPair.java
│   │       │                           │   ├── AllocationPool.java
│   │       │                           │   ├── CreateFirewall.java
│   │       │                           │   ├── CreateFirewallPolicy.java
│   │       │                           │   ├── CreateFirewallRule.java
│   │       │                           │   ├── ExternalGatewayInfo.java
│   │       │                           │   ├── ExtraDhcpOption.java
│   │       │                           │   ├── Firewall.java
│   │       │                           │   ├── FirewallPolicies.java
│   │       │                           │   ├── FirewallPolicy.java
│   │       │                           │   ├── FirewallRule.java
│   │       │                           │   ├── FirewallRules.java
│   │       │                           │   ├── Firewalls.java
│   │       │                           │   ├── FloatingIP.java
│   │       │                           │   ├── FloatingIPs.java
│   │       │                           │   ├── HostRoute.java
│   │       │                           │   ├── IP.java
│   │       │                           │   ├── IPv6DHCPMode.java
│   │       │                           │   ├── IpVersion.java
│   │       │                           │   ├── Network.java
│   │       │                           │   ├── NetworkSegment.java
│   │       │                           │   ├── NetworkStatus.java
│   │       │                           │   ├── NetworkType.java
│   │       │                           │   ├── Networks.java
│   │       │                           │   ├── Port.java
│   │       │                           │   ├── Ports.java
│   │       │                           │   ├── Router.java
│   │       │                           │   ├── RouterInterface.java
│   │       │                           │   ├── Routers.java
│   │       │                           │   ├── Rule.java
│   │       │                           │   ├── RuleDirection.java
│   │       │                           │   ├── RuleEthertype.java
│   │       │                           │   ├── RuleProtocol.java
│   │       │                           │   ├── Rules.java
│   │       │                           │   ├── SecurityGroup.java
│   │       │                           │   ├── SecurityGroups.java
│   │       │                           │   ├── Subnet.java
│   │       │                           │   ├── Subnets.java
│   │       │                           │   ├── UpdateFirewall.java
│   │       │                           │   ├── UpdateFirewallPolicy.java
│   │       │                           │   ├── UpdateFirewallRule.java
│   │       │                           │   ├── VIFType.java
│   │       │                           │   ├── VNICType.java
│   │       │                           │   └── lbaas/
│   │       │                           │       └── v1/
│   │       │                           │           ├── HealthMonitor.java
│   │       │                           │           ├── HealthMonitorStatus.java
│   │       │                           │           ├── HealthMonitors.java
│   │       │                           │           ├── HttpMethod.java
│   │       │                           │           ├── LBaaSStatus.java
│   │       │                           │           ├── Member.java
│   │       │                           │           ├── Members.java
│   │       │                           │           ├── Pool.java
│   │       │                           │           ├── PoolStatus.java
│   │       │                           │           ├── Pools.java
│   │       │                           │           ├── ProbeType.java
│   │       │                           │           ├── Protocol.java
│   │       │                           │           ├── SessionPersistence.java
│   │       │                           │           ├── VIP.java
│   │       │                           │           └── VIPs.java
│   │       │                           ├── extensions/
│   │       │                           │   ├── ExtensionNamespaces.java
│   │       │                           │   ├── FWaaSApi.java
│   │       │                           │   ├── RouterApi.java
│   │       │                           │   └── lbaas/
│   │       │                           │       └── v1/
│   │       │                           │           └── LBaaSApi.java
│   │       │                           ├── fallbacks/
│   │       │                           │   ├── EmptyFloatingIPsFallback.java
│   │       │                           │   ├── EmptyNetworksFallback.java
│   │       │                           │   ├── EmptyPortsFallback.java
│   │       │                           │   ├── EmptyRoutersFallback.java
│   │       │                           │   ├── EmptyRulesFallback.java
│   │       │                           │   ├── EmptySecurityGroupsFallback.java
│   │       │                           │   ├── EmptySubnetsFallback.java
│   │       │                           │   └── lbaas/
│   │       │                           │       └── v1/
│   │       │                           │           ├── EmptyHealthMonitorsFallback.java
│   │       │                           │           ├── EmptyMembersFallback.java
│   │       │                           │           ├── EmptyPoolsFallback.java
│   │       │                           │           └── EmptyVIPsFallback.java
│   │       │                           ├── features/
│   │       │                           │   ├── FloatingIPApi.java
│   │       │                           │   ├── NetworkApi.java
│   │       │                           │   ├── PortApi.java
│   │       │                           │   ├── SecurityGroupApi.java
│   │       │                           │   └── SubnetApi.java
│   │       │                           ├── functions/
│   │       │                           │   ├── FirewallPolicyToPagedIterable.java
│   │       │                           │   ├── FirewallRuleToPagedIterable.java
│   │       │                           │   ├── FirewallToPagedIterable.java
│   │       │                           │   ├── FloatingIPsToPagedIterable.java
│   │       │                           │   ├── NetworksToPagedIterable.java
│   │       │                           │   ├── ParseFirewallPolicies.java
│   │       │                           │   ├── ParseFirewallRules.java
│   │       │                           │   ├── ParseFirewalls.java
│   │       │                           │   ├── ParseFloatingIPs.java
│   │       │                           │   ├── ParseNetworks.java
│   │       │                           │   ├── ParsePorts.java
│   │       │                           │   ├── ParseRouters.java
│   │       │                           │   ├── ParseRules.java
│   │       │                           │   ├── ParseSecurityGroups.java
│   │       │                           │   ├── ParseSubnets.java
│   │       │                           │   ├── PortsToPagedIterable.java
│   │       │                           │   ├── RouterToPagedIterable.java
│   │       │                           │   ├── RulesToPagedIterable.java
│   │       │                           │   ├── SecurityGroupsToPagedIterable.java
│   │       │                           │   ├── SubnetsToPagedIterable.java
│   │       │                           │   ├── VersionAwareRegionToEndpoint.java
│   │       │                           │   └── lbaas/
│   │       │                           │       └── v1/
│   │       │                           │           ├── HealthMonitorsToPagedIterable.java
│   │       │                           │           ├── MembersToPagedIterable.java
│   │       │                           │           ├── ParseHealthMonitors.java
│   │       │                           │           ├── ParseMembers.java
│   │       │                           │           ├── ParsePools.java
│   │       │                           │           ├── ParseVIPs.java
│   │       │                           │           ├── PoolsToPagedIterable.java
│   │       │                           │           └── VIPsToPagedIterable.java
│   │       │                           ├── handlers/
│   │       │                           │   └── NeutronErrorHandler.java
│   │       │                           └── options/
│   │       │                               └── EmptyOptions.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── jclouds/
│   │           │           └── openstack/
│   │           │               └── neutron/
│   │           │                   └── v2/
│   │           │                       ├── NeutronApiMetadataTest.java
│   │           │                       ├── extensions/
│   │           │                       │   ├── FWaaSApiLiveTest.java
│   │           │                       │   ├── FWaaSApiMockTest.java
│   │           │                       │   ├── RouterApiLiveTest.java
│   │           │                       │   ├── RouterApiMockTest.java
│   │           │                       │   └── lbaas/
│   │           │                       │       └── v1/
│   │           │                       │           ├── LBaaSApiLiveTest.java
│   │           │                       │           └── LBaaSApiMockTest.java
│   │           │                       ├── features/
│   │           │                       │   ├── ExtensionApiLiveTest.java
│   │           │                       │   ├── ExtensionApiMockTest.java
│   │           │                       │   ├── FloatingIPApiLiveTest.java
│   │           │                       │   ├── FloatingIPApiMockTest.java
│   │           │                       │   ├── NetworkApiLiveTest.java
│   │           │                       │   ├── NetworkApiMockTest.java
│   │           │                       │   ├── PortApiLiveTest.java
│   │           │                       │   ├── PortApiMockTest.java
│   │           │                       │   ├── SecurityGroupApiLiveTest.java
│   │           │                       │   ├── SecurityGroupApiMockTest.java
│   │           │                       │   ├── SubnetApiLiveTest.java
│   │           │                       │   └── SubnetApiMockTest.java
│   │           │                       ├── internal/
│   │           │                       │   ├── BaseNeutronApiLiveTest.java
│   │           │                       │   └── BaseNeutronApiMockTest.java
│   │           │                       └── util/
│   │           │                           ├── ClassUtil.java
│   │           │                           └── PredicateUtil.java
│   │           └── resources/
│   │               ├── access.json
│   │               ├── extension_details.json
│   │               ├── extension_list.json
│   │               ├── extension_list_with_lbaas_v1_response.json
│   │               ├── extension_list_without_lbaas_v1_response.json
│   │               ├── firewall_create_request.json
│   │               ├── firewall_create_response.json
│   │               ├── firewall_get_response.json
│   │               ├── firewall_list_response.json
│   │               ├── firewall_policy_create_request.json
│   │               ├── firewall_policy_create_response.json
│   │               ├── firewall_policy_get_response.json
│   │               ├── firewall_policy_insert_rule_request.json
│   │               ├── firewall_policy_insert_rule_response.json
│   │               ├── firewall_policy_list_response.json
│   │               ├── firewall_rule_create_request.json
│   │               ├── firewall_rule_create_response.json
│   │               ├── firewall_rule_get_response.json
│   │               ├── firewall_rule_update_request.json
│   │               ├── firewall_rule_update_response.json
│   │               ├── firewall_update_request.json
│   │               ├── firewall_update_response.json
│   │               ├── floatingip_create_request.json
│   │               ├── floatingip_create_response.json
│   │               ├── floatingip_get_response.json
│   │               ├── floatingip_list_response.json
│   │               ├── floatingip_list_response_paged1.json
│   │               ├── floatingip_list_response_paged2.json
│   │               ├── floatingip_update_dissociate_request.json
│   │               ├── floatingip_update_dissociate_response.json
│   │               ├── floatingip_update_request.json
│   │               ├── floatingip_update_response.json
│   │               ├── lbaas/
│   │               │   └── v1/
│   │               │       ├── health_monitor_create_request.json
│   │               │       ├── health_monitor_create_response.json
│   │               │       ├── health_monitor_get_response.json
│   │               │       ├── health_monitor_list_response_paged1.json
│   │               │       ├── health_monitor_list_response_paged2.json
│   │               │       ├── health_monitor_update_request.json
│   │               │       ├── health_monitor_update_response.json
│   │               │       ├── member_create_request.json
│   │               │       ├── member_create_response.json
│   │               │       ├── member_get_response.json
│   │               │       ├── member_list_response_paged1.json
│   │               │       ├── member_list_response_paged2.json
│   │               │       ├── member_update_request.json
│   │               │       ├── member_update_response.json
│   │               │       ├── pool_associate_health_monitor_request.json
│   │               │       ├── pool_associate_health_monitor_response.json
│   │               │       ├── pool_create_request.json
│   │               │       ├── pool_create_response.json
│   │               │       ├── pool_get_response.json
│   │               │       ├── pool_list_response_paged1.json
│   │               │       ├── pool_list_response_paged2.json
│   │               │       ├── pool_update_request.json
│   │               │       ├── pool_update_response.json
│   │               │       ├── vip_create_request.json
│   │               │       ├── vip_create_response.json
│   │               │       ├── vip_get_response.json
│   │               │       ├── vip_list_response_paged1.json
│   │               │       ├── vip_list_response_paged2.json
│   │               │       ├── vip_update_request.json
│   │               │       └── vip_update_response.json
│   │               ├── list_networks.json
│   │               ├── list_ports.json
│   │               ├── list_routers.json
│   │               ├── list_subnets.json
│   │               ├── logback.xml
│   │               ├── network.json
│   │               ├── network_bulk_create_request.json
│   │               ├── network_bulk_create_response.json
│   │               ├── network_create_request.json
│   │               ├── network_create_response.json
│   │               ├── network_get_response.json
│   │               ├── network_list_response.json
│   │               ├── network_list_response_paged1.json
│   │               ├── network_list_response_paged2.json
│   │               ├── network_update_request.json
│   │               ├── network_update_response.json
│   │               ├── port.json
│   │               ├── port_create_bulk_request.json
│   │               ├── port_create_bulk_response.json
│   │               ├── port_create_request.json
│   │               ├── port_create_response.json
│   │               ├── port_get_response.json
│   │               ├── port_list_response.json
│   │               ├── port_list_response_paged1.json
│   │               ├── port_list_response_paged2.json
│   │               ├── port_update_request.json
│   │               ├── port_update_response.json
│   │               ├── router.json
│   │               ├── router_add_interface_port_request.json
│   │               ├── router_add_interface_request.json
│   │               ├── router_add_interface_response.json
│   │               ├── router_create_request.json
│   │               ├── router_create_response.json
│   │               ├── router_get_response.json
│   │               ├── router_list_response.json
│   │               ├── router_list_response_paged1.json
│   │               ├── router_list_response_paged2.json
│   │               ├── router_remove_interface_port_request.json
│   │               ├── router_remove_interface_subnet_request.json
│   │               ├── router_update_request.json
│   │               ├── router_update_response.json
│   │               ├── security_group_create_request.json
│   │               ├── security_group_create_response.json
│   │               ├── security_group_get_response.json
│   │               ├── security_group_list_response.json
│   │               ├── security_group_list_response_paged1.json
│   │               ├── security_group_list_response_paged2.json
│   │               ├── security_group_rule_create_request.json
│   │               ├── security_group_rule_create_response.json
│   │               ├── security_group_rule_get_response.json
│   │               ├── security_group_rule_list_response.json
│   │               ├── security_group_rule_list_response_paged1.json
│   │               ├── security_group_rule_list_response_paged2.json
│   │               ├── subnet.json
│   │               ├── subnet_bulk_create_request.json
│   │               ├── subnet_bulk_create_response.json
│   │               ├── subnet_create_request.json
│   │               ├── subnet_create_response.json
│   │               ├── subnet_get_response.json
│   │               ├── subnet_list_response.json
│   │               ├── subnet_list_response_pages1.json
│   │               ├── subnet_list_response_pages2.json
│   │               ├── subnet_update_request.json
│   │               └── subnet_update_response.json
│   ├── openstack-nova/
│   │   ├── bnd.bnd
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── jclouds/
│   │       │               └── openstack/
│   │       │                   └── nova/
│   │       │                       └── v2_0/
│   │       │                           ├── NovaApi.java
│   │       │                           ├── NovaApiMetadata.java
│   │       │                           ├── binders/
│   │       │                           │   ├── BindConsoleToJsonPayload.java
│   │       │                           │   ├── BindKeyPairToJsonPayload.java
│   │       │                           │   ├── BindMetadataToJsonPayload.java
│   │       │                           │   └── BindSecurityGroupRuleToJsonPayload.java
│   │       │                           ├── compute/
│   │       │                           │   ├── NovaComputeService.java
│   │       │                           │   ├── NovaComputeServiceAdapter.java
│   │       │                           │   ├── config/
│   │       │                           │   │   └── NovaComputeServiceContextModule.java
│   │       │                           │   ├── extensions/
│   │       │                           │   │   ├── NeutronSecurityGroupExtension.java
│   │       │                           │   │   ├── NovaImageExtension.java
│   │       │                           │   │   └── NovaSecurityGroupExtension.java
│   │       │                           │   ├── functions/
│   │       │                           │   │   ├── AllocateAndAddFloatingIpToNode.java
│   │       │                           │   │   ├── CleanupResources.java
│   │       │                           │   │   ├── CreateSecurityGroupIfNeeded.java
│   │       │                           │   │   ├── FlavorInRegionToHardware.java
│   │       │                           │   │   ├── ImageInRegionToImage.java
│   │       │                           │   │   ├── ImageToOperatingSystem.java
│   │       │                           │   │   ├── NeutronSecurityGroupToSecurityGroup.java
│   │       │                           │   │   ├── NovaSecurityGroupInRegionToSecurityGroup.java
│   │       │                           │   │   ├── NovaSecurityGroupToSecurityGroup.java
│   │       │                           │   │   ├── OrphanedGroupsByRegionId.java
│   │       │                           │   │   ├── RemoveFloatingIpFromNodeAndDeallocate.java
│   │       │                           │   │   └── ServerInRegionToNodeMetadata.java
│   │       │                           │   ├── loaders/
│   │       │                           │   │   ├── FindSecurityGroupOrCreate.java
│   │       │                           │   │   └── LoadFloatingIpsForInstance.java
│   │       │                           │   ├── options/
│   │       │                           │   │   ├── NodeAndNovaTemplateOptions.java
│   │       │                           │   │   └── NovaTemplateOptions.java
│   │       │                           │   ├── predicates/
│   │       │                           │   │   └── AllNodesInGroupTerminated.java
│   │       │                           │   └── strategy/
│   │       │                           │       └── ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet.java
│   │       │                           ├── config/
│   │       │                           │   ├── NovaHttpApiModule.java
│   │       │                           │   ├── NovaParserModule.java
│   │       │                           │   └── NovaProperties.java
│   │       │                           ├── domain/
│   │       │                           │   ├── Address.java
│   │       │                           │   ├── BackupType.java
│   │       │                           │   ├── BlockDeviceMapping.java
│   │       │                           │   ├── Console.java
│   │       │                           │   ├── FixedIP.java
│   │       │                           │   ├── Flavor.java
│   │       │                           │   ├── FloatingIP.java
│   │       │                           │   ├── FloatingIPPool.java
│   │       │                           │   ├── FloatingIpForServer.java
│   │       │                           │   ├── Host.java
│   │       │                           │   ├── HostAggregate.java
│   │       │                           │   ├── HostResourceUsage.java
│   │       │                           │   ├── Image.java
│   │       │                           │   ├── Ingress.java
│   │       │                           │   ├── InterfaceAttachment.java
│   │       │                           │   ├── KeyPair.java
│   │       │                           │   ├── Network.java
│   │       │                           │   ├── PortInterface.java
│   │       │                           │   ├── PortState.java
│   │       │                           │   ├── Quota.java
│   │       │                           │   ├── RebootType.java
│   │       │                           │   ├── SecurityGroup.java
│   │       │                           │   ├── SecurityGroupRule.java
│   │       │                           │   ├── Server.java
│   │       │                           │   ├── ServerCreated.java
│   │       │                           │   ├── ServerExtendedAttributes.java
│   │       │                           │   ├── ServerExtendedStatus.java
│   │       │                           │   ├── ServerWithSecurityGroups.java
│   │       │                           │   ├── SimpleServerUsage.java
│   │       │                           │   ├── SimpleTenantUsage.java
│   │       │                           │   ├── TenantIdAndName.java
│   │       │                           │   ├── VirtualInterface.java
│   │       │                           │   ├── Volume.java
│   │       │                           │   ├── VolumeAttachment.java
│   │       │                           │   ├── VolumeSnapshot.java
│   │       │                           │   ├── VolumeType.java
│   │       │                           │   ├── regionscoped/
│   │       │                           │   │   ├── AvailabilityZone.java
│   │       │                           │   │   ├── AvailabilityZoneDetails.java
│   │       │                           │   │   ├── FlavorInRegion.java
│   │       │                           │   │   ├── Hypervisor.java
│   │       │                           │   │   ├── HypervisorDetails.java
│   │       │                           │   │   ├── ImageInRegion.java
│   │       │                           │   │   ├── NeutronSecurityGroupInRegion.java
│   │       │                           │   │   ├── RegionAndId.java
│   │       │                           │   │   ├── RegionAndName.java
│   │       │                           │   │   ├── RegionSecurityGroupNameAndPorts.java
│   │       │                           │   │   ├── SecurityGroupInRegion.java
│   │       │                           │   │   ├── ServerInRegion.java
│   │       │                           │   │   └── ZoneState.java
│   │       │                           │   └── zonescoped/
│   │       │                           │       ├── AvailabilityZone.java
│   │       │                           │       ├── FlavorInRegion.java
│   │       │                           │       ├── ImageInRegion.java
│   │       │                           │       ├── RegionAndId.java
│   │       │                           │       ├── RegionAndName.java
│   │       │                           │       ├── RegionSecurityGroupNameAndPorts.java
│   │       │                           │       ├── SecurityGroupInRegion.java
│   │       │                           │       ├── ServerInRegion.java
│   │       │                           │       └── ZoneState.java
│   │       │                           ├── extensions/
│   │       │                           │   ├── AttachInterfaceApi.java
│   │       │                           │   ├── AvailabilityZoneApi.java
│   │       │                           │   ├── ConsolesApi.java
│   │       │                           │   ├── ExtensionAliases.java
│   │       │                           │   ├── ExtensionNames.java
│   │       │                           │   ├── ExtensionNamespaces.java
│   │       │                           │   ├── FlavorExtraSpecsApi.java
│   │       │                           │   ├── FloatingIPApi.java
│   │       │                           │   ├── FloatingIPPoolApi.java
│   │       │                           │   ├── HostAdministrationApi.java
│   │       │                           │   ├── HostAggregateApi.java
│   │       │                           │   ├── HypervisorApi.java
│   │       │                           │   ├── KeyPairApi.java
│   │       │                           │   ├── QuotaApi.java
│   │       │                           │   ├── SecurityGroupApi.java
│   │       │                           │   ├── ServerAdminApi.java
│   │       │                           │   ├── ServerWithSecurityGroupsApi.java
│   │       │                           │   ├── SimpleTenantUsageApi.java
│   │       │                           │   ├── VirtualInterfaceApi.java
│   │       │                           │   ├── VolumeApi.java
│   │       │                           │   ├── VolumeAttachmentApi.java
│   │       │                           │   └── VolumeTypeApi.java
│   │       │                           ├── features/
│   │       │                           │   ├── FlavorApi.java
│   │       │                           │   ├── ImageApi.java
│   │       │                           │   └── ServerApi.java
│   │       │                           ├── functions/
│   │       │                           │   ├── FieldValueResponseParsers.java
│   │       │                           │   ├── OverLimitParser.java
│   │       │                           │   ├── ParseImageIdFromLocationHeader.java
│   │       │                           │   └── internal/
│   │       │                           │       ├── OnlyMetadataValueOrNull.java
│   │       │                           │       ├── ParseDiagnostics.java
│   │       │                           │       ├── ParseFlavorDetails.java
│   │       │                           │       ├── ParseFlavors.java
│   │       │                           │       ├── ParseImageDetails.java
│   │       │                           │       ├── ParseImages.java
│   │       │                           │       ├── ParseKeyPairs.java
│   │       │                           │       ├── ParseServerDetails.java
│   │       │                           │       └── ParseServers.java
│   │       │                           ├── handlers/
│   │       │                           │   └── NovaErrorHandler.java
│   │       │                           ├── options/
│   │       │                           │   ├── CreateBackupOfServerOptions.java
│   │       │                           │   ├── CreateServerOptions.java
│   │       │                           │   ├── CreateVolumeOptions.java
│   │       │                           │   ├── CreateVolumeSnapshotOptions.java
│   │       │                           │   ├── CreateVolumeTypeOptions.java
│   │       │                           │   ├── ListOptions.java
│   │       │                           │   └── RebuildServerOptions.java
│   │       │                           └── predicates/
│   │       │                               ├── FindSecurityGroupWithNameAndReturnTrue.java
│   │       │                               ├── ImagePredicates.java
│   │       │                               ├── KeyPairPredicates.java
│   │       │                               └── SecurityGroupPredicates.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── jclouds/
│   │           │           └── openstack/
│   │           │               └── nova/
│   │           │                   └── v2_0/
│   │           │                       ├── AccessKeyAndSecretKeyAndTenantIdAuthenticationExpectTest.java
│   │           │                       ├── AccessKeyAndSecretKeyAndTenantNamePropertyAuthenticationExpectTest.java
│   │           │                       ├── AccessKeyAndSecretKeyAuthenticationExpectTest.java
│   │           │                       ├── EndpointIdIsRandomExpectTest.java
│   │           │                       ├── NovaApiMetadataTest.java
│   │           │                       ├── PasswordAuthenticationExpectTest.java
│   │           │                       ├── PasswordAuthenticationWithTenantNameExpectTest.java
│   │           │                       ├── compute/
│   │           │                       │   ├── NovaComputeServiceAdapterExpectTest.java
│   │           │                       │   ├── NovaComputeServiceExpectTest.java
│   │           │                       │   ├── NovaComputeServiceLiveTest.java
│   │           │                       │   ├── NovaWithNeutronComputeServiceLiveTest.java
│   │           │                       │   ├── extensions/
│   │           │                       │   │   ├── NeutronSecurityGroupExtensionLiveTest.java
│   │           │                       │   │   ├── NovaImageExtensionExpectTest.java
│   │           │                       │   │   ├── NovaImageExtensionLiveTest.java
│   │           │                       │   │   ├── NovaSecurityGroupExtensionExpectTest.java
│   │           │                       │   │   └── NovaSecurityGroupExtensionLiveTest.java
│   │           │                       │   ├── functions/
│   │           │                       │   │   ├── AllocateAndAddFloatingIpToNodeExpectTest.java
│   │           │                       │   │   ├── FlavorInRegionToHardwareTest.java
│   │           │                       │   │   ├── ImageInRegionToImageTest.java
│   │           │                       │   │   ├── ImageToOperatingSystemTest.java
│   │           │                       │   │   ├── NovaSecurityGroupInRegionToSecurityGroupTest.java
│   │           │                       │   │   ├── OrphanedGroupsByRegionIdTest.java
│   │           │                       │   │   └── ServerInRegionToNodeMetadataTest.java
│   │           │                       │   ├── loaders/
│   │           │                       │   │   ├── FindSecurityGroupInRegionOrCreateTest.java
│   │           │                       │   │   └── LoadFloatingIpsForInstanceTest.java
│   │           │                       │   └── options/
│   │           │                       │       └── NovaTemplateOptionsTest.java
│   │           │                       ├── config/
│   │           │                       │   └── ImageAdapterTest.java
│   │           │                       ├── extensions/
│   │           │                       │   ├── AdminActionsApiExpectTest.java
│   │           │                       │   ├── AdminActionsApiLiveTest.java
│   │           │                       │   ├── AttachInterfaceApiExpectTest.java
│   │           │                       │   ├── AvailabilityZoneApiExpectTest.java
│   │           │                       │   ├── AvailabilityZonesApiLiveTest.java
│   │           │                       │   ├── ConsolesApiLiveTest.java
│   │           │                       │   ├── ConsolesApiMockTest.java
│   │           │                       │   ├── DeprecatedAvailabilityZoneApiExpectTest.java
│   │           │                       │   ├── DeprecatedAvailabilityZonesApiLiveTest.java
│   │           │                       │   ├── ExtendedAvailabilityZoneExpectTest.java
│   │           │                       │   ├── ExtendedAvailabilityZoneLiveTest.java
│   │           │                       │   ├── FlavorExtraSpecsApiExpectTest.java
│   │           │                       │   ├── FlavorExtraSpecsApiLiveTest.java
│   │           │                       │   ├── FloatingIPApiExpectTest.java
│   │           │                       │   ├── FloatingIPApiLiveTest.java
│   │           │                       │   ├── FloatingIPPoolApiExpectTest.java
│   │           │                       │   ├── FloatingIPPoolApiLiveTest.java
│   │           │                       │   ├── HostAdministrationApiExpectTest.java
│   │           │                       │   ├── HostAdministrationApiLiveTest.java
│   │           │                       │   ├── HostAggregateApiExpectTest.java
│   │           │                       │   ├── HostAggregateApiLiveTest.java
│   │           │                       │   ├── HypervisorApiLiveTest.java
│   │           │                       │   ├── HypervisorApiMockTest.java
│   │           │                       │   ├── KeyPairApiExpectTest.java
│   │           │                       │   ├── KeyPairApiLiveTest.java
│   │           │                       │   ├── QuotaApiExpectTest.java
│   │           │                       │   ├── QuotaApiLiveTest.java
│   │           │                       │   ├── SecurityGroupApiExpectTest.java
│   │           │                       │   ├── SecurityGroupApiLiveTest.java
│   │           │                       │   ├── ServerWithSecurityGroupsApiExpectTest.java
│   │           │                       │   ├── ServerWithSecurityGroupsApiLiveTest.java
│   │           │                       │   ├── SimpleTenantUsageApiExpectTest.java
│   │           │                       │   ├── SimpleTenantUsageApiLiveTest.java
│   │           │                       │   ├── VirtualInterfaceApiExpectTest.java
│   │           │                       │   ├── VirtualInterfaceApiLiveTest.java
│   │           │                       │   ├── VolumeApiExpectTest.java
│   │           │                       │   ├── VolumeApiLiveTest.java
│   │           │                       │   ├── VolumeAttachmentApiExpectTest.java
│   │           │                       │   ├── VolumeAttachmentApiLiveTest.java
│   │           │                       │   ├── VolumeTypeApiExpectTest.java
│   │           │                       │   └── VolumeTypeApiLiveTest.java
│   │           │                       ├── features/
│   │           │                       │   ├── ExtensionApiExpectTest.java
│   │           │                       │   ├── ExtensionApiLiveTest.java
│   │           │                       │   ├── FlavorApiExpectTest.java
│   │           │                       │   ├── FlavorApiLiveTest.java
│   │           │                       │   ├── ImageApiExpectTest.java
│   │           │                       │   ├── ImageApiLiveTest.java
│   │           │                       │   ├── ImageApiMockTest.java
│   │           │                       │   ├── ServerApiExpectTest.java
│   │           │                       │   └── ServerApiLiveTest.java
│   │           │                       ├── functions/
│   │           │                       │   ├── CreateSecurityGroupIfNeededTest.java
│   │           │                       │   ├── FindSecurityGroupWithNameAndReturnTrueExpectTest.java
│   │           │                       │   └── InternalURLLiveTest.java
│   │           │                       ├── handlers/
│   │           │                       │   └── NovaErrorHandlerTest.java
│   │           │                       ├── internal/
│   │           │                       │   ├── BaseNovaApiExpectTest.java
│   │           │                       │   ├── BaseNovaApiLiveTest.java
│   │           │                       │   ├── BaseNovaComputeServiceContextExpectTest.java
│   │           │                       │   ├── BaseNovaComputeServiceExpectTest.java
│   │           │                       │   └── BaseNovaExpectTest.java
│   │           │                       ├── options/
│   │           │                       │   ├── CreateServerOptionsTest.java
│   │           │                       │   └── ListOptionsTest.java
│   │           │                       ├── parse/
│   │           │                       │   ├── ParseComputeServiceTypicalSecurityGroupTest.java
│   │           │                       │   ├── ParseCreateFlavorTest.java
│   │           │                       │   ├── ParseCreatedServerTest.java
│   │           │                       │   ├── ParseExtensionListNormalTest.java
│   │           │                       │   ├── ParseExtensionListTest.java
│   │           │                       │   ├── ParseExtensionTest.java
│   │           │                       │   ├── ParseFlavorListTest.java
│   │           │                       │   ├── ParseFlavorTest.java
│   │           │                       │   ├── ParseFloatingIPListTest.java
│   │           │                       │   ├── ParseFloatingIPPoolListTest.java
│   │           │                       │   ├── ParseFloatingIPTest.java
│   │           │                       │   ├── ParseImageListTest.java
│   │           │                       │   ├── ParseImageTest.java
│   │           │                       │   ├── ParseKeyPairListTest.java
│   │           │                       │   ├── ParseKeyPairTest.java
│   │           │                       │   ├── ParseMetadataItemTest.java
│   │           │                       │   ├── ParseMetadataListTest.java
│   │           │                       │   ├── ParseMetadataUpdateTest.java
│   │           │                       │   ├── ParseNOVNCConsoleTest.java
│   │           │                       │   ├── ParseRDPConsoleTest.java
│   │           │                       │   ├── ParseSPICEConsoleTest.java
│   │           │                       │   ├── ParseSecurityGroupListTest.java
│   │           │                       │   ├── ParseSecurityGroupTest.java
│   │           │                       │   ├── ParseServerDetailsEssexTest.java
│   │           │                       │   ├── ParseServerDetailsStatesTest.java
│   │           │                       │   ├── ParseServerDiagnostics.java
│   │           │                       │   ├── ParseServerListTest.java
│   │           │                       │   ├── ParseServerTest.java
│   │           │                       │   ├── ParseServerWithAddressExtensionsTest.java
│   │           │                       │   ├── ParseServerWithAllExtensionsTest.java
│   │           │                       │   ├── ParseServerWithInternetAddressesTest.java
│   │           │                       │   ├── ParseServerWithoutImageTest.java
│   │           │                       │   ├── ParseXVPVNCConsoleTest.java
│   │           │                       │   └── PublicIpsInPrivateAddressBlockExpectTest.java
│   │           │                       └── predicates/
│   │           │                           ├── ImagePredicatesTest.java
│   │           │                           └── SecurityGroupPredicatesTest.java
│   │           └── resources/
│   │               ├── access.json
│   │               ├── attach_interface_details.json
│   │               ├── attach_interfaces_list.json
│   │               ├── attachment_details.json
│   │               ├── attachment_list.json
│   │               ├── availability_zone_list.json
│   │               ├── extension_details.json
│   │               ├── extension_list.json
│   │               ├── extension_list_full.json
│   │               ├── extension_list_full_no_namespaces.json
│   │               ├── extension_list_normal.json
│   │               ├── extension_list_openstack.json
│   │               ├── flavor_details.json
│   │               ├── flavor_list.json
│   │               ├── flavor_list_detail.json
│   │               ├── flavor_list_detail_openstack.json
│   │               ├── flavor_new.json
│   │               ├── floatingip_details.json
│   │               ├── floatingip_list.json
│   │               ├── floatingippool_list.json
│   │               ├── host.json
│   │               ├── host_aggregate_details.json
│   │               ├── host_aggregate_list.json
│   │               ├── host_aggregate_with_host_details.json
│   │               ├── hosts_list.json
│   │               ├── hypervisor_details.json
│   │               ├── hypervisor_list.json
│   │               ├── image_active.json
│   │               ├── image_details.json
│   │               ├── image_details_with_block_device_mapping.json
│   │               ├── image_details_without_metadata.json
│   │               ├── image_list.json
│   │               ├── image_list_detail.json
│   │               ├── image_list_detail_imageextension.json
│   │               ├── image_list_detail_openstack.json
│   │               ├── image_list_with_block_device_mapping.json
│   │               ├── keypair_created_computeservice.json
│   │               ├── keypair_details.json
│   │               ├── keypair_list.json
│   │               ├── listAvailabilityZones.json
│   │               ├── logback-test.xml
│   │               ├── metadata_item.json
│   │               ├── metadata_list.json
│   │               ├── metadata_updated.json
│   │               ├── new_server.json
│   │               ├── new_server_config_drive.json
│   │               ├── new_server_disk_config_auto.json
│   │               ├── new_server_disk_config_manual.json
│   │               ├── new_server_in_zone.json
│   │               ├── new_server_networks_response.json
│   │               ├── new_server_no_adminpass.json
│   │               ├── new_server_nova_networks.json
│   │               ├── novnc_console.json
│   │               ├── quotas.json
│   │               ├── rdp_console.json
│   │               ├── securitygroup_created.json
│   │               ├── securitygroup_details.json
│   │               ├── securitygroup_details_computeservice_typical.json
│   │               ├── securitygroup_details_extension.json
│   │               ├── securitygroup_details_extension_norules.json
│   │               ├── securitygroup_details_port22.json
│   │               ├── securitygroup_list.json
│   │               ├── securitygroup_list_details_computeservice_typical.json
│   │               ├── securitygroup_list_extension.json
│   │               ├── securitygrouprule_created.json
│   │               ├── securitygrouprule_created_cidr.json
│   │               ├── securitygrouprule_created_group.json
│   │               ├── server_details.json
│   │               ├── server_details_devstack.json
│   │               ├── server_details_openstack.json
│   │               ├── server_details_suspended.json
│   │               ├── server_details_with_address_ext.json
│   │               ├── server_details_without_image.json
│   │               ├── server_diagnostics.json
│   │               ├── server_list.json
│   │               ├── server_list_details.json
│   │               ├── server_list_details_essex.json
│   │               ├── server_list_details_states.json
│   │               ├── server_public_ip_in_private.json
│   │               ├── server_with_security_groups.json
│   │               ├── server_with_security_groups_extension.json
│   │               ├── simple_tenant_usage.json
│   │               ├── simple_tenant_usages.json
│   │               ├── snapshot_details.json
│   │               ├── snapshot_list.json
│   │               ├── snapshot_list_detail.json
│   │               ├── spice_console.json
│   │               ├── virtual_interfaces_list.json
│   │               ├── volume_details.json
│   │               ├── volume_list.json
│   │               ├── volume_list_detail.json
│   │               ├── volume_type.json
│   │               ├── volume_type_extra_specs.json
│   │               ├── volume_type_list.json
│   │               └── xvpvnc_console.json
│   ├── openstack-nova-ec2/
│   │   ├── bnd.bnd
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── jclouds/
│   │       │               └── openstack/
│   │       │                   └── nova/
│   │       │                       └── ec2/
│   │       │                           ├── NovaEC2Api.java
│   │       │                           ├── NovaEC2ApiMetadata.java
│   │       │                           ├── config/
│   │       │                           │   ├── HyphenToNullIso8601Module.java
│   │       │                           │   ├── NovaEC2ComputeServiceContextModule.java
│   │       │                           │   └── NovaEC2HttpApiModule.java
│   │       │                           ├── features/
│   │       │                           │   └── NovaEC2KeyPairApi.java
│   │       │                           ├── internal/
│   │       │                           │   └── HyphenToNullIso8601Codec.java
│   │       │                           ├── loaders/
│   │       │                           │   └── NovaCreateSecurityGroupIfNeeded.java
│   │       │                           ├── strategy/
│   │       │       

================================================
FILE CONTENTS
================================================

================================================
FILE: .asf.yaml
================================================
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

github:
  description: The Java Multi-Cloud Toolkit
  homepage: https://jclouds.apache.org/
  labels:
    - java
    - library
    - cloud
    - jclouds

  # Uncomment the following lines if at some point we feel like
  # we want to control merges and pull request builds.
  #
  # enabled_merge_buttons:
  #   squash:  true
  #   merge:   false
  #   rebase:  false
  # protected_branches:
  #   master:
  #     required_status_checks:
  #       contexts:
  #         - build
  #     required_pull_request_reviews:
  #       required_approving_review_count: 1


================================================
FILE: .dir-locals.el
================================================
;;   Licensed to the Apache Software Foundation (ASF) under one or more
;;   contributor license agreements.  See the NOTICE file distributed with
;;   this work for additional information regarding copyright ownership.
;;   The ASF licenses this file to You under the Apache License, Version 2.0
;;   (the "License"); you may not use this file except in compliance with
;;   the License.  You may obtain a copy of the License at
;;
;;       http://www.apache.org/licenses/LICENSE-2.0
;;
;;   Unless required by applicable law or agreed to in writing, software
;;   distributed under the License is distributed on an "AS IS" BASIS,
;;   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
;;   See the License for the specific language governing permissions and
;;   limitations under the License.

((nil . ((c-basic-offset . 3))))

================================================
FILE: .gitattributes
================================================
* text eol=lf
*.cmd binary


================================================
FILE: .github/workflows/ci.yaml
================================================
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

name: CI

on:
  push:
    branches:
      - master
  pull_request:
    branches:
      - master

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-java@v4
        with:
          java-version: "11"
          distribution: temurin
          cache: maven
      - name: Build
        run: mvn clean verify checkstyle:checkstyle -B -q -Dorg.slf4j.simpleLogger.defaultLogLevel=ERROR -Pdoc,src


================================================
FILE: .gitignore
================================================
# use glob syntax.
syntax: glob
target/
test-output/
bin/
.settings/
.classpath
.project
.idea/
*.iml
*.eml
*.ipr
*.iws
*.DS_STORE
TAGS
.metadata/
atlassian-ide-plugin.xml
.DS_Store
.java-version
.factorypath
.apt_generated
.apt_generated_tests
.checkstyle
nb-configuration.xml
nbactions.xml
/.nb-gradle/
dependency-reduced-pom.xml
.vscode


================================================
FILE: .mailmap
================================================
Adrian Cole <acole@.eng.vmware.com>
Adrian Cole <acole@twitter.com>
Adrian Cole <adrian.f.cole@3d8758e0-26b5-11de-8745-db77d3ebf521>
Adrian Cole <adrian.f.cole@gmail.com>
Adrian Cole <ferncam1@3d8758e0-26b5-11de-8745-db77d3ebf521>
Alex Yarmula <oleksiy.yarmula+hosting@gmail.com>
Alfredo Morresi <rainbowbreeze@gmx.com>
Alfredo Morresi <rainbowbreeze@pc-alfredo.(none)>
Andrea Turli <andrea@bigmac.local>
Andrea Turli <andrea.turli@.dir.svc.accenture.com>
Andrea Turli <Andrea_Turli@.dub.emea.dell.com>
Andrea Turli <andrea.turli@gmail.com>
Andrea Turli <toor@toor.(none)>
Andrei Savu <asavu@apache.org>
Andrew Phillips <sharedocs1@gmail.com@3d8758e0-26b5-11de-8745-db77d3ebf521>
Antoni Batchelli <tbatchelli@acm.org>
Barak Merimovich <barakme@gmail.com>
Carlos Sanchez <carlos@apache.org>
Dan Lo Bianco <dan.lobianco@cloudsoftcorp.com>
Dmitry Durnev <ddurnev@griddynamics.com>
Hans Hrasna <hans.hrasna@gmail.com>
Hunter Hutchinson <hunter.hutchinson@gmail.com>
Ilja Bobkevic <ilja.bobkevic@gmail.com>
Ivan Meredith <ivan@ivan.net.nz@3d8758e0-26b5-11de-8745-db77d3ebf521>
James Murty <jamurty@3d8758e0-26b5-11de-8745-db77d3ebf521>
Karthik Ganesan <karthikwrites@yahoo.com>
Nicholas Terry <nterry@familysearch.org>
Nirmal Fernando <nirmal@nirmal.(none)>
Seshu Pasam <github@pasam.com>
Shane Witbeck <shane@digitalsanctum.com>
Tibor Kiss <tibor.kiss@omixon.com>
Victor Galkin <vgalkin@griddynamics.net>
Vijay Kiran <mail@vijaykiran.com>
Zack Shoylev <zack.shoylev@rackspace.com>


================================================
FILE: CONTRIBUTING.md
================================================
Please review the [How to Contribute](https://cwiki.apache.org/confluence/display/JCLOUDS/Contribute) page for information on how to submit your patch and how the review process works.

Also make sure all the changes are aligned with the [Coding Standards](https://cwiki.apache.org/confluence/display/JCLOUDS/Writing+jclouds+Code) of the project.

Thanks!

The Apache jclouds team


================================================
FILE: README.md
================================================
jclouds
======

Apache jclouds is an open source multi-cloud toolkit for the Java platform that gives you the freedom to create applications that are portable across clouds while giving you full control to use cloud-specific features.

For more information about using or contributing to jclouds, please visit our website at [jclouds.apache.org](http://jclouds.apache.org/).

License
-------
Copyright (C) 2009-2022 The Apache Software Foundation

Licensed under the Apache License, Version 2.0


================================================
FILE: all/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.apache.jclouds</groupId>
    <artifactId>jclouds-project</artifactId>        
    <version>2.7.1-SNAPSHOT</version>
    <relativePath>../project/pom.xml</relativePath>
  </parent>
  <artifactId>jclouds-all</artifactId>
  <name>all</name>
  <dependencies>
    <dependency>
      <groupId>org.apache.jclouds.api</groupId>
      <artifactId>rackspace-cloudidentity</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.api</groupId>
      <artifactId>openstack-cinder</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.api</groupId>
      <artifactId>rackspace-clouddns</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>aws-cloudwatch</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>rackspace-cloudblockstorage-us</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>rackspace-cloudblockstorage-uk</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>rackspace-clouddns-us</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>rackspace-clouddns-uk</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>rackspace-clouddatabases-us</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>rackspace-clouddatabases-uk</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>aws-sqs</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>aws-sts</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>aws-route53</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>ultradns-ws</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>dynect</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.api</groupId>
      <artifactId>chef</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>jclouds-allloadbalancer</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>jclouds-allcompute</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>jclouds-allblobstore</artifactId>
      <version>${project.version}</version>
    </dependency>
  </dependencies>
</project>


================================================
FILE: allblobstore/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.apache.jclouds</groupId>
    <artifactId>jclouds-project</artifactId>        
    <version>2.7.1-SNAPSHOT</version>
    <relativePath>../project/pom.xml</relativePath>
  </parent>
  <artifactId>jclouds-allblobstore</artifactId>
  <name>allblobstore</name>
  <dependencies>
    <dependency>
      <groupId>org.apache.jclouds.api</groupId>
      <artifactId>s3</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>aws-s3</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>azureblob</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.api</groupId>
      <artifactId>atmos</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>b2</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.api</groupId>
      <artifactId>glacier</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>google-cloud-storage</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.api</groupId>
      <artifactId>openstack-swift</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>rackspace-cloudfiles-us</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>rackspace-cloudfiles-uk</artifactId>
      <version>${project.version}</version>
    </dependency>
  </dependencies>
</project>


================================================
FILE: allcompute/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.apache.jclouds</groupId>
    <artifactId>jclouds-project</artifactId>        
    <version>2.7.1-SNAPSHOT</version>
    <relativePath>../project/pom.xml</relativePath>
  </parent>
  <artifactId>jclouds-allcompute</artifactId>
  <name>allcompute</name>
  <dependencies>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>aws-ec2</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.api</groupId>
      <artifactId>openstack-nova</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.api</groupId>
      <artifactId>openstack-nova-ec2</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.api</groupId>
      <artifactId>byon</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.api</groupId>
      <artifactId>ec2</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>gogrid</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.api</groupId>
      <artifactId>elasticstack</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>elastichosts-lon-p</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>elastichosts-sat-p</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>elastichosts-lon-b</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>openhosting-east1</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>serverlove-z1-man</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>skalicloud-sdg-my</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>go2cloud-jhb1</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>softlayer</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.api</groupId>
      <artifactId>cloudstack</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>rackspace-cloudservers-us</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>rackspace-cloudservers-uk</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>google-compute-engine</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>digitalocean2</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>profitbricks</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.api</groupId>
      <artifactId>docker</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>packet</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>azurecompute-arm</artifactId>
      <version>${project.version}</version>
    </dependency>
  </dependencies>
</project>


================================================
FILE: allloadbalancer/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.apache.jclouds</groupId>
    <artifactId>jclouds-project</artifactId>        
    <version>2.7.1-SNAPSHOT</version>
    <relativePath>../project/pom.xml</relativePath>
  </parent>
  <artifactId>jclouds-allloadbalancer</artifactId>
  <name>allloadbalancer</name>
  <dependencies>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>rackspace-cloudloadbalancers-uk</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>rackspace-cloudloadbalancers-us</artifactId>
      <version>${project.version}</version>
    </dependency>
  </dependencies>
</project>


================================================
FILE: apis/atmos/README.txt
================================================
#
# The jclouds API for EMC's Atmos Online Storage (http://www.emccis.com/).
#
# TODO: Implementation status.
# TODO: Supported features.
# TODO: Usage example.


================================================
FILE: apis/atmos/bnd.bnd
================================================
Export-Package: \
    org.jclouds.atmos.*;version="${project.version}";-noimport:=true


================================================
FILE: apis/atmos/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.apache.jclouds</groupId>
    <artifactId>jclouds-project</artifactId>
    <version>2.7.1-SNAPSHOT</version>
    <relativePath>../../project/pom.xml</relativePath>
  </parent>

  <groupId>org.apache.jclouds.api</groupId>
  <artifactId>atmos</artifactId>
  <name>jclouds atmos components</name>

  <properties>
    <test.atmos.endpoint>https://accesspoint.atmosonline.com</test.atmos.endpoint>
    <test.atmos.api-version>1.3.0</test.atmos.api-version>
    <test.atmos.build-version />
    <test.atmos.identity>FIXME_IDENTITY</test.atmos.identity>
    <test.atmos.credential>FIXME_CREDENTIAL</test.atmos.credential>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.apache.jclouds</groupId>
      <artifactId>jclouds-blobstore</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds</groupId>
      <artifactId>jclouds-blobstore</artifactId>
      <version>${project.version}</version>
      <type>test-jar</type>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds</groupId>
      <artifactId>jclouds-core</artifactId>
      <version>${project.version}</version>
      <type>test-jar</type>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-core</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.driver</groupId>
      <artifactId>jclouds-log4j</artifactId>
      <version>${project.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.google.auto.service</groupId>
      <artifactId>auto-service</artifactId>
      <optional>true</optional>
    </dependency>
  </dependencies>

  <profiles>
    <profile>
      <id>live</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <executions>
              <execution>
                <id>integration</id>
                <phase>integration-test</phase>
                <goals>
                  <goal>test</goal>
                </goals>
                <configuration>
                  <systemPropertyVariables>
                    <jclouds.blobstore.httpstream.url>${jclouds.blobstore.httpstream.url}</jclouds.blobstore.httpstream.url>
                    <jclouds.blobstore.httpstream.md5>${jclouds.blobstore.httpstream.md5}</jclouds.blobstore.httpstream.md5>
                    <test.atmos.endpoint>${test.atmos.endpoint}</test.atmos.endpoint>
                    <test.atmos.api-version>${test.atmos.api-version}</test.atmos.api-version>
                    <test.atmos.build-version>${test.atmos.build-version}</test.atmos.build-version>
                    <test.atmos.identity>${test.atmos.identity}</test.atmos.identity>
                    <test.atmos.credential>${test.atmos.credential}</test.atmos.credential>
                  </systemPropertyVariables>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
  
</project>


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/AtmosApiMetadata.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos;

import static org.jclouds.Constants.PROPERTY_IDEMPOTENT_METHODS;
import static org.jclouds.blobstore.reference.BlobStoreConstants.PROPERTY_USER_METADATA_PREFIX;
import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGIONS;
import static org.jclouds.reflect.Reflection2.typeToken;

import java.net.URI;
import java.util.Properties;

import org.jclouds.apis.ApiMetadata;
import org.jclouds.atmos.blobstore.config.AtmosBlobStoreContextModule;
import org.jclouds.atmos.config.AtmosHttpApiModule;
import org.jclouds.blobstore.BlobStoreContext;
import org.jclouds.rest.internal.BaseHttpApiMetadata;

import com.google.auto.service.AutoService;
import com.google.common.collect.ImmutableSet;
import com.google.inject.Module;

@AutoService(ApiMetadata.class)
public class AtmosApiMetadata extends BaseHttpApiMetadata {
   
   private static Builder builder() {
      return new Builder();
   }

   @Override
   public Builder toBuilder() {
      return builder().fromApiMetadata(this);
   }

   public AtmosApiMetadata() {
      this(builder());
   }

   protected AtmosApiMetadata(Builder builder) {
      super(builder);
   }

   public static Properties defaultProperties() {
      Properties properties = BaseHttpApiMetadata.defaultProperties();
      properties.setProperty(PROPERTY_REGIONS, "DEFAULT");
      properties.setProperty(PROPERTY_USER_METADATA_PREFIX, "X-Object-Meta-");
      properties.setProperty(PROPERTY_IDEMPOTENT_METHODS, "DELETE,GET,HEAD,OPTIONS,POST,PUT");
      return properties;
   }

   public static class Builder extends BaseHttpApiMetadata.Builder<AtmosClient, Builder> {
      protected Builder() {
         super(AtmosClient.class);
         id("atmos")
         .name("EMC's Atmos API")
         .identityName("Subtenant ID (UID)")
         .credentialName("Shared Secret")
         .documentation(URI.create("https://community.emc.com/docs/DOC-10508"))
         .version("1.4.0")
         .defaultEndpoint("https://accesspoint.atmosonline.com")
         .defaultProperties(AtmosApiMetadata.defaultProperties())
         .view(typeToken(BlobStoreContext.class))
         .defaultModules(ImmutableSet.<Class<? extends Module>>of(AtmosHttpApiModule.class, AtmosBlobStoreContextModule.class));
      }

      @Override
      public AtmosApiMetadata build() {
         return new AtmosApiMetadata(this);
      }

      @Override
      protected Builder self() {
         return this;
      }
   }
}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/AtmosClient.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos;

import static com.google.common.net.HttpHeaders.EXPECT;

import java.io.Closeable;
import java.net.URI;

import jakarta.inject.Named;
import jakarta.ws.rs.Consumes;
import jakarta.ws.rs.DELETE;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.HEAD;
import jakarta.ws.rs.POST;
import jakarta.ws.rs.PUT;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.PathParam;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.MediaType;

import org.jclouds.Fallbacks.FalseOnNotFoundOr404;
import org.jclouds.Fallbacks.NullOnNotFoundOr404;
import org.jclouds.atmos.binders.BindMetadataToHeaders;
import org.jclouds.atmos.domain.AtmosObject;
import org.jclouds.atmos.domain.BoundedSet;
import org.jclouds.atmos.domain.DirectoryEntry;
import org.jclouds.atmos.domain.SystemMetadata;
import org.jclouds.atmos.domain.UserMetadata;
import org.jclouds.atmos.fallbacks.TrueOn404FalseOnPathNotEmpty;
import org.jclouds.atmos.filters.SignRequest;
import org.jclouds.atmos.functions.AtmosObjectName;
import org.jclouds.atmos.functions.ParseDirectoryListFromContentAndHeaders;
import org.jclouds.atmos.functions.ParseObjectFromHeadersAndHttpContent;
import org.jclouds.atmos.functions.ParseSystemMetadataFromHeaders;
import org.jclouds.atmos.functions.ParseUserMetadataFromHeaders;
import org.jclouds.atmos.functions.ReturnTrueIfGroupACLIsOtherRead;
import org.jclouds.atmos.options.ListOptions;
import org.jclouds.atmos.options.PutOptions;
import org.jclouds.blobstore.BlobStoreFallbacks.NullOnKeyAlreadyExists;
import org.jclouds.blobstore.BlobStoreFallbacks.ThrowContainerNotFoundOn404;
import org.jclouds.blobstore.BlobStoreFallbacks.ThrowKeyNotFoundOn404;
import org.jclouds.http.functions.ParseURIFromListOrLocationHeaderIf20x;
import org.jclouds.http.options.GetOptions;
import org.jclouds.javax.annotation.Nullable;
import org.jclouds.rest.annotations.BinderParam;
import org.jclouds.rest.annotations.Fallback;
import org.jclouds.rest.annotations.Headers;
import org.jclouds.rest.annotations.ParamParser;
import org.jclouds.rest.annotations.QueryParams;
import org.jclouds.rest.annotations.RequestFilters;
import org.jclouds.rest.annotations.ResponseParser;

import com.google.inject.Provides;

/** Provides access to EMC Atmos Online Storage resources via their REST API. */
@RequestFilters(SignRequest.class)
@Path("/rest/namespace")
public interface AtmosClient extends Closeable {

   @Provides
   AtmosObject newObject();

   @Named("ListDirectory")
   @GET
   @Path("/")
   @ResponseParser(ParseDirectoryListFromContentAndHeaders.class)
   @Consumes(MediaType.TEXT_XML)
   BoundedSet<? extends DirectoryEntry> listDirectories(ListOptions... options);

   @Named("ListDirectory")
   @GET
   @Path("/{directoryName}/")
   @ResponseParser(ParseDirectoryListFromContentAndHeaders.class)
   @Fallback(ThrowContainerNotFoundOn404.class)
   @Consumes(MediaType.TEXT_XML)
   @Headers(keys = "x-emc-include-meta", values = "1")
   BoundedSet<? extends DirectoryEntry> listDirectory(
         @PathParam("directoryName") String directoryName, ListOptions... options);

   @Named("CreateDirectory")
   @POST
   @Path("/{directoryName}/")
   @Fallback(NullOnKeyAlreadyExists.class)
   @Produces(MediaType.APPLICATION_OCTET_STREAM)
   @Consumes(MediaType.WILDCARD)
   URI createDirectory(@PathParam("directoryName") String directoryName, PutOptions... options);

   @Nullable
   @Named("CreateObject")
   @POST
   @Path("/{parent}/{name}")
   @Headers(keys = EXPECT, values = "100-continue")
   @ResponseParser(ParseURIFromListOrLocationHeaderIf20x.class)
   @Consumes(MediaType.WILDCARD)
   URI createFile(@PathParam("parent") String parent, @PathParam("name") @ParamParser(AtmosObjectName.class)
      @BinderParam(BindMetadataToHeaders.class) AtmosObject object, PutOptions... options);

   @Named("UpdateObject")
   @PUT
   @Path("/{parent}/{name}")
   @Headers(keys = EXPECT, values = "100-continue")
   @Fallback(ThrowKeyNotFoundOn404.class)
   @Consumes(MediaType.WILDCARD)
   void updateFile(@PathParam("parent") String parent, @PathParam("name") @ParamParser(AtmosObjectName.class)
      @BinderParam(BindMetadataToHeaders.class) AtmosObject object, PutOptions... options);

   @Named("ReadObject")
   @GET
   @ResponseParser(ParseObjectFromHeadersAndHttpContent.class)
   @Fallback(NullOnNotFoundOr404.class)
   @Path("/{path}")
   @Consumes(MediaType.WILDCARD)
   AtmosObject readFile(@PathParam("path") String path, GetOptions... options);

   @Named("GetObjectMetadata")
   @HEAD
   @ResponseParser(ParseObjectFromHeadersAndHttpContent.class)
   @Fallback(NullOnNotFoundOr404.class)
   @Path("/{path}")
   @Consumes(MediaType.WILDCARD)
   AtmosObject headFile(@PathParam("path") String path);

   @Named("GetSystemMetadata")
   @HEAD
   @ResponseParser(ParseSystemMetadataFromHeaders.class)
   @Fallback(NullOnNotFoundOr404.class)
   // currently throws 403 errors @QueryParams(keys = "metadata/system")
   @Path("/{path}")
   @Consumes(MediaType.WILDCARD)
   SystemMetadata getSystemMetadata(@PathParam("path") String path);

   @Named("GetUserMetadata")
   @HEAD
   @ResponseParser(ParseUserMetadataFromHeaders.class)
   @Fallback(NullOnNotFoundOr404.class)
   @Path("/{path}")
   @QueryParams(keys = "metadata/user")
   @Consumes(MediaType.WILDCARD)
   UserMetadata getUserMetadata(@PathParam("path") String path);

   @Named("DeleteObject")
   @DELETE
   @Fallback(TrueOn404FalseOnPathNotEmpty.class)
   @Path("/{path}")
   @Consumes(MediaType.WILDCARD)
   boolean deletePath(@PathParam("path") String path);

   @Named("GetObjectMetadata")
   @HEAD
   @Fallback(FalseOnNotFoundOr404.class)
   @Path("/{path}")
   @Consumes(MediaType.WILDCARD)
   boolean pathExists(@PathParam("path") String path);

   @Named("GetObjectMetadata")
   @HEAD
   @ResponseParser(ReturnTrueIfGroupACLIsOtherRead.class)
   @Path("/{path}")
   @Consumes(MediaType.WILDCARD)
   @Fallback(FalseOnNotFoundOr404.class)
   boolean isPublic(@PathParam("path") String path);

   @Named("SetObjectMetadata")
   @POST
   @Path("/{path}")
   @QueryParams(keys = "acl")
   @Produces(MediaType.APPLICATION_OCTET_STREAM)
   @Fallback(ThrowKeyNotFoundOn404.class)
   @Consumes(MediaType.WILDCARD)
   void setGroupAcl(@PathParam("path") String path, PutOptions options);
}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/AtmosResponseException.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos;

import org.jclouds.atmos.domain.AtmosError;
import org.jclouds.http.HttpCommand;
import org.jclouds.http.HttpResponse;
import org.jclouds.http.HttpResponseException;
import org.jclouds.javax.annotation.Nullable;

/**
 * Encapsulates an Error from Atmos Storage Services.
 * 
 * @see AtmosError
 * @see ParseAtmosErrorFromXmlContent
 */
public class AtmosResponseException extends HttpResponseException {

   private transient AtmosError error;

   public AtmosResponseException(HttpCommand command, HttpResponse response,
            AtmosError error) {
      super(String.format("command %s failed with code %s, error: %s", command.getCurrentRequest()
               .getRequestLine(), response.getStatusCode(), error.toString()), command, response);
      this.setError(error);

   }

   public AtmosResponseException(HttpCommand command, HttpResponse response,
            AtmosError error, Throwable cause) {
      super(String.format("command %1$s failed with error: %2$s", command.getCurrentRequest()
               .getRequestLine(), error.toString()), command, response, cause);
      this.setError(error);

   }

   public AtmosResponseException(String message, HttpCommand command, HttpResponse response,
            AtmosError error) {
      super(message, command, response);
      this.setError(error);

   }

   public AtmosResponseException(String message, HttpCommand command, HttpResponse response,
            AtmosError error, Throwable cause) {
      super(message, command, response, cause);
      this.setError(error);

   }

   public void setError(AtmosError error) {
      this.error = error;
   }

   @Nullable
   public AtmosError getError() {
      return error;
   }

}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/binders/BindMetadataToHeaders.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.binders;

import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;

import jakarta.inject.Inject;
import jakarta.inject.Singleton;

import com.google.common.io.BaseEncoding;

import org.jclouds.atmos.domain.AtmosObject;
import org.jclouds.atmos.reference.AtmosHeaders;
import org.jclouds.http.HttpRequest;
import org.jclouds.rest.Binder;

@Singleton
public class BindMetadataToHeaders implements Binder {
   private final BindUserMetadataToHeaders metaBinder;

   @Inject
   protected BindMetadataToHeaders(BindUserMetadataToHeaders metaBinder) {
      this.metaBinder = metaBinder;
   }

   @Override
   public <R extends HttpRequest> R bindToRequest(R request, Object input) {
      checkArgument(checkNotNull(input, "input") instanceof AtmosObject, "this binder is only valid for AtmosObject!");
      checkNotNull(request, "request");

      AtmosObject object = AtmosObject.class.cast(input);
      checkNotNull(object.getPayload(), "object payload");
      checkArgument(object.getPayload().getContentMetadata().getContentLength() != null,
            "contentLength must be set, streaming not supported");
      byte[] contentMD5 = object.getContentMetadata().getContentMD5();
      if (contentMD5 != null) {
         request = (R) request.toBuilder()
               .addHeader(AtmosHeaders.CHECKSUM, "MD5/0/" +
                     BaseEncoding.base16().encode(contentMD5))
               .build();
      }
      return metaBinder.bindToRequest(request, object.getUserMetadata());
   }
}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/binders/BindUserMetadataToHeaders.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.binders;

import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;

import java.util.Map;

import jakarta.inject.Singleton;

import org.jclouds.atmos.domain.UserMetadata;
import org.jclouds.http.HttpRequest;
import org.jclouds.rest.Binder;

import com.google.common.base.Function;
import com.google.common.base.Joiner;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableMap.Builder;
import com.google.common.collect.Multimaps;

@Singleton
public class BindUserMetadataToHeaders implements Binder, Function<UserMetadata, Map<String, String>> {

   @SuppressWarnings("unchecked")
   @Override
   public <R extends HttpRequest> R bindToRequest(R request, Object input) {
      checkArgument(checkNotNull(input, "input") instanceof UserMetadata,
            "this binder is only valid for UserMetadatas!");
      checkNotNull(request, "request");
      return (R) request.toBuilder().replaceHeaders(Multimaps.forMap(apply(UserMetadata.class.cast(input)))).build();
   }

   @Override
   public Map<String, String> apply(UserMetadata md) {
      Builder<String, String> headers = ImmutableMap.builder();
      if (!md.getMetadata().isEmpty()) {
         String header = Joiner.on(',').withKeyValueSeparator("=").join(md.getMetadata());
         headers.put("x-emc-meta", header);
      }
      if (!md.getListableMetadata().isEmpty()) {
         String header = Joiner.on(',').withKeyValueSeparator("=").join(md.getListableMetadata());
         headers.put("x-emc-listable-meta", header);
      }
      if (!md.getTags().isEmpty()) {
         String header = Joiner.on(',').join(md.getTags());
         headers.put("x-emc-tags", header);
      }
      if (!md.getListableTags().isEmpty()) {
         String header = Joiner.on(',').join(md.getListableTags());
         headers.put("x-emc-listable-tags", header);
      }
      return headers.build();
   }
}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/AtmosBlobRequestSigner.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.blobstore;

import static com.google.common.base.Preconditions.checkNotNull;
import static org.jclouds.blobstore.util.BlobStoreUtils.cleanRequest;
import static org.jclouds.reflect.Reflection2.method;

import java.net.URI;
import java.util.Date;

import jakarta.inject.Inject;
import jakarta.inject.Singleton;

import org.jclouds.atmos.AtmosClient;
import org.jclouds.atmos.blobstore.functions.BlobToObject;
import org.jclouds.atmos.domain.AtmosObject;
import org.jclouds.atmos.filters.SignRequest;
import org.jclouds.atmos.options.PutOptions;
import org.jclouds.blobstore.BlobRequestSigner;
import org.jclouds.blobstore.domain.Blob;
import org.jclouds.blobstore.functions.BlobToHttpGetOptions;
import org.jclouds.date.DateService;
import org.jclouds.date.TimeStamp;
import org.jclouds.domain.Credentials;
import org.jclouds.http.HttpRequest;
import org.jclouds.http.Uris;
import org.jclouds.http.options.GetOptions;
import org.jclouds.reflect.Invocation;

import com.google.common.base.Function;
import com.google.common.base.Supplier;
import com.google.common.collect.ImmutableList;
import com.google.common.reflect.Invokable;
import com.google.inject.Provider;

@Singleton
public class AtmosBlobRequestSigner implements BlobRequestSigner {
   private static final int DEFAULT_EXPIRY_SECONDS = 15 * 60;

   private final Function<Invocation, HttpRequest> processor;
   private final BlobToObject blobToObject;
   private final BlobToHttpGetOptions blob2ObjectGetOptions;

   private final Invokable<?, ?> getMethod;
   private final Invokable<?, ?> deleteMethod;
   private final Invokable<?, ?> createMethod;

   private final SignRequest signer;
   private final URI endpoint;
   private final String identity;
   private final DateService dateService;
   private final Provider<String> timeStampProvider;

   @Inject
   public AtmosBlobRequestSigner(Function<Invocation, HttpRequest> processor, BlobToObject blobToObject,
         BlobToHttpGetOptions blob2ObjectGetOptions, SignRequest signer,
         @org.jclouds.location.Provider Supplier<URI> endpointProvider,
         @org.jclouds.location.Provider Supplier<Credentials> creds,
         DateService dateService, @TimeStamp Provider<String> timeStampProvider)
         throws SecurityException, NoSuchMethodException {
      this.processor = checkNotNull(processor, "processor");
      this.blobToObject = checkNotNull(blobToObject, "blobToObject");
      this.blob2ObjectGetOptions = checkNotNull(blob2ObjectGetOptions, "blob2ObjectGetOptions");
      this.getMethod = method(AtmosClient.class, "readFile", String.class, GetOptions[].class);
      this.deleteMethod = method(AtmosClient.class, "deletePath", String.class);
      this.createMethod = method(AtmosClient.class, "createFile", String.class, AtmosObject.class, PutOptions[].class);
      this.signer = signer;
      this.endpoint = endpointProvider.get();
      this.identity = creds.get().identity;
      this.dateService = dateService;
      this.timeStampProvider = timeStampProvider;
   }

   @Override
   public HttpRequest signGetBlob(String container, String name) {
      return signGetBlob(container, name, DEFAULT_EXPIRY_SECONDS);
   }

   @Override
   public HttpRequest signGetBlob(String container, String name, long timeInSeconds) {
      checkNotNull(container, "container");
      checkNotNull(name, "name");
      return sign("GET", "/rest/namespace/" + container + "/" + name, timeInSeconds);
   }

   @Override
   public HttpRequest signPutBlob(String container, Blob blob) {
      checkNotNull(container, "container");
      checkNotNull(blob, "blob");
      return cleanRequest(processor.apply(Invocation.create(createMethod,
            ImmutableList.<Object> of(container, blobToObject.apply(blob)))));
   }

   @Override
   public HttpRequest signPutBlob(String container, Blob blob, long timeInSeconds) {
      throw new UnsupportedOperationException();
   }

   private String getPath(String container, String name) {
      return checkNotNull(container, "container") + "/" + checkNotNull(name, "name");
   }

   @Override
   public HttpRequest signGetBlob(String container, String name, org.jclouds.blobstore.options.GetOptions options) {
      checkNotNull(container, "container");
      checkNotNull(name, "name");
      return cleanRequest(processor.apply(Invocation.create(getMethod,
            ImmutableList.of(getPath(container, name), blob2ObjectGetOptions.apply(checkNotNull(options, "options"))))));
   }

   private HttpRequest sign(String method, String path, long timeInSeconds) {
      Date now = dateService.rfc1123DateParse(timeStampProvider.get());
      String expires = String.valueOf(now.getTime() / 1000 + timeInSeconds);
      String stringToSign = method + "\n" +
            path + "\n" +
            identity + "\n" +
            expires;
      return HttpRequest.builder()
            .method(method)
            .endpoint(Uris.uriBuilder(endpoint.getScheme() + "://" + endpoint.getHost()).appendPath(path).build())
            .addQueryParam("uid", identity)
            .addQueryParam("expires", expires)
            .addQueryParam("signature", signer.calculateSignature(stringToSign))
            .build();
   }
}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/AtmosBlobStore.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.blobstore;

import static com.google.common.base.Preconditions.checkNotNull;
import static org.jclouds.atmos.options.PutOptions.Builder.publicRead;

import java.io.InputStream;
import java.util.List;
import java.util.Set;

import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.inject.Singleton;

import org.jclouds.atmos.AtmosClient;
import org.jclouds.atmos.blobstore.functions.BlobStoreListOptionsToListOptions;
import org.jclouds.atmos.blobstore.functions.BlobToObject;
import org.jclouds.atmos.blobstore.functions.DirectoryEntryListToResourceMetadataList;
import org.jclouds.atmos.blobstore.functions.ObjectToBlob;
import org.jclouds.atmos.blobstore.functions.ObjectToBlobMetadata;
import org.jclouds.atmos.options.ListOptions;
import org.jclouds.atmos.util.AtmosUtils;
import org.jclouds.blobstore.BlobStoreContext;
import org.jclouds.blobstore.domain.Blob;
import org.jclouds.blobstore.domain.BlobAccess;
import org.jclouds.blobstore.domain.BlobMetadata;
import org.jclouds.blobstore.domain.ContainerAccess;
import org.jclouds.blobstore.domain.MultipartPart;
import org.jclouds.blobstore.domain.MultipartUpload;
import org.jclouds.blobstore.domain.PageSet;
import org.jclouds.blobstore.domain.StorageMetadata;
import org.jclouds.blobstore.functions.BlobToHttpGetOptions;
import org.jclouds.blobstore.internal.BaseBlobStore;
import org.jclouds.blobstore.options.CopyOptions;
import org.jclouds.blobstore.options.CreateContainerOptions;
import org.jclouds.blobstore.options.PutOptions;
import org.jclouds.blobstore.strategy.internal.FetchBlobMetadata;
import org.jclouds.blobstore.util.BlobUtils;
import org.jclouds.collect.Memoized;
import org.jclouds.crypto.Crypto;
import org.jclouds.domain.Location;
import org.jclouds.http.options.GetOptions;
import org.jclouds.io.Payload;
import org.jclouds.io.PayloadSlicer;

import com.google.common.base.Strings;
import com.google.common.base.Supplier;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;

@Singleton
public class AtmosBlobStore extends BaseBlobStore {
   private final AtmosClient sync;
   private final ObjectToBlob object2Blob;
   private final ObjectToBlobMetadata object2BlobMd;
   private final BlobToObject blob2Object;
   private final BlobStoreListOptionsToListOptions container2ContainerListOptions;
   private final DirectoryEntryListToResourceMetadataList container2ResourceList;
   private final Crypto crypto;
   private final BlobToHttpGetOptions blob2ObjectGetOptions;
   private final Provider<FetchBlobMetadata> fetchBlobMetadataProvider;
   private final LoadingCache<String, Boolean> isPublic;

   @Inject
   AtmosBlobStore(BlobStoreContext context, BlobUtils blobUtils, Supplier<Location> defaultLocation,
            @Memoized Supplier<Set<? extends Location>> locations, PayloadSlicer slicer, AtmosClient sync,
            ObjectToBlob object2Blob, ObjectToBlobMetadata object2BlobMd, BlobToObject blob2Object,
            BlobStoreListOptionsToListOptions container2ContainerListOptions,
            DirectoryEntryListToResourceMetadataList container2ResourceList, Crypto crypto,
            BlobToHttpGetOptions blob2ObjectGetOptions, Provider<FetchBlobMetadata> fetchBlobMetadataProvider,
            LoadingCache<String, Boolean> isPublic) {
      super(context, blobUtils, defaultLocation, locations, slicer);
      this.blob2ObjectGetOptions = checkNotNull(blob2ObjectGetOptions, "blob2ObjectGetOptions");
      this.sync = checkNotNull(sync, "sync");
      this.container2ContainerListOptions = checkNotNull(container2ContainerListOptions,
               "container2ContainerListOptions");
      this.container2ResourceList = checkNotNull(container2ResourceList, "container2ResourceList");
      this.object2Blob = checkNotNull(object2Blob, "object2Blob");
      this.blob2Object = checkNotNull(blob2Object, "blob2Object");
      this.object2BlobMd = checkNotNull(object2BlobMd, "object2BlobMd");
      this.crypto = checkNotNull(crypto, "crypto");
      this.fetchBlobMetadataProvider = checkNotNull(fetchBlobMetadataProvider, "fetchBlobMetadataProvider");
      this.isPublic = checkNotNull(isPublic, "isPublic");
   }

   /**
    * This implementation invokes {@link AtmosClient#headFile}
    */
   @Override
   public BlobMetadata blobMetadata(String container, String key) {
      return object2BlobMd.apply(sync.headFile(container + "/" + key));
   }

   /**
    * This implementation invokes {@link AtmosClient#deletePath} followed by
    * {@link AtmosClient#pathExists} until it is true.
    */
   protected boolean deleteAndVerifyContainerGone(final String container) {
      sync.deletePath(container + "/");
      return !sync.pathExists(container + "/");
   }

   /**
    * This implementation invokes {@link AtmosClient#createDirectory}
    *
    * @param location
    *           currently ignored
    * @param container
    *           directory name
    */
   @Override
   public boolean createContainerInLocation(Location location, String container) {
      return sync.createDirectory(container) != null;
   }

   @Override
   public ContainerAccess getContainerAccess(String container) {
      if (sync.isPublic(container)) {
         return ContainerAccess.PUBLIC_READ;
      } else {
         return ContainerAccess.PRIVATE;
      }
   }

   @Override
   public void setContainerAccess(String container, ContainerAccess access) {
      org.jclouds.atmos.options.PutOptions options = new org.jclouds.atmos.options.PutOptions();
      if (access == ContainerAccess.PUBLIC_READ) {
         options.publicRead();
      } else {
         options.publicNone();
      }
      sync.setGroupAcl(container, options);
   }

   /**
    * This implementation invokes {@link AtmosClient#createDirectory}
    *
    * @param container
    *           directory name
    */
   @Override
   public void createDirectory(String container, String directory) {
      sync.createDirectory(container + "/" + directory);
   }

   /**
    * This implementation invokes {@link #removeBlob}
    */
   @Override
   public void deleteDirectory(String containerName, String directory) {
      removeBlob(containerName, directory + "/");
   }

   /**
    * This implementation invokes {@link AtmosClient#pathExists}
    */
   @Override
   public boolean containerExists(String container) {
      return sync.pathExists(container + "/");
   }

   /**
    * This implementation invokes {@link AtmosClient#pathExists}
    */
   @Override
   public boolean directoryExists(String container, String directory) {
      return sync.pathExists(container + "/" + directory + "/");
   }

   /**
    * This implementation invokes {@link AtmosClient#pathExists}
    *
    * @param container
    *           container
    * @param key
    *           file name
    */
   @Override
   public boolean blobExists(String container, String key) {
      return sync.pathExists(container + "/" + key);
   }

   /**
    * This implementation invokes {@link AtmosClient#readFile}
    */
   @Override
   public Blob getBlob(String container, String key, org.jclouds.blobstore.options.GetOptions options) {
      GetOptions httpOptions = blob2ObjectGetOptions.apply(options);
      return object2Blob.apply(sync.readFile(container + "/" + key, httpOptions));
   }

   /**
    * This implementation invokes {@link AtmosClient#listDirectories}
    */
   @Override
   public PageSet<? extends StorageMetadata> list() {
      return container2ResourceList.apply(sync.listDirectories());
   }

   /**
    * This implementation invokes {@link AtmosClient#listDirectory}
    */
   @Override
   public PageSet<? extends StorageMetadata> list(String container,
            org.jclouds.blobstore.options.ListContainerOptions options) {
      // TODO: recursive?
      if (!Strings.nullToEmpty(options.getDelimiter()).equals("/") && !Strings.isNullOrEmpty(options.getPrefix())) {
         throw new IllegalArgumentException("Atmos can only list via prefix if delimiter is / and the prefix matches an existing directory");
      }
      container = AtmosUtils.adjustContainerIfDirOptionPresent(container, options);
      if (!Strings.isNullOrEmpty(options.getPrefix())) {
         // this only works when the prefix exactly matches a directory, the common usage
         container += "/" + options.getPrefix();
      }
      ListOptions nativeOptions = container2ContainerListOptions.apply(options);
      // until includeMeta() option works for namespace interface
      PageSet<? extends StorageMetadata> list = container2ResourceList.apply(sync.listDirectory(container,
               nativeOptions));
      return options.isDetailed() ? fetchBlobMetadataProvider.get().setContainerName(container).apply(list) : list;
   }

   /**
    * This implementation invokes {@link AtmosClient#createFile}
    * <p/>
    * Since there is no etag support in atmos, we just return the path.
    */
   @Override
   public String putBlob(final String container, final Blob blob) {
      return putBlob(container, blob, PutOptions.NONE);
   }

   /**
    * This implementation invokes {@link AtmosClient#createFile}
    * <p/>
    * Since there is no etag support in atmos, we just return the path.
    */
   @Override
   public String putBlob(String container, Blob blob, PutOptions options) {
      if (options.isMultipart()) {
         throw new UnsupportedOperationException("Atmos does not support multipart uploads");
      }
      org.jclouds.atmos.options.PutOptions atmosOptions = new org.jclouds.atmos.options.PutOptions();
      atmosOptions.publicNone();
      try {
         // TODO: not needed
         if (isPublic.getUnchecked(container + "/"))
            atmosOptions.publicRead();
      } catch (CacheLoader.InvalidCacheLoadException e) {
         // nulls not permitted
      }
      if (options.getBlobAccess() == BlobAccess.PUBLIC_READ) {
         atmosOptions.publicRead();
      }
      return AtmosUtils.putBlob(sync, crypto, blob2Object, container, blob, atmosOptions);
   }

   /**
    * This implementation invokes {@link AtmosClient#deletePath}
    */
   @Override
   public void removeBlob(String container, String key) {
      sync.deletePath(container + "/" + key);
   }

   @Override
   public BlobAccess getBlobAccess(String container, String key) {
      if (sync.isPublic(container + "/" + key)) {
         return BlobAccess.PUBLIC_READ;
      } else {
         return BlobAccess.PRIVATE;
      }
   }

   @Override
   public void setBlobAccess(String container, String key, BlobAccess access) {
      org.jclouds.atmos.options.PutOptions options = new org.jclouds.atmos.options.PutOptions();
      if (access == BlobAccess.PUBLIC_READ) {
         options.publicRead();
      } else {
         options.publicNone();
      }
      sync.setGroupAcl(container + "/" + key, options);
   }

   @Override
   public boolean createContainerInLocation(Location location, String container, CreateContainerOptions options) {
      if (options.isPublicRead()) {
         return sync.createDirectory(container, publicRead()) != null;
      }
      return createContainerInLocation(location, container);
   }

   @Override
   public MultipartUpload initiateMultipartUpload(String container, BlobMetadata blobMetadata, PutOptions options) {
      throw new UnsupportedOperationException("Atmos does not support multipart uploads");
   }

   @Override
   public void abortMultipartUpload(MultipartUpload mpu) {
      throw new UnsupportedOperationException("Atmos does not support multipart uploads");
   }

   @Override
   public String completeMultipartUpload(MultipartUpload mpu, List<MultipartPart> parts) {
      throw new UnsupportedOperationException("Atmos does not support multipart uploads");
   }

   @Override
   public MultipartPart uploadMultipartPart(MultipartUpload mpu, int partNumber, Payload payload) {
      throw new UnsupportedOperationException("Atmos does not support multipart uploads");
   }

   @Override
   public List<MultipartPart> listMultipartUpload(MultipartUpload mpu) {
      throw new UnsupportedOperationException("Atmos does not support multipart uploads");
   }

   @Override
   public List<MultipartUpload> listMultipartUploads(String container) {
      throw new UnsupportedOperationException("Atmos does not support multipart uploads");
   }

   @Override
   public long getMinimumMultipartPartSize() {
      throw new UnsupportedOperationException("Atmos does not support multipart uploads");
   }

   @Override
   public long getMaximumMultipartPartSize() {
      throw new UnsupportedOperationException("Atmos does not support multipart uploads");
   }

   @Override
   public int getMaximumNumberOfParts() {
      throw new UnsupportedOperationException("Atmos does not support multipart uploads");
   }

   @Override
   public InputStream streamBlob(String container, String name) {
      throw new UnsupportedOperationException("Atmos does not support multipart uploads");
   }

   @Override
   public String copyBlob(String fromContainer, String fromName, String toContainer, String toName,
         CopyOptions options) {
      if (options.ifMatch() != null) {
         throw new UnsupportedOperationException("Atmos does not support ifMatch");
      }
      if (options.ifNoneMatch() != null) {
         throw new UnsupportedOperationException("Atmos does not support ifNoneMatch");
      }
      return super.copyBlob(fromContainer, fromName, toContainer, toName, options);
   }
}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/config/AtmosBlobStoreContextModule.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.blobstore.config;

import java.util.concurrent.TimeUnit;

import jakarta.inject.Singleton;

import org.jclouds.atmos.AtmosClient;
import org.jclouds.atmos.blobstore.AtmosBlobRequestSigner;
import org.jclouds.atmos.blobstore.AtmosBlobStore;
import org.jclouds.blobstore.BlobRequestSigner;
import org.jclouds.blobstore.BlobStore;
import org.jclouds.blobstore.attr.ConsistencyModel;

import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
import com.google.inject.AbstractModule;
import com.google.inject.Provides;
import com.google.inject.Scopes;

public class AtmosBlobStoreContextModule extends AbstractModule {

   @Override
   protected void configure() {
      bind(ConsistencyModel.class).toInstance(ConsistencyModel.EVENTUAL);
      bind(BlobStore.class).to(AtmosBlobStore.class).in(Scopes.SINGLETON);
      bind(BlobRequestSigner.class).to(AtmosBlobRequestSigner.class);
   }

   @Provides
   @Singleton
   protected final LoadingCache<String, Boolean> isPublic(final AtmosClient client) {
      return CacheBuilder.newBuilder().expireAfterWrite(30, TimeUnit.SECONDS).build(new CacheLoader<String, Boolean>() {

         @Override
         public String toString() {
            return "isPublic()";
         }

         @Override
         public Boolean load(String arg0) throws Exception {
            return client.isPublic(arg0);
         }
      });
   }
}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/BlobMetadataToObject.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.blobstore.functions;

import java.util.Map.Entry;

import jakarta.inject.Inject;
import jakarta.inject.Singleton;

import org.jclouds.atmos.domain.AtmosObject;
import org.jclouds.atmos.domain.UserMetadata;
import org.jclouds.blobstore.domain.BlobMetadata;

import com.google.common.base.Function;

@Singleton
public class BlobMetadataToObject implements Function<BlobMetadata, AtmosObject> {
   private final AtmosObject.Factory factory;
   private final BlobToContentMetadata blob2ContentMd;
   private final BlobToSystemMetadata blob2SysMd;

   @Inject
   protected BlobMetadataToObject(AtmosObject.Factory factory,
            BlobToContentMetadata blob2ContentMd, BlobToSystemMetadata blob2SysMd) {
      this.factory = factory;
      this.blob2ContentMd = blob2ContentMd;
      this.blob2SysMd = blob2SysMd;
   }

   public AtmosObject apply(BlobMetadata from) {
      if (from == null)
         return null;
      UserMetadata userMd = new UserMetadata();
      if (from.getUserMetadata() != null) {
         for (Entry<String, String> entry : from.getUserMetadata().entrySet())
            userMd.getMetadata().put(entry.getKey().toLowerCase(), entry.getValue());
      }
      return factory.create(blob2ContentMd.apply(from), blob2SysMd.apply(from), userMd);
   }

}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/BlobStoreListOptionsToListOptions.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.blobstore.functions;

import static com.google.common.base.Preconditions.checkNotNull;

import jakarta.inject.Singleton;

import org.jclouds.blobstore.options.ListContainerOptions;

import com.google.common.base.Function;
import com.google.common.base.Strings;

@Singleton
public class BlobStoreListOptionsToListOptions implements
         Function<ListContainerOptions, org.jclouds.atmos.options.ListOptions> {
   @Override
   public org.jclouds.atmos.options.ListOptions apply(ListContainerOptions from) {
      checkNotNull(from, "set options to instance NONE instead of passing null");
      org.jclouds.atmos.options.ListOptions httpOptions = new org.jclouds.atmos.options.ListOptions();
      if (!Strings.isNullOrEmpty(from.getMarker())) {
         httpOptions.token(from.getMarker());
      }
      if (from.getMaxResults() != null) {
         httpOptions.limit(from.getMaxResults());
      }
      if (from.isDetailed()) {
         httpOptions.includeMeta();
      }
      return httpOptions;
   }
}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/BlobToContentMetadata.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.blobstore.functions;

import jakarta.inject.Singleton;

import org.jclouds.atmos.domain.MutableContentMetadata;
import org.jclouds.atmos.domain.internal.DelegatingMutableContentMetadata;
import org.jclouds.blobstore.domain.BlobMetadata;
import org.jclouds.blobstore.domain.internal.MutableBlobMetadataImpl;
import org.jclouds.http.HttpUtils;

import com.google.common.base.Function;

@Singleton
public class BlobToContentMetadata implements Function<BlobMetadata, MutableContentMetadata> {
   public MutableContentMetadata apply(BlobMetadata base) {
      MutableBlobMetadataImpl to = new MutableBlobMetadataImpl();
      HttpUtils.copy(base.getContentMetadata(), to.getContentMetadata());
      return new DelegatingMutableContentMetadata(base.getUri(), base.getName(), base.getUri() != null ? base.getUri()
               .getPath() : null, to.getContentMetadata());
   }

}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/BlobToObject.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.blobstore.functions;

import static com.google.common.base.Preconditions.checkNotNull;

import jakarta.inject.Inject;
import jakarta.inject.Singleton;

import org.jclouds.atmos.domain.AtmosObject;
import org.jclouds.blobstore.domain.Blob;

import com.google.common.base.Function;

@Singleton
public class BlobToObject implements Function<Blob, AtmosObject> {
   private final BlobMetadataToObject blobMd2Object;

   @Inject
   BlobToObject(BlobMetadataToObject blobMd2Object) {
      this.blobMd2Object = blobMd2Object;
   }

   public AtmosObject apply(Blob from) {
      if (from == null)
         return null;
      AtmosObject object = blobMd2Object.apply(from.getMetadata());
      object.setPayload(checkNotNull(from.getPayload(), "payload: " + from));
      object.setAllHeaders(from.getAllHeaders());
      return object;
   }
}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/BlobToSystemMetadata.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.blobstore.functions;

import jakarta.inject.Singleton;

import org.jclouds.atmos.domain.FileType;
import org.jclouds.atmos.domain.SystemMetadata;
import org.jclouds.blobstore.domain.BlobMetadata;

import com.google.common.base.Function;

@Singleton
public class BlobToSystemMetadata implements Function<BlobMetadata, SystemMetadata> {
   public SystemMetadata apply(BlobMetadata base) {
      return new SystemMetadata(base.getContentMetadata().getContentMD5(), null, base.getLastModified(), null, null,
               null, 1, null, base.getName(), null, (base.getContentMetadata().getContentLength() != null) ? base
                        .getContentMetadata().getContentLength() : 0, FileType.REGULAR, "root");
   }

}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/DirectoryEntryListToResourceMetadataList.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.blobstore.functions;

import jakarta.inject.Inject;
import jakarta.inject.Singleton;

import org.jclouds.atmos.domain.BoundedSet;
import org.jclouds.atmos.domain.DirectoryEntry;
import org.jclouds.atmos.domain.FileType;
import org.jclouds.blobstore.domain.PageSet;
import org.jclouds.blobstore.domain.StorageMetadata;
import org.jclouds.blobstore.domain.StorageType;
import org.jclouds.blobstore.domain.internal.BlobMetadataImpl;
import org.jclouds.blobstore.domain.internal.MutableBlobMetadataImpl;
import org.jclouds.blobstore.domain.internal.PageSetImpl;
import org.jclouds.blobstore.domain.internal.StorageMetadataImpl;
import org.jclouds.domain.Location;
import org.jclouds.io.payloads.BaseMutableContentMetadata;

import com.google.common.base.Function;
import com.google.common.base.Supplier;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables;

@Singleton
public class DirectoryEntryListToResourceMetadataList implements
         Function<BoundedSet<? extends DirectoryEntry>, PageSet<? extends StorageMetadata>> {
   private Supplier<Location> defaultLocation;

   @Inject
   DirectoryEntryListToResourceMetadataList(Supplier<Location> defaultLocation) {
      this.defaultLocation = defaultLocation;
   }

   public PageSet<? extends StorageMetadata> apply(BoundedSet<? extends DirectoryEntry> from) {

      return new PageSetImpl<StorageMetadata>(Iterables.transform(from,
               new Function<DirectoryEntry, StorageMetadata>() {

                  public StorageMetadata apply(DirectoryEntry from) {
                     StorageType type = from.getType() == FileType.DIRECTORY ? StorageType.FOLDER : StorageType.BLOB;
                     if (type == StorageType.FOLDER)
                        return new StorageMetadataImpl(type, from.getObjectID(), from.getObjectName(), defaultLocation
                                 .get(), null, null, null, null, ImmutableMap.<String, String>of());
                     else {
                        BlobMetadataImpl metadata = new BlobMetadataImpl(from.getObjectID(), from.getObjectName(), defaultLocation.get(),
                                 null, from.getObjectID(), null, from.getModifiedTime(), ImmutableMap.<String, String>of(), null,
                                 null, new BaseMutableContentMetadata());
                        MutableBlobMetadataImpl mutable = new MutableBlobMetadataImpl(metadata);
                        mutable.setSize(from.getSize());
                        return mutable;
                     }
                  }

               }), from.getToken());

   }
}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/ObjectToBlob.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.blobstore.functions;

import static com.google.common.base.Preconditions.checkNotNull;

import jakarta.inject.Inject;
import jakarta.inject.Singleton;

import org.jclouds.atmos.domain.AtmosObject;
import org.jclouds.blobstore.domain.Blob;
import org.jclouds.blobstore.domain.Blob.Factory;
import org.jclouds.http.HttpUtils;

import com.google.common.base.Function;

@Singleton
public class ObjectToBlob implements Function<AtmosObject, Blob> {
   private final Factory blobFactory;
   private final ObjectToBlobMetadata object2BlobMd;

   @Inject
   ObjectToBlob(Factory blobFactory, ObjectToBlobMetadata object2BlobMd) {
      this.blobFactory = blobFactory;
      this.object2BlobMd = object2BlobMd;
   }

   public Blob apply(AtmosObject from) {
      if (from == null)
         return null;
      Blob blob = blobFactory.create(object2BlobMd.apply(from));
      blob.setPayload(checkNotNull(from.getPayload(), "payload: " + from));
      HttpUtils.copy(from.getContentMetadata(), blob.getPayload().getContentMetadata());
      blob.setAllHeaders(from.getAllHeaders());
      return blob;
   }
}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/ObjectToBlobMetadata.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.blobstore.functions;

import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;

import jakarta.inject.Inject;
import jakarta.inject.Singleton;

import org.jclouds.atmos.domain.AtmosObject;
import org.jclouds.atmos.domain.FileType;
import org.jclouds.atmos.filters.ShareUrl;
import org.jclouds.atmos.functions.AtmosObjectName;
import org.jclouds.blobstore.domain.MutableBlobMetadata;
import org.jclouds.blobstore.domain.StorageType;
import org.jclouds.blobstore.domain.Tier;
import org.jclouds.blobstore.domain.internal.MutableBlobMetadataImpl;
import org.jclouds.http.HttpUtils;

import com.google.common.base.Function;
import com.google.common.base.Splitter;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.common.collect.Maps;

@Singleton
public class ObjectToBlobMetadata implements Function<AtmosObject, MutableBlobMetadata> {
   private final AtmosObjectName objectName;
   private final ShareUrl shareUrl;

   private static final Set<String> systemMetadata = ImmutableSet.of("atime", "mtime", "ctime", "itime", "type", "uid",
            "gid", "objectid", "objname", "size", "nlink", "policyname");

   @Inject
   protected ObjectToBlobMetadata(AtmosObjectName objectName, ShareUrl shareUrl)
            throws SecurityException, NoSuchMethodException {
      this.objectName = objectName;
      this.shareUrl = shareUrl;
   }

   public MutableBlobMetadata apply(AtmosObject from) {
      if (from == null)
         return null;
      MutableBlobMetadata to = new MutableBlobMetadataImpl();
      to.setId(from.getSystemMetadata().getObjectID());
      to.setLastModified(from.getSystemMetadata().getLastUserDataModification());
      HttpUtils.copy(from.getContentMetadata(), to.getContentMetadata());
      to.setName(objectName.apply(from));
      to.setUri(from.getContentMetadata().getUri());
      to.setContainer(Iterables.get(Splitter.on('/').split(from.getContentMetadata().getPath()), 0));
      if (from.getAllHeaders().containsEntry("x-emc-groupacl", "other=READ"))
         to.setPublicUri(shareUrl.apply(from.getContentMetadata().getPath()));
      if (from.getSystemMetadata().getType() == FileType.DIRECTORY) {
         to.setType(StorageType.FOLDER);
      } else {
         to.setType(StorageType.BLOB);
      }
      Map<String, String> lowerKeyMetadata = Maps.newHashMap();
      for (Entry<String, String> entry : from.getUserMetadata().getMetadata().entrySet()) {
         String key = entry.getKey().toLowerCase();
         if (!systemMetadata.contains(key))
            lowerKeyMetadata.put(key, entry.getValue());
      }
      to.setUserMetadata(lowerKeyMetadata);
      to.setSize(from.getContentMetadata().getContentLength());
      to.setTier(Tier.STANDARD);
      to.setETag(from.getSystemMetadata().getObjectID());
      to.getContentMetadata().setContentMD5(from.getSystemMetadata().getContentMD5());
      return to;
   }
}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/config/AtmosHttpApiModule.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.config;

import java.util.Date;
import java.util.concurrent.TimeUnit;

import jakarta.inject.Named;

import org.jclouds.Constants;
import org.jclouds.atmos.AtmosClient;
import org.jclouds.atmos.handlers.AtmosClientErrorRetryHandler;
import org.jclouds.atmos.handlers.AtmosServerErrorRetryHandler;
import org.jclouds.atmos.handlers.ParseAtmosErrorFromXmlContent;
import org.jclouds.date.DateService;
import org.jclouds.date.TimeStamp;
import org.jclouds.http.HttpErrorHandler;
import org.jclouds.http.HttpRetryHandler;
import org.jclouds.http.annotation.ClientError;
import org.jclouds.http.annotation.Redirection;
import org.jclouds.http.annotation.ServerError;
import org.jclouds.rest.ConfiguresHttpApi;
import org.jclouds.rest.config.HttpApiModule;

import com.google.common.base.Supplier;
import com.google.common.base.Suppliers;
import com.google.inject.Provides;

/**
 * Configures the EMC Atmos Online Storage authentication service connection, including logging and
 * http transport.
 */
@ConfiguresHttpApi
public class AtmosHttpApiModule extends HttpApiModule<AtmosClient> {

   @Override
   protected void configure() {
      install(new AtmosParserModule());
      install(new AtmosObjectModule());
      super.configure();
   }

   @Provides
   @TimeStamp
   protected final String guiceProvideTimeStamp(@TimeStamp Supplier<String> cache) {
      return provideTimeStamp(cache);
   }

   protected String provideTimeStamp(@TimeStamp Supplier<String> cache) {
      return cache.get();
   }

   /**
    * borrowing concurrency code to ensure that caching takes place properly
    */
   @Provides
   @TimeStamp
   final Supplier<String> provideTimeStampCache(@Named(Constants.PROPERTY_SESSION_INTERVAL) long seconds,
            final DateService dateService) {
      return Suppliers.memoizeWithExpiration(new Supplier<String>() {
         @Override
         public String get() {
            return dateService.rfc822DateFormat();
         }
      }, seconds, TimeUnit.SECONDS);
   }

   @Provides
   @TimeStamp
   protected final Long provideShareableUrlTimeout() {
      return new Date().getTime() + TimeUnit.HOURS.toMillis(1);
   }

   @Override
   protected void bindErrorHandlers() {
      bind(HttpErrorHandler.class).annotatedWith(Redirection.class).to(ParseAtmosErrorFromXmlContent.class);
      bind(HttpErrorHandler.class).annotatedWith(ClientError.class).to(ParseAtmosErrorFromXmlContent.class);
      bind(HttpErrorHandler.class).annotatedWith(ServerError.class).to(ParseAtmosErrorFromXmlContent.class);
   }

   @Override
   protected void bindRetryHandlers() {
      bind(HttpRetryHandler.class).annotatedWith(ClientError.class).to(AtmosClientErrorRetryHandler.class);
      bind(HttpRetryHandler.class).annotatedWith(ServerError.class).to(AtmosServerErrorRetryHandler.class);
   }

}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/config/AtmosObjectModule.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.config;

import org.jclouds.atmos.domain.AtmosObject;
import org.jclouds.atmos.domain.MutableContentMetadata;
import org.jclouds.blobstore.config.BlobStoreObjectModule;

import com.google.inject.AbstractModule;
import com.google.inject.Provides;

/**
 * Configures the domain object mappings needed for all Atmos implementations
 */
public class AtmosObjectModule extends AbstractModule {

   /**
    * explicit factories are created here as it has been shown that Assisted Inject is extremely
    * inefficient. http://code.google.com/p/google-guice/issues/detail?id=435
    */
   @Override
   protected void configure() {
      // for converters
      install(new BlobStoreObjectModule());
   }

   @Provides
   final AtmosObject provideAtmosObject(AtmosObject.Factory factory) {
      return factory.create((MutableContentMetadata) null);
   }

}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/config/AtmosParserModule.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.config;

import org.jclouds.json.config.GsonModule.DateAdapter;
import org.jclouds.json.config.GsonModule.Iso8601DateAdapter;

import com.google.inject.AbstractModule;

public class AtmosParserModule extends AbstractModule {

   @Override
   protected void configure() {
      bind(DateAdapter.class).to(Iso8601DateAdapter.class);
   }

}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/AtmosError.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.domain;

/**
 * When an Atmos Storage request is in error, the client receives an error response.
 * 
 * Provides access to EMC Atmos Online Storage resources via their REST API.
 */
public class AtmosError {
   private final int code;
   private final String message;
   private String stringSigned;

   @Override
   public String toString() {
      return "AtmosError [code=" + code + ", message=" + message
               + (stringSigned != null ? (", stringSigned=" + stringSigned) : "") + "]";
   }

   public AtmosError(int code, String message) {
      this.code = code;
      this.message = message;
   }

   public int getCode() {
      return code;
   }

   public String getMessage() {
      return message;
   }

   public void setStringSigned(String stringSigned) {
      this.stringSigned = stringSigned;
   }

   /**
    * @return what jclouds signed before sending the request.
    */
   public String getStringSigned() {
      return stringSigned;
   }

}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/AtmosObject.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.domain;

import org.jclouds.atmos.domain.internal.AtmosObjectImpl.AtmosObjectFactory;
import org.jclouds.io.PayloadEnclosing;
import org.jclouds.javax.annotation.Nullable;

import com.google.common.collect.Multimap;
import com.google.inject.ImplementedBy;

public interface AtmosObject extends PayloadEnclosing, Comparable<AtmosObject> {
   @ImplementedBy(AtmosObjectFactory.class)
   public interface Factory {
      AtmosObject create(@Nullable MutableContentMetadata contentMetadata);

      AtmosObject create(SystemMetadata systemMetadata, UserMetadata userMetadata);

      AtmosObject create(MutableContentMetadata contentMetadata, SystemMetadata systemMetadata,
            UserMetadata userMetadata);

   }

   MutableContentMetadata getContentMetadata();

   /**
    * @return System and User metadata relevant to this object.
    */
   SystemMetadata getSystemMetadata();

   UserMetadata getUserMetadata();

   Multimap<String, String> getAllHeaders();

   void setAllHeaders(Multimap<String, String> allHeaders);
}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/BoundedSet.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.domain;

import java.util.Set;

import org.jclouds.atmos.domain.internal.BoundedLinkedHashSet;
import org.jclouds.javax.annotation.Nullable;

import com.google.inject.ImplementedBy;

@ImplementedBy(BoundedLinkedHashSet.class)
public interface BoundedSet<T> extends Set<T> {

   @Nullable
   String getToken();

}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/DirectoryEntry.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.domain;

import java.util.Date;

import org.jclouds.javax.annotation.Nullable;

import com.google.common.base.Objects;

/**
 * Metadata of a Atmos Online object
 */
public class DirectoryEntry implements Comparable<DirectoryEntry> {
   private final String objectid;
   private final FileType type;
   private final String objname;
   private final long size;
   @Nullable private final Date modifiedTime;

   @Deprecated
   public DirectoryEntry(String objectid, FileType type, String objname, long size) {
      this(objectid, type, objname, size, null);
   }

   public DirectoryEntry(String objectid, FileType type, String objname, long size, Date modifiedTime) {
      this.objectid = objectid;
      this.objname = objname;
      this.type = type;
      this.size = size;
      this.modifiedTime = modifiedTime != null ? (Date) modifiedTime.clone() : null;
   }

   public String getObjectID() {
      return objectid;
   }

   public String getObjectName() {
      return objname;
   }

   public FileType getType() {
      return type;
   }

   public long getSize() {
      return size;
   }

   public Date getModifiedTime() {
      return modifiedTime != null ? (Date) modifiedTime.clone() : null;
   }

   public int compareTo(DirectoryEntry o) {
      if (getObjectName() == null)
         return -1;
      return (this == o) ? 0 : getObjectName().compareTo(o.getObjectName());
   }

   @Override
   public int hashCode() {
      return Objects.hashCode(objectid, objname, type, size);
   }

   @Override
   public boolean equals(Object obj) {
      if (this == obj)
         return true;
      if (obj == null)
         return false;
      if (getClass() != obj.getClass())
         return false;
      DirectoryEntry other = (DirectoryEntry) obj;
      return Objects.equal(objectid, other.objectid) &&
            Objects.equal(objname, other.objname) &&
            Objects.equal(type, other.type) &&
            Objects.equal(size, other.size);
   }

   @Override
   public String toString() {
      return "DirectoryEntry [type=" + type + ", objectid=" + objectid + ", objname=" + objname
               + ", size=" + size + "]";
   }
}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/FileType.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.domain;

public enum FileType {

   DIRECTORY, REGULAR, UNRECOGNIZED;

   public String value() {
      return name().toLowerCase();
   }

   public static FileType fromValue(String v) {
      try {
         return valueOf(v.toUpperCase());
      } catch (IllegalArgumentException e) {
         return UNRECOGNIZED;
      }
   }

}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/MutableContentMetadata.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.domain;

import java.net.URI;

import org.jclouds.atmos.domain.internal.DelegatingMutableContentMetadata;

import com.google.inject.ImplementedBy;

/**
 * metadata of the object
 */
@ImplementedBy(DelegatingMutableContentMetadata.class)
public interface MutableContentMetadata extends org.jclouds.io.MutableContentMetadata {

   String getName();

   void setName(String name);

   URI getUri();

   void setUri(URI uri);

   String getPath();

   void setPath(String path);
}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/SystemMetadata.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.domain;

import java.util.Date;

import org.jclouds.javax.annotation.Nullable;

/**
 * Metadata of a Atmos Online object
 */
public class SystemMetadata extends DirectoryEntry {

   private final Date atime;
   private final Date ctime;
   private final String gid;
   private final Date itime;
   private final Date mtime;
   private final int nlink;
   private final String policyname;
   private final long size;
   private final String uid;
   private final byte[] contentmd5;

   public SystemMetadata(@Nullable byte [] contentmd5, Date atime, Date ctime, String gid, Date itime, Date mtime, int nlink,
            String objectid, String objname, String policyname, long size, FileType type, String uid) {
      super(objectid, type, objname, size);
      this.contentmd5 = contentmd5;
      this.atime = atime;
      this.ctime = ctime;
      this.gid = gid;
      this.itime = itime;
      this.mtime = mtime;
      this.nlink = nlink;
      this.policyname = policyname;
      this.size = size;
      this.uid = uid;
   }

   public String getGroupID() {
      return gid;
   }

   public int getHardLinkCount() {
      return nlink;
   }

   public Date getInceptionTime() {
      return itime;
   }

   public Date getLastAccessTime() {
      return atime;
   }

   public Date getLastMetadataModification() {
      return mtime;
   }

   public Date getLastUserDataModification() {
      return ctime;
   }

   public String getPolicyName() {
      return policyname;
   }

   public long getSize() {
      return size;
   }

   public String getUserID() {
      return uid;
   }

   public byte[] getContentMD5() {
      return contentmd5;
   }

   @Override
   public int hashCode() {
      final int prime = 31;
      int result = super.hashCode();
      result = prime * result + ((atime == null) ? 0 : atime.hashCode());
      result = prime * result + ((ctime == null) ? 0 : ctime.hashCode());
      result = prime * result + ((gid == null) ? 0 : gid.hashCode());
      result = prime * result + ((itime == null) ? 0 : itime.hashCode());
      result = prime * result + ((mtime == null) ? 0 : mtime.hashCode());
      result = prime * result + nlink;
      result = prime * result + ((policyname == null) ? 0 : policyname.hashCode());
      result = prime * result + (int) (size ^ (size >>> 32));
      result = prime * result + ((uid == null) ? 0 : uid.hashCode());
      return result;
   }

   @Override
   public boolean equals(Object obj) {
      if (this == obj)
         return true;
      if (!super.equals(obj))
         return false;
      if (getClass() != obj.getClass())
         return false;
      SystemMetadata other = (SystemMetadata) obj;
      if (atime == null) {
         if (other.atime != null)
            return false;
      } else if (!atime.equals(other.atime))
         return false;
      if (ctime == null) {
         if (other.ctime != null)
            return false;
      } else if (!ctime.equals(other.ctime))
         return false;
      if (gid == null) {
         if (other.gid != null)
            return false;
      } else if (!gid.equals(other.gid))
         return false;
      if (itime == null) {
         if (other.itime != null)
            return false;
      } else if (!itime.equals(other.itime))
         return false;
      if (mtime == null) {
         if (other.mtime != null)
            return false;
      } else if (!mtime.equals(other.mtime))
         return false;
      if (nlink != other.nlink)
         return false;
      if (policyname == null) {
         if (other.policyname != null)
            return false;
      } else if (!policyname.equals(other.policyname))
         return false;
      if (size != other.size)
         return false;
      if (uid == null) {
         if (other.uid != null)
            return false;
      } else if (!uid.equals(other.uid))
         return false;
      return true;
   }

   @Override
   public String toString() {
      return "[type=" + getType() + ", id=" + getObjectID() + ", name=" + getObjectName() + "]";
   }

}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/UploadInfo.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.domain;

import java.net.URI;

public class UploadInfo {
   private final String token;
   private final URI host;

   public UploadInfo(String token, URI host) {
      this.token = token;
      this.host = host;
   }

   public String getToken() {
      return token;
   }

   public URI getHost() {
      return host;
   }

}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/UserMetadata.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.domain;

import static com.google.common.base.Preconditions.checkNotNull;

import java.util.Map;
import java.util.Set;

import com.google.common.collect.Maps;
import com.google.common.collect.Sets;

/**
 * User metadata
 */
public class UserMetadata {
   private final Map<String, String> metadata;
   private final Map<String, String> listableMetadata;
   private final Set<String> tags;
   private final Set<String> listableTags;

   public UserMetadata(Map<String, String> metadata, Map<String, String> listableMetadata, Iterable<String> tags,
         Iterable<String> listableTags) {
      this.metadata = Maps.newLinkedHashMap(checkNotNull(metadata, "metadata"));
      this.listableMetadata = Maps.newLinkedHashMap(checkNotNull(listableMetadata, "listableMetadata"));
      this.tags = Sets.newLinkedHashSet(checkNotNull(tags, "tags"));
      this.listableTags = Sets.newLinkedHashSet(checkNotNull(listableTags, "listableTags"));
   }

   public UserMetadata() {
      this.metadata = Maps.newLinkedHashMap();
      this.listableMetadata = Maps.newLinkedHashMap();
      this.tags = Sets.newLinkedHashSet();
      this.listableTags = Sets.newLinkedHashSet();
   }

   public Map<String, String> getMetadata() {
      return metadata;
   }

   public Map<String, String> getListableMetadata() {
      return listableMetadata;
   }

   public Set<String> getTags() {
      return tags;
   }

   public Set<String> getListableTags() {
      return listableTags;
   }

   @Override
   public String toString() {
      return "[metadata=" + metadata + ", listableMetadata=" + listableMetadata + ", tags=" + tags + ", listableTags="
            + listableTags + "]";
   }

   @Override
   public int hashCode() {
      final int prime = 31;
      int result = 1;
      result = prime * result + ((listableMetadata == null) ? 0 : listableMetadata.hashCode());
      result = prime * result + ((listableTags == null) ? 0 : listableTags.hashCode());
      result = prime * result + ((metadata == null) ? 0 : metadata.hashCode());
      result = prime * result + ((tags == null) ? 0 : tags.hashCode());
      return result;
   }

   @Override
   public boolean equals(Object obj) {
      if (this == obj)
         return true;
      if (obj == null)
         return false;
      if (getClass() != obj.getClass())
         return false;
      UserMetadata other = (UserMetadata) obj;
      if (listableMetadata == null) {
         if (other.listableMetadata != null)
            return false;
      } else if (!listableMetadata.equals(other.listableMetadata))
         return false;
      if (listableTags == null) {
         if (other.listableTags != null)
            return false;
      } else if (!listableTags.equals(other.listableTags))
         return false;
      if (metadata == null) {
         if (other.metadata != null)
            return false;
      } else if (!metadata.equals(other.metadata))
         return false;
      if (tags == null) {
         if (other.tags != null)
            return false;
      } else if (!tags.equals(other.tags))
         return false;
      return true;
   }

}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/internal/AtmosObjectImpl.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.domain.internal;

import static com.google.common.base.Preconditions.checkNotNull;

import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.inject.Singleton;

import org.jclouds.atmos.domain.AtmosObject;
import org.jclouds.atmos.domain.MutableContentMetadata;
import org.jclouds.atmos.domain.SystemMetadata;
import org.jclouds.atmos.domain.UserMetadata;
import org.jclouds.http.internal.PayloadEnclosingImpl;
import org.jclouds.io.Payload;

import com.google.common.collect.LinkedHashMultimap;
import com.google.common.collect.Multimap;

/**
 * Default Implementation of {@link AtmosObject}.
 */
public class AtmosObjectImpl extends PayloadEnclosingImpl implements AtmosObject, Comparable<AtmosObject> {
   @Singleton
   public static class AtmosObjectFactory implements AtmosObject.Factory {

      @Inject
      Provider<MutableContentMetadata> metadataProvider;

      public AtmosObject create(MutableContentMetadata contentMetadata) {
         return new AtmosObjectImpl(contentMetadata != null ? contentMetadata : metadataProvider.get());
      }

      public AtmosObject create(SystemMetadata systemMetadata, UserMetadata userMetadata) {
         return new AtmosObjectImpl(metadataProvider.get(), systemMetadata, userMetadata);
      }

      public AtmosObject create(MutableContentMetadata contentMetadata, SystemMetadata systemMetadata,
               UserMetadata userMetadata) {
         return new AtmosObjectImpl(contentMetadata, systemMetadata, userMetadata);
      }
   }

   private final UserMetadata userMetadata;
   private final SystemMetadata systemMetadata;

   public SystemMetadata getSystemMetadata() {
      return systemMetadata;
   }

   public UserMetadata getUserMetadata() {
      return userMetadata;
   }

   private MutableContentMetadata contentMetadata;
   private Multimap<String, String> allHeaders = LinkedHashMultimap.create();

   public AtmosObjectImpl(MutableContentMetadata contentMetadata, SystemMetadata systemMetadata,
            UserMetadata userMetadata) {
      this.contentMetadata = contentMetadata;
      this.systemMetadata = systemMetadata;
      this.userMetadata = userMetadata;
   }

   @Inject
   public AtmosObjectImpl(MutableContentMetadata contentMetadata) {
      this(contentMetadata, null, new UserMetadata());
   }

   /**
    * {@inheritDoc}
    */
   @Override
   public MutableContentMetadata getContentMetadata() {
      return contentMetadata;
   }

   /**
    * {@inheritDoc}
    */
   @Override
   public Multimap<String, String> getAllHeaders() {
      return allHeaders;
   }

   /**
    * {@inheritDoc}
    */
   @Override
   public void setAllHeaders(Multimap<String, String> allHeaders) {
      this.allHeaders = checkNotNull(allHeaders, "allHeaders");
   }

   /**
    * {@inheritDoc}
    */
   @Override
   public int compareTo(AtmosObject o) {
      if (getContentMetadata().getName() == null)
         return -1;
      return (this == o) ? 0 : getContentMetadata().getName().compareTo(o.getContentMetadata().getName());
   }

   @Override
   public int hashCode() {
      final int prime = 31;
      int result = super.hashCode();
      result = prime * result + ((contentMetadata == null) ? 0 : contentMetadata.hashCode());
      result = prime * result + ((systemMetadata == null) ? 0 : systemMetadata.hashCode());
      result = prime * result + ((userMetadata == null) ? 0 : userMetadata.hashCode());
      return result;
   }

   @Override
   public boolean equals(Object obj) {
      if (this == obj)
         return true;
      if (!super.equals(obj))
         return false;
      if (getClass() != obj.getClass())
         return false;
      AtmosObjectImpl other = (AtmosObjectImpl) obj;
      if (contentMetadata == null) {
         if (other.contentMetadata != null)
            return false;
      } else if (!contentMetadata.equals(other.contentMetadata))
         return false;
      if (systemMetadata == null) {
         if (other.systemMetadata != null)
            return false;
      } else if (!systemMetadata.equals(other.systemMetadata))
         return false;
      if (userMetadata == null) {
         if (other.userMetadata != null)
            return false;
      } else if (!userMetadata.equals(other.userMetadata))
         return false;
      return true;
   }

   @Override
   public String toString() {
      return "[contentMetadata=" + contentMetadata + "]";
   }

   @Override
   public void setPayload(Payload data) {
      this.payload = data;
      this.contentMetadata = new DelegatingMutableContentMetadata(contentMetadata.getUri(), contentMetadata.getName(),
               contentMetadata.getPath(), payload.getContentMetadata());
   }
}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/internal/BoundedLinkedHashSet.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.domain.internal;

import static com.google.common.base.Preconditions.checkNotNull;

import java.util.LinkedHashSet;

import org.jclouds.atmos.domain.BoundedSet;
import org.jclouds.javax.annotation.Nullable;

import com.google.common.collect.Iterables;

public class BoundedLinkedHashSet<T> extends LinkedHashSet<T> implements BoundedSet<T> {

   protected final String token;

   public BoundedLinkedHashSet(Iterable<T> contents, @Nullable String token) {
      Iterables.addAll(this, checkNotNull(contents, "contents"));
      this.token = token;
   }

   @Nullable
   public String getToken() {
      return token;
   }

   @Override
   public int hashCode() {
      final int prime = 31;
      int result = super.hashCode();
      result = prime * result + ((token == null) ? 0 : token.hashCode());
      return result;
   }

   @Override
   public boolean equals(Object obj) {
      if (this == obj)
         return true;
      if (!super.equals(obj))
         return false;
      if (getClass() != obj.getClass())
         return false;
      BoundedLinkedHashSet<?> other = (BoundedLinkedHashSet<?>) obj;
      if (token == null) {
         if (other.token != null)
            return false;
      } else if (!token.equals(other.token))
         return false;
      return true;
   }

   @Override
   public String toString() {
      return "[token=" + token + ", contents=" + super.toString() + "]";
   }

}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/internal/DelegatingMutableContentMetadata.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.domain.internal;

import java.net.URI;
import java.util.Date;

import org.jclouds.atmos.domain.MutableContentMetadata;
import org.jclouds.io.ContentMetadataBuilder;
import org.jclouds.io.payloads.BaseMutableContentMetadata;

import com.google.common.hash.HashCode;

public class DelegatingMutableContentMetadata implements MutableContentMetadata {
   private URI uri;
   private String name;
   private String path;
   private final org.jclouds.io.MutableContentMetadata delegate;

   public DelegatingMutableContentMetadata() {
      this(null, null, null, new BaseMutableContentMetadata());
   }

   public DelegatingMutableContentMetadata(URI uri, String name, String path,
            org.jclouds.io.MutableContentMetadata delegate) {
      this.uri = uri;
      this.name = name;
      this.delegate = delegate;
      this.path = path;
   }

   @Override
   public Long getContentLength() {
      return delegate.getContentLength();
   }

   /** @deprecated use {@link #getContentMD5AsHashCode()} instead. */
   @Deprecated
   @Override
   public byte[] getContentMD5() {
      return delegate.getContentMD5();
   }

   @Override
   public HashCode getContentMD5AsHashCode() {
      return delegate.getContentMD5AsHashCode();
   }

   @Override
   public String getContentType() {
      return delegate.getContentType();
   }

   @Override
   public String getName() {
      return name;
   }

   @Override
   public void setContentLength(Long contentLength) {
      delegate.setContentLength(contentLength);
   }

   /** @deprecated use {@link #setContentMD5(HashCode)} instead. */
   @Deprecated
   @Override
   public void setContentMD5(byte[] contentMD5) {
      delegate.setContentMD5(contentMD5);
   }

   @Override
   public void setContentMD5(HashCode contentMD5) {
      delegate.setContentMD5(contentMD5);
   }

   @Override
   public void setContentType(String contentType) {
      delegate.setContentType(contentType);
   }

   @Override
   public void setName(String name) {
      this.name = name;
   }

   @Override
   public boolean equals(Object obj) {
      if (this == obj)
         return true;
      if (obj == null)
         return false;
      if (getClass() != obj.getClass())
         return false;
      DelegatingMutableContentMetadata other = (DelegatingMutableContentMetadata) obj;
      if (uri == null) {
         if (other.uri != null)
            return false;
      } else if (!uri.equals(other.uri))
         return false;
      return true;
   }

   @Override
   public int hashCode() {
      final int prime = 31;
      int result = 1;
      result = prime * result + ((uri == null) ? 0 : uri.hashCode());
      return result;
   }

   @Override
   public String toString() {
      return "[uri=" + uri + ", name=" + name + ", path=" + path + ", delegate=" + delegate + "]";
   }

   public org.jclouds.io.MutableContentMetadata getDelegate() {
      return delegate;
   }

   @Override
   public void setCacheControl(String cacheControl) {
      delegate.setCacheControl(cacheControl);
   }

   @Override
   public void setContentDisposition(String contentDisposition) {
      delegate.setContentDisposition(contentDisposition);
   }

   @Override
   public void setContentEncoding(String contentEncoding) {
      delegate.setContentEncoding(contentEncoding);
   }

   @Override
   public void setContentLanguage(String contentLanguage) {
      delegate.setContentLanguage(contentLanguage);
   }

   @Override
   public String getCacheControl() {
      return delegate.getCacheControl();
   }

   @Override
   public String getContentDisposition() {
      return delegate.getContentDisposition();
   }

   @Override
   public String getContentEncoding() {
      return delegate.getContentEncoding();
   }

   @Override
   public String getContentLanguage() {
      return delegate.getContentLanguage();
   }

   @Override
   public void setExpires(Date expires) {
      delegate.setExpires(expires);
   }

   @Override
   public Date getExpires() {
      return delegate.getExpires();
   }

   @Override
   public ContentMetadataBuilder toBuilder() {
      return delegate.toBuilder();
   }

   @Override
   public URI getUri() {
      return uri;
   }

   @Override
   public void setUri(URI uri) {
      this.uri = uri;
   }

   @Override
   public String getPath() {
      return path;
   }

   @Override
   public void setPath(String path) {
      this.path = path;
   }

}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/fallbacks/EndpointIfAlreadyExists.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.fallbacks;

import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.base.Throwables.propagate;

import java.net.URI;

import org.jclouds.Fallback;
import org.jclouds.blobstore.KeyAlreadyExistsException;
import org.jclouds.http.HttpRequest;
import org.jclouds.javax.annotation.Nullable;
import org.jclouds.rest.InvocationContext;

import com.google.common.annotations.VisibleForTesting;

public class EndpointIfAlreadyExists implements Fallback<URI>, InvocationContext<EndpointIfAlreadyExists> {

   private URI endpoint;

   @Override
   public URI createOrPropagate(Throwable t) throws Exception {
      if (checkNotNull(t, "throwable") instanceof KeyAlreadyExistsException) {
         return endpoint;
      }
      throw propagate(t);
   }

   @Override
   public EndpointIfAlreadyExists setContext(HttpRequest request) {
      return setEndpoint(request == null ? null : request.getEndpoint());
   }

   @VisibleForTesting
   EndpointIfAlreadyExists setEndpoint(@Nullable URI endpoint) {
      this.endpoint = endpoint;
      return this;
   }

}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/fallbacks/TrueOn404FalseOnPathNotEmpty.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.fallbacks;

import static com.google.common.base.Throwables.propagate;
import static org.jclouds.util.Throwables2.getFirstThrowableOfType;

import org.jclouds.Fallback;
import org.jclouds.atmos.AtmosResponseException;
import org.jclouds.atmos.reference.AtmosErrorCode;
import org.jclouds.http.HttpUtils;

public final class TrueOn404FalseOnPathNotEmpty implements Fallback<Boolean> {
   @Override
   public Boolean createOrPropagate(Throwable t) throws Exception {
      if (HttpUtils.contains404(t)) {
         return true;
      }
      AtmosResponseException exception = getFirstThrowableOfType(t, AtmosResponseException.class);
      if (exception != null && exception.getError().getCode() == AtmosErrorCode.DIRECTORY_NOT_EMPTY.getCode()) {
         return false;
      }
      throw propagate(t);
   }
}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/filters/ShareUrl.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.filters;

import static com.google.common.base.Throwables.propagate;
import static com.google.common.io.BaseEncoding.base64;
import static com.google.common.io.ByteStreams.readBytes;
import static org.jclouds.Constants.LOGGER_SIGNATURE;
import static org.jclouds.crypto.Macs.asByteProcessor;
import static org.jclouds.http.Uris.uriBuilder;
import static org.jclouds.util.Strings2.toInputStream;

import java.io.IOException;
import java.net.URI;
import java.security.InvalidKeyException;

import jakarta.annotation.Resource;
import jakarta.inject.Inject;
import jakarta.inject.Named;
import jakarta.inject.Singleton;

import org.jclouds.crypto.Crypto;
import org.jclouds.date.TimeStamp;
import org.jclouds.domain.Credentials;
import org.jclouds.http.HttpException;
import org.jclouds.location.Provider;
import org.jclouds.logging.Logger;

import com.google.common.base.Function;
import com.google.common.base.Supplier;
import com.google.common.collect.ImmutableMap;
import com.google.common.io.ByteProcessor;

/**
 * Signs the EMC Atmos Online Storage request.
 * 
 * @see <a href="https://community.emc.com/community/labs/atmos_online" />
 */
@Singleton
public class ShareUrl implements Function<String, URI> {

   private final Supplier<Credentials> creds;
   private final Supplier<URI> provider;
   private final jakarta.inject.Provider<Long> timeStampProvider;
   private final Crypto crypto;

   @Resource
   Logger logger = Logger.NULL;

   @Resource
   @Named(LOGGER_SIGNATURE)
   Logger signatureLog = Logger.NULL;

   @Inject
   public ShareUrl(@Provider Supplier<Credentials> creds, @Provider Supplier<URI> provider,
         @TimeStamp jakarta.inject.Provider<Long> timeStampProvider, Crypto crypto) {
      this.creds = creds;
      this.provider = provider;
      this.timeStampProvider = timeStampProvider;
      this.crypto = crypto;
   }

   @Override
   public URI apply(String path) throws HttpException {
      String requestedResource = new StringBuilder().append("/rest/namespace/").append(path).toString();
      String expires = timeStampProvider.get().toString();
      String signature = signString(createStringToSign(requestedResource, expires));
      return uriBuilder(provider.get())
            .replaceQuery(ImmutableMap.of("uid", creds.get().identity, "expires", expires, "signature", signature))
            .appendPath(requestedResource).build();
   }

   public String createStringToSign(String requestedResource, String expires) {
      StringBuilder toSign = new StringBuilder();
      toSign.append("GET\n");
      toSign.append(requestedResource.toLowerCase()).append("\n");
      toSign.append(creds.get().identity).append("\n");
      toSign.append(expires);
      return toSign.toString();
   }

   public String signString(String toSign) {
      try {
         ByteProcessor<byte[]> hmacSHA1 = asByteProcessor(crypto.hmacSHA1(base64().decode(creds.get().credential)));
         return base64().encode(readBytes(toInputStream(toSign), hmacSHA1));
      } catch (InvalidKeyException e) {
         throw propagate(e);
      } catch (IOException e) {
         throw propagate(e);
      }
   }

}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/filters/SignRequest.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.filters;

import static com.google.common.io.BaseEncoding.base64;
import static com.google.common.io.ByteStreams.readBytes;
import static org.jclouds.Constants.LOGGER_SIGNATURE;
import static org.jclouds.crypto.Macs.asByteProcessor;
import static org.jclouds.util.Patterns.NEWLINE_PATTERN;
import static org.jclouds.util.Strings2.toInputStream;

import java.util.Set;

import jakarta.annotation.Resource;
import jakarta.inject.Inject;
import jakarta.inject.Named;
import jakarta.inject.Provider;
import jakarta.inject.Singleton;

import org.jclouds.atmos.reference.AtmosHeaders;
import org.jclouds.crypto.Crypto;
import org.jclouds.date.TimeStamp;
import org.jclouds.domain.Credentials;
import org.jclouds.http.HttpException;
import org.jclouds.http.HttpRequest;
import org.jclouds.http.HttpRequestFilter;
import org.jclouds.http.HttpUtils;
import org.jclouds.http.internal.SignatureWire;
import org.jclouds.logging.Logger;
import org.jclouds.util.Strings2;

import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Strings;
import com.google.common.base.Supplier;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableMap.Builder;
import com.google.common.collect.Multimaps;
import com.google.common.collect.Sets;
import com.google.common.io.ByteProcessor;
import com.google.common.net.HttpHeaders;

/**
 * Signs the EMC Atmos Online Storage request.
 * 
 * @see <a href="https://community.emc.com/community/labs/atmos_online" />
 */
@Singleton
public class SignRequest implements HttpRequestFilter {

   private final SignatureWire signatureWire;
   private final Supplier<Credentials> creds;
   private final Provider<String> timeStampProvider;
   private final Crypto crypto;
   private final HttpUtils utils;

   @Resource
   Logger logger = Logger.NULL;

   @Resource
   @Named(LOGGER_SIGNATURE)
   Logger signatureLog = Logger.NULL;

   @Inject
   public SignRequest(SignatureWire signatureWire, @org.jclouds.location.Provider Supplier<Credentials> creds,
         @TimeStamp Provider<String> timeStampProvider, Crypto crypto, HttpUtils utils) {
      this.signatureWire = signatureWire;
      this.creds = creds;
      this.timeStampProvider = timeStampProvider;
      this.crypto = crypto;
      this.utils = utils;
   }

   @Override
   public HttpRequest filter(HttpRequest request) throws HttpException {
      Builder<String, String> builder = ImmutableMap.builder();
      builder.put(AtmosHeaders.UID, creds.get().identity);
      String date = timeStampProvider.get();
      builder.put(HttpHeaders.DATE, date);
      if (request.getFirstHeaderOrNull(AtmosHeaders.DATE) != null)
         builder.put(AtmosHeaders.DATE, date);
      request = request.toBuilder().replaceHeaders(Multimaps.forMap(builder.build())).build();
      String signature = calculateSignature(createStringToSign(request));
      request = request.toBuilder().replaceHeader(AtmosHeaders.SIGNATURE, signature).build();
      utils.logRequest(signatureLog, request, "<<");
      return request;
   }

   public String createStringToSign(HttpRequest request) {
      utils.logRequest(signatureLog, request, ">>");
      StringBuilder buffer = new StringBuilder();
      // re-sign the request
      appendMethod(request, buffer);
      appendPayloadMetadata(request, buffer);
      appendHttpHeaders(request, buffer);
      appendCanonicalizedResource(request, buffer);
      appendCanonicalizedHeaders(request, buffer);
      if (signatureWire.enabled())
         signatureWire.output(buffer.toString());
      return buffer.toString();
   }

   public String calculateSignature(String toSign) {
      String signature = signString(toSign);
      if (signatureWire.enabled())
         signatureWire.input(Strings2.toInputStream(signature));
      return signature;
   }

   public String signString(String toSign) {
      try {
         ByteProcessor<byte[]> hmacSHA1 = asByteProcessor(crypto.hmacSHA1(base64().decode(creds.get().credential)));
         return base64().encode(readBytes(toInputStream(toSign), hmacSHA1));
      } catch (Exception e) {
         throw new HttpException("error signing request", e);
      }
   }

   private void appendMethod(HttpRequest request, StringBuilder toSign) {
      toSign.append(request.getMethod()).append("\n");
   }
   
   private void appendCanonicalizedHeaders(HttpRequest request, StringBuilder toSign) {
      // TreeSet == Sort the headers alphabetically.
      Set<String> headers = Sets.newTreeSet(request.getHeaders().keySet());
      for (String header : headers) {
         if (header.startsWith("x-emc-") && !header.equals(AtmosHeaders.SIGNATURE)) {
            // Convert all header names to lowercase.
            toSign.append(header.toLowerCase()).append(":");
            // For headers with values that span multiple lines, convert them into one line by
            // replacing any
            // newline characters and extra embedded white spaces in the value.
            for (String value : request.getHeaders().get(header)) {
               value = value.replace("  ", " ");
               value = NEWLINE_PATTERN.matcher(value).replaceAll("");
               toSign.append(value).append(' ');
            }
            toSign.deleteCharAt(toSign.lastIndexOf(" "));
            // Concatenate all headers together, using newlines (\n) separating each header from the
            // next one.
            toSign.append("\n");
         }
      }
      // There should be no terminating newline character at the end of the last header.
      if (toSign.charAt(toSign.length() - 1) == '\n')
         toSign.deleteCharAt(toSign.length() - 1);
   }

   private void appendPayloadMetadata(HttpRequest request, StringBuilder buffer) {
      buffer.append(
            Strings.nullToEmpty(request.getPayload() == null ? null : request.getPayload().getContentMetadata()
                  .getContentType())).append("\n");
   }

   @VisibleForTesting
   void appendHttpHeaders(HttpRequest request, StringBuilder toSign) {
      // Only the value is used, not the header
      // name. If a request does not include the header, this is an empty string.
      toSign.append(HttpUtils.nullToEmpty(request.getHeaders().get("Range")).toLowerCase()).append("\n");
      // Standard HTTP header, in UTC format. Only the date value is used, not the header name.
      toSign.append(request.getFirstHeaderOrNull(HttpHeaders.DATE)).append("\n");
   }

   @VisibleForTesting
   void appendCanonicalizedResource(HttpRequest request, StringBuilder toSign) {
      // Path portion of the HTTP request URI, in lowercase.
      toSign.append(request.getEndpoint().getRawPath().toLowerCase());
      String query = request.getEndpoint().getRawQuery();
      if (query != null) {
         toSign.append("?").append(query);
      }
      toSign.append("\n");
   }

}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/functions/AtmosObjectName.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.functions;

import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;

import jakarta.inject.Singleton;

import org.jclouds.atmos.domain.AtmosObject;

import com.google.common.base.Function;

@Singleton
public class AtmosObjectName implements Function<Object, String> {
   @Override
   public String apply(Object input) {
      checkArgument(checkNotNull(input, "input") instanceof AtmosObject,
            "this function is only valid for AtmosObjects!");
      AtmosObject object = AtmosObject.class.cast(input);

      return checkNotNull(object.getContentMetadata().getName() != null ? object.getContentMetadata().getName()
            : object.getSystemMetadata().getObjectName(), "objectName");
   }

}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/functions/ParseDirectoryListFromContentAndHeaders.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.functions;

import static com.google.common.base.Preconditions.checkNotNull;

import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.inject.Singleton;

import org.jclouds.atmos.domain.BoundedSet;
import org.jclouds.atmos.domain.DirectoryEntry;
import org.jclouds.atmos.domain.internal.BoundedLinkedHashSet;
import org.jclouds.atmos.reference.AtmosHeaders;
import org.jclouds.atmos.xml.ListDirectoryResponseHandler;
import org.jclouds.http.HttpResponse;
import org.jclouds.http.functions.ParseSax;
import org.jclouds.http.functions.ParseSax.Factory;

import com.google.common.base.Function;

/**
 * This parses {@link BoundedSet} from HTTP headers and xml content.
 */
@Singleton
public class ParseDirectoryListFromContentAndHeaders implements Function<HttpResponse, BoundedSet<DirectoryEntry>> {

   private final ParseSax.Factory factory;
   private final Provider<ListDirectoryResponseHandler> listHandlerProvider;

   @Inject
   ParseDirectoryListFromContentAndHeaders(Factory factory, Provider<ListDirectoryResponseHandler> listHandlerProvider) {
      this.factory = checkNotNull(factory, "factory");
      this.listHandlerProvider = checkNotNull(listHandlerProvider, "listHandlerProvider");
   }

   /**
    * parses the http response headers to create a new {@link BoundedSet} object.
    */
   public BoundedSet<DirectoryEntry> apply(HttpResponse from) {
      checkNotNull(from, "http response");
      String token = from.getFirstHeaderOrNull(AtmosHeaders.TOKEN);
      return new BoundedLinkedHashSet<DirectoryEntry>(factory.create(listHandlerProvider.get()).parse(
            from.getPayload().getInput()), token);
   }
}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/functions/ParseObjectFromHeadersAndHttpContent.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.functions;

import static com.google.common.base.Preconditions.checkNotNull;
import static org.jclouds.http.HttpUtils.attemptToParseSizeAndRangeFromHeaders;

import java.net.URI;

import jakarta.inject.Inject;

import org.jclouds.atmos.domain.AtmosObject;
import org.jclouds.http.HttpRequest;
import org.jclouds.http.HttpResponse;
import org.jclouds.rest.InvocationContext;
import org.jclouds.rest.internal.GeneratedHttpRequest;

import com.google.common.base.Function;

/**
 * Parses response headers and creates a new AtmosObject from them and the HTTP content.
 * 
 * @see ParseMetadataFromHeaders
 */
public class ParseObjectFromHeadersAndHttpContent implements Function<HttpResponse, AtmosObject>,
         InvocationContext<ParseObjectFromHeadersAndHttpContent> {

   private final ParseSystemMetadataFromHeaders systemMetadataParser;
   private final ParseUserMetadataFromHeaders userMetadataParser;
   private final AtmosObject.Factory objectProvider;
   private URI uri;
   private String path;

   @Inject
   public ParseObjectFromHeadersAndHttpContent(ParseSystemMetadataFromHeaders systemMetadataParser,
            ParseUserMetadataFromHeaders userMetadataParser, AtmosObject.Factory objectProvider) {
      this.systemMetadataParser = checkNotNull(systemMetadataParser, "systemMetadataParser");
      this.userMetadataParser = checkNotNull(userMetadataParser, "userMetadataParser");
      this.objectProvider = checkNotNull(objectProvider, "objectProvider");
   }

   /**
    * First, calls {@link ParseSystemAndUserMetadataFromHeaders}.
    * 
    * Then, sets the object size based on the Content-Length header and adds the content to the
    * {@link AtmosObject} result.
    * 
    * @throws org.jclouds.http.HttpException
    */
   public AtmosObject apply(HttpResponse from) {
      checkNotNull(from, "http response");
      AtmosObject object = objectProvider.create(systemMetadataParser.apply(from), userMetadataParser.apply(from));
      object.getContentMetadata().setName(object.getSystemMetadata().getObjectName());
      object.getContentMetadata().setPath(path);
      object.getContentMetadata().setUri(uri);
      object.getAllHeaders().putAll(from.getHeaders());
      object.setPayload(from.getPayload());
      object.getContentMetadata().setContentLength(attemptToParseSizeAndRangeFromHeaders(from));
      object.getContentMetadata().setContentMD5(object.getSystemMetadata().getContentMD5());
      return object;
   }

   @Override
   public ParseObjectFromHeadersAndHttpContent setContext(HttpRequest request) {
      this.uri = request.getEndpoint();
      return setPath(GeneratedHttpRequest.class.cast(request).getInvocation().getArgs().get(0).toString());
   }

   private ParseObjectFromHeadersAndHttpContent setPath(String path) {
      this.path = path;
      return this;
   }
}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/functions/ParseSystemMetadataFromHeaders.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.functions;

import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.io.BaseEncoding.base16;

import java.util.Map;

import jakarta.inject.Inject;
import jakarta.inject.Singleton;

import org.jclouds.atmos.domain.FileType;
import org.jclouds.atmos.domain.SystemMetadata;
import org.jclouds.atmos.reference.AtmosHeaders;
import org.jclouds.date.DateService;
import org.jclouds.http.HttpResponse;

import com.google.common.base.Function;
import com.google.common.base.Splitter;

@Singleton
public class ParseSystemMetadataFromHeaders implements Function<HttpResponse, SystemMetadata> {
   private final DateService dateService;

   @Inject
   public ParseSystemMetadataFromHeaders(DateService dateService) {
      this.dateService = checkNotNull(dateService, "dateService");
   }

   public SystemMetadata apply(HttpResponse from) {
      checkNotNull(from, "http response");
      String meta = checkNotNull(from.getFirstHeaderOrNull(AtmosHeaders.META), AtmosHeaders.META);
      Map<String, String> metaMap = Splitter.on(", ").withKeyValueSeparator('=').split(meta);
      assert metaMap.size() >= 12 : String.format("Should be 12 entries in %s", metaMap);

      byte[] md5 = null;
      String wschecksum = from.getFirstHeaderOrNull(AtmosHeaders.CHECKSUM);
      if (wschecksum != null) {
         String[] parts = wschecksum.split("/");
         if (parts[0].equalsIgnoreCase("MD5") && parts.length == 3) {
            md5 = base16().lowerCase().decode(parts[2]);
         }
      }

      return new SystemMetadata(md5, dateService.iso8601SecondsDateParse(checkNotNull(metaMap.get("atime"), "atime")),
            dateService.iso8601SecondsDateParse(checkNotNull(metaMap.get("ctime"), "ctime")), checkNotNull(
                  metaMap.get("gid"), "gid"), dateService.iso8601SecondsDateParse(checkNotNull(metaMap.get("itime"),
                  "itime")), dateService.iso8601SecondsDateParse(checkNotNull(metaMap.get("mtime"), "mtime")),
            Integer.parseInt(checkNotNull(metaMap.get("nlink"), "nlink")), checkNotNull(metaMap.get("objectid"),
                  "objectid"), checkNotNull(metaMap.get("objname"), "objname"), checkNotNull(metaMap.get("policyname"),
                  "policyname"), Long.parseLong(checkNotNull(metaMap.get("size"), "size")),
            FileType.fromValue(checkNotNull(metaMap.get("type"), "type")), checkNotNull(metaMap.get("uid"), "uid"));
   }
}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/functions/ParseUserMetadataFromHeaders.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.functions;

import static com.google.common.base.Preconditions.checkNotNull;

import java.util.Map;
import java.util.Set;

import jakarta.inject.Singleton;

import org.jclouds.atmos.domain.UserMetadata;
import org.jclouds.atmos.reference.AtmosHeaders;
import org.jclouds.http.HttpResponse;

import com.google.common.base.Function;
import com.google.common.base.Predicates;
import com.google.common.base.Splitter;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Maps;

@Singleton
public class ParseUserMetadataFromHeaders implements Function<HttpResponse, UserMetadata> {
   private static final Set<String> SYS_KEYS = ImmutableSet.of(
         "atime", "ctime", "gid", "itime", "mtime", "nlink",
         "parent",
         "policyname", "size", "uid", "content-md5", "objectid", "objname", "type");

   public UserMetadata apply(HttpResponse from) {
      checkNotNull(from, "http response");

      Map<String, String> meta = Maps.filterKeys(
            getMetaMap(checkNotNull(from.getFirstHeaderOrNull(AtmosHeaders.META), AtmosHeaders.META)),
            Predicates.not(Predicates.in(SYS_KEYS)));

      Map<String, String> listableMeta = (from.getFirstHeaderOrNull(AtmosHeaders.LISTABLE_META) != null) ? getMetaMap(from
            .getFirstHeaderOrNull(AtmosHeaders.LISTABLE_META)) : ImmutableMap.<String, String> of();

      Iterable<String> tags = (from.getFirstHeaderOrNull(AtmosHeaders.TAGS) != null) ? Splitter.on(", ").split(
            from.getFirstHeaderOrNull(AtmosHeaders.TAGS)) : ImmutableSet.<String> of();

      Iterable<String> listableTags = (from.getFirstHeaderOrNull(AtmosHeaders.LISTABLE_TAGS) != null) ? Splitter
            .on(", ").split(from.getFirstHeaderOrNull(AtmosHeaders.LISTABLE_TAGS)) : ImmutableSet.<String> of();

      return new UserMetadata(meta, listableMeta, tags, listableTags);
   }

   private static Map<String, String> getMetaMap(String meta) {
      return Splitter.on(", ").withKeyValueSeparator('=').split(meta);
   }
}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/functions/ReturnTrueIfGroupACLIsOtherRead.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.functions;

import static com.google.common.base.Preconditions.checkNotNull;

import jakarta.inject.Singleton;

import org.jclouds.http.HttpResponse;

import com.google.common.base.Function;

@Singleton
public class ReturnTrueIfGroupACLIsOtherRead implements Function<HttpResponse, Boolean> {

   public Boolean apply(HttpResponse from) {
      checkNotNull(from, "http response");
      return from.getHeaders().containsEntry("x-emc-groupacl", "other=READ");
   }
}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/handlers/AtmosClientErrorRetryHandler.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.handlers;

import jakarta.annotation.Resource;
import jakarta.inject.Named;

import org.jclouds.Constants;
import org.jclouds.atmos.domain.AtmosError;
import org.jclouds.atmos.reference.AtmosErrorCode;
import org.jclouds.atmos.util.AtmosUtils;
import org.jclouds.http.HttpCommand;
import org.jclouds.http.HttpException;
import org.jclouds.http.HttpResponse;
import org.jclouds.http.HttpRetryHandler;
import org.jclouds.http.HttpUtils;
import org.jclouds.http.handlers.BackoffLimitedRetryHandler;
import org.jclouds.logging.Logger;

import com.google.inject.Inject;

/**
 * Handles Retryable responses with error codes in the 4xx range
 * 
 * @see Error codes section at <a href="https://www.synaptic.att.com/assets/us/en/home/Atmos_Programmers_Guide_1.3.4A.pdf" />
 */
public class AtmosClientErrorRetryHandler implements HttpRetryHandler {
   private final AtmosUtils utils;
   private final BackoffLimitedRetryHandler backoffHandler;

   @Inject
   public AtmosClientErrorRetryHandler(BackoffLimitedRetryHandler backoffHandler,
            AtmosUtils utils) {
      this.backoffHandler = backoffHandler;
      this.utils = utils;
   }

   @Inject(optional = true)
   @Named(Constants.PROPERTY_MAX_RETRIES)
   private int retryCountLimit = 5;
   @Resource
   protected Logger logger = Logger.NULL;

   public boolean shouldRetryRequest(HttpCommand command, HttpResponse response) {
      if (command.getFailureCount() > retryCountLimit)
         return false;
      if (response.getStatusCode() == 404 && command.getCurrentRequest().getMethod().equals("DELETE")) {
         command.incrementFailureCount();
         return true;
      } else if (response.getStatusCode() == 409) {
         byte[] content = HttpUtils.closeClientButKeepContentStream(response);
         // Content can be null in the case of HEAD requests
         if (content != null) {
            try {
               AtmosError error = utils.parseAtmosErrorFromContent(command, response,
                        new String(content));
               if (error.getCode() == AtmosErrorCode.CONFLICTING_OPERATION.getCode()) {
                  return backoffHandler.shouldRetryRequest(command, response);
               }
               // don't increment count before here, since backoff handler does already
               command.incrementFailureCount();
            } catch (HttpException e) {
               logger.warn(e, "error parsing response: %s", new String(content));
            }
         } else {
            command.incrementFailureCount();
         }
         return true;
      }
      return false;
   }

}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/handlers/AtmosServerErrorRetryHandler.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.handlers;

import jakarta.annotation.Resource;
import jakarta.inject.Named;

import org.jclouds.Constants;
import org.jclouds.atmos.domain.AtmosError;
import org.jclouds.atmos.reference.AtmosErrorCode;
import org.jclouds.atmos.util.AtmosUtils;
import org.jclouds.http.HttpCommand;
import org.jclouds.http.HttpException;
import org.jclouds.http.HttpResponse;
import org.jclouds.http.HttpRetryHandler;
import org.jclouds.http.HttpUtils;
import org.jclouds.http.handlers.BackoffLimitedRetryHandler;
import org.jclouds.logging.Logger;

import com.google.inject.Inject;

/**
 * Handles Retryable responses with error codes in the 5xx range
 *
 * @see Error codes section at <a href="https://www.synaptic.att.com/assets/us/en/home/Atmos_Programmers_Guide_1.3.4A.pdf" />
 */
public class AtmosServerErrorRetryHandler implements HttpRetryHandler {
   private final AtmosUtils utils;
   private final BackoffLimitedRetryHandler backoffHandler;

   @Inject
   public AtmosServerErrorRetryHandler(BackoffLimitedRetryHandler backoffHandler,
            AtmosUtils utils) {
      this.backoffHandler = backoffHandler;
      this.utils = utils;
   }

   @Inject(optional = true)
   @Named(Constants.PROPERTY_MAX_RETRIES)
   private int retryCountLimit = 5;
   @Resource
   protected Logger logger = Logger.NULL;

   public boolean shouldRetryRequest(HttpCommand command, HttpResponse response) {
      if (command.getFailureCount() > retryCountLimit) {
         return false;
      }
      if (response.getStatusCode() == 500) {
         byte[] content = HttpUtils.closeClientButKeepContentStream(response);
         // Content can be null in the case of HEAD requests
         if (content != null) {
            try {
               AtmosError error = utils.parseAtmosErrorFromContent(command, response,
                        new String(content));
               if (error.getCode() == AtmosErrorCode.SERVER_BUSY.getCode()) {
                  return backoffHandler.shouldRetryRequest(command, response);
               }
               // don't increment count before here, since backoff handler does already
               command.incrementFailureCount();
            } catch (HttpException e) {
               logger.warn(e, "error parsing response: %s", new String(content));
            }
         } else {
            command.incrementFailureCount();
         }
         return false;
      }
      return false;
   }

}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/handlers/ParseAtmosErrorFromXmlContent.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.handlers;

import static org.jclouds.http.HttpUtils.releasePayload;

import java.io.File;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import jakarta.annotation.Resource;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;

import org.jclouds.atmos.AtmosResponseException;
import org.jclouds.atmos.domain.AtmosError;
import org.jclouds.atmos.reference.AtmosErrorCode;
import org.jclouds.atmos.util.AtmosUtils;
import org.jclouds.blobstore.ContainerNotFoundException;
import org.jclouds.blobstore.KeyAlreadyExistsException;
import org.jclouds.blobstore.KeyNotFoundException;
import org.jclouds.http.HttpCommand;
import org.jclouds.http.HttpErrorHandler;
import org.jclouds.http.HttpResponse;
import org.jclouds.http.HttpResponseException;
import org.jclouds.logging.Logger;
import org.jclouds.rest.AuthorizationException;
import org.jclouds.util.Strings2;

/**
 * This will parse and set an appropriate exception on the command object.
 * 
 * @see AtmosError
 */
@Singleton
public class ParseAtmosErrorFromXmlContent implements HttpErrorHandler {
   @Resource
   protected Logger logger = Logger.NULL;

   private final AtmosUtils utils;

   @Inject
   public ParseAtmosErrorFromXmlContent(AtmosUtils utils) {
      this.utils = utils;
   }

   public static final Pattern DIRECTORY_PATH = Pattern.compile("^/rest/namespace/?([^/]+)/$");
   public static final Pattern DIRECTORY_KEY_PATH = Pattern.compile("^/rest/namespace/?([^/]+)/(.*)");

   public void handleError(HttpCommand command, HttpResponse response) {
      Exception exception = new HttpResponseException(command, response);
      try {
         AtmosError error = null;
         if (response.getPayload() != null) {
            try {
               String content = Strings2.toStringAndClose(response.getPayload().openStream());
               if (content != null && content.indexOf('<') >= 0) {
                  error = utils.parseAtmosErrorFromContent(command, response, Strings2.toInputStream(content));
               } else {
                  exception = content != null ? new HttpResponseException(command, response, content) : exception;
               }
            } catch (IOException e) {
               logger.warn(e, "exception reading error from response", response);
            }
         }
         if (error != null && error.getCode() == AtmosErrorCode.RESOURCE_ALREADY_EXISTS.getCode()) {
            File file = new File(command.getCurrentRequest().getEndpoint().getPath());
            exception = new KeyAlreadyExistsException(file.getParentFile().getAbsolutePath(), file.getName());
         } else {
            switch (response.getStatusCode()) {
            case 401:
               exception = new AuthorizationException(exception.getMessage(), exception);
               break;
            case 404:
               if (!command.getCurrentRequest().getMethod().equals("DELETE")) {
                  String message = error != null ? error.getMessage() : String.format("%s -> %s", command.getCurrentRequest()
                        .getRequestLine(), response.getStatusLine());
                  String path = command.getCurrentRequest().getEndpoint().getPath();
                  Matcher matcher = DIRECTORY_PATH.matcher(path);
                  if (matcher.find()) {
                     exception = new ContainerNotFoundException(matcher.group(1), message);
                  } else {
                     matcher = DIRECTORY_KEY_PATH.matcher(path);
                     if (matcher.find()) {
                        exception = new KeyNotFoundException(matcher.group(1), matcher.group(2), message);
                     }
                  }
               }
               break;
            default:
               exception = error != null ? new AtmosResponseException(command, response, error)
                     : new HttpResponseException(command, response);

            }
         }
      } finally {
         releasePayload(response);
         command.setException(exception);
      }
   }

}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/options/ListOptions.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.options;

import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.base.Preconditions.checkState;

import java.util.Collection;

import org.jclouds.http.options.BaseHttpRequestOptions;

import com.google.common.collect.ImmutableList;

/**
 * Options used to control paginated results (aka list commands).
 */
public class ListOptions extends BaseHttpRequestOptions {
   public static final ListOptions NONE = new ListOptions();
   private static final Collection<String> INCLUDE_META = ImmutableList.of(Integer.toString(1));

   /**
    * specifies the position to resume listing
    * <p/>
    * note this is an opaque value and should not be interpreted.
    */
   public ListOptions token(String token) {
      this.headers.put("x-emc-token", checkNotNull(token, "x-emc-token"));
      return this;
   }

   public String getToken() {
      return getFirstHeaderOrNull("x-emc-token");
   }

   /**
    * the maximum number of items that should be returned. If this is not specified, there is no
    * limit.
    */
   public ListOptions limit(int maxresults) {
      checkState(maxresults >= 0, "maxresults must be >= 0");
      checkState(maxresults <= 10000, "maxresults must be <= 10000");
      headers.put("x-emc-limit", Integer.toString(maxresults));
      return this;
   }

   /**
    * the maximum number of items that should be returned. If this is not specified, there is no
    * limit.
    */
   public ListOptions includeMeta() {
      headers.replaceValues("x-emc-include-meta", INCLUDE_META);
      return this;
   }

   public boolean metaIncluded() {
      String meta = getFirstHeaderOrNull("x-emc-include-meta");
      return (meta != null) ? meta.equals("1") : false;
   }

   public Integer getLimit() {
      String maxresults = getFirstHeaderOrNull("x-emc-limit");
      return (maxresults != null) ? Integer.valueOf(maxresults) : null;
   }

   public static class Builder {

      /**
       * @see ListOptions#token(String)
       */
      public static ListOptions token(String token) {
         ListOptions options = new ListOptions();
         return options.token(token);
      }

      /**
       * @see ListOptions#includeMeta()
       */
      public static ListOptions includeMeta() {
         ListOptions options = new ListOptions();
         return options.includeMeta();
      }

      /**
       * @see ListOptions#limit(int)
       */
      public static ListOptions limit(int maxKeys) {
         ListOptions options = new ListOptions();
         return options.limit(maxKeys);
      }

   }
}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/options/PutOptions.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.options;

import org.jclouds.http.options.BaseHttpRequestOptions;

/**
 * Contains options supported in the REST API for the PUT operations.
 * <p/>
 * <h2>
 * Usage</h2> The recommended way to instantiate a PutOptions object is to statically import
 * PutOptions.Builder.* and invoke a static creation method followed by an instance mutator (if
 * needed):
 * <p/>
 * <code>
 * import org.jclouds.atmos.options.PutOptions.Builder.*
 * import org.jclouds.atmos.AtmosClient;
 * 
 * AtmosClient connection = // get connection
 *  connection.createDirectory("directory", publicRead());
 * <code>
 */
public class PutOptions extends BaseHttpRequestOptions {
   public static final PutOptions NONE = new PutOptions();

   /**
    * Add public access to all users
    * 
    */
   public PutOptions publicRead() {
      this.replaceHeader("x-emc-useracl", "root=FULL_CONTROL");
      this.replaceHeader("x-emc-groupacl", "other=READ");
      return this;
   }

   public PutOptions publicNone() {
      this.replaceHeader("x-emc-useracl", "root=FULL_CONTROL");
      this.replaceHeader("x-emc-groupacl", "other=NONE");
      return this;
   }

   /**
    * By default Atmos does not allow overwriting objects.
    *
    * Note: older versions of Atmos do not support this header.
    */
   public PutOptions overwrite() {
      this.replaceHeader("x-emc-force-overwrite", "true");
      return this;
   }

   public static class Builder {

      /**
       * @see PutOptions#publicRead
       */
      public static PutOptions publicRead() {
         PutOptions options = new PutOptions();
         return options.publicRead();
      }

      public static PutOptions publicNone() {
         PutOptions options = new PutOptions();
         return options.publicNone();
      }

      public static PutOptions overwrite() {
         PutOptions options = new PutOptions();
         return options.overwrite();
      }
   }
}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/reference/AtmosErrorCode.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.jclouds.atmos.reference;

/** Atmos error codes. */
public enum AtmosErrorCode {
   /** Operation aborted because of a conflicting operation in progess against the resource. */
   CONFLICTING_OPERATION(1006),
   /** The directory you are attempting to delete is not empty. */
   DIRECTORY_NOT_EMPTY(1023),
   /** The requested object was not found. */
   OBJECT_NOT_FOUND(1003),
   /** The resource you are trying to create already exists. */
   RESOURCE_ALREADY_EXISTS(1016),
   /** The server is busy. Please try again. */
   SERVER_BUSY(1040),
   /** There was a mismatch between the signature in the request and the signature as computed by the server. */
   SIGNATURE_MISMATCH(1032);

   private final int code;

   private AtmosErrorCode(int code) {
      this.code = code;
   }

   public int getCode() {
      return code;
   }
}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/reference/AtmosHeaders.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.reference;

/**
 * Query parameters common to Atmos apis.
 * 
 * @see <a href="https://community.emc.com/community/labs/atmos_online" />
 */
public final class AtmosHeaders {

   public static final String SIGNATURE = "x-emc-signature";
   public static final String LISTABLE_META = "x-emc-listable-meta";
   public static final String META = "x-emc-meta";
   public static final String LISTABLE_TAGS = "x-emc-listable-tags";
   public static final String TAGS = "x-emc-tags";
   public static final String USER_ACL = "x-emc-useracl";
   public static final String DATE = "x-emc-date";
   public static final String GROUP_ACL = "x-emc-groupacl";
   public static final String UID = "x-emc-uid";
   public static final String TOKEN = "x-emc-token";
   public static final String CHECKSUM = "x-emc-wschecksum";

   private AtmosHeaders() {
      throw new AssertionError("intentionally unimplemented");
   }
}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/util/AtmosUtils.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.util;
import static com.google.common.base.Preconditions.checkState;
import static org.jclouds.util.Predicates2.retry;

import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.net.URI;

import jakarta.inject.Inject;
import jakarta.inject.Provider;

import org.jclouds.atmos.AtmosClient;
import org.jclouds.atmos.blobstore.functions.BlobToObject;
import org.jclouds.atmos.domain.AtmosError;
import org.jclouds.atmos.domain.AtmosObject;
import org.jclouds.atmos.filters.SignRequest;
import org.jclouds.atmos.options.PutOptions;
import org.jclouds.atmos.reference.AtmosErrorCode;
import org.jclouds.atmos.xml.ErrorHandler;
import org.jclouds.blobstore.ContainerNotFoundException;
import org.jclouds.blobstore.KeyAlreadyExistsException;
import org.jclouds.blobstore.domain.Blob;
import org.jclouds.crypto.Crypto;
import org.jclouds.http.HttpCommand;
import org.jclouds.http.HttpException;
import org.jclouds.http.HttpResponse;
import org.jclouds.http.functions.ParseSax;

import com.google.common.base.Predicate;

/**
 * Encryption, Hashing, and IO Utilities needed to sign and verify Atmos Storage requests and
 * responses.
 */
public class AtmosUtils {

   @Inject
   SignRequest signer;

   @Inject
   ParseSax.Factory factory;

   @Inject
   Provider<ErrorHandler> errorHandlerProvider;

   public AtmosError parseAtmosErrorFromContent(HttpCommand command, HttpResponse response, InputStream content)
            throws HttpException {
      AtmosError error = factory.create(errorHandlerProvider.get()).parse(content);
      if (error.getCode() == AtmosErrorCode.SIGNATURE_MISMATCH.getCode()) {
         error.setStringSigned(signer.createStringToSign(command.getCurrentRequest()));
      }
      return error;

   }

   public static String putBlob(final AtmosClient sync, Crypto crypto, BlobToObject blob2Object, String container,
            Blob blob, PutOptions options) {
      final String path = container + "/" + blob.getMetadata().getName();
      final AtmosObject object = blob2Object.apply(blob);

      URI uri;
      try {
         uri = sync.createFile(container, object, options);
      } catch (KeyAlreadyExistsException e) {
         deletePathAndEnsureGone(sync, path);
         uri = sync.createFile(container, object, options);
      }

      // return object ID as the ETag
      String objectId = uri.getPath();
      String prefix = "/rest/objects/";
      checkState(objectId.startsWith(prefix), objectId);
      return objectId.substring(prefix.length());
   }
   
   public static void deletePathAndEnsureGone(final AtmosClient sync, String path) {
      checkState(retry(new Predicate<String>() {
         public boolean apply(String in) {
            try {
               sync.deletePath(in);
               return !sync.pathExists(in);
            } catch (ContainerNotFoundException e) {
               return true;
            }
         }
      }, 3000).apply(path), "%s still exists after deleting!", path);
   }

   public AtmosError parseAtmosErrorFromContent(HttpCommand command, HttpResponse response, String content)
            throws HttpException {
      return parseAtmosErrorFromContent(command, response, new ByteArrayInputStream(content.getBytes()));
   }

   public static String adjustContainerIfDirOptionPresent(String container,
            org.jclouds.blobstore.options.ListContainerOptions options) {
      if (options != org.jclouds.blobstore.options.ListContainerOptions.NONE) {
         // if (options.isRecursive()) {
         // throw new UnsupportedOperationException("recursive not currently supported in emcsaas");
         // }
         if (options.getDir() != null) {
            container = container + "/" + options.getDir();
         }
      }
      return container;
   }
}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/xml/ErrorHandler.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.xml;

import org.jclouds.atmos.domain.AtmosError;
import org.jclouds.http.functions.ParseSax;

/**
 * Parses the error from the Atmos Online Storage REST API.
 */
public class ErrorHandler extends ParseSax.HandlerWithResult<AtmosError> {

   private StringBuilder currentText = new StringBuilder();
   private int code;
   private String message;

   public AtmosError getResult() {
      return new AtmosError(code, message);
   }

   public void endElement(String uri, String name, String qName) {

      if (qName.equals("Code")) {
         this.code = Integer.parseInt(currentText.toString().trim());
      } else if (qName.equals("Message")) {
         this.message = currentText.toString().trim();
      }
      currentText.setLength(0);
   }

   public void characters(char[] ch, int start, int length) {
      currentText.append(ch, start, length);
   }
}


================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/xml/ListDirectoryResponseHandler.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos.xml;

import java.util.Date;
import java.util.Set;

import jakarta.inject.Inject;

import org.jclouds.atmos.domain.DirectoryEntry;
import org.jclouds.atmos.domain.FileType;
import org.jclouds.date.DateService;
import org.jclouds.http.functions.ParseSax;

import com.google.common.collect.Sets;

/**
 * Parses an object list
 * <p/>
 * 
 * @see <a href="https://community.emc.com/community/labs/atmos_online" />
 */
public class ListDirectoryResponseHandler extends ParseSax.HandlerWithResult<Set<DirectoryEntry>> {

   private Set<DirectoryEntry> entries = Sets.newLinkedHashSet();
   private String currentObjectId;
   private FileType currentType;
   private String currentFileName;
   private long currentSize;
   private Date currentModificationTime;

   // metadata parsing
   private String currentName;

   private StringBuilder currentText = new StringBuilder();

   private final DateService dateService;

   @Inject
   ListDirectoryResponseHandler(DateService dateService) {
      this.dateService = dateService;
   }

   public Set<DirectoryEntry> getResult() {
      return entries;
   }

   public void endElement(String uri, String name, String qName) {
      if (qName.equals("ObjectID")) {
         currentObjectId = currentText.toString().trim();
      } else if (qName.equals("FileType")) {
         currentType = FileType.fromValue(currentText.toString().trim());
      } else if (qName.equals("Filename")) {
         currentFileName = currentText.toString().trim();
         if (currentFileName.equals(""))
            currentFileName = null;
      } else if (qName.equals("Name")) {
         currentName = currentText.toString().trim();
      } else if (qName.equals("Value")) {
         if (currentName.equals("size")) {
            currentSize = Long.parseLong(currentText.toString().trim());
         } else if (currentName.equals("mtime")) {
            currentModificationTime = dateService.iso8601DateOrSecondsDateParse(currentText.toString().trim());
         }
      } else if (qName.equals("DirectoryEntry")) {
         entries.add(new DirectoryEntry(currentObjectId, currentType, currentFileName, currentSize, currentModificationTime));
      }
      currentText.setLength(0);
   }

   public void characters(char[] ch, int start, int length) {
      currentText.append(ch, start, length);
   }
}


================================================
FILE: apis/atmos/src/test/java/org/jclouds/atmos/AtmosApiMetadataTest.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos;

import org.jclouds.blobstore.internal.BaseBlobStoreApiMetadataTest;
import org.testng.annotations.Test;

@Test(groups = "unit", testName = "AtmosApiMetadataTest")
public class AtmosApiMetadataTest extends BaseBlobStoreApiMetadataTest {

   public AtmosApiMetadataTest() {
      super(new AtmosApiMetadata());
   }
}


================================================
FILE: apis/atmos/src/test/java/org/jclouds/atmos/AtmosClientLiveTest.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jclouds.atmos;

import static com.google.common.base.Charsets.UTF_8;
import static com.google.common.base.Preconditions.checkState;
import static org.jclouds.util.Predicates2.retry;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNull;

import java.io.IOException;
import java.lang.reflect.UndeclaredThrowableException;
import java.net.URI;
import java.security.SecureRandom;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeoutException;

import org.jclouds.atmos.domain.AtmosObject;
import org.jclouds.atmos.domain.BoundedSet;
import org.jclouds.atmos.domain.DirectoryEntry;
import org.jclouds.atmos.domain.FileType;
import org.jclouds.atmos.domain.SystemMetadata;
import org.jclouds.atmos.options.ListOptions;
import org.jclouds.blobstore.ContainerNotFoundException;
import org.jclouds.blobstore.KeyAlreadyExistsException;
import org.jclouds.blobstore.KeyNotFoundException;
import org.jclouds.blobstore.integration.internal.BaseBlobStoreInteg
Download .txt
Showing preview only (719K chars total). Download the full file or copy to clipboard to get everything.
gitextract_4xvek8ry/

├── .asf.yaml
├── .dir-locals.el
├── .gitattributes
├── .github/
│   └── workflows/
│       └── ci.yaml
├── .gitignore
├── .mailmap
├── CONTRIBUTING.md
├── README.md
├── all/
│   └── pom.xml
├── allblobstore/
│   └── pom.xml
├── allcompute/
│   └── pom.xml
├── allloadbalancer/
│   └── pom.xml
├── apis/
│   ├── atmos/
│   │   ├── README.txt
│   │   ├── bnd.bnd
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── jclouds/
│   │       │               └── atmos/
│   │       │                   ├── AtmosApiMetadata.java
│   │       │                   ├── AtmosClient.java
│   │       │                   ├── AtmosResponseException.java
│   │       │                   ├── binders/
│   │       │                   │   ├── BindMetadataToHeaders.java
│   │       │                   │   └── BindUserMetadataToHeaders.java
│   │       │                   ├── blobstore/
│   │       │                   │   ├── AtmosBlobRequestSigner.java
│   │       │                   │   ├── AtmosBlobStore.java
│   │       │                   │   ├── config/
│   │       │                   │   │   └── AtmosBlobStoreContextModule.java
│   │       │                   │   └── functions/
│   │       │                   │       ├── BlobMetadataToObject.java
│   │       │                   │       ├── BlobStoreListOptionsToListOptions.java
│   │       │                   │       ├── BlobToContentMetadata.java
│   │       │                   │       ├── BlobToObject.java
│   │       │                   │       ├── BlobToSystemMetadata.java
│   │       │                   │       ├── DirectoryEntryListToResourceMetadataList.java
│   │       │                   │       ├── ObjectToBlob.java
│   │       │                   │       └── ObjectToBlobMetadata.java
│   │       │                   ├── config/
│   │       │                   │   ├── AtmosHttpApiModule.java
│   │       │                   │   ├── AtmosObjectModule.java
│   │       │                   │   └── AtmosParserModule.java
│   │       │                   ├── domain/
│   │       │                   │   ├── AtmosError.java
│   │       │                   │   ├── AtmosObject.java
│   │       │                   │   ├── BoundedSet.java
│   │       │                   │   ├── DirectoryEntry.java
│   │       │                   │   ├── FileType.java
│   │       │                   │   ├── MutableContentMetadata.java
│   │       │                   │   ├── SystemMetadata.java
│   │       │                   │   ├── UploadInfo.java
│   │       │                   │   ├── UserMetadata.java
│   │       │                   │   └── internal/
│   │       │                   │       ├── AtmosObjectImpl.java
│   │       │                   │       ├── BoundedLinkedHashSet.java
│   │       │                   │       └── DelegatingMutableContentMetadata.java
│   │       │                   ├── fallbacks/
│   │       │                   │   ├── EndpointIfAlreadyExists.java
│   │       │                   │   └── TrueOn404FalseOnPathNotEmpty.java
│   │       │                   ├── filters/
│   │       │                   │   ├── ShareUrl.java
│   │       │                   │   └── SignRequest.java
│   │       │                   ├── functions/
│   │       │                   │   ├── AtmosObjectName.java
│   │       │                   │   ├── ParseDirectoryListFromContentAndHeaders.java
│   │       │                   │   ├── ParseObjectFromHeadersAndHttpContent.java
│   │       │                   │   ├── ParseSystemMetadataFromHeaders.java
│   │       │                   │   ├── ParseUserMetadataFromHeaders.java
│   │       │                   │   └── ReturnTrueIfGroupACLIsOtherRead.java
│   │       │                   ├── handlers/
│   │       │                   │   ├── AtmosClientErrorRetryHandler.java
│   │       │                   │   ├── AtmosServerErrorRetryHandler.java
│   │       │                   │   └── ParseAtmosErrorFromXmlContent.java
│   │       │                   ├── options/
│   │       │                   │   ├── ListOptions.java
│   │       │                   │   └── PutOptions.java
│   │       │                   ├── reference/
│   │       │                   │   ├── AtmosErrorCode.java
│   │       │                   │   └── AtmosHeaders.java
│   │       │                   ├── util/
│   │       │                   │   └── AtmosUtils.java
│   │       │                   └── xml/
│   │       │                       ├── ErrorHandler.java
│   │       │                       └── ListDirectoryResponseHandler.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── jclouds/
│   │           │           └── atmos/
│   │           │               ├── AtmosApiMetadataTest.java
│   │           │               ├── AtmosClientLiveTest.java
│   │           │               ├── AtmosClientTest.java
│   │           │               ├── binders/
│   │           │               │   ├── BindMetadataToHeadersTest.java
│   │           │               │   └── BindUserMetadataToHeadersTest.java
│   │           │               ├── blobstore/
│   │           │               │   ├── AtmosBlobRequestSignerTest.java
│   │           │               │   ├── functions/
│   │           │               │   │   ├── ListOptionsToBlobStoreListOptions.java
│   │           │               │   │   └── ResourceMetadataListToDirectoryEntryList.java
│   │           │               │   └── integration/
│   │           │               │       ├── AtmosBlobSignerLiveTest.java
│   │           │               │       ├── AtmosContainerIntegrationLiveTest.java
│   │           │               │       ├── AtmosContainerLiveTest.java
│   │           │               │       ├── AtmosIntegrationLiveTest.java
│   │           │               │       ├── AtmosLiveTest.java
│   │           │               │       └── AtmosServiceIntegrationLiveTest.java
│   │           │               ├── fallbacks/
│   │           │               │   └── EndpointIfAlreadyExistsTest.java
│   │           │               ├── filters/
│   │           │               │   └── SignRequestTest.java
│   │           │               ├── functions/
│   │           │               │   ├── AtmosObjectNameTest.java
│   │           │               │   ├── ParseDirectoryListFromContentAndHeadersTest.java
│   │           │               │   ├── ParseObjectFromHeadersAndHttpContentTest.java
│   │           │               │   ├── ParseSystemMetadataFromHeadersTest.java
│   │           │               │   └── ParseUserMetadataFromHeadersTest.java
│   │           │               ├── handlers/
│   │           │               │   └── AtmosServerErrorRetryHandlerTest.java
│   │           │               ├── options/
│   │           │               │   └── ListOptionsTest.java
│   │           │               └── xml/
│   │           │                   ├── ErrorHandlerTest.java
│   │           │                   └── ListDirectoryResponseHandlerTest.java
│   │           └── resources/
│   │               ├── error.xml
│   │               ├── hashstring.txt
│   │               ├── list_basic.xml
│   │               ├── list_meta.xml
│   │               └── log4j.xml
│   ├── byon/
│   │   ├── README.txt
│   │   ├── bnd.bnd
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── jclouds/
│   │       │               └── byon/
│   │       │                   ├── BYONApiMetadata.java
│   │       │                   ├── Node.java
│   │       │                   ├── config/
│   │       │                   │   ├── BYONComputeServiceContextModule.java
│   │       │                   │   ├── CacheNodeStoreModule.java
│   │       │                   │   ├── ConfiguresNodeStore.java
│   │       │                   │   └── YamlNodeStoreModule.java
│   │       │                   ├── domain/
│   │       │                   │   └── YamlNode.java
│   │       │                   ├── functions/
│   │       │                   │   ├── NodeToNodeMetadata.java
│   │       │                   │   └── NodesFromYamlStream.java
│   │       │                   ├── internal/
│   │       │                   │   └── BYONComputeServiceAdapter.java
│   │       │                   └── suppliers/
│   │       │                       ├── NodesParsedFromSupplier.java
│   │       │                       └── SupplyFromProviderURIOrNodesProperty.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── jclouds/
│   │           │           └── byon/
│   │           │               ├── BYONApiMetadataTest.java
│   │           │               ├── BYONComputeServiceLiveTest.java
│   │           │               ├── BYONComputeServiceTest.java
│   │           │               ├── config/
│   │           │               │   ├── CacheNodeStoreModuleTest.java
│   │           │               │   └── YamlNodeStoreModuleTest.java
│   │           │               ├── functions/
│   │           │               │   ├── NodeToNodeMetadataTest.java
│   │           │               │   └── NodesFromYamlTest.java
│   │           │               └── suppliers/
│   │           │                   ├── NodesParsedFromSupplierTest.java
│   │           │                   └── SupplyFromProviderURIOrNodesPropertyTest.java
│   │           └── resources/
│   │               ├── log4j.xml
│   │               ├── test1.yaml
│   │               ├── test_location.yaml
│   │               ├── test_with_url.yaml
│   │               └── testkey.txt
│   ├── chef/
│   │   ├── bnd.bnd
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── jclouds/
│   │       │               ├── chef/
│   │       │               │   ├── ChefApi.java
│   │       │               │   ├── ChefApiMetadata.java
│   │       │               │   ├── ChefService.java
│   │       │               │   ├── binders/
│   │       │               │   │   ├── BindChecksumsToJsonPayload.java
│   │       │               │   │   ├── BindCreateClientOptionsToJsonPayload.java
│   │       │               │   │   ├── BindGenerateKeyForClientToJsonPayload.java
│   │       │               │   │   ├── BindGroupToUpdateRequestJsonPayload.java
│   │       │               │   │   ├── DatabagItemId.java
│   │       │               │   │   ├── EnvironmentName.java
│   │       │               │   │   ├── GroupName.java
│   │       │               │   │   ├── NodeName.java
│   │       │               │   │   └── RoleName.java
│   │       │               │   ├── config/
│   │       │               │   │   ├── ChefBootstrapModule.java
│   │       │               │   │   ├── ChefHttpApiModule.java
│   │       │               │   │   ├── ChefParserModule.java
│   │       │               │   │   ├── ChefProperties.java
│   │       │               │   │   ├── InstallChef.java
│   │       │               │   │   └── Validator.java
│   │       │               │   ├── domain/
│   │       │               │   │   ├── Attribute.java
│   │       │               │   │   ├── BootstrapConfig.java
│   │       │               │   │   ├── ChecksumStatus.java
│   │       │               │   │   ├── Client.java
│   │       │               │   │   ├── CookbookDefinition.java
│   │       │               │   │   ├── CookbookVersion.java
│   │       │               │   │   ├── DatabagItem.java
│   │       │               │   │   ├── Environment.java
│   │       │               │   │   ├── Group.java
│   │       │               │   │   ├── Grouping.java
│   │       │               │   │   ├── Metadata.java
│   │       │               │   │   ├── Node.java
│   │       │               │   │   ├── Resource.java
│   │       │               │   │   ├── Role.java
│   │       │               │   │   ├── Sandbox.java
│   │       │               │   │   ├── SearchResult.java
│   │       │               │   │   ├── UploadSandbox.java
│   │       │               │   │   └── User.java
│   │       │               │   ├── features/
│   │       │               │   │   └── OrganizationApi.java
│   │       │               │   ├── filters/
│   │       │               │   │   └── SignedHeaderAuth.java
│   │       │               │   ├── functions/
│   │       │               │   │   ├── BootstrapConfigForGroup.java
│   │       │               │   │   ├── ClientForGroup.java
│   │       │               │   │   ├── GroupToBootScript.java
│   │       │               │   │   ├── ParseCookbookDefinitionFromJson.java
│   │       │               │   │   ├── ParseCookbookDefinitionListFromJson.java
│   │       │               │   │   ├── ParseCookbookNamesFromJson.java
│   │       │               │   │   ├── ParseCookbookVersionsFromJson.java
│   │       │               │   │   ├── ParseErrorFromJsonOrReturnBody.java
│   │       │               │   │   ├── ParseKeySetFromJson.java
│   │       │               │   │   ├── ParseSearchClientsFromJson.java
│   │       │               │   │   ├── ParseSearchDatabagFromJson.java
│   │       │               │   │   ├── ParseSearchEnvironmentsFromJson.java
│   │       │               │   │   ├── ParseSearchNodesFromJson.java
│   │       │               │   │   ├── ParseSearchResultFromJson.java
│   │       │               │   │   ├── ParseSearchRolesFromJson.java
│   │       │               │   │   └── UriForResource.java
│   │       │               │   ├── handlers/
│   │       │               │   │   ├── ChefApiErrorRetryHandler.java
│   │       │               │   │   └── ChefErrorHandler.java
│   │       │               │   ├── internal/
│   │       │               │   │   └── BaseChefService.java
│   │       │               │   ├── options/
│   │       │               │   │   ├── CreateClientOptions.java
│   │       │               │   │   └── SearchOptions.java
│   │       │               │   ├── predicates/
│   │       │               │   │   └── CookbookVersionPredicates.java
│   │       │               │   ├── strategy/
│   │       │               │   │   ├── CleanupStaleNodesAndClients.java
│   │       │               │   │   ├── CreateNodeAndPopulateAutomaticAttributes.java
│   │       │               │   │   ├── DeleteAllClientsInList.java
│   │       │               │   │   ├── DeleteAllNodesInList.java
│   │       │               │   │   ├── ListClients.java
│   │       │               │   │   ├── ListCookbookVersions.java
│   │       │               │   │   ├── ListCookbookVersionsInEnvironment.java
│   │       │               │   │   ├── ListEnvironments.java
│   │       │               │   │   ├── ListNodes.java
│   │       │               │   │   ├── ListNodesInEnvironment.java
│   │       │               │   │   ├── UpdateAutomaticAttributesOnNode.java
│   │       │               │   │   └── internal/
│   │       │               │   │       ├── BaseListCookbookVersionsImpl.java
│   │       │               │   │       ├── BaseListNodesImpl.java
│   │       │               │   │       ├── CleanupStaleNodesAndClientsImpl.java
│   │       │               │   │       ├── CreateNodeAndPopulateAutomaticAttributesImpl.java
│   │       │               │   │       ├── DeleteAllClientsInListImpl.java
│   │       │               │   │       ├── DeleteAllNodesInListImpl.java
│   │       │               │   │       ├── ListClientsImpl.java
│   │       │               │   │       ├── ListCookbookVersionsImpl.java
│   │       │               │   │       ├── ListCookbookVersionsInEnvironmentImpl.java
│   │       │               │   │       ├── ListEnvironmentsImpl.java
│   │       │               │   │       ├── ListNodesImpl.java
│   │       │               │   │       ├── ListNodesInEnvironmentImpl.java
│   │       │               │   │       └── UpdateAutomaticAttributesOnNodeImpl.java
│   │       │               │   ├── suppliers/
│   │       │               │   │   └── ChefVersionSupplier.java
│   │       │               │   └── util/
│   │       │               │       ├── ChefUtils.java
│   │       │               │       ├── CollectionUtils.java
│   │       │               │       └── RunListBuilder.java
│   │       │               └── ohai/
│   │       │                   ├── Automatic.java
│   │       │                   ├── AutomaticSupplier.java
│   │       │                   ├── config/
│   │       │                   │   ├── ConfiguresOhai.java
│   │       │                   │   ├── JMXOhaiModule.java
│   │       │                   │   └── OhaiModule.java
│   │       │                   ├── functions/
│   │       │                   │   ├── ByteArrayToMacAddress.java
│   │       │                   │   ├── MapSetToMultimap.java
│   │       │                   │   └── NestSlashKeys.java
│   │       │                   └── suppliers/
│   │       │                       └── UptimeSecondsSupplier.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── jclouds/
│   │           │           ├── chef/
│   │           │           │   ├── BaseChefApiExpectTest.java
│   │           │           │   ├── ChefApiDelegationTest.java
│   │           │           │   ├── ChefApiExpectTest.java
│   │           │           │   ├── ChefApiLiveTest.java
│   │           │           │   ├── ChefApiMetadataTest.java
│   │           │           │   ├── ChefApiTest.java
│   │           │           │   ├── binders/
│   │           │           │   │   ├── BindGroupToUpdateRequestJsonPayloadTest.java
│   │           │           │   │   ├── BindHexEncodedMD5sToJsonPayloadTest.java
│   │           │           │   │   └── GroupNameTest.java
│   │           │           │   ├── config/
│   │           │           │   │   └── ChefParserModuleTest.java
│   │           │           │   ├── domain/
│   │           │           │   │   └── RoleTest.java
│   │           │           │   ├── features/
│   │           │           │   │   ├── OrganizationApiExpectTest.java
│   │           │           │   │   └── OrganizationApiLiveTest.java
│   │           │           │   ├── filters/
│   │           │           │   │   └── SignedHeaderAuthTest.java
│   │           │           │   ├── functions/
│   │           │           │   │   ├── BootstrapConfigForGroupTest.java
│   │           │           │   │   ├── ClientForGroupTest.java
│   │           │           │   │   ├── GroupToBootScriptTest.java
│   │           │           │   │   ├── ParseClientFromJsonTest.java
│   │           │           │   │   ├── ParseCookbookDefinitionFromJsonTest.java
│   │           │           │   │   ├── ParseCookbookDefinitionListFromJsonTest.java
│   │           │           │   │   ├── ParseCookbookNamesFromJsonTest.java
│   │           │           │   │   ├── ParseCookbookVersionFromJsonTest.java
│   │           │           │   │   ├── ParseCookbookVersionsFromJsonTest.java
│   │           │           │   │   ├── ParseDataBagItemFromJsonTest.java
│   │           │           │   │   ├── ParseErrorFromJsonOrReturnBodyTest.java
│   │           │           │   │   ├── ParseKeySetFromJsonTest.java
│   │           │           │   │   ├── ParseNodeFromJsonTest.java
│   │           │           │   │   ├── ParseSandboxFromJsonTest.java
│   │           │           │   │   ├── ParseSearchDataBagItemFromJsonTest.java
│   │           │           │   │   ├── ParseUploadSandboxFromJsonTest.java
│   │           │           │   │   └── UriForResourceTest.java
│   │           │           │   ├── handlers/
│   │           │           │   │   └── ChefApiErrorRetryHandlerTest.java
│   │           │           │   ├── internal/
│   │           │           │   │   ├── BaseChefLiveTest.java
│   │           │           │   │   └── BaseChefServiceTest.java
│   │           │           │   ├── strategy/
│   │           │           │   │   └── internal/
│   │           │           │   │       ├── CleanupStaleNodesAndClientsImplLiveTest.java
│   │           │           │   │       ├── CreateNodeAndPopulateAutomaticAttributesImplLiveTest.java
│   │           │           │   │       ├── CreateNodeAndPopulateAutomaticAttributesImplTest.java
│   │           │           │   │       ├── DeleteAllApisAndNodesInListImplLiveTest.java
│   │           │           │   │       ├── ListCookbookVersionsInEnvironmentImplLiveTest.java
│   │           │           │   │       ├── ListNodesImplLiveTest.java
│   │           │           │   │       ├── ListNodesInEnvironmentImplLiveTest.java
│   │           │           │   │       ├── UpdateAutomaticAttributesOnNodeImplLiveTest.java
│   │           │           │   │       └── UpdateAutomaticAttributesOnNodeImplTest.java
│   │           │           │   ├── suppliers/
│   │           │           │   │   └── ChefVersionSupplierTest.java
│   │           │           │   └── util/
│   │           │           │       ├── ChefUtilsTest.java
│   │           │           │       └── RunListBuilderTest.java
│   │           │           └── ohai/
│   │           │               ├── config/
│   │           │               │   ├── JMXTest.java
│   │           │               │   └── OhaiModuleTest.java
│   │           │               └── functions/
│   │           │                   ├── ByteArrayToMacAddressTest.java
│   │           │                   └── NestSlashKeysTest.java
│   │           └── resources/
│   │               ├── apache-chef-demo-cookbook.json
│   │               ├── bootstrap-env-noattrs.sh
│   │               ├── bootstrap-env.sh
│   │               ├── bootstrap-node-env.sh
│   │               ├── bootstrap-ssl.sh
│   │               ├── bootstrap.sh
│   │               ├── brew-cookbook.json
│   │               ├── chef.crt
│   │               ├── client-no-pub-key.json
│   │               ├── client.json
│   │               ├── clients_list.json
│   │               ├── data_list.json
│   │               ├── env_cookbooks.json
│   │               ├── environment_recipes.json
│   │               ├── group-update.json
│   │               ├── group.json
│   │               ├── groups.json
│   │               ├── logback.xml
│   │               ├── mysql-cookbook.json
│   │               ├── node.json
│   │               ├── nodes_list.json
│   │               ├── privkey.txt
│   │               ├── pubkey.txt
│   │               ├── roles_list.json
│   │               ├── sandbox.json
│   │               ├── search_role.json
│   │               ├── search_role_empty.json
│   │               ├── tomcat-cookbook.json
│   │               ├── upload-site.json
│   │               └── user.json
│   ├── cloudstack/
│   │   ├── bnd.bnd
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── jclouds/
│   │       │               └── cloudstack/
│   │       │                   ├── AsyncJobException.java
│   │       │                   ├── CloudStackApi.java
│   │       │                   ├── CloudStackApiMetadata.java
│   │       │                   ├── CloudStackContext.java
│   │       │                   ├── CloudStackDomainApi.java
│   │       │                   ├── CloudStackGlobalApi.java
│   │       │                   ├── binders/
│   │       │                   │   ├── BindAccountSecurityGroupPairsToIndexedQueryParams.java
│   │       │                   │   ├── BindCIDRsToCommaDelimitedQueryParam.java
│   │       │                   │   ├── BindIdListToCommaDelimitedQueryParam.java
│   │       │                   │   ├── BindSnapshotPolicyScheduleToQueryParam.java
│   │       │                   │   ├── BindTemplateMetadataToQueryParams.java
│   │       │                   │   └── ResourceLimitToQueryParams.java
│   │       │                   ├── compute/
│   │       │                   │   ├── CloudStackComputeService.java
│   │       │                   │   ├── config/
│   │       │                   │   │   └── CloudStackComputeServiceContextModule.java
│   │       │                   │   ├── extensions/
│   │       │                   │   │   ├── CloudStackImageExtension.java
│   │       │                   │   │   └── CloudStackSecurityGroupExtension.java
│   │       │                   │   ├── functions/
│   │       │                   │   │   ├── CloudStackSecurityGroupToSecurityGroup.java
│   │       │                   │   │   ├── IngressRuleToIpPermission.java
│   │       │                   │   │   ├── OrphanedGroupsByZoneId.java
│   │       │                   │   │   ├── ServiceOfferingToHardware.java
│   │       │                   │   │   ├── TemplateToImage.java
│   │       │                   │   │   ├── TemplateToOperatingSystem.java
│   │       │                   │   │   ├── VirtualMachineToNodeMetadata.java
│   │       │                   │   │   └── ZoneToLocation.java
│   │       │                   │   ├── loaders/
│   │       │                   │   │   ├── CreateUniqueKeyPair.java
│   │       │                   │   │   └── FindSecurityGroupOrCreate.java
│   │       │                   │   ├── options/
│   │       │                   │   │   └── CloudStackTemplateOptions.java
│   │       │                   │   ├── predicates/
│   │       │                   │   │   └── AllNodesInGroupTerminated.java
│   │       │                   │   └── strategy/
│   │       │                   │       ├── AdvancedNetworkOptionsConverter.java
│   │       │                   │       ├── BasicNetworkOptionsConverter.java
│   │       │                   │       ├── CloudStackComputeServiceAdapter.java
│   │       │                   │       └── OptionsConverter.java
│   │       │                   ├── config/
│   │       │                   │   ├── CloudStackHttpApiModule.java
│   │       │                   │   ├── CloudStackParserModule.java
│   │       │                   │   ├── CloudStackProperties.java
│   │       │                   │   └── CredentialType.java
│   │       │                   ├── domain/
│   │       │                   │   ├── Account.java
│   │       │                   │   ├── Alert.java
│   │       │                   │   ├── AllocationState.java
│   │       │                   │   ├── ApiKeyPair.java
│   │       │                   │   ├── AsyncCreateResponse.java
│   │       │                   │   ├── AsyncJob.java
│   │       │                   │   ├── AsyncJobError.java
│   │       │                   │   ├── Capabilities.java
│   │       │                   │   ├── Capacity.java
│   │       │                   │   ├── Cluster.java
│   │       │                   │   ├── ConfigurationEntry.java
│   │       │                   │   ├── DiskOffering.java
│   │       │                   │   ├── Domain.java
│   │       │                   │   ├── EncryptedPasswordAndPrivateKey.java
│   │       │                   │   ├── Event.java
│   │       │                   │   ├── ExtractMode.java
│   │       │                   │   ├── FirewallRule.java
│   │       │                   │   ├── GuestIPType.java
│   │       │                   │   ├── Host.java
│   │       │                   │   ├── IPForwardingRule.java
│   │       │                   │   ├── ISO.java
│   │       │                   │   ├── ISOExtraction.java
│   │       │                   │   ├── ISOPermissions.java
│   │       │                   │   ├── IngressRule.java
│   │       │                   │   ├── JobResult.java
│   │       │                   │   ├── LoadBalancerRule.java
│   │       │                   │   ├── LoginResponse.java
│   │       │                   │   ├── NIC.java
│   │       │                   │   ├── Network.java
│   │       │                   │   ├── NetworkOffering.java
│   │       │                   │   ├── NetworkOfferingAvailabilityType.java
│   │       │                   │   ├── NetworkService.java
│   │       │                   │   ├── NetworkType.java
│   │       │                   │   ├── OSType.java
│   │       │                   │   ├── PermissionOperation.java
│   │       │                   │   ├── Pod.java
│   │       │                   │   ├── PortForwardingRule.java
│   │       │                   │   ├── Project.java
│   │       │                   │   ├── PublicIPAddress.java
│   │       │                   │   ├── ResourceLimit.java
│   │       │                   │   ├── SecurityGroup.java
│   │       │                   │   ├── ServiceOffering.java
│   │       │                   │   ├── Snapshot.java
│   │       │                   │   ├── SnapshotPolicy.java
│   │       │                   │   ├── SnapshotPolicySchedule.java
│   │       │                   │   ├── SshKeyPair.java
│   │       │                   │   ├── StoragePool.java
│   │       │                   │   ├── StorageType.java
│   │       │                   │   ├── SystemVmType.java
│   │       │                   │   ├── Tag.java
│   │       │                   │   ├── Template.java
│   │       │                   │   ├── TemplateExtraction.java
│   │       │                   │   ├── TemplateFilter.java
│   │       │                   │   ├── TemplateMetadata.java
│   │       │                   │   ├── TemplatePermission.java
│   │       │                   │   ├── TrafficType.java
│   │       │                   │   ├── UsageRecord.java
│   │       │                   │   ├── User.java
│   │       │                   │   ├── VMGroup.java
│   │       │                   │   ├── VirtualMachine.java
│   │       │                   │   ├── VlanIPRange.java
│   │       │                   │   ├── Volume.java
│   │       │                   │   ├── Zone.java
│   │       │                   │   ├── ZoneAndName.java
│   │       │                   │   └── ZoneSecurityGroupNamePortsCidrs.java
│   │       │                   ├── features/
│   │       │                   │   ├── AccountApi.java
│   │       │                   │   ├── AddressApi.java
│   │       │                   │   ├── AsyncJobApi.java
│   │       │                   │   ├── ConfigurationApi.java
│   │       │                   │   ├── DomainAccountApi.java
│   │       │                   │   ├── DomainDomainApi.java
│   │       │                   │   ├── DomainLimitApi.java
│   │       │                   │   ├── DomainUserApi.java
│   │       │                   │   ├── EventApi.java
│   │       │                   │   ├── FirewallApi.java
│   │       │                   │   ├── GlobalAccountApi.java
│   │       │                   │   ├── GlobalAlertApi.java
│   │       │                   │   ├── GlobalCapacityApi.java
│   │       │                   │   ├── GlobalConfigurationApi.java
│   │       │                   │   ├── GlobalDomainApi.java
│   │       │                   │   ├── GlobalHostApi.java
│   │       │                   │   ├── GlobalOfferingApi.java
│   │       │                   │   ├── GlobalPodApi.java
│   │       │                   │   ├── GlobalStoragePoolApi.java
│   │       │                   │   ├── GlobalUsageApi.java
│   │       │                   │   ├── GlobalUserApi.java
│   │       │                   │   ├── GlobalVlanApi.java
│   │       │                   │   ├── GlobalZoneApi.java
│   │       │                   │   ├── GuestOSApi.java
│   │       │                   │   ├── HypervisorApi.java
│   │       │                   │   ├── ISOApi.java
│   │       │                   │   ├── LimitApi.java
│   │       │                   │   ├── LoadBalancerApi.java
│   │       │                   │   ├── NATApi.java
│   │       │                   │   ├── NetworkApi.java
│   │       │                   │   ├── OfferingApi.java
│   │       │                   │   ├── ProjectApi.java
│   │       │                   │   ├── SSHKeyPairApi.java
│   │       │                   │   ├── SecurityGroupApi.java
│   │       │                   │   ├── SessionApi.java
│   │       │                   │   ├── SnapshotApi.java
│   │       │                   │   ├── TagApi.java
│   │       │                   │   ├── TemplateApi.java
│   │       │                   │   ├── VMGroupApi.java
│   │       │                   │   ├── VirtualMachineApi.java
│   │       │                   │   ├── VolumeApi.java
│   │       │                   │   └── ZoneApi.java
│   │       │                   ├── filters/
│   │       │                   │   ├── AddSessionKeyAndJSessionIdToRequest.java
│   │       │                   │   ├── AuthenticationFilter.java
│   │       │                   │   └── QuerySigner.java
│   │       │                   ├── functions/
│   │       │                   │   ├── CloudStackFallbacks.java
│   │       │                   │   ├── CreateFirewallRulesForIP.java
│   │       │                   │   ├── CreatePortForwardingRulesForIP.java
│   │       │                   │   ├── CreateSecurityGroupIfNeeded.java
│   │       │                   │   ├── DateToYyyyMmDd.java
│   │       │                   │   ├── GetFirewallRulesByVirtualMachine.java
│   │       │                   │   ├── GetIPForwardingRulesByVirtualMachine.java
│   │       │                   │   ├── ParseAsyncJobFromHttpResponse.java
│   │       │                   │   ├── ParseAsyncJobsFromHttpResponse.java
│   │       │                   │   ├── ParseEventTypesFromHttpResponse.java
│   │       │                   │   ├── ParseIdToNameEntryFromHttpResponse.java
│   │       │                   │   ├── ParseIdToNameFromHttpResponse.java
│   │       │                   │   ├── ParseLoginResponseFromHttpResponse.java
│   │       │                   │   ├── ParseNamesFromHttpResponse.java
│   │       │                   │   ├── ParseTypedAsyncJob.java
│   │       │                   │   ├── ReuseOrAssociateNewPublicIPAddress.java
│   │       │                   │   ├── StaticNATVirtualMachineInNetwork.java
│   │       │                   │   ├── WindowsLoginCredentialsFromEncryptedData.java
│   │       │                   │   └── ZoneIdToZone.java
│   │       │                   ├── handlers/
│   │       │                   │   ├── CloudStackErrorHandler.java
│   │       │                   │   └── InvalidateSessionAndRetryOn401AndLogoutOnClose.java
│   │       │                   ├── internal/
│   │       │                   │   └── CloudStackContextImpl.java
│   │       │                   ├── loaders/
│   │       │                   │   └── LoginWithPasswordCredentials.java
│   │       │                   ├── options/
│   │       │                   │   ├── AccountInDomainOptions.java
│   │       │                   │   ├── AddClusterOptions.java
│   │       │                   │   ├── AddHostOptions.java
│   │       │                   │   ├── AddSecondaryStorageOptions.java
│   │       │                   │   ├── AssignVirtualMachineOptions.java
│   │       │                   │   ├── AssociateIPAddressOptions.java
│   │       │                   │   ├── CreateAccountOptions.java
│   │       │                   │   ├── CreateDiskOfferingOptions.java
│   │       │                   │   ├── CreateDomainOptions.java
│   │       │                   │   ├── CreateFirewallRuleOptions.java
│   │       │                   │   ├── CreateIPForwardingRuleOptions.java
│   │       │                   │   ├── CreateLoadBalancerRuleOptions.java
│   │       │                   │   ├── CreateNetworkOptions.java
│   │       │                   │   ├── CreatePodOptions.java
│   │       │                   │   ├── CreateServiceOfferingOptions.java
│   │       │                   │   ├── CreateSnapshotOptions.java
│   │       │                   │   ├── CreateTagsOptions.java
│   │       │                   │   ├── CreateTemplateOptions.java
│   │       │                   │   ├── CreateUserOptions.java
│   │       │                   │   ├── CreateVMGroupOptions.java
│   │       │                   │   ├── CreateVlanIPRangeOptions.java
│   │       │                   │   ├── CreateZoneOptions.java
│   │       │                   │   ├── DeleteHostOptions.java
│   │       │                   │   ├── DeleteISOOptions.java
│   │       │                   │   ├── DeleteTagsOptions.java
│   │       │                   │   ├── DeleteTemplateOptions.java
│   │       │                   │   ├── DeployVirtualMachineOptions.java
│   │       │                   │   ├── ExtractISOOptions.java
│   │       │                   │   ├── ExtractTemplateOptions.java
│   │       │                   │   ├── GenerateUsageRecordsOptions.java
│   │       │                   │   ├── ListAccountsOptions.java
│   │       │                   │   ├── ListAlertsOptions.java
│   │       │                   │   ├── ListAsyncJobsOptions.java
│   │       │                   │   ├── ListCapacityOptions.java
│   │       │                   │   ├── ListClustersOptions.java
│   │       │                   │   ├── ListConfigurationEntriesOptions.java
│   │       │                   │   ├── ListDiskOfferingsOptions.java
│   │       │                   │   ├── ListDomainChildrenOptions.java
│   │       │                   │   ├── ListDomainsOptions.java
│   │       │                   │   ├── ListEgressFirewallRulesOptions.java
│   │       │                   │   ├── ListEventsOptions.java
│   │       │                   │   ├── ListFirewallRulesOptions.java
│   │       │                   │   ├── ListHostsOptions.java
│   │       │                   │   ├── ListIPForwardingRulesOptions.java
│   │       │                   │   ├── ListISOsOptions.java
│   │       │                   │   ├── ListLoadBalancerRulesOptions.java
│   │       │                   │   ├── ListNetworkOfferingsOptions.java
│   │       │                   │   ├── ListNetworksOptions.java
│   │       │                   │   ├── ListOSTypesOptions.java
│   │       │                   │   ├── ListPodsOptions.java
│   │       │                   │   ├── ListPortForwardingRulesOptions.java
│   │       │                   │   ├── ListProjectsOptions.java
│   │       │                   │   ├── ListPublicIPAddressesOptions.java
│   │       │                   │   ├── ListResourceLimitsOptions.java
│   │       │                   │   ├── ListSSHKeyPairsOptions.java
│   │       │                   │   ├── ListSecurityGroupsOptions.java
│   │       │                   │   ├── ListServiceOfferingsOptions.java
│   │       │                   │   ├── ListSnapshotPoliciesOptions.java
│   │       │                   │   ├── ListSnapshotsOptions.java
│   │       │                   │   ├── ListStoragePoolsOptions.java
│   │       │                   │   ├── ListTagsOptions.java
│   │       │                   │   ├── ListTemplatesOptions.java
│   │       │                   │   ├── ListUsageRecordsOptions.java
│   │       │                   │   ├── ListUsersOptions.java
│   │       │                   │   ├── ListVMGroupsOptions.java
│   │       │                   │   ├── ListVirtualMachinesOptions.java
│   │       │                   │   ├── ListVlanIPRangesOptions.java
│   │       │                   │   ├── ListVolumesOptions.java
│   │       │                   │   ├── ListZonesOptions.java
│   │       │                   │   ├── RegisterISOOptions.java
│   │       │                   │   ├── RegisterTemplateOptions.java
│   │       │                   │   ├── StopVirtualMachineOptions.java
│   │       │                   │   ├── UpdateAccountOptions.java
│   │       │                   │   ├── UpdateClusterOptions.java
│   │       │                   │   ├── UpdateDiskOfferingOptions.java
│   │       │                   │   ├── UpdateDomainOptions.java
│   │       │                   │   ├── UpdateHostOptions.java
│   │       │                   │   ├── UpdateISOOptions.java
│   │       │                   │   ├── UpdateISOPermissionsOptions.java
│   │       │                   │   ├── UpdateLoadBalancerRuleOptions.java
│   │       │                   │   ├── UpdateNetworkOfferingOptions.java
│   │       │                   │   ├── UpdatePodOptions.java
│   │       │                   │   ├── UpdateServiceOfferingOptions.java
│   │       │                   │   ├── UpdateTemplateOptions.java
│   │       │                   │   ├── UpdateTemplatePermissionsOptions.java
│   │       │                   │   ├── UpdateUserOptions.java
│   │       │                   │   ├── UpdateVMGroupOptions.java
│   │       │                   │   ├── UpdateVirtualMachineOptions.java
│   │       │                   │   └── UpdateZoneOptions.java
│   │       │                   ├── predicates/
│   │       │                   │   ├── CorrectHypervisorForZone.java
│   │       │                   │   ├── JobComplete.java
│   │       │                   │   ├── LoadBalancerRuleActive.java
│   │       │                   │   ├── NetworkOfferingPredicates.java
│   │       │                   │   ├── NetworkPredicates.java
│   │       │                   │   ├── OSCategoryIn.java
│   │       │                   │   ├── PublicIPAddressPredicates.java
│   │       │                   │   ├── SecurityGroupPredicates.java
│   │       │                   │   ├── SshKeyPairPredicates.java
│   │       │                   │   ├── TemplatePredicates.java
│   │       │                   │   ├── UserPredicates.java
│   │       │                   │   ├── VirtualMachineDestroyed.java
│   │       │                   │   ├── VirtualMachineExpunged.java
│   │       │                   │   ├── VirtualMachineRunning.java
│   │       │                   │   └── ZonePredicates.java
│   │       │                   ├── strategy/
│   │       │                   │   └── BlockUntilJobCompletesAndReturnResult.java
│   │       │                   ├── suppliers/
│   │       │                   │   ├── GetCurrentUser.java
│   │       │                   │   ├── NetworksForCurrentUser.java
│   │       │                   │   ├── ProjectsForCurrentUser.java
│   │       │                   │   └── ZoneIdToZoneSupplier.java
│   │       │                   └── util/
│   │       │                       ├── ApiKeyPairs.java
│   │       │                       └── SnapshotPolicySchedules.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── jclouds/
│   │           │           └── cloudstack/
│   │           │               ├── CloudStackApiMetadataTest.java
│   │           │               ├── CloudStackContextBuilderTest.java
│   │           │               ├── PasswordAuthenticationExpectTest.java
│   │           │               ├── compute/
│   │           │               │   ├── CloudStackComputeServiceAdapterExpectTest.java
│   │           │               │   ├── CloudStackComputeServiceAdapterLiveTest.java
│   │           │               │   ├── CloudStackComputeServiceLiveTest.java
│   │           │               │   ├── CloudStackExperimentLiveTest.java
│   │           │               │   ├── extensions/
│   │           │               │   │   ├── CloudStackImageExtensionExpectTest.java
│   │           │               │   │   ├── CloudStackImageExtensionLiveTest.java
│   │           │               │   │   ├── CloudStackSecurityGroupExtensionExpectTest.java
│   │           │               │   │   └── CloudStackSecurityGroupExtensionLiveTest.java
│   │           │               │   ├── functions/
│   │           │               │   │   ├── CloudStackSecurityGroupToSecurityGroupTest.java
│   │           │               │   │   ├── IngressRuleToIpPermissionTest.java
│   │           │               │   │   ├── ServiceOfferingToHardwareTest.java
│   │           │               │   │   ├── TemplateToImageTest.java
│   │           │               │   │   ├── TemplateToOperatingSystemTest.java
│   │           │               │   │   ├── VirtualMachineToNodeMetadataTest.java
│   │           │               │   │   └── ZoneToLocationTest.java
│   │           │               │   ├── loaders/
│   │           │               │   │   ├── CreateUniqueKeyPairTest.java
│   │           │               │   │   └── FindSecurityGroupOrCreateTest.java
│   │           │               │   ├── options/
│   │           │               │   │   └── CloudStackTemplateOptionsTest.java
│   │           │               │   └── strategy/
│   │           │               │       └── OptionsConverterTest.java
│   │           │               ├── domain/
│   │           │               │   └── VirtualMachineTest.java
│   │           │               ├── features/
│   │           │               │   ├── AccountApiExpectTest.java
│   │           │               │   ├── AccountApiLiveTest.java
│   │           │               │   ├── AccountApiTest.java
│   │           │               │   ├── AddressApiLiveTest.java
│   │           │               │   ├── AddressApiTest.java
│   │           │               │   ├── AsyncJobApiLiveTest.java
│   │           │               │   ├── AsyncJobApiTest.java
│   │           │               │   ├── ConfigurationApiLiveTest.java
│   │           │               │   ├── ConfigurationApiTest.java
│   │           │               │   ├── DomainAccountApiLiveTest.java
│   │           │               │   ├── DomainAccountApiTest.java
│   │           │               │   ├── DomainDomainApiExpectTest.java
│   │           │               │   ├── DomainDomainApiLiveTest.java
│   │           │               │   ├── DomainLimitApiLiveTest.java
│   │           │               │   ├── DomainLimitApiTest.java
│   │           │               │   ├── DomainUserApiLiveTest.java
│   │           │               │   ├── EventApiLiveTest.java
│   │           │               │   ├── EventApiTest.java
│   │           │               │   ├── FirewallApiExpectTest.java
│   │           │               │   ├── FirewallApiLiveTest.java
│   │           │               │   ├── FirewallApiTest.java
│   │           │               │   ├── GlobalAccountApiLiveTest.java
│   │           │               │   ├── GlobalAccountApiTest.java
│   │           │               │   ├── GlobalAlertApiLiveTest.java
│   │           │               │   ├── GlobalAlertApiTest.java
│   │           │               │   ├── GlobalCapacityApiLiveTest.java
│   │           │               │   ├── GlobalCapacityApiTest.java
│   │           │               │   ├── GlobalConfigurationApiExpectTest.java
│   │           │               │   ├── GlobalConfigurationApiLiveTest.java
│   │           │               │   ├── GlobalDomainApiExpectTest.java
│   │           │               │   ├── GlobalDomainApiLiveTest.java
│   │           │               │   ├── GlobalHostApiExpectTest.java
│   │           │               │   ├── GlobalHostApiLiveTest.java
│   │           │               │   ├── GlobalHostApiTest.java
│   │           │               │   ├── GlobalOfferingApiLiveTest.java
│   │           │               │   ├── GlobalOfferingApiTest.java
│   │           │               │   ├── GlobalPodApiExpectTest.java
│   │           │               │   ├── GlobalPodApiLiveTest.java
│   │           │               │   ├── GlobalStoragePoolApiLiveTest.java
│   │           │               │   ├── GlobalStoragePoolApiTest.java
│   │           │               │   ├── GlobalUsageApiLiveTest.java
│   │           │               │   ├── GlobalUsageApiTest.java
│   │           │               │   ├── GlobalUserApiLiveTest.java
│   │           │               │   ├── GlobalUserApiTest.java
│   │           │               │   ├── GlobalVlanApiExpectTest.java
│   │           │               │   ├── GlobalVlanApiLiveTest.java
│   │           │               │   ├── GlobalZoneApiExpectTest.java
│   │           │               │   ├── GlobalZoneApiLiveTest.java
│   │           │               │   ├── GuestOSApiLiveTest.java
│   │           │               │   ├── GuestOSApiTest.java
│   │           │               │   ├── HypervisorApiLiveTest.java
│   │           │               │   ├── HypervisorApiTest.java
│   │           │               │   ├── ISOApiExpectTest.java
│   │           │               │   ├── ISOApiLiveTest.java
│   │           │               │   ├── ISOApiTest.java
│   │           │               │   ├── LimitApiLiveTest.java
│   │           │               │   ├── LimitApiTest.java
│   │           │               │   ├── LoadBalancerApiLiveTest.java
│   │           │               │   ├── LoadBalancerApiTest.java
│   │           │               │   ├── NATApiLiveTest.java
│   │           │               │   ├── NATApiTest.java
│   │           │               │   ├── NetworkApiLiveTest.java
│   │           │               │   ├── NetworkApiTest.java
│   │           │               │   ├── OfferingApiLiveTest.java
│   │           │               │   ├── OfferingApiTest.java
│   │           │               │   ├── ProjectApiExpectTest.java
│   │           │               │   ├── ProjectApiLiveTest.java
│   │           │               │   ├── ProjectApiTest.java
│   │           │               │   ├── SSHKeyPairApiExpectTest.java
│   │           │               │   ├── SSHKeyPairApiLiveTest.java
│   │           │               │   ├── SSHKeyPairApiTest.java
│   │           │               │   ├── SecurityGroupApiLiveTest.java
│   │           │               │   ├── SecurityGroupApiTest.java
│   │           │               │   ├── SessionApiExpectTest.java
│   │           │               │   ├── SessionApiLiveTest.java
│   │           │               │   ├── SnapshotApiLiveTest.java
│   │           │               │   ├── SnapshotApiTest.java
│   │           │               │   ├── TagApiExpectTest.java
│   │           │               │   ├── TagApiLiveTest.java
│   │           │               │   ├── TagApiTest.java
│   │           │               │   ├── TemplateApiLiveTest.java
│   │           │               │   ├── TemplateApiTest.java
│   │           │               │   ├── VMGroupApiLiveTest.java
│   │           │               │   ├── VMGroupApiTest.java
│   │           │               │   ├── VirtualMachineApiExpectTest.java
│   │           │               │   ├── VirtualMachineApiLiveTest.java
│   │           │               │   ├── VirtualMachineApiTest.java
│   │           │               │   ├── VolumeApiExpectTest.java
│   │           │               │   ├── VolumeApiLiveTest.java
│   │           │               │   ├── VolumeApiTest.java
│   │           │               │   ├── ZoneApiExpectTest.java
│   │           │               │   ├── ZoneApiLiveTest.java
│   │           │               │   └── ZoneApiTest.java
│   │           │               ├── filters/
│   │           │               │   └── QuerySignerTest.java
│   │           │               ├── functions/
│   │           │               │   ├── BlockUntilJobCompletesAndReturnResultTest.java
│   │           │               │   ├── CreateSecurityGroupIfNeededTest.java
│   │           │               │   ├── ParseAsyncJobFromHttpResponseTest.java
│   │           │               │   ├── ParseAsyncJobsFromHttpResponseTest.java
│   │           │               │   ├── ReuseOrAssociateNewPublicIPAddressTest.java
│   │           │               │   ├── StaticNATVirtualMachineInNetworkLiveTest.java
│   │           │               │   └── WindowsLoginCredentialsFromEncryptedDataTest.java
│   │           │               ├── handlers/
│   │           │               │   ├── CloudStackErrorHandlerTest.java
│   │           │               │   └── InvalidateSessionAndRetryOn401AndLogoutOnCloseTest.java
│   │           │               ├── internal/
│   │           │               │   ├── BaseCloudStackApiLiveTest.java
│   │           │               │   ├── BaseCloudStackApiTest.java
│   │           │               │   ├── BaseCloudStackComputeServiceContextExpectTest.java
│   │           │               │   └── BaseCloudStackExpectTest.java
│   │           │               ├── loaders/
│   │           │               │   └── LoginWithPasswordCredentialsTest.java
│   │           │               ├── options/
│   │           │               │   ├── AddClusterOptionsTest.java
│   │           │               │   ├── AddHostOptionsTest.java
│   │           │               │   ├── AddSecondaryStorageOptionsTest.java
│   │           │               │   ├── AssociateIPAddressOptionsTest.java
│   │           │               │   ├── CreateAccountOptionsTest.java
│   │           │               │   ├── CreateDiskOfferingOptionsTest.java
│   │           │               │   ├── CreateIPForwardingRuleOptionsTest.java
│   │           │               │   ├── CreateNetworkOptionsTest.java
│   │           │               │   ├── CreatePodOptionsTest.java
│   │           │               │   ├── CreateServiceOfferingOptionsTest.java
│   │           │               │   ├── CreateTagsOptionsTest.java
│   │           │               │   ├── CreateUserOptionsTest.java
│   │           │               │   ├── CreateVlanIPRangeOptionsTest.java
│   │           │               │   ├── DeleteHostOptionsTest.java
│   │           │               │   ├── DeleteTagsOptionsTest.java
│   │           │               │   ├── GenerateUsageRecordsOptionsTest.java
│   │           │               │   ├── ListAccountsOptionsTest.java
│   │           │               │   ├── ListAlertsOptionsTest.java
│   │           │               │   ├── ListAsyncJobsOptionsTest.java
│   │           │               │   ├── ListCapacityOptionsTest.java
│   │           │               │   ├── ListClustersOptionsTest.java
│   │           │               │   ├── ListDiskOfferingsOptionsTest.java
│   │           │               │   ├── ListHostsOptionsTest.java
│   │           │               │   ├── ListIPForwardingRulesOptionsTest.java
│   │           │               │   ├── ListISOsOptionsTest.java
│   │           │               │   ├── ListLoadBalancerRulesOptionsTest.java
│   │           │               │   ├── ListNetworkOfferingsOptionsTest.java
│   │           │               │   ├── ListNetworksOptionsTest.java
│   │           │               │   ├── ListOSTypesOptionsTest.java
│   │           │               │   ├── ListPodsOptionsTest.java
│   │           │               │   ├── ListPortForwardingRulesOptionsTest.java
│   │           │               │   ├── ListProjectsOptionsTest.java
│   │           │               │   ├── ListPublicIPAddressesOptionsTest.java
│   │           │               │   ├── ListSecurityGroupsOptionsTest.java
│   │           │               │   ├── ListServiceOfferingsOptionsTest.java
│   │           │               │   ├── ListStoragePoolsOptionsTest.java
│   │           │               │   ├── ListTagsOptionsTest.java
│   │           │               │   ├── ListTemplatesOptionsTest.java
│   │           │               │   ├── ListUsageRecordsOptionsTest.java
│   │           │               │   ├── ListUsersOptionsTest.java
│   │           │               │   ├── ListVirtualMachinesOptionsTest.java
│   │           │               │   ├── ListVlanIPRangesOptionsTest.java
│   │           │               │   ├── ListZonesOptionsTest.java
│   │           │               │   ├── UpdateAccountOptionsTest.java
│   │           │               │   ├── UpdateClusterOptionsTest.java
│   │           │               │   ├── UpdateDiskOfferingOptionsTest.java
│   │           │               │   ├── UpdateHostOptionsTest.java
│   │           │               │   ├── UpdateNetworkOfferingOptionsTest.java
│   │           │               │   ├── UpdatePodOptionsTest.java
│   │           │               │   ├── UpdateServiceOfferingOptionsTest.java
│   │           │               │   └── UpdateUserOptionsTest.java
│   │           │               ├── parse/
│   │           │               │   ├── DeleteIPForwardingRuleResponseTest.java
│   │           │               │   ├── DeleteNetworkResponseTest.java
│   │           │               │   ├── DeployVirtualMachineResponse3xTest.java
│   │           │               │   ├── DeployVirtualMachineResponse4xTest.java
│   │           │               │   ├── DisableStaticNATResponseTest.java
│   │           │               │   ├── EnableStaticNATResponseWhereResponseDoesntHaveJobTest.java
│   │           │               │   ├── JobResultResponseTest.java
│   │           │               │   ├── ListAccountsResponseTest.java
│   │           │               │   ├── ListAlertsResponseTest.java
│   │           │               │   ├── ListCapabilitiesResponseTest.java
│   │           │               │   ├── ListCapacityResponseTest.java
│   │           │               │   ├── ListClustersResponseTest.java
│   │           │               │   ├── ListConfigurationEntriesResponseTest.java
│   │           │               │   ├── ListDiskOfferingsResponseTest.java
│   │           │               │   ├── ListDomainsResponseTest.java
│   │           │               │   ├── ListFirewallRulesResponseTest.java
│   │           │               │   ├── ListHostsResponseTest.java
│   │           │               │   ├── ListHypervisorsResponseTest.java
│   │           │               │   ├── ListIPForwardingRulesResponseTest.java
│   │           │               │   ├── ListLoadBalancerRulesResponseTest.java
│   │           │               │   ├── ListNetworkOfferingsResponseTest.java
│   │           │               │   ├── ListNetworksResponseTest.java
│   │           │               │   ├── ListOSCategoriesResponseTest.java
│   │           │               │   ├── ListOSTypesResponseTest.java
│   │           │               │   ├── ListPodsResponseTest.java
│   │           │               │   ├── ListPortForwardingRulesResponseTest.java
│   │           │               │   ├── ListPublicIPAddressesResponseTest.java
│   │           │               │   ├── ListSSHKeyPairsResponseTest.java
│   │           │               │   ├── ListSecurityGroupsResponseTest.java
│   │           │               │   ├── ListServiceOfferingsResponseTest.java
│   │           │               │   ├── ListStoragePoolsResponseTest.java
│   │           │               │   ├── ListTagsResponseTest.java
│   │           │               │   ├── ListTemplatesResponseTest.java
│   │           │               │   ├── ListUsageRecordsResponseTest.java
│   │           │               │   ├── ListVirtualMachinesResponse3xTest.java
│   │           │               │   ├── ListVirtualMachinesResponseTest.java
│   │           │               │   ├── ListVlanIPRangesResponseTest.java
│   │           │               │   ├── ListZonesResponseTest.java
│   │           │               │   └── RegisterUserKeysResponseTest.java
│   │           │               └── predicates/
│   │           │                   ├── JobCompleteTest.java
│   │           │                   ├── NetworkPredicatesTest.java
│   │           │                   ├── OSCategoryInTest.java
│   │           │                   ├── PublicIPAddressPredicatesTest.java
│   │           │                   ├── SecurityGroupPredicatesTest.java
│   │           │                   ├── TemplatePredicatesTest.java
│   │           │                   ├── UserPredicatesTest.java
│   │           │                   ├── VirtualMachineDestroyedTest.java
│   │           │                   ├── VirtualMachineExpungedTest.java
│   │           │                   ├── VirtualMachineRunningTest.java
│   │           │                   └── ZonePredicatesTest.java
│   │           └── resources/
│   │               ├── addclusterresponse.json
│   │               ├── addhostresponse.json
│   │               ├── addsecondarystorageresponse.json
│   │               ├── authorizesecuritygroupingressresponse.json
│   │               ├── cancelhostmaintenanceresponse.json
│   │               ├── createdomainresponse.json
│   │               ├── createegressfirewallrulesresponse.json
│   │               ├── createfirewallrulesresponse.json
│   │               ├── createkeypairresponse.json
│   │               ├── createpodresponse.json
│   │               ├── createportforwardingrulesresponse.json
│   │               ├── createsecuritygroupresponse.json
│   │               ├── createsshkeypairresponse-2.json
│   │               ├── createsshkeypairresponse.json
│   │               ├── createtagsresponse.json
│   │               ├── createtemplateresponse-imageextension.json
│   │               ├── createtemplateresponse.json
│   │               ├── createvlaniprangeresponse.json
│   │               ├── createzoneresponse.json
│   │               ├── deletedomainresponse.json
│   │               ├── deleteegressfirewallrulesresponse.json
│   │               ├── deletefirewallrulesresponse.json
│   │               ├── deleteipforwardingruleresponse.json
│   │               ├── deletenetworkresponse.json
│   │               ├── deleteportforwardingrulesresponse.json
│   │               ├── deletesecuritygroupresponse.json
│   │               ├── deletetagsresponse.json
│   │               ├── deletetemplateresponse.json
│   │               ├── deletezoneresponse.json
│   │               ├── deployvirtualmachineresponse.json
│   │               ├── deployvirtualmachineresponse4x.json
│   │               ├── disablestaticnatresponse.json
│   │               ├── enablestaticnatresponse-withoutjob.json
│   │               ├── getdomainresponse.json
│   │               ├── getegressfirewallrulesresponse.json
│   │               ├── getfirewallrulesresponse.json
│   │               ├── getisoresponse.json
│   │               ├── getportforwardingrulesresponse.json
│   │               ├── getsecuritygroupresponse.json
│   │               ├── getsecuritygroupresponse_extension_byid.json
│   │               ├── getsecuritygroupresponse_extension_byid_empty.json
│   │               ├── getsecuritygroupresponse_extension_byid_with_cidr.json
│   │               ├── getsecuritygroupresponse_extension_byid_with_group.json
│   │               ├── getvmpasswordresponse.json
│   │               ├── getzoneresponse-2.json
│   │               ├── getzoneresponse.json
│   │               ├── listaccountsresponse.json
│   │               ├── listalertsresponse.json
│   │               ├── listasyncjobsresponse.json
│   │               ├── listcapabilitiesresponse.json
│   │               ├── listcapacityresponse.json
│   │               ├── listclustersresponse.json
│   │               ├── listconfigurationsresponse.json
│   │               ├── listdiskofferingsresponse.json
│   │               ├── listdomainchildrenresponse.json
│   │               ├── listdomainsresponse.json
│   │               ├── listegressfirewallrulesresponse.json
│   │               ├── listeventtypesresponse.json
│   │               ├── listfirewallrulesresponse.json
│   │               ├── listhostsresponse.json
│   │               ├── listhypervisorsresponse.json
│   │               ├── listipforwardingrulesresponse.json
│   │               ├── listisosresponse.json
│   │               ├── listloadbalancerrulesresponse.json
│   │               ├── listnetworkofferingsresponse.json
│   │               ├── listnetworksresponse-2.json
│   │               ├── listnetworksresponse.json
│   │               ├── listoscategoriesresponse.json
│   │               ├── listostypesresponse.json
│   │               ├── listpodsresponse.json
│   │               ├── listportforwardingrulesresponse.json
│   │               ├── listprojectsresponse.json
│   │               ├── listpublicipaddressesresponse.json
│   │               ├── listresourcelimitsresponse.json
│   │               ├── listsecuritygroupsresponse.json
│   │               ├── listserviceofferingsresponse.json
│   │               ├── listsshkeypairsresponse.json
│   │               ├── liststoragepoolsresponse.json
│   │               ├── listtagsresponse.json
│   │               ├── listtemplatesresponse-imageextension.json
│   │               ├── listtemplatesresponse.json
│   │               ├── listusagerecordsresponse.json
│   │               ├── listvirtualmachinesresponse-imageextension.json
│   │               ├── listvirtualmachinesresponse.json
│   │               ├── listvirtualmachinesresponse3x.json
│   │               ├── listvlaniprangesresponse.json
│   │               ├── listvolumesresponse-imageextension.json
│   │               ├── listzonesresponse.json
│   │               ├── listzonesresponse_single.json
│   │               ├── loginresponse.json
│   │               ├── logoutresponse.json
│   │               ├── preparehostformaintenanceresponse.json
│   │               ├── queryasyncjobresultresponse-authorizeingress.json
│   │               ├── queryasyncjobresultresponse-createtemplate-imageextension.json
│   │               ├── queryasyncjobresultresponse-createtemplate.json
│   │               ├── queryasyncjobresultresponse-createvolume.json
│   │               ├── queryasyncjobresultresponse-extracttemplate.json
│   │               ├── queryasyncjobresultresponse-ipaddress.json
│   │               ├── queryasyncjobresultresponse-ipforwardingrule.json
│   │               ├── queryasyncjobresultresponse-stopvirtualmachine-imageextension.json
│   │               ├── queryasyncjobresultresponse-virtualmachine-securitygroup.json
│   │               ├── queryasyncjobresultresponse-virtualmachine.json
│   │               ├── reconnecthostresponse.json
│   │               ├── registerisoresponse.json
│   │               ├── registersshkeypairresponse.json
│   │               ├── registeruserkeysresponse.json
│   │               ├── revokesecuritygroupingressresponse.json
│   │               ├── stopvirtualmachineresponse-imageextension.json
│   │               ├── updateclusterresponse.json
│   │               ├── updateconfigurationsresponse.json
│   │               ├── updatedomainresponse.json
│   │               ├── updatehostresponse.json
│   │               ├── updatepodresponse.json
│   │               └── updatezoneresponse.json
│   ├── cloudwatch/
│   │   ├── bnd.bnd
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── jclouds/
│   │       │               └── cloudwatch/
│   │       │                   ├── CloudWatch.java
│   │       │                   ├── CloudWatchApi.java
│   │       │                   ├── CloudWatchApiMetadata.java
│   │       │                   ├── binders/
│   │       │                   │   ├── AlarmNamesBinder.java
│   │       │                   │   ├── GetMetricStatisticsBinder.java
│   │       │                   │   └── MetricDataBinder.java
│   │       │                   ├── config/
│   │       │                   │   └── CloudWatchHttpApiModule.java
│   │       │                   ├── domain/
│   │       │                   │   ├── Alarm.java
│   │       │                   │   ├── AlarmHistoryItem.java
│   │       │                   │   ├── AutoScalingConstants.java
│   │       │                   │   ├── ComparisonOperator.java
│   │       │                   │   ├── Datapoint.java
│   │       │                   │   ├── Dimension.java
│   │       │                   │   ├── DynamoDBConstants.java
│   │       │                   │   ├── EBSConstants.java
│   │       │                   │   ├── EC2Constants.java
│   │       │                   │   ├── ELBConstants.java
│   │       │                   │   ├── EMRConstants.java
│   │       │                   │   ├── GetMetricStatistics.java
│   │       │                   │   ├── GetMetricStatisticsResponse.java
│   │       │                   │   ├── HistoryItemType.java
│   │       │                   │   ├── ListMetricsResponse.java
│   │       │                   │   ├── Metric.java
│   │       │                   │   ├── MetricDatum.java
│   │       │                   │   ├── Namespaces.java
│   │       │                   │   ├── RDSConstants.java
│   │       │                   │   ├── SNSConstants.java
│   │       │                   │   ├── SQSConstants.java
│   │       │                   │   ├── StatisticValues.java
│   │       │                   │   ├── Statistics.java
│   │       │                   │   ├── StorageGatewayConstants.java
│   │       │                   │   └── Unit.java
│   │       │                   ├── features/
│   │       │                   │   ├── AlarmApi.java
│   │       │                   │   └── MetricApi.java
│   │       │                   ├── functions/
│   │       │                   │   ├── ISO8601Format.java
│   │       │                   │   ├── ListAlarmHistoryToPagedIterable.java
│   │       │                   │   ├── ListAlarmsToPagedIterable.java
│   │       │                   │   └── MetricsToPagedIterable.java
│   │       │                   ├── handlers/
│   │       │                   │   └── CloudWatchErrorHandler.java
│   │       │                   ├── options/
│   │       │                   │   ├── GetMetricStatisticsOptions.java
│   │       │                   │   ├── ListAlarmHistoryOptions.java
│   │       │                   │   ├── ListAlarmsForMetric.java
│   │       │                   │   ├── ListAlarmsOptions.java
│   │       │                   │   ├── ListMetricsOptions.java
│   │       │                   │   └── SaveAlarmOptions.java
│   │       │                   └── xml/
│   │       │                       ├── AlarmHistoryItemHandler.java
│   │       │                       ├── DatapointHandler.java
│   │       │                       ├── DimensionHandler.java
│   │       │                       ├── GetMetricStatisticsResponseHandler.java
│   │       │                       ├── GetMetricStatisticsResponseHandlerV2.java
│   │       │                       ├── ListAlarmHistoryResponseHandler.java
│   │       │                       ├── ListAlarmsForMetricResponseHandler.java
│   │       │                       ├── ListAlarmsResponseHandler.java
│   │       │                       ├── ListMetricsResponseHandler.java
│   │       │                       ├── MetricAlarmHandler.java
│   │       │                       └── MetricHandler.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── jclouds/
│   │           │           └── cloudwatch/
│   │           │               ├── CloudWatchApiMetadataTest.java
│   │           │               ├── CloudWatchLiveTest.java
│   │           │               ├── CloudWatchTest.java
│   │           │               ├── binders/
│   │           │               │   ├── AlarmNamesBinderTest.java
│   │           │               │   └── MetricDataBinderTest.java
│   │           │               ├── features/
│   │           │               │   ├── AlarmApiExpectTest.java
│   │           │               │   ├── AlarmApiLiveTest.java
│   │           │               │   ├── MetricApiExpectTest.java
│   │           │               │   └── MetricApiLiveTest.java
│   │           │               ├── internal/
│   │           │               │   ├── BaseCloudWatchApiExpectTest.java
│   │           │               │   ├── BaseCloudWatchApiLiveTest.java
│   │           │               │   └── BaseCloudWatchExpectTest.java
│   │           │               ├── options/
│   │           │               │   ├── GetMetricStatisticsOptionsTest.java
│   │           │               │   ├── ListAlarmHistoryOptionsTest.java
│   │           │               │   ├── ListAlarmsForMetricTest.java
│   │           │               │   ├── ListAlarmsOptionsTest.java
│   │           │               │   └── SaveAlarmOptionsTest.java
│   │           │               └── xml/
│   │           │                   ├── GetMetricStatisticsResponseHandlerTest.java
│   │           │                   ├── ListAlarmHistoryResponseHandlerTest.java
│   │           │                   ├── ListAlarmsForMetricResponseHandlerTest.java
│   │           │                   └── ListAlarmsResponseHandlerTest.java
│   │           └── resources/
│   │               ├── DescribeAlarmHistoryResponse.xml
│   │               ├── DescribeAlarmsForMetricResponse.xml
│   │               ├── DescribeAlarmsResponse.xml
│   │               ├── InvalidFormatResponse.xml
│   │               ├── LimitExceededResponse.xml
│   │               ├── VoidResponse.xml
│   │               ├── get_metric_statistics.xml
│   │               ├── list_metrics.xml
│   │               ├── list_metrics_marker.xml
│   │               └── log4j.xml
│   ├── docker/
│   │   ├── README.md
│   │   ├── bnd.bnd
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── jclouds/
│   │       │               └── docker/
│   │       │                   ├── DockerApi.java
│   │       │                   ├── DockerApiMetadata.java
│   │       │                   ├── compute/
│   │       │                   │   ├── config/
│   │       │                   │   │   ├── DockerComputeServiceContextModule.java
│   │       │                   │   │   └── LoginPortLookupModule.java
│   │       │                   │   ├── functions/
│   │       │                   │   │   ├── ContainerToNodeMetadata.java
│   │       │                   │   │   ├── CustomLoginPortFromImage.java
│   │       │                   │   │   ├── ImageToImage.java
│   │       │                   │   │   ├── LoginPortForContainer.java
│   │       │                   │   │   ├── PublicPortForContainerPort.java
│   │       │                   │   │   └── StateToStatus.java
│   │       │                   │   ├── options/
│   │       │                   │   │   └── DockerTemplateOptions.java
│   │       │                   │   └── strategy/
│   │       │                   │       └── DockerComputeServiceAdapter.java
│   │       │                   ├── config/
│   │       │                   │   ├── DockerHttpApiModule.java
│   │       │                   │   ├── DockerOkHttpClientSupplier.java
│   │       │                   │   └── DockerParserModule.java
│   │       │                   ├── domain/
│   │       │                   │   ├── Config.java
│   │       │                   │   ├── Container.java
│   │       │                   │   ├── ContainerSummary.java
│   │       │                   │   ├── Exec.java
│   │       │                   │   ├── ExecCreateParams.java
│   │       │                   │   ├── ExecInspect.java
│   │       │                   │   ├── ExecStartParams.java
│   │       │                   │   ├── ExposedPorts.java
│   │       │                   │   ├── HostConfig.java
│   │       │                   │   ├── Image.java
│   │       │                   │   ├── ImageHistory.java
│   │       │                   │   ├── ImageSummary.java
│   │       │                   │   ├── Info.java
│   │       │                   │   ├── Network.java
│   │       │                   │   ├── NetworkSettings.java
│   │       │                   │   ├── Node.java
│   │       │                   │   ├── Port.java
│   │       │                   │   ├── Resource.java
│   │       │                   │   ├── State.java
│   │       │                   │   ├── StatusCode.java
│   │       │                   │   └── Version.java
│   │       │                   ├── features/
│   │       │                   │   ├── ContainerApi.java
│   │       │                   │   ├── ImageApi.java
│   │       │                   │   ├── MiscApi.java
│   │       │                   │   └── NetworkApi.java
│   │       │                   ├── handlers/
│   │       │                   │   └── DockerErrorHandler.java
│   │       │                   ├── internal/
│   │       │                   │   └── NullSafeCopies.java
│   │       │                   ├── options/
│   │       │                   │   ├── AttachOptions.java
│   │       │                   │   ├── BuildOptions.java
│   │       │                   │   ├── CommitOptions.java
│   │       │                   │   ├── CreateImageOptions.java
│   │       │                   │   ├── DeleteImageOptions.java
│   │       │                   │   ├── ListContainerOptions.java
│   │       │                   │   ├── ListImageOptions.java
│   │       │                   │   └── RemoveContainerOptions.java
│   │       │                   ├── suppliers/
│   │       │                   │   ├── DockerSSLContextSupplier.java
│   │       │                   │   ├── DockerUntrustedSSLContextSupplier.java
│   │       │                   │   └── SSLContextBuilder.java
│   │       │                   └── util/
│   │       │                       ├── DockerInputStream.java
│   │       │                       └── StdStreamData.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── jclouds/
│   │           │           └── docker/
│   │           │               ├── DockerApiMetadataTest.java
│   │           │               ├── compute/
│   │           │               │   ├── BaseDockerApiLiveTest.java
│   │           │               │   ├── DockerComputeServiceAdapterLiveTest.java
│   │           │               │   ├── DockerComputeServiceLiveTest.java
│   │           │               │   ├── SshToCustomPortLiveTest.java
│   │           │               │   ├── functions/
│   │           │               │   │   ├── ContainerToNodeMetadataTest.java
│   │           │               │   │   ├── CustomLoginPortFromImageTest.java
│   │           │               │   │   ├── ImageToImageTest.java
│   │           │               │   │   └── StateToStatusTest.java
│   │           │               │   ├── options/
│   │           │               │   │   └── DockerTemplateOptionsTest.java
│   │           │               │   └── strategy/
│   │           │               │       └── PredicateLocateImageByNameTest.java
│   │           │               ├── config/
│   │           │               │   └── DockerParserModuleTest.java
│   │           │               ├── domain/
│   │           │               │   ├── ConfigTest.java
│   │           │               │   └── ContainerTest.java
│   │           │               ├── features/
│   │           │               │   ├── ContainerApiLiveTest.java
│   │           │               │   ├── ContainerApiMockTest.java
│   │           │               │   ├── ImageApiLiveTest.java
│   │           │               │   ├── ImageApiMockTest.java
│   │           │               │   ├── MiscApiLiveTest.java
│   │           │               │   ├── MiscApiMockTest.java
│   │           │               │   ├── NetworkApiLiveTest.java
│   │           │               │   └── NetworkApiMockTest.java
│   │           │               ├── internal/
│   │           │               │   ├── BaseDockerMockTest.java
│   │           │               │   ├── BaseDockerParseTest.java
│   │           │               │   └── DockerTestUtils.java
│   │           │               └── parse/
│   │           │                   ├── ContainerParseTest.java
│   │           │                   ├── ContainerVersionMajor1Minor21.java
│   │           │                   ├── ContainersParseTest.java
│   │           │                   ├── HistoryParseTest.java
│   │           │                   ├── ImageParseTest.java
│   │           │                   ├── ImagesParseTest.java
│   │           │                   ├── Info2ParseTest.java
│   │           │                   ├── InfoParseTest.java
│   │           │                   ├── NetworkParseTest.java
│   │           │                   ├── NetworksParseTest.java
│   │           │                   └── VersionParseTest.java
│   │           └── resources/
│   │               ├── Dockerfile
│   │               ├── SimpleDockerfile
│   │               ├── cert.pem
│   │               ├── container-1.21-create.json
│   │               ├── container-1.21-inspect.json
│   │               ├── container-creation.json
│   │               ├── container.json
│   │               ├── containers.json
│   │               ├── exec.json
│   │               ├── exec.start
│   │               ├── execInspect.json
│   │               ├── history-apiver22.json
│   │               ├── history.json
│   │               ├── image.json
│   │               ├── images.json
│   │               ├── info.json
│   │               ├── info2.json
│   │               ├── key.pem
│   │               ├── logback.xml
│   │               ├── network-creation.json
│   │               ├── network.json
│   │               ├── networks.json
│   │               └── version.json
│   ├── ec2/
│   │   ├── README.txt
│   │   ├── bnd.bnd
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── jclouds/
│   │       │               └── ec2/
│   │       │                   ├── EC2Api.java
│   │       │                   ├── EC2ApiMetadata.java
│   │       │                   ├── EC2Fallbacks.java
│   │       │                   ├── binders/
│   │       │                   │   ├── BindBlockDeviceMappingToIndexedFormParams.java
│   │       │                   │   ├── BindBundleIdsToIndexedFormParams.java
│   │       │                   │   ├── BindFiltersToIndexedFormParams.java
│   │       │                   │   ├── BindGroupIdsToIndexedFormParams.java
│   │       │                   │   ├── BindGroupNamesToIndexedFormParams.java
│   │       │                   │   ├── BindInstanceIdsToIndexedFormParams.java
│   │       │                   │   ├── BindIpPermissionToIndexedFormParams.java
│   │       │                   │   ├── BindIpPermissionsToIndexedFormParams.java
│   │       │                   │   ├── BindKeyNamesToIndexedFormParams.java
│   │       │                   │   ├── BindProductCodesToIndexedFormParams.java
│   │       │                   │   ├── BindPublicIpsToIndexedFormParams.java
│   │       │                   │   ├── BindResourceIdsToIndexedFormParams.java
│   │       │                   │   ├── BindS3UploadPolicyAndSignature.java
│   │       │                   │   ├── BindSubnetIdsToIndexedFormParams.java
│   │       │                   │   ├── BindTagKeysToIndexedFormParams.java
│   │       │                   │   ├── BindTagsToIndexedFormParams.java
│   │       │                   │   ├── BindUserGroupsToIndexedFormParams.java
│   │       │                   │   ├── BindUserIdGroupPairToSourceSecurityGroupFormParams.java
│   │       │                   │   ├── BindUserIdsToIndexedFormParams.java
│   │       │                   │   ├── BindVolumeIdsToIndexedFormParams.java
│   │       │                   │   └── IfNotNullBindAvailabilityZoneToFormParam.java
│   │       │                   ├── compute/
│   │       │                   │   ├── EC2ComputeService.java
│   │       │                   │   ├── EC2ComputeServiceContext.java
│   │       │                   │   ├── config/
│   │       │                   │   │   ├── EC2BindComputeStrategiesByClass.java
│   │       │                   │   │   ├── EC2BindComputeSuppliersByClass.java
│   │       │                   │   │   ├── EC2ComputeServiceContextModule.java
│   │       │                   │   │   ├── EC2ComputeServiceDependenciesModule.java
│   │       │                   │   │   └── EC2ResolveImagesModule.java
│   │       │                   │   ├── domain/
│   │       │                   │   │   ├── EC2HardwareBuilder.java
│   │       │                   │   │   ├── PasswordDataAndPrivateKey.java
│   │       │                   │   │   ├── RegionAndName.java
│   │       │                   │   │   └── RegionNameAndIngressRules.java
│   │       │                   │   ├── extensions/
│   │       │                   │   │   ├── EC2ImageExtension.java
│   │       │                   │   │   └── EC2SecurityGroupExtension.java
│   │       │                   │   ├── functions/
│   │       │                   │   │   ├── AddElasticIpsToNodemetadata.java
│   │       │                   │   │   ├── CreateUniqueKeyPair.java
│   │       │                   │   │   ├── CredentialsForInstance.java
│   │       │                   │   │   ├── EC2ImageParser.java
│   │       │                   │   │   ├── EC2SecurityGroupIdFromName.java
│   │       │                   │   │   ├── EC2SecurityGroupToSecurityGroup.java
│   │       │                   │   │   ├── ImagesToRegionAndIdMap.java
│   │       │                   │   │   ├── PasswordCredentialsFromWindowsInstance.java
│   │       │                   │   │   ├── PresentInstances.java
│   │       │                   │   │   ├── RunningInstanceToNodeMetadata.java
│   │       │                   │   │   └── WindowsLoginCredentialsFromEncryptedData.java
│   │       │                   │   ├── internal/
│   │       │                   │   │   ├── EC2ComputeServiceContextImpl.java
│   │       │                   │   │   └── EC2TemplateBuilderImpl.java
│   │       │                   │   ├── loaders/
│   │       │                   │   │   ├── CreateSecurityGroupIfNeeded.java
│   │       │                   │   │   ├── LoadAllocationIdForInstanceOrNull.java
│   │       │                   │   │   ├── LoadPublicIpForInstanceOrNull.java
│   │       │                   │   │   └── RegionAndIdToImage.java
│   │       │                   │   ├── options/
│   │       │                   │   │   └── EC2TemplateOptions.java
│   │       │                   │   ├── predicates/
│   │       │                   │   │   ├── EC2ImagePredicates.java
│   │       │                   │   │   └── SecurityGroupPresent.java
│   │       │                   │   ├── strategy/
│   │       │                   │   │   ├── CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions.java
│   │       │                   │   │   ├── DescribeImagesParallel.java
│   │       │                   │   │   ├── EC2CreateNodesInGroupThenAddToSet.java
│   │       │                   │   │   ├── EC2DestroyNodeStrategy.java
│   │       │                   │   │   ├── EC2GetImageStrategy.java
│   │       │                   │   │   ├── EC2GetNodeMetadataStrategy.java
│   │       │                   │   │   ├── EC2ListNodesStrategy.java
│   │       │                   │   │   ├── EC2PopulateDefaultLoginCredentialsForImageStrategy.java
│   │       │                   │   │   ├── EC2RebootNodeStrategy.java
│   │       │                   │   │   ├── EC2ResumeNodeStrategy.java
│   │       │                   │   │   ├── EC2SuspendNodeStrategy.java
│   │       │                   │   │   └── ReviseParsedImage.java
│   │       │                   │   ├── suppliers/
│   │       │                   │   │   ├── EC2HardwareSupplier.java
│   │       │                   │   │   ├── EC2ImageSupplier.java
│   │       │                   │   │   └── RegionAndNameToImageSupplier.java
│   │       │                   │   └── util/
│   │       │                   │       └── EC2ComputeUtils.java
│   │       │                   ├── config/
│   │       │                   │   ├── BaseEC2HttpApiModule.java
│   │       │                   │   └── EC2HttpApiModule.java
│   │       │                   ├── domain/
│   │       │                   │   ├── Attachment.java
│   │       │                   │   ├── AvailabilityZoneInfo.java
│   │       │                   │   ├── BlockDevice.java
│   │       │                   │   ├── BlockDeviceMapping.java
│   │       │                   │   ├── BundleInstanceS3Storage.java
│   │       │                   │   ├── BundleTask.java
│   │       │                   │   ├── Hypervisor.java
│   │       │                   │   ├── Image.java
│   │       │                   │   ├── ImageAttribute.java
│   │       │                   │   ├── InstanceState.java
│   │       │                   │   ├── InstanceStateChange.java
│   │       │                   │   ├── InstanceType.java
│   │       │                   │   ├── KeyPair.java
│   │       │                   │   ├── PasswordData.java
│   │       │                   │   ├── Permission.java
│   │       │                   │   ├── PublicIpInstanceIdPair.java
│   │       │                   │   ├── Reservation.java
│   │       │                   │   ├── ReservedInstancesOffering.java
│   │       │                   │   ├── RootDeviceType.java
│   │       │                   │   ├── RunningInstance.java
│   │       │                   │   ├── SecurityGroup.java
│   │       │                   │   ├── Snapshot.java
│   │       │                   │   ├── Subnet.java
│   │       │                   │   ├── Tag.java
│   │       │                   │   ├── UserIdGroupPair.java
│   │       │                   │   ├── VirtualizationType.java
│   │       │                   │   └── Volume.java
│   │       │                   ├── features/
│   │       │                   │   ├── AMIApi.java
│   │       │                   │   ├── AvailabilityZoneAndRegionApi.java
│   │       │                   │   ├── ElasticBlockStoreApi.java
│   │       │                   │   ├── ElasticIPAddressApi.java
│   │       │                   │   ├── InstanceApi.java
│   │       │                   │   ├── KeyPairApi.java
│   │       │                   │   ├── SecurityGroupApi.java
│   │       │                   │   ├── SubnetApi.java
│   │       │                   │   ├── TagApi.java
│   │       │                   │   └── WindowsApi.java
│   │       │                   ├── functions/
│   │       │                   │   ├── ConvertUnencodedBytesToBase64EncodedString.java
│   │       │                   │   └── EncodedRSAPublicKeyToBase64.java
│   │       │                   ├── options/
│   │       │                   │   ├── BundleInstanceS3StorageOptions.java
│   │       │                   │   ├── CreateImageOptions.java
│   │       │                   │   ├── CreateSnapshotOptions.java
│   │       │                   │   ├── CreateVolumeOptions.java
│   │       │                   │   ├── DescribeAvailabilityZonesOptions.java
│   │       │                   │   ├── DescribeImagesOptions.java
│   │       │                   │   ├── DescribeRegionsOptions.java
│   │       │                   │   ├── DescribeSnapshotsOptions.java
│   │       │                   │   ├── DetachVolumeOptions.java
│   │       │                   │   ├── RegisterImageBackedByEbsOptions.java
│   │       │                   │   ├── RegisterImageOptions.java
│   │       │                   │   ├── RunInstancesOptions.java
│   │       │                   │   └── internal/
│   │       │                   │       └── BaseEC2RequestOptions.java
│   │       │                   ├── predicates/
│   │       │                   │   ├── InstanceHasIpAddress.java
│   │       │                   │   ├── InstanceStateRunning.java
│   │       │                   │   ├── InstanceStateStopped.java
│   │       │                   │   ├── InstanceStateTerminated.java
│   │       │                   │   ├── SnapshotCompleted.java
│   │       │                   │   ├── VolumeAttached.java
│   │       │                   │   ├── VolumeAvailable.java
│   │       │                   │   └── VolumeDetached.java
│   │       │                   ├── reference/
│   │       │                   │   └── EC2Constants.java
│   │       │                   ├── suppliers/
│   │       │                   │   ├── DescribeAvailabilityZonesInRegion.java
│   │       │                   │   └── DescribeRegionsForRegionURIs.java
│   │       │                   ├── util/
│   │       │                   │   ├── IpPermissions.java
│   │       │                   │   ├── SubnetFilterBuilder.java
│   │       │                   │   ├── TagFilterBuilder.java
│   │       │                   │   └── Tags.java
│   │       │                   └── xml/
│   │       │                       ├── AllocateAddressResponseHandler.java
│   │       │                       ├── AttachmentHandler.java
│   │       │                       ├── BaseReservationHandler.java
│   │       │                       ├── BlockDeviceMappingHandler.java
│   │       │                       ├── BooleanValueHandler.java
│   │       │                       ├── BundleTaskHandler.java
│   │       │                       ├── CreateVolumeResponseHandler.java
│   │       │                       ├── DescribeAddressesResponseHandler.java
│   │       │                       ├── DescribeAvailabilityZonesResponseHandler.java
│   │       │                       ├── DescribeBundleTasksResponseHandler.java
│   │       │                       ├── DescribeImagesResponseHandler.java
│   │       │                       ├── DescribeInstancesResponseHandler.java
│   │       │                       ├── DescribeKeyPairsResponseHandler.java
│   │       │                       ├── DescribeRegionsResponseHandler.java
│   │       │                       ├── DescribeSecurityGroupsResponseHandler.java
│   │       │                       ├── DescribeSnapshotsResponseHandler.java
│   │       │                       ├── DescribeSubnetsResponseHandler.java
│   │       │                       ├── DescribeTagsResponseHandler.java
│   │       │                       ├── DescribeVolumesResponseHandler.java
│   │       │                       ├── GetConsoleOutputResponseHandler.java
│   │       │                       ├── GetPasswordDataResponseHandler.java
│   │       │                       ├── ImageIdHandler.java
│   │       │                       ├── InstanceInitiatedShutdownBehaviorHandler.java
│   │       │                       ├── InstanceStateChangeHandler.java
│   │       │                       ├── InstanceTypeHandler.java
│   │       │                       ├── IpPermissionHandler.java
│   │       │                       ├── KeyPairResponseHandler.java
│   │       │                       ├── PermissionHandler.java
│   │       │                       ├── RunInstancesResponseHandler.java
│   │       │                       ├── SecurityGroupHandler.java
│   │       │                       ├── SnapshotHandler.java
│   │       │                       ├── StringValueHandler.java
│   │       │                       ├── SubnetHandler.java
│   │       │                       ├── TagHandler.java
│   │       │                       ├── TagSetHandler.java
│   │       │                       └── UnencodeStringValueHandler.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── jclouds/
│   │           │           └── ec2/
│   │           │               ├── CloudApplicationArchitecturesEC2ApiLiveTest.java
│   │           │               ├── EBSBootEC2ApiLiveTest.java
│   │           │               ├── EC2ApiMetadataTest.java
│   │           │               ├── EC2ContextBuilderText.java
│   │           │               ├── binders/
│   │           │               │   ├── BindBlockDeviceMappingToIndexedFormParamsTest.java
│   │           │               │   ├── BindBundleIdsToIndexedFormParamsTest.java
│   │           │               │   ├── BindFiltersToIndexedFormParamsTest.java
│   │           │               │   ├── BindGroupNamesToIndexedFormParamsTest.java
│   │           │               │   ├── BindInstanceIdsToIndexedFormParamsTest.java
│   │           │               │   ├── BindKeyNamesToIndexedFormParamsTest.java
│   │           │               │   ├── BindProductCodesToIndexedFormParamsTest.java
│   │           │               │   ├── BindPublicIpsToIndexedFormParamsTest.java
│   │           │               │   ├── BindResourceIdsToIndexedFormParamsTest.java
│   │           │               │   ├── BindS3UploadPolicyAndSignatureTest.java
│   │           │               │   ├── BindTagKeysToIndexedFormParamsTest.java
│   │           │               │   ├── BindTagsToIndexedFormParamsTest.java
│   │           │               │   ├── BindUserGroupsToIndexedFormParamsTest.java
│   │           │               │   ├── BindUserIdGroupPairToSourceSecurityGroupFormParamsTest.java
│   │           │               │   ├── BindUserIdsToIndexedFormParamsTest.java
│   │           │               │   ├── BindVolumeIdsToIndexedFormParamsTest.java
│   │           │               │   └── IfNotNullBindAvailabilityZoneToFormParamTest.java
│   │           │               ├── compute/
│   │           │               │   ├── EC2ComputeServiceExpectTest.java
│   │           │               │   ├── EC2ComputeServiceLiveTest.java
│   │           │               │   ├── EC2TemplateBuilderLiveTest.java
│   │           │               │   ├── EC2TemplateBuilderTest.java
│   │           │               │   ├── TestCanRecreateGroupLiveTest.java
│   │           │               │   ├── config/
│   │           │               │   │   └── EC2ComputeServiceContextModuleTest.java
│   │           │               │   ├── extensions/
│   │           │               │   │   ├── EC2ImageExtensionExpectTest.java
│   │           │               │   │   ├── EC2ImageExtensionLiveTest.java
│   │           │               │   │   ├── EC2SecurityGroupExtensionExpectTest.java
│   │           │               │   │   └── EC2SecurityGroupExtensionLiveTest.java
│   │           │               │   ├── functions/
│   │           │               │   │   ├── AddElasticIpsToNodemetadataTest.java
│   │           │               │   │   ├── CreateUniqueKeyPairTest.java
│   │           │               │   │   ├── EC2ImageParserTest.java
│   │           │               │   │   ├── EC2SecurityGroupToSecurityGroupTest.java
│   │           │               │   │   ├── PresentInstancesTest.java
│   │           │               │   │   ├── RunningInstanceToNodeMetadataTest.java
│   │           │               │   │   └── WindowsLoginCredentialsFromEncryptedDataTest.java
│   │           │               │   ├── internal/
│   │           │               │   │   ├── BaseEC2ComputeServiceContextExpectTest.java
│   │           │               │   │   ├── BaseEC2ComputeServiceExpectTest.java
│   │           │               │   │   └── EC2TemplateBuilderImplTest.java
│   │           │               │   ├── loaders/
│   │           │               │   │   ├── CreateSecurityGroupIfNeededTest.java
│   │           │               │   │   ├── LoadPublicIpForInstanceOrNullTest.java
│   │           │               │   │   └── RegionAndIdToImageTest.java
│   │           │               │   ├── options/
│   │           │               │   │   └── EC2TemplateOptionsTest.java
│   │           │               │   └── strategy/
│   │           │               │       ├── CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptionsTest.java
│   │           │               │       ├── EC2CreateNodesInGroupThenAddToSetTest.java
│   │           │               │       └── EC2DestroyNodeStrategyTest.java
│   │           │               ├── config/
│   │           │               │   └── EC2HttpApiModuleExpectTest.java
│   │           │               ├── features/
│   │           │               │   ├── AMIApiExpectTest.java
│   │           │               │   ├── AMIApiLiveTest.java
│   │           │               │   ├── AMIApiTest.java
│   │           │               │   ├── AvailabilityZoneAndRegionApiLiveTest.java
│   │           │               │   ├── AvailabilityZoneAndRegionApiTest.java
│   │           │               │   ├── BaseEC2ApiTest.java
│   │           │               │   ├── EC2ElasticBlockStoreApiExpectTest.java
│   │           │               │   ├── ElasticBlockStoreApiLiveTest.java
│   │           │               │   ├── ElasticBlockStoreApiTest.java
│   │           │               │   ├── ElasticIPAddressApiExpectTest.java
│   │           │               │   ├── ElasticIPAddressApiLiveTest.java
│   │           │               │   ├── ElasticIPAddressApiTest.java
│   │           │               │   ├── InstanceApiExpectTest.java
│   │           │               │   ├── InstanceApiLiveTest.java
│   │           │               │   ├── InstanceApiTest.java
│   │           │               │   ├── KeyPairApiExpectTest.java
│   │           │               │   ├── KeyPairApiLiveTest.java
│   │           │               │   ├── KeyPairApiTest.java
│   │           │               │   ├── SecurityGroupApiExpectTest.java
│   │           │               │   ├── SecurityGroupApiLiveTest.java
│   │           │               │   ├── SecurityGroupApiTest.java
│   │           │               │   ├── SubnetApiExpectTest.java
│   │           │               │   ├── SubnetApiLiveTest.java
│   │           │               │   ├── TagApiExpectTest.java
│   │           │               │   ├── WindowsApiExpectTest.java
│   │           │               │   ├── WindowsApiLiveTest.java
│   │           │               │   ├── WindowsApiTest.java
│   │           │               │   └── internal/
│   │           │               │       └── BaseTagApiLiveTest.java
│   │           │               ├── functions/
│   │           │               │   ├── ConvertUnencodedBytesToBase64EncodedStringTest.java
│   │           │               │   └── EncodedRSAPublicKeyToBase64Test.java
│   │           │               ├── internal/
│   │           │               │   ├── BaseEC2ApiExpectTest.java
│   │           │               │   ├── BaseEC2ApiLiveTest.java
│   │           │               │   ├── BaseEC2ApiMockTest.java
│   │           │               │   └── BaseEC2ExpectTest.java
│   │           │               ├── options/
│   │           │               │   ├── BundleInstanceS3StorageOptionsTest.java
│   │           │               │   ├── CreateImageOptionsTest.java
│   │           │               │   ├── CreateSnapshotOptionsTest.java
│   │           │               │   ├── CreateVolumeOptionsTest.java
│   │           │               │   ├── DescribeImagesOptionsTest.java
│   │           │               │   ├── DescribeSnapshotsOptionsTest.java
│   │           │               │   ├── DetachVolumeOptionsTest.java
│   │           │               │   ├── RegisterImageBackedByEbsOptionsTest.java
│   │           │               │   ├── RegisterImageOptionsTest.java
│   │           │               │   └── RunInstancesOptionsTest.java
│   │           │               ├── parse/
│   │           │               │   ├── DescribeSubnetsResponseTest.java
│   │           │               │   ├── DescribeTagsResponseTest.java
│   │           │               │   └── GetPasswordDataResponseTest.java
│   │           │               ├── predicates/
│   │           │               │   └── VolumeDetachedTest.java
│   │           │               ├── suppliers/
│   │           │               │   ├── DescribeAvailabilityZonesInRegionMockTest.java
│   │           │               │   └── DescribeRegionsForRegionURIsMockTest.java
│   │           │               ├── util/
│   │           │               │   ├── IpPermissionsTest.java
│   │           │               │   └── TagsTest.java
│   │           │               └── xml/
│   │           │                   ├── AllocateAddressResponseHandlerTest.java
│   │           │                   ├── AttachmentHandlerTest.java
│   │           │                   ├── BaseEC2HandlerTest.java
│   │           │                   ├── BlockDeviceMappingHandlerTest.java
│   │           │                   ├── BundleTaskHandlerTest.java
│   │           │                   ├── CreateVolumeResponseHandlerTest.java
│   │           │                   ├── DescribeAddressesResponseHandlerTest.java
│   │           │                   ├── DescribeAvailabilityZonesResponseHandlerTest.java
│   │           │                   ├── DescribeBundleTasksResponseHandlerTest.java
│   │           │                   ├── DescribeImagesResponseHandlerTest.java
│   │           │                   ├── DescribeInstanceAttributeTest.java
│   │           │                   ├── DescribeInstancesResponseHandlerTest.java
│   │           │                   ├── DescribeKeyPairsResponseHandlerTest.java
│   │           │                   ├── DescribeRegionsResponseHandlerTest.java
│   │           │                   ├── DescribeSecurityGroupsResponseHandlerTest.java
│   │           │                   ├── DescribeSnapshotsResponseHandlerTest.java
│   │           │                   ├── DescribeVolumesResponseHandlerTest.java
│   │           │                   ├── GetConsoleOutputResponseHandlerTest.java
│   │           │                   ├── InstanceStateChangeHandlerTest.java
│   │           │                   ├── KeyPairResponseHandlerTest.java
│   │           │                   ├── PermissionHandlerTest.java
│   │           │                   ├── RunInstancesResponseHandlerTest.java
│   │           │                   └── SnapshotHandlerTest.java
│   │           └── resources/
│   │               ├── allocate_address.xml
│   │               ├── amzn_images.xml
│   │               ├── attach.xml
│   │               ├── authorize_securitygroup_ingress_response.xml
│   │               ├── availabilityZones-ap-northeast-1.xml
│   │               ├── availabilityZones-ap-southeast-1.xml
│   │               ├── availabilityZones-eu-west-1.xml
│   │               ├── availabilityZones-sa-east-1.xml
│   │               ├── availabilityZones-us-east-1.xml
│   │               ├── availabilityZones-us-west-1.xml
│   │               ├── availabilityZones-us-west-2.xml
│   │               ├── availabilityZones.xml
│   │               ├── bundle_instance.xml
│   │               ├── cancel_bundle_task.xml
│   │               ├── create_keypair.xml
│   │               ├── created_securitygroup.xml
│   │               ├── created_snapshot.xml
│   │               ├── created_volume.xml
│   │               ├── delete_keypair.xml
│   │               ├── delete_placementgroup.xml
│   │               ├── delete_securitygroup.xml
│   │               ├── describe_addresses.xml
│   │               ├── describe_addresses_single.xml
│   │               ├── describe_addresses_with_tags.xml
│   │               ├── describe_bundle_tasks.xml
│   │               ├── describe_image_attribute_blockDeviceMapping.xml
│   │               ├── describe_image_attribute_launchPermission.xml
│   │               ├── describe_images.xml
│   │               ├── describe_images_ebs.xml
│   │               ├── describe_images_imageextension0.xml
│   │               ├── describe_images_imageextension1.xml
│   │               ├── describe_images_imageextension2.xml
│   │               ├── describe_images_nova.xml
│   │               ├── describe_images_tags.xml
│   │               ├── describe_images_windows.xml
│   │               ├── describe_instances.xml
│   │               ├── describe_instances_ebs.xml
│   │               ├── describe_instances_empty.xml
│   │               ├── describe_instances_multiple.xml
│   │               ├── describe_instances_running-1.xml
│   │               ├── describe_instances_running-named.xml
│   │               ├── describe_instances_running.xml
│   │               ├── describe_instances_running_securitygroups.xml
│   │               ├── describe_instances_three_ids.xml
│   │               ├── describe_keypairs.xml
│   │               ├── describe_keypairs_jcloudssingle.xml
│   │               ├── describe_securitygroups.xml
│   │               ├── describe_securitygroups_empty.xml
│   │               ├── describe_securitygroups_extension_cidr.xml
│   │               ├── describe_securitygroups_extension_group.xml
│   │               ├── describe_securitygroups_extension_new.xml
│   │               ├── describe_securitygroups_extension_single.xml
│   │               ├── describe_snapshots.xml
│   │               ├── describe_subnets.xml
│   │               ├── describe_tags.xml
│   │               ├── describe_volumes.xml
│   │               ├── describe_volumes_single.xml
│   │               ├── disableApiTermination.xml
│   │               ├── get_console_output_response.xml
│   │               ├── get_passworddata.xml
│   │               ├── instanceInitiatedShutdownBehavior.xml
│   │               ├── instanceType.xml
│   │               ├── log4j.xml
│   │               ├── new_instance.xml
│   │               ├── new_securitygroup.xml
│   │               ├── ramdisk.xml
│   │               ├── regionEndpoints-additional.xml
│   │               ├── regionEndpoints-all.xml
│   │               ├── regionEndpoints.xml
│   │               ├── run_instances.xml
│   │               ├── run_instances_cloudbridge.xml
│   │               ├── run_instances_three.xml
│   │               ├── start_instances.xml
│   │               ├── stop_instances.xml
│   │               ├── terminate_instances.xml
│   │               └── userData.xml
│   ├── elasticstack/
│   │   ├── README.txt
│   │   ├── bnd.bnd
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── jclouds/
│   │       │               └── elasticstack/
│   │       │                   ├── ElasticStackApi.java
│   │       │                   ├── ElasticStackApiMetadata.java
│   │       │                   ├── binders/
│   │       │                   │   ├── BindDriveDataToPlainTextString.java
│   │       │                   │   ├── BindDriveToPlainTextString.java
│   │       │                   │   └── BindServerToPlainTextString.java
│   │       │                   ├── compute/
│   │       │                   │   ├── ElasticStackComputeServiceAdapter.java
│   │       │                   │   ├── config/
│   │       │                   │   │   └── ElasticStackComputeServiceContextModule.java
│   │       │                   │   └── functions/
│   │       │                   │       ├── ServerInfoToNodeMetadata.java
│   │       │                   │       ├── StandardDriveToWellKnownImage.java
│   │       │                   │       └── WellKnownImageToImage.java
│   │       │                   ├── config/
│   │       │                   │   └── ElasticStackHttpApiModule.java
│   │       │                   ├── domain/
│   │       │                   │   ├── BlockDevice.java
│   │       │                   │   ├── ClaimType.java
│   │       │                   │   ├── CreateDriveRequest.java
│   │       │                   │   ├── Device.java
│   │       │                   │   ├── Drive.java
│   │       │                   │   ├── DriveData.java
│   │       │                   │   ├── DriveInfo.java
│   │       │                   │   ├── DriveMetrics.java
│   │       │                   │   ├── DriveStatus.java
│   │       │                   │   ├── IDEDevice.java
│   │       │                   │   ├── ImageConversionType.java
│   │       │                   │   ├── Item.java
│   │       │                   │   ├── MediaType.java
│   │       │                   │   ├── Model.java
│   │       │                   │   ├── NIC.java
│   │       │                   │   ├── SCSIDevice.java
│   │       │                   │   ├── Server.java
│   │       │                   │   ├── ServerInfo.java
│   │       │                   │   ├── ServerMetrics.java
│   │       │                   │   ├── ServerStatus.java
│   │       │                   │   ├── StandardDrive.java
│   │       │                   │   ├── VNC.java
│   │       │                   │   └── WellKnownImage.java
│   │       │                   ├── functions/
│   │       │                   │   ├── BaseDriveToMap.java
│   │       │                   │   ├── CreateDriveRequestToMap.java
│   │       │                   │   ├── DriveDataToMap.java
│   │       │                   │   ├── KeyValuesDelimitedByBlankLinesToDriveInfo.java
│   │       │                   │   ├── KeyValuesDelimitedByBlankLinesToServerInfo.java
│   │       │                   │   ├── ListOfKeyValuesDelimitedByBlankLinesToDriveInfoSet.java
│   │       │                   │   ├── ListOfKeyValuesDelimitedByBlankLinesToListOfMaps.java
│   │       │                   │   ├── ListOfKeyValuesDelimitedByBlankLinesToServerInfoSet.java
│   │       │                   │   ├── ListOfKeyValuesDelimitedByBlankLinesToStandardDriveSet.java
│   │       │                   │   ├── ListOfMapsToListOfKeyValuesDelimitedByBlankLines.java
│   │       │                   │   ├── MapToDevices.java
│   │       │                   │   ├── MapToDriveInfo.java
│   │       │                   │   ├── MapToDriveMetrics.java
│   │       │                   │   ├── MapToNICs.java
│   │       │                   │   ├── MapToServerInfo.java
│   │       │                   │   ├── MapToServerMetrics.java
│   │       │                   │   ├── MapToStandardDrive.java
│   │       │                   │   ├── ReturnPayload.java
│   │       │                   │   ├── ServerToMap.java
│   │       │                   │   └── SplitNewlines.java
│   │       │                   ├── handlers/
│   │       │                   │   └── ElasticStackErrorHandler.java
│   │       │                   ├── predicates/
│   │       │                   │   └── DriveClaimed.java
│   │       │                   ├── reference/
│   │       │                   │   └── ElasticStackConstants.java
│   │       │                   ├── suppliers/
│   │       │                   │   ├── StandardDiskImageSupplier.java
│   │       │                   │   └── WellKnownImageSupplier.java
│   │       │                   └── util/
│   │       │                       └── Servers.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── jclouds/
│   │           │           └── elasticstack/
│   │           │               ├── ElasticStackApiLiveTest.java
│   │           │               ├── ElasticStackApiMetadataTest.java
│   │           │               ├── ElasticStackApiTest.java
│   │           │               ├── ElasticStackMockTest.java
│   │           │               ├── binders/
│   │           │               │   ├── BindDriveDataToPlainTextStringTest.java
│   │           │               │   ├── BindDriveToPlainTextStringTest.java
│   │           │               │   └── BindServerToPlainTextStringTest.java
│   │           │               ├── compute/
│   │           │               │   ├── ElasticStackComputeServiceAdapterTest.java
│   │           │               │   ├── ElasticStackComputeServiceLiveTest.java
│   │           │               │   └── functions/
│   │           │               │       ├── GetImageIdFromServerTest.java
│   │           │               │       └── StandardDriveToWellKnownImageTest.java
│   │           │               ├── functions/
│   │           │               │   ├── BaseDriveToMapTest.java
│   │           │               │   ├── CreateDriveRequestToMapTest.java
│   │           │               │   ├── DriveDataToMapTest.java
│   │           │               │   ├── KeyValuesDelimitedByBlankLinesToDriveInfoTest.java
│   │           │               │   ├── KeyValuesDelimitedByBlankLinesToServerInfoTest.java
│   │           │               │   ├── ListOfKeyValuesDelimitedByBlankLinesToDriveInfoSetTest.java
│   │           │               │   ├── ListOfKeyValuesDelimitedByBlankLinesToListOfMapsTest.java
│   │           │               │   ├── ListOfKeyValuesDelimitedByBlankLinesToServerInfoSetTest.java
│   │           │               │   ├── ListOfKeyValuesDelimitedByBlankLinesToStandardDriveSetTest.java
│   │           │               │   ├── ListOfMapsToListOfKeyValuesDelimitedByBlankLinesTest.java
│   │           │               │   ├── MapToDriveInfoTest.java
│   │           │               │   ├── MapToServerInfoTest.java
│   │           │               │   ├── MapToStandardDriveTest.java
│   │           │               │   ├── ServerToMapTest.java
│   │           │               │   └── SplitNewlinesTest.java
│   │           │               ├── handlers/
│   │           │               │   └── ElasticStackErrorHandlerTest.java
│   │           │               └── suppliers/
│   │           │                   └── MockStandardDiskImageSupplier.java
│   │           └── resources/
│   │               ├── create_drive.txt
│   │               ├── create_server.txt
│   │               ├── drive.txt
│   │               ├── drive_data.txt
│   │               ├── log4j.xml
│   │               ├── new_server.txt
│   │               ├── new_server2.txt
│   │               ├── server2.txt
│   │               ├── servers.txt
│   │               ├── standard_drive.txt
│   │               ├── standard_drives.txt
│   │               ├── standard_drives_uuids.txt
│   │               └── uuids.txt
│   ├── filesystem/
│   │   ├── README.txt
│   │   ├── bnd.bnd
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── jclouds/
│   │       │               └── filesystem/
│   │       │                   ├── FilesystemApiMetadata.java
│   │       │                   ├── config/
│   │       │                   │   └── FilesystemBlobStoreContextModule.java
│   │       │                   ├── predicates/
│   │       │                   │   └── validators/
│   │       │                   │       ├── FilesystemBlobKeyValidator.java
│   │       │                   │       ├── FilesystemContainerNameValidator.java
│   │       │                   │       └── internal/
│   │       │                   │           ├── FilesystemBlobKeyValidatorImpl.java
│   │       │                   │           └── FilesystemContainerNameValidatorImpl.java
│   │       │                   ├── reference/
│   │       │                   │   └── FilesystemConstants.java
│   │       │                   ├── strategy/
│   │       │                   │   └── internal/
│   │       │                   │       └── FilesystemStorageStrategyImpl.java
│   │       │                   └── util/
│   │       │                       ├── Utils.java
│   │       │                       └── internal/
│   │       │                           └── FileSystemBlobUtilsImpl.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── jclouds/
│   │           │           └── filesystem/
│   │           │               ├── FilesystemApiMetadataTest.java
│   │           │               ├── FilesystemBlobStoreTest.java
│   │           │               ├── integration/
│   │           │               │   ├── FilesystemBlobIntegrationTest.java
│   │           │               │   ├── FilesystemContainerIntegrationTest.java
│   │           │               │   └── FilesystemServiceIntegrationTest.java
│   │           │               ├── predicates/
│   │           │               │   └── validators/
│   │           │               │       └── internal/
│   │           │               │           ├── FilesystemBlobKeyValidatorTest.java
│   │           │               │           └── FilesystemContainerNameValidatorTest.java
│   │           │               ├── strategy/
│   │           │               │   └── internal/
│   │           │               │       └── FilesystemStorageStrategyImplTest.java
│   │           │               └── utils/
│   │           │                   └── TestUtils.java
│   │           └── resources/
│   │               └── logging.properties
│   ├── glacier/
│   │   ├── README.md
│   │   ├── bnd.bnd
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── jclouds/
│   │       │               └── glacier/
│   │       │                   ├── GlacierApiMetadata.java
│   │       │                   ├── GlacierClient.java
│   │       │                   ├── GlacierResponseException.java
│   │       │                   ├── binders/
│   │       │                   │   ├── BindArchiveOutputRangeToHeaders.java
│   │       │                   │   ├── BindArchiveSizeToHeaders.java
│   │       │                   │   ├── BindContentRangeToHeaders.java
│   │       │                   │   ├── BindDescriptionToHeaders.java
│   │       │                   │   ├── BindHashesToHeaders.java
│   │       │                   │   ├── BindJobRequestToJsonPayload.java
│   │       │                   │   ├── BindMultipartTreeHashToHeaders.java
│   │       │                   │   └── BindPartSizeToHeaders.java
│   │       │                   ├── blobstore/
│   │       │                   │   ├── GlacierBlobStore.java
│   │       │                   │   ├── config/
│   │       │                   │   │   └── GlacierBlobStoreContextModule.java
│   │       │                   │   ├── functions/
│   │       │                   │   │   ├── ArchiveMetadataCollectionToStorageMetadata.java
│   │       │                   │   │   ├── ListContainerOptionsToInventoryRetrievalJobRequest.java
│   │       │                   │   │   ├── PaginatedVaultCollectionToStorageMetadata.java
│   │       │                   │   │   └── VaultMetadataToStorageMetadata.java
│   │       │                   │   └── strategy/
│   │       │                   │       ├── MultipartUploadStrategy.java
│   │       │                   │       ├── PayloadSlice.java
│   │       │                   │       ├── PollingStrategy.java
│   │       │                   │       ├── SlicingStrategy.java
│   │       │                   │       └── internal/
│   │       │                   │           ├── BasePollingStrategy.java
│   │       │                   │           ├── BaseSlicingStrategy.java
│   │       │                   │           ├── ClearVaultStrategy.java
│   │       │                   │           └── SequentialMultipartUploadStrategy.java
│   │       │                   ├── config/
│   │       │                   │   ├── GlacierHttpApiModule.java
│   │       │                   │   └── GlacierParserModule.java
│   │       │                   ├── domain/
│   │       │                   │   ├── ArchiveMetadata.java
│   │       │                   │   ├── ArchiveMetadataCollection.java
│   │       │                   │   ├── ArchiveRetrievalJobRequest.java
│   │       │                   │   ├── GlacierError.java
│   │       │                   │   ├── InventoryRetrievalJobRequest.java
│   │       │                   │   ├── InventoryRetrievalParameters.java
│   │       │                   │   ├── JobMetadata.java
│   │       │                   │   ├── JobRequest.java
│   │       │                   │   ├── JobStatus.java
│   │       │                   │   ├── MultipartUploadMetadata.java
│   │       │                   │   ├── PaginatedJobCollection.java
│   │       │                   │   ├── PaginatedMultipartUploadCollection.java
│   │       │                   │   ├── PaginatedVaultCollection.java
│   │       │                   │   ├── PartMetadata.java
│   │       │                   │   └── VaultMetadata.java
│   │       │                   ├── fallbacks/
│   │       │                   │   └── FalseOnIllegalArgumentException.java
│   │       │                   ├── filters/
│   │       │                   │   └── RequestAuthorizeSignature.java
│   │       │                   ├── functions/
│   │       │                   │   ├── GetPayloadFromHttpContent.java
│   │       │                   │   ├── ParseArchiveIdHeader.java
│   │       │                   │   ├── ParseArchiveMetadataCollectionFromHttpContent.java
│   │       │                   │   ├── ParseJobIdHeader.java
│   │       │                   │   ├── ParseJobMetadataFromHttpContent.java
│   │       │                   │   ├── ParseJobMetadataListFromHttpContent.java
│   │       │                   │   ├── ParseMultipartUploadIdHeader.java
│   │       │                   │   ├── ParseMultipartUploadListFromHttpContent.java
│   │       │                   │   ├── ParseMultipartUploadPartListFromHttpContent.java
│   │       │                   │   ├── ParseMultipartUploadTreeHashHeader.java
│   │       │                   │   ├── ParseVaultMetadataFromHttpContent.java
│   │       │                   │   └── ParseVaultMetadataListFromHttpContent.java
│   │       │                   ├── handlers/
│   │       │                   │   └── ParseGlacierErrorFromJsonContent.java
│   │       │                   ├── options/
│   │       │                   │   └── PaginationOptions.java
│   │       │                   ├── predicates/
│   │       │                   │   └── validators/
│   │       │                   │       ├── DescriptionValidator.java
│   │       │                   │       ├── PartSizeValidator.java
│   │       │                   │       ├── PayloadValidator.java
│   │       │                   │       └── VaultNameValidator.java
│   │       │                   ├── reference/
│   │       │                   │   └── GlacierHeaders.java
│   │       │                   └── util/
│   │       │                       ├── AWSRequestSignerV4.java
│   │       │                       ├── ContentRange.java
│   │       │                       └── TreeHash.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── jclouds/
│   │           │           └── glacier/
│   │           │               ├── GlacierApiMetadataTest.java
│   │           │               ├── GlacierClientLiveTest.java
│   │           │               ├── GlacierClientLongLiveTest.java
│   │           │               ├── GlacierClientMockTest.java
│   │           │               ├── blobstore/
│   │           │               │   └── strategy/
│   │           │               │       └── internal/
│   │           │               │           ├── BaseSlicingStrategyTest.java
│   │           │               │           └── MultipartUploadStrategyMockTest.java
│   │           │               ├── predicates/
│   │           │               │   └── validators/
│   │           │               │       ├── DescriptionValidatorTest.java
│   │           │               │       ├── PartSizeValidatorTest.java
│   │           │               │       ├── PayloadValidatorTest.java
│   │           │               │       └── VaultNameValidatorTest.java
│   │           │               └── util/
│   │           │                   ├── AWSRequestSignerV4Test.java
│   │           │                   ├── ContentRangeTest.java
│   │           │                   ├── TestUtils.java
│   │           │                   └── TreeHashTest.java
│   │           └── resources/
│   │               ├── json/
│   │               │   ├── describeJobResponseBody.json
│   │               │   ├── describeVaultResponseBody.json
│   │               │   ├── getJobOutputResponseBody.json
│   │               │   ├── listJobsResponseBody.json
│   │               │   ├── listMultipartUploadsResponseBody.json
│   │               │   ├── listMultipartUploadsWithEmptyListResponseBody.json
│   │               │   ├── listPartsResponseBody.json
│   │               │   ├── listVaultsResponseBody.json
│   │               │   ├── listVaultsWithEmptyListResponseBody.json
│   │               │   └── listVaultsWithQueryParamsResponseBody.json
│   │               └── testng.xml
│   ├── oauth/
│   │   ├── README
│   │   ├── bnd.bnd
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── jclouds/
│   │       │               └── oauth/
│   │       │                   └── v2/
│   │       │                       ├── AuthorizationApi.java
│   │       │                       ├── OAuthFallbacks.java
│   │       │                       ├── config/
│   │       │                       │   ├── Authorization.java
│   │       │                       │   ├── CertificateFingerprintSupplier.java
│   │       │                       │   ├── CredentialType.java
│   │       │                       │   ├── OAuthConfigFactory.java
│   │       │                       │   ├── OAuthModule.java
│   │       │                       │   ├── OAuthProperties.java
│   │       │                       │   ├── OAuthScopes.java
│   │       │                       │   └── PrivateKeySupplier.java
│   │       │                       ├── domain/
│   │       │                       │   ├── CertificateFingerprint.java
│   │       │                       │   ├── Claims.java
│   │       │                       │   ├── ClientCredentialsAuthArgs.java
│   │       │                       │   ├── ClientCredentialsClaims.java
│   │       │                       │   ├── ClientSecret.java
│   │       │                       │   └── Token.java
│   │       │                       ├── filters/
│   │       │                       │   ├── BearerTokenFromCredentials.java
│   │       │                       │   ├── ClientCredentialsJWTBearerTokenFlow.java
│   │       │                       │   ├── ClientCredentialsSecretFlow.java
│   │       │                       │   ├── JWTBearerTokenFlow.java
│   │       │                       │   └── OAuthFilter.java
│   │       │                       └── functions/
│   │       │                           ├── ClaimsToAssertion.java
│   │       │                           └── ClientCredentialsClaimsToAssertion.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── jclouds/
│   │           │           └── oauth/
│   │           │               └── v2/
│   │           │                   ├── AuthorizationApiLiveTest.java
│   │           │                   ├── AuthorizationApiMockTest.java
│   │           │                   ├── OAuthTestUtils.java
│   │           │                   ├── config/
│   │           │                   │   └── PrivateKeySupplierTest.java
│   │           │                   ├── filters/
│   │           │                   │   └── TestJWTBearerTokenFlow.java
│   │           │                   └── functions/
│   │           │                       └── ClaimsToAssertionTest.java
│   │           └── resources/
│   │               ├── logback.xml
│   │               ├── testcert.pem
│   │               └── testpk.pem
│   ├── openstack-cinder/
│   │   ├── bnd.bnd
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── jclouds/
│   │       │               └── openstack/
│   │       │                   └── cinder/
│   │       │                       └── v1/
│   │       │                           ├── CinderApi.java
│   │       │                           ├── CinderApiMetadata.java
│   │       │                           ├── config/
│   │       │                           │   ├── CinderHttpApiModule.java
│   │       │                           │   └── CinderParserModule.java
│   │       │                           ├── domain/
│   │       │                           │   ├── AvailabilityZone.java
│   │       │                           │   ├── Snapshot.java
│   │       │                           │   ├── SnapshotExtendedAttributes.java
│   │       │                           │   ├── Volume.java
│   │       │                           │   ├── VolumeAttachment.java
│   │       │                           │   ├── VolumeQuota.java
│   │       │                           │   ├── VolumeType.java
│   │       │                           │   └── ZoneState.java
│   │       │                           ├── extensions/
│   │       │                           │   ├── AvailabilityZoneApi.java
│   │       │                           │   └── ExtensionNamespaces.java
│   │       │                           ├── features/
│   │       │                           │   ├── QuotaApi.java
│   │       │                           │   ├── SnapshotApi.java
│   │       │                           │   ├── VolumeApi.java
│   │       │                           │   └── VolumeTypeApi.java
│   │       │                           ├── handlers/
│   │       │                           │   └── CinderErrorHandler.java
│   │       │                           ├── options/
│   │       │                           │   ├── CreateSnapshotOptions.java
│   │       │                           │   └── CreateVolumeOptions.java
│   │       │                           └── predicates/
│   │       │                               ├── SnapshotPredicates.java
│   │       │                               └── VolumePredicates.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── jclouds/
│   │           │           └── openstack/
│   │           │               └── cinder/
│   │           │                   └── v1/
│   │           │                       ├── domain/
│   │           │                       │   └── VolumeTest.java
│   │           │                       ├── features/
│   │           │                       │   ├── AvailabilityZoneApiExpectTest.java
│   │           │                       │   ├── AvailabilityZoneApiLiveTest.java
│   │           │                       │   ├── QuotasApiExpectTest.java
│   │           │                       │   ├── QuotasApiLiveTest.java
│   │           │                       │   ├── SnapshotApiExpectTest.java
│   │           │                       │   ├── VolumeAndSnapshotApiLiveTest.java
│   │           │                       │   ├── VolumeApiExpectTest.java
│   │           │                       │   ├── VolumeTypeApiExpectTest.java
│   │           │                       │   └── VolumeTypeApiLiveTest.java
│   │           │                       └── internal/
│   │           │                           ├── BaseCinderApiExpectTest.java
│   │           │                           ├── BaseCinderApiLiveTest.java
│   │           │                           └── BaseCinderExpectTest.java
│   │           └── resources/
│   │               ├── availability_zones_list.json
│   │               ├── quotas.json
│   │               ├── snapshot_create.json
│   │               ├── snapshot_create_response.json
│   │               ├── snapshot_get.json
│   │               ├── snapshot_list_details.json
│   │               ├── snapshot_list_simple.json
│   │               ├── volume_create.json
│   │               ├── volume_create_response.json
│   │               ├── volume_get.json
│   │               ├── volume_list_details.json
│   │               ├── volume_list_simple.json
│   │               ├── volume_type_get.json
│   │               └── volume_type_list_simple.json
│   ├── openstack-keystone/
│   │   ├── bnd.bnd
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── jclouds/
│   │       │               └── openstack/
│   │       │                   ├── keystone/
│   │       │                   │   ├── auth/
│   │       │                   │   │   ├── AuthHeaders.java
│   │       │                   │   │   ├── AuthenticationApi.java
│   │       │                   │   │   ├── config/
│   │       │                   │   │   │   ├── Authentication.java
│   │       │                   │   │   │   ├── AuthenticationModule.java
│   │       │                   │   │   │   ├── CredentialType.java
│   │       │                   │   │   │   └── CredentialTypes.java
│   │       │                   │   │   ├── domain/
│   │       │                   │   │   │   ├── ApiAccessKeyCredentials.java
│   │       │                   │   │   │   ├── AuthInfo.java
│   │       │                   │   │   │   ├── PasswordCredentials.java
│   │       │                   │   │   │   ├── TenantOrDomainAndCredentials.java
│   │       │                   │   │   │   └── TokenCredentials.java
│   │       │                   │   │   ├── filters/
│   │       │                   │   │   │   └── AuthenticateRequest.java
│   │       │                   │   │   ├── functions/
│   │       │                   │   │   │   ├── AuthenticateApiAccessKeyCredentials.java
│   │       │                   │   │   │   ├── AuthenticatePasswordCredentials.java
│   │       │                   │   │   │   ├── AuthenticateTokenCredentials.java
│   │       │                   │   │   │   └── BaseAuthenticator.java
│   │       │                   │   │   └── handlers/
│   │       │                   │   │       └── RetryOnRenew.java
│   │       │                   │   ├── catalog/
│   │       │                   │   │   ├── ServiceEndpoint.java
│   │       │                   │   │   ├── config/
│   │       │                   │   │   │   ├── InternalUrlModule.java
│   │       │                   │   │   │   ├── KeystoneAdminURLModule.java
│   │       │                   │   │   │   └── ServiceCatalogModule.java
│   │       │                   │   │   ├── functions/
│   │       │                   │   │   │   ├── AdminEndpointResolutionStrategy.java
│   │       │                   │   │   │   ├── AdminURL.java
│   │       │                   │   │   │   ├── BaseEndpointResolutionStrategy.java
│   │       │                   │   │   │   ├── InternalURL.java
│   │       │                   │   │   │   ├── PublicURLOrInternal.java
│   │       │                   │   │   │   ├── ReturnRegionOrProvider.java
│   │       │                   │   │   │   ├── ServiceEndpointResolutionStrategy.java
│   │       │                   │   │   │   └── ServiceEndpointToRegion.java
│   │       │                   │   │   └── suppliers/
│   │       │                   │   │       ├── LocationIdToURIFromServiceEndpointsForTypeAndVersion.java
│   │       │                   │   │       ├── RegionIdToAdminURIFromServiceEndpointsForTypeAndVersion.java
│   │       │                   │   │       ├── RegionIdToAdminURISupplier.java
│   │       │                   │   │       └── RegionIdToURIFromServiceEndpointsForTypeAndVersion.java
│   │       │                   │   ├── config/
│   │       │                   │   │   └── KeystoneProperties.java
│   │       │                   │   ├── v2_0/
│   │       │                   │   │   ├── KeystoneApi.java
│   │       │                   │   │   ├── KeystoneApiMetadata.java
│   │       │                   │   │   ├── KeystoneFallbacks.java
│   │       │                   │   │   ├── auth/
│   │       │                   │   │   │   └── V2AuthenticationApi.java
│   │       │                   │   │   ├── binders/
│   │       │                   │   │   │   └── BindAuthToJsonPayload.java
│   │       │                   │   │   ├── catalog/
│   │       │                   │   │   │   └── V2ServiceCatalog.java
│   │       │                   │   │   ├── config/
│   │       │                   │   │   │   ├── KeystoneHttpApiModule.java
│   │       │                   │   │   │   ├── KeystoneParserModule.java
│   │       │                   │   │   │   └── NamespaceAliases.java
│   │       │                   │   │   ├── domain/
│   │       │                   │   │   │   ├── Access.java
│   │       │                   │   │   │   ├── ApiMetadata.java
│   │       │                   │   │   │   ├── Endpoint.java
│   │       │                   │   │   │   ├── MediaType.java
│   │       │                   │   │   │   ├── Role.java
│   │       │                   │   │   │   ├── Service.java
│   │       │                   │   │   │   ├── Tenant.java
│   │       │                   │   │   │   ├── Token.java
│   │       │                   │   │   │   └── User.java
│   │       │                   │   │   ├── extensions/
│   │       │                   │   │   │   ├── ExtensionAliases.java
│   │       │                   │   │   │   ├── ExtensionNames.java
│   │       │                   │   │   │   ├── ExtensionNamespaces.java
│   │       │                   │   │   │   ├── RoleAdminApi.java
│   │       │                   │   │   │   ├── ServiceAdminApi.java
│   │       │                   │   │   │   ├── TenantAdminApi.java
│   │       │                   │   │   │   └── UserAdminApi.java
│   │       │                   │   │   ├── features/
│   │       │                   │   │   │   ├── ServiceApi.java
│   │       │                   │   │   │   ├── TenantApi.java
│   │       │                   │   │   │   ├── TokenApi.java
│   │       │                   │   │   │   └── UserApi.java
│   │       │                   │   │   ├── functions/
│   │       │                   │   │   │   └── internal/
│   │       │                   │   │   │       ├── ParseServices.java
│   │       │                   │   │   │       ├── ParseTenants.java
│   │       │                   │   │   │       └── ParseUsers.java
│   │       │                   │   │   ├── handlers/
│   │       │                   │   │   │   └── KeystoneErrorHandler.java
│   │       │                   │   │   └── options/
│   │       │                   │   │       ├── CreateTenantOptions.java
│   │       │                   │   │       ├── CreateUserOptions.java
│   │       │                   │   │       ├── UpdateTenantOptions.java
│   │       │                   │   │       └── UpdateUserOptions.java
│   │       │                   │   └── v3/
│   │       │                   │       ├── KeystoneApi.java
│   │       │                   │       ├── KeystoneApiMetadata.java
│   │       │                   │       ├── auth/
│   │       │                   │       │   └── V3AuthenticationApi.java
│   │       │                   │       ├── binders/
│   │       │                   │       │   ├── BindAccessKeyAuthToJsonPayload.java
│   │       │                   │       │   ├── BindAuthToJsonPayload.java
│   │       │                   │       │   ├── BindPasswordAuthToJsonPayload.java
│   │       │                   │       │   └── BindTokenAuthToJsonPayload.java
│   │       │                   │       ├── catalog/
│   │       │                   │       │   └── V3ServiceCatalog.java
│   │       │                   │       ├── config/
│   │       │                   │       │   └── KeystoneHttpApiModule.java
│   │       │                   │       ├── domain/
│   │       │                   │       │   ├── Auth.java
│   │       │                   │       │   ├── Catalog.java
│   │       │                   │       │   ├── Endpoint.java
│   │       │                   │       │   ├── Group.java
│   │       │                   │       │   ├── Link.java
│   │       │                   │       │   ├── Project.java
│   │       │                   │       │   ├── Region.java
│   │       │                   │       │   ├── Token.java
│   │       │                   │       │   └── User.java
│   │       │                   │       ├── features/
│   │       │                   │       │   ├── AuthApi.java
│   │       │                   │       │   ├── CatalogApi.java
│   │       │                   │       │   ├── ProjectApi.java
│   │       │                   │       │   ├── RegionApi.java
│   │       │                   │       │   └── UserApi.java
│   │       │                   │       └── parsers/
│   │       │                   │           └── ParseTokenFromHttpResponse.java
│   │       │                   └── v2_0/
│   │       │                       ├── ServiceType.java
│   │       │                       ├── domain/
│   │       │                       │   ├── Extension.java
│   │       │                       │   ├── Limit.java
│   │       │                       │   ├── Limits.java
│   │       │                       │   ├── Link.java
│   │       │                       │   ├── PaginatedCollection.java
│   │       │                       │   ├── RateLimit.java
│   │       │                       │   └── Resource.java
│   │       │                       ├── features/
│   │       │                       │   └── ExtensionApi.java
│   │       │                       ├── functions/
│   │       │                       │   └── PresentWhenExtensionAnnotationMatchesExtensionSet.java
│   │       │                       ├── options/
│   │       │                       │   └── PaginationOptions.java
│   │       │                       ├── predicates/
│   │       │                       │   ├── ExtensionPredicates.java
│   │       │                       │   └── LinkPredicates.java
│   │       │                       └── services/
│   │       │                           ├── Compute.java
│   │       │                           ├── Extension.java
│   │       │                           ├── Identity.java
│   │       │                           ├── Image.java
│   │       │                           └── ObjectStore.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── jclouds/
│   │           │           └── openstack/
│   │           │               ├── keystone/
│   │           │               │   ├── auth/
│   │           │               │   │   ├── config/
│   │           │               │   │   │   ├── CredentialTypesTest.java
│   │           │               │   │   │   └── ProviderModuleExpectTest.java
│   │           │               │   │   ├── handlers/
│   │           │               │   │   │   └── RetryOnRenewTest.java
│   │           │               │   │   └── suppliers/
│   │           │               │   │       ├── LocationIdToURIFromAccessForTypeAndVersionTest.java
│   │           │               │   │       ├── RegionIdToAdminURIFromAccessForTypeAndVersionTest.java
│   │           │               │   │       └── RegionIdToURIFromAccessForTypeAndVersionTest.java
│   │           │               │   ├── catalog/
│   │           │               │   │   └── functions/
│   │           │               │   │       ├── AdminURLTest.java
│   │           │               │   │       ├── InternalURLTest.java
│   │           │               │   │       ├── PublicURLOrInternalTest.java
│   │           │               │   │       └── ReturnRegionOrProviderTest.java
│   │           │               │   ├── v2_0/
│   │           │               │   │   ├── KeystoneApiExpectTest.java
│   │           │               │   │   ├── KeystoneApiLiveTest.java
│   │           │               │   │   ├── extensions/
│   │           │               │   │   │   ├── RoleAdminApiLiveTest.java
│   │           │               │   │   │   ├── RoleAdminApiMockTest.java
│   │           │               │   │   │   ├── ServiceAdminApiLiveTest.java
│   │           │               │   │   │   ├── ServiceAdminApiMockTest.java
│   │           │               │   │   │   ├── TenantAdminApiLiveTest.java
│   │           │               │   │   │   ├── TenantAdminApiMockTest.java
│   │           │               │   │   │   ├── UserAdminApiLiveTest.java
│   │           │               │   │   │   └── UserAdminApiMockTest.java
│   │           │               │   │   ├── features/
│   │           │               │   │   │   ├── ServiceApiExpectTest.java
│   │           │               │   │   │   ├── ServiceApiLiveTest.java
│   │           │               │   │   │   ├── TenantApiExpectTest.java
│   │           │               │   │   │   ├── TenantApiLiveTest.java
│   │           │               │   │   │   ├── TokenApiExpectTest.java
│   │           │               │   │   │   ├── TokenApiLiveTest.java
│   │           │               │   │   │   ├── UserApiExpectTest.java
│   │           │               │   │   │   └── UserApiLiveTest.java
│   │           │               │   │   ├── functions/
│   │           │               │   │   │   └── internal/
│   │           │               │   │   │       └── ParseUsersTest.java
│   │           │               │   │   ├── internal/
│   │           │               │   │   │   ├── BaseKeystoneApiLiveTest.java
│   │           │               │   │   │   ├── BaseKeystoneRestApiExpectTest.java
│   │           │               │   │   │   └── KeystoneFixture.java
│   │           │               │   │   └── parse/
│   │           │               │   │       ├── ParseAccessTest.java
│   │           │               │   │       ├── ParseAdminAccessTest.java
│   │           │               │   │       ├── ParseDevstackApiMetadataTest.java
│   │           │               │   │       ├── ParseMinimalAccessTest.java
│   │           │               │   │       ├── ParseRackspaceAccessTest.java
│   │           │               │   │       ├── ParseRackspaceApiMetadataTest.java
│   │           │               │   │       ├── ParseRackspaceCryptoTokenAccessTest.java
│   │           │               │   │       └── ParseRandomEndpointVersionAccessTest.java
│   │           │               │   └── v3/
│   │           │               │       ├── auth/
│   │           │               │       │   ├── V3AuthenticationApiLiveTest.java
│   │           │               │       │   └── V3AuthenticationApiMockTest.java
│   │           │               │       ├── features/
│   │           │               │       │   ├── AuthApiLiveTest.java
│   │           │               │       │   ├── AuthApiMockTest.java
│   │           │               │       │   ├── CatalogApiLiveTest.java
│   │           │               │       │   ├── CatalogApiMockTest.java
│   │           │               │       │   ├── ProjectApiLiveTest.java
│   │           │               │       │   ├── ProjectApiMockTest.java
│   │           │               │       │   ├── RegionApiLiveTest.java
│   │           │               │       │   ├── RegionApiMockTest.java
│   │           │               │       │   ├── UserApiLiveTest.java
│   │           │               │       │   └── UserApiMockTest.java
│   │           │               │       └── internal/
│   │           │               │           ├── BaseV3KeystoneApiLiveTest.java
│   │           │               │           └── BaseV3KeystoneApiMockTest.java
│   │           │               └── v2_0/
│   │           │                   ├── functions/
│   │           │                   │   └── PresentWhenExtensionAnnotationNamespaceEqualsAnyNamespaceInExtensionsSetTest.java
│   │           │                   ├── internal/
│   │           │                   │   └── BaseOpenStackMockTest.java
│   │           │                   ├── options/
│   │           │                   │   └── PaginationOptionsTest.java
│   │           │                   └── predicates/
│   │           │                       ├── ExtensionPredicatesTest.java
│   │           │                       └── LinkPredicatesTest.java
│   │           └── resources/
│   │               ├── access_minimal.json
│   │               ├── access_version_uids.json
│   │               ├── adminAuth.json
│   │               ├── admin_extensions.json
│   │               ├── devstackVersion.json
│   │               ├── keystoneAuthResponse.json
│   │               ├── keystoneAuthResponse_openstack.json
│   │               ├── logback.xml
│   │               ├── raxAuth.json
│   │               ├── raxCryptoAuth.json
│   │               ├── raxVersion.json
│   │               ├── role_create_response.json
│   │               ├── role_list_response.json
│   │               ├── service_create_response.json
│   │               ├── service_list_response.json
│   │               ├── tenant_create_response.json
│   │               ├── tenant_details.json
│   │               ├── tenant_list.json
│   │               ├── tenant_list_att.json
│   │               ├── tenant_update_response.json
│   │               ├── token_details.json
│   │               ├── user_create_response.json
│   │               ├── user_details.json
│   │               ├── user_endpoints.json
│   │               ├── user_list.json
│   │               ├── user_role_list.json
│   │               ├── user_tenant_role_list.json
│   │               ├── user_update_response.json
│   │               └── v3/
│   │                   ├── auth-accesskey.json
│   │                   ├── auth-password-project-scoped-id-domain-id.json
│   │                   ├── auth-password-project-scoped-id-domain-name.json
│   │                   ├── auth-password-project-scoped-name-domain-backwards-compat.json
│   │                   ├── auth-password-project-scoped-name-domain-id.json
│   │                   ├── auth-password-project-scoped-name-domain-name.json
│   │                   ├── auth-password-scoped.json
│   │                   ├── auth-password.json
│   │                   ├── auth-token-scoped.json
│   │                   ├── auth-token.json
│   │                   ├── endpoints.json
│   │                   ├── groups.json
│   │                   ├── project.json
│   │                   ├── projects.json
│   │                   ├── region.json
│   │                   ├── regions.json
│   │                   ├── token.json
│   │                   ├── user.json
│   │                   └── users.json
│   ├── openstack-neutron/
│   │   ├── README.md
│   │   ├── bnd.bnd
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── jclouds/
│   │       │               └── openstack/
│   │       │                   └── neutron/
│   │       │                       └── v2/
│   │       │                           ├── NeutronApi.java
│   │       │                           ├── NeutronApiMetadata.java
│   │       │                           ├── config/
│   │       │                           │   └── NeutronHttpApiModule.java
│   │       │                           ├── domain/
│   │       │                           │   ├── AddressPair.java
│   │       │                           │   ├── AllocationPool.java
│   │       │                           │   ├── CreateFirewall.java
│   │       │                           │   ├── CreateFirewallPolicy.java
│   │       │                           │   ├── CreateFirewallRule.java
│   │       │                           │   ├── ExternalGatewayInfo.java
│   │       │                           │   ├── ExtraDhcpOption.java
│   │       │                           │   ├── Firewall.java
│   │       │                           │   ├── FirewallPolicies.java
│   │       │                           │   ├── FirewallPolicy.java
│   │       │                           │   ├── FirewallRule.java
│   │       │                           │   ├── FirewallRules.java
│   │       │                           │   ├── Firewalls.java
│   │       │                           │   ├── FloatingIP.java
│   │       │                           │   ├── FloatingIPs.java
│   │       │                           │   ├── HostRoute.java
│   │       │                           │   ├── IP.java
│   │       │                           │   ├── IPv6DHCPMode.java
│   │       │                           │   ├── IpVersion.java
│   │       │                           │   ├── Network.java
│   │       │                           │   ├── NetworkSegment.java
│   │       │                           │   ├── NetworkStatus.java
│   │       │                           │   ├── NetworkType.java
│   │       │                           │   ├── Networks.java
│   │       │                           │   ├── Port.java
│   │       │                           │   ├── Ports.java
│   │       │                           │   ├── Router.java
│   │       │                           │   ├── RouterInterface.java
│   │       │                           │   ├── Routers.java
│   │       │                           │   ├── Rule.java
│   │       │                           │   ├── RuleDirection.java
│   │       │                           │   ├── RuleEthertype.java
│   │       │                           │   ├── RuleProtocol.java
│   │       │                           │   ├── Rules.java
│   │       │                           │   ├── SecurityGroup.java
│   │       │                           │   ├── SecurityGroups.java
│   │       │                           │   ├── Subnet.java
│   │       │                           │   ├── Subnets.java
│   │       │                           │   ├── UpdateFirewall.java
│   │       │                           │   ├── UpdateFirewallPolicy.java
│   │       │                           │   ├── UpdateFirewallRule.java
│   │       │                           │   ├── VIFType.java
│   │       │                           │   ├── VNICType.java
│   │       │                           │   └── lbaas/
│   │       │                           │       └── v1/
│   │       │                           │           ├── HealthMonitor.java
│   │       │                           │           ├── HealthMonitorStatus.java
│   │       │                           │           ├── HealthMonitors.java
│   │       │                           │           ├── HttpMethod.java
│   │       │                           │           ├── LBaaSStatus.java
│   │       │                           │           ├── Member.java
│   │       │                           │           ├── Members.java
│   │       │                           │           ├── Pool.java
│   │       │                           │           ├── PoolStatus.java
│   │       │                           │           ├── Pools.java
│   │       │                           │           ├── ProbeType.java
│   │       │                           │           ├── Protocol.java
│   │       │                           │           ├── SessionPersistence.java
│   │       │                           │           ├── VIP.java
│   │       │                           │           └── VIPs.java
│   │       │                           ├── extensions/
│   │       │                           │   ├── ExtensionNamespaces.java
│   │       │                           │   ├── FWaaSApi.java
│   │       │                           │   ├── RouterApi.java
│   │       │                           │   └── lbaas/
│   │       │                           │       └── v1/
│   │       │                           │           └── LBaaSApi.java
│   │       │                           ├── fallbacks/
│   │       │                           │   ├── EmptyFloatingIPsFallback.java
│   │       │                           │   ├── EmptyNetworksFallback.java
│   │       │                           │   ├── EmptyPortsFallback.java
│   │       │                           │   ├── EmptyRoutersFallback.java
│   │       │                           │   ├── EmptyRulesFallback.java
│   │       │                           │   ├── EmptySecurityGroupsFallback.java
│   │       │                           │   ├── EmptySubnetsFallback.java
│   │       │                           │   └── lbaas/
│   │       │                           │       └── v1/
│   │       │                           │           ├── EmptyHealthMonitorsFallback.java
│   │       │                           │           ├── EmptyMembersFallback.java
│   │       │                           │           ├── EmptyPoolsFallback.java
│   │       │                           │           └── EmptyVIPsFallback.java
│   │       │                           ├── features/
│   │       │                           │   ├── FloatingIPApi.java
│   │       │                           │   ├── NetworkApi.java
│   │       │                           │   ├── PortApi.java
│   │       │                           │   ├── SecurityGroupApi.java
│   │       │                           │   └── SubnetApi.java
│   │       │                           ├── functions/
│   │       │                           │   ├── FirewallPolicyToPagedIterable.java
│   │       │                           │   ├── FirewallRuleToPagedIterable.java
│   │       │                           │   ├── FirewallToPagedIterable.java
│   │       │                           │   ├── FloatingIPsToPagedIterable.java
│   │       │                           │   ├── NetworksToPagedIterable.java
│   │       │                           │   ├── ParseFirewallPolicies.java
│   │       │                           │   ├── ParseFirewallRules.java
│   │       │                           │   ├── ParseFirewalls.java
│   │       │                           │   ├── ParseFloatingIPs.java
│   │       │                           │   ├── ParseNetworks.java
│   │       │                           │   ├── ParsePorts.java
│   │       │                           │   ├── ParseRouters.java
│   │       │                           │   ├── ParseRules.java
│   │       │                           │   ├── ParseSecurityGroups.java
│   │       │                           │   ├── ParseSubnets.java
│   │       │                           │   ├── PortsToPagedIterable.java
│   │       │                           │   ├── RouterToPagedIterable.java
│   │       │                           │   ├── RulesToPagedIterable.java
│   │       │                           │   ├── SecurityGroupsToPagedIterable.java
│   │       │                           │   ├── SubnetsToPagedIterable.java
│   │       │                           │   ├── VersionAwareRegionToEndpoint.java
│   │       │                           │   └── lbaas/
│   │       │                           │       └── v1/
│   │       │                           │           ├── HealthMonitorsToPagedIterable.java
│   │       │                           │           ├── MembersToPagedIterable.java
│   │       │                           │           ├── ParseHealthMonitors.java
│   │       │                           │           ├── ParseMembers.java
│   │       │                           │           ├── ParsePools.java
│   │       │                           │           ├── ParseVIPs.java
│   │       │                           │           ├── PoolsToPagedIterable.java
│   │       │                           │           └── VIPsToPagedIterable.java
│   │       │                           ├── handlers/
│   │       │                           │   └── NeutronErrorHandler.java
│   │       │                           └── options/
│   │       │                               └── EmptyOptions.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── jclouds/
│   │           │           └── openstack/
│   │           │               └── neutron/
│   │           │                   └── v2/
│   │           │                       ├── NeutronApiMetadataTest.java
│   │           │                       ├── extensions/
│   │           │                       │   ├── FWaaSApiLiveTest.java
│   │           │                       │   ├── FWaaSApiMockTest.java
│   │           │                       │   ├── RouterApiLiveTest.java
│   │           │                       │   ├── RouterApiMockTest.java
│   │           │                       │   └── lbaas/
│   │           │                       │       └── v1/
│   │           │                       │           ├── LBaaSApiLiveTest.java
│   │           │                       │           └── LBaaSApiMockTest.java
│   │           │                       ├── features/
│   │           │                       │   ├── ExtensionApiLiveTest.java
│   │           │                       │   ├── ExtensionApiMockTest.java
│   │           │                       │   ├── FloatingIPApiLiveTest.java
│   │           │                       │   ├── FloatingIPApiMockTest.java
│   │           │                       │   ├── NetworkApiLiveTest.java
│   │           │                       │   ├── NetworkApiMockTest.java
│   │           │                       │   ├── PortApiLiveTest.java
│   │           │                       │   ├── PortApiMockTest.java
│   │           │                       │   ├── SecurityGroupApiLiveTest.java
│   │           │                       │   ├── SecurityGroupApiMockTest.java
│   │           │                       │   ├── SubnetApiLiveTest.java
│   │           │                       │   └── SubnetApiMockTest.java
│   │           │                       ├── internal/
│   │           │                       │   ├── BaseNeutronApiLiveTest.java
│   │           │                       │   └── BaseNeutronApiMockTest.java
│   │           │                       └── util/
│   │           │                           ├── ClassUtil.java
│   │           │                           └── PredicateUtil.java
│   │           └── resources/
│   │               ├── access.json
│   │               ├── extension_details.json
│   │               ├── extension_list.json
│   │               ├── extension_list_with_lbaas_v1_response.json
│   │               ├── extension_list_without_lbaas_v1_response.json
│   │               ├── firewall_create_request.json
│   │               ├── firewall_create_response.json
│   │               ├── firewall_get_response.json
│   │               ├── firewall_list_response.json
│   │               ├── firewall_policy_create_request.json
│   │               ├── firewall_policy_create_response.json
│   │               ├── firewall_policy_get_response.json
│   │               ├── firewall_policy_insert_rule_request.json
│   │               ├── firewall_policy_insert_rule_response.json
│   │               ├── firewall_policy_list_response.json
│   │               ├── firewall_rule_create_request.json
│   │               ├── firewall_rule_create_response.json
│   │               ├── firewall_rule_get_response.json
│   │               ├── firewall_rule_update_request.json
│   │               ├── firewall_rule_update_response.json
│   │               ├── firewall_update_request.json
│   │               ├── firewall_update_response.json
│   │               ├── floatingip_create_request.json
│   │               ├── floatingip_create_response.json
│   │               ├── floatingip_get_response.json
│   │               ├── floatingip_list_response.json
│   │               ├── floatingip_list_response_paged1.json
│   │               ├── floatingip_list_response_paged2.json
│   │               ├── floatingip_update_dissociate_request.json
│   │               ├── floatingip_update_dissociate_response.json
│   │               ├── floatingip_update_request.json
│   │               ├── floatingip_update_response.json
│   │               ├── lbaas/
│   │               │   └── v1/
│   │               │       ├── health_monitor_create_request.json
│   │               │       ├── health_monitor_create_response.json
│   │               │       ├── health_monitor_get_response.json
│   │               │       ├── health_monitor_list_response_paged1.json
│   │               │       ├── health_monitor_list_response_paged2.json
│   │               │       ├── health_monitor_update_request.json
│   │               │       ├── health_monitor_update_response.json
│   │               │       ├── member_create_request.json
│   │               │       ├── member_create_response.json
│   │               │       ├── member_get_response.json
│   │               │       ├── member_list_response_paged1.json
│   │               │       ├── member_list_response_paged2.json
│   │               │       ├── member_update_request.json
│   │               │       ├── member_update_response.json
│   │               │       ├── pool_associate_health_monitor_request.json
│   │               │       ├── pool_associate_health_monitor_response.json
│   │               │       ├── pool_create_request.json
│   │               │       ├── pool_create_response.json
│   │               │       ├── pool_get_response.json
│   │               │       ├── pool_list_response_paged1.json
│   │               │       ├── pool_list_response_paged2.json
│   │               │       ├── pool_update_request.json
│   │               │       ├── pool_update_response.json
│   │               │       ├── vip_create_request.json
│   │               │       ├── vip_create_response.json
│   │               │       ├── vip_get_response.json
│   │               │       ├── vip_list_response_paged1.json
│   │               │       ├── vip_list_response_paged2.json
│   │               │       ├── vip_update_request.json
│   │               │       └── vip_update_response.json
│   │               ├── list_networks.json
│   │               ├── list_ports.json
│   │               ├── list_routers.json
│   │               ├── list_subnets.json
│   │               ├── logback.xml
│   │               ├── network.json
│   │               ├── network_bulk_create_request.json
│   │               ├── network_bulk_create_response.json
│   │               ├── network_create_request.json
│   │               ├── network_create_response.json
│   │               ├── network_get_response.json
│   │               ├── network_list_response.json
│   │               ├── network_list_response_paged1.json
│   │               ├── network_list_response_paged2.json
│   │               ├── network_update_request.json
│   │               ├── network_update_response.json
│   │               ├── port.json
│   │               ├── port_create_bulk_request.json
│   │               ├── port_create_bulk_response.json
│   │               ├── port_create_request.json
│   │               ├── port_create_response.json
│   │               ├── port_get_response.json
│   │               ├── port_list_response.json
│   │               ├── port_list_response_paged1.json
│   │               ├── port_list_response_paged2.json
│   │               ├── port_update_request.json
│   │               ├── port_update_response.json
│   │               ├── router.json
│   │               ├── router_add_interface_port_request.json
│   │               ├── router_add_interface_request.json
│   │               ├── router_add_interface_response.json
│   │               ├── router_create_request.json
│   │               ├── router_create_response.json
│   │               ├── router_get_response.json
│   │               ├── router_list_response.json
│   │               ├── router_list_response_paged1.json
│   │               ├── router_list_response_paged2.json
│   │               ├── router_remove_interface_port_request.json
│   │               ├── router_remove_interface_subnet_request.json
│   │               ├── router_update_request.json
│   │               ├── router_update_response.json
│   │               ├── security_group_create_request.json
│   │               ├── security_group_create_response.json
│   │               ├── security_group_get_response.json
│   │               ├── security_group_list_response.json
│   │               ├── security_group_list_response_paged1.json
│   │               ├── security_group_list_response_paged2.json
│   │               ├── security_group_rule_create_request.json
│   │               ├── security_group_rule_create_response.json
│   │               ├── security_group_rule_get_response.json
│   │               ├── security_group_rule_list_response.json
│   │               ├── security_group_rule_list_response_paged1.json
│   │               ├── security_group_rule_list_response_paged2.json
│   │               ├── subnet.json
│   │               ├── subnet_bulk_create_request.json
│   │               ├── subnet_bulk_create_response.json
│   │               ├── subnet_create_request.json
│   │               ├── subnet_create_response.json
│   │               ├── subnet_get_response.json
│   │               ├── subnet_list_response.json
│   │               ├── subnet_list_response_pages1.json
│   │               ├── subnet_list_response_pages2.json
│   │               ├── subnet_update_request.json
│   │               └── subnet_update_response.json
│   ├── openstack-nova/
│   │   ├── bnd.bnd
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── jclouds/
│   │       │               └── openstack/
│   │       │                   └── nova/
│   │       │                       └── v2_0/
│   │       │                           ├── NovaApi.java
│   │       │                           ├── NovaApiMetadata.java
│   │       │                           ├── binders/
│   │       │                           │   ├── BindConsoleToJsonPayload.java
│   │       │                           │   ├── BindKeyPairToJsonPayload.java
│   │       │                           │   ├── BindMetadataToJsonPayload.java
│   │       │                           │   └── BindSecurityGroupRuleToJsonPayload.java
│   │       │                           ├── compute/
│   │       │                           │   ├── NovaComputeService.java
│   │       │                           │   ├── NovaComputeServiceAdapter.java
│   │       │                           │   ├── config/
│   │       │                           │   │   └── NovaComputeServiceContextModule.java
│   │       │                           │   ├── extensions/
│   │       │                           │   │   ├── NeutronSecurityGroupExtension.java
│   │       │                           │   │   ├── NovaImageExtension.java
│   │       │                           │   │   └── NovaSecurityGroupExtension.java
│   │       │                           │   ├── functions/
│   │       │                           │   │   ├── AllocateAndAddFloatingIpToNode.java
│   │       │                           │   │   ├── CleanupResources.java
│   │       │                           │   │   ├── CreateSecurityGroupIfNeeded.java
│   │       │                           │   │   ├── FlavorInRegionToHardware.java
│   │       │                           │   │   ├── ImageInRegionToImage.java
│   │       │                           │   │   ├── ImageToOperatingSystem.java
│   │       │                           │   │   ├── NeutronSecurityGroupToSecurityGroup.java
│   │       │                           │   │   ├── NovaSecurityGroupInRegionToSecurityGroup.java
│   │       │                           │   │   ├── NovaSecurityGroupToSecurityGroup.java
│   │       │                           │   │   ├── OrphanedGroupsByRegionId.java
│   │       │                           │   │   ├── RemoveFloatingIpFromNodeAndDeallocate.java
│   │       │                           │   │   └── ServerInRegionToNodeMetadata.java
│   │       │                           │   ├── loaders/
│   │       │                           │   │   ├── FindSecurityGroupOrCreate.java
│   │       │                           │   │   └── LoadFloatingIpsForInstance.java
│   │       │                           │   ├── options/
│   │       │                           │   │   ├── NodeAndNovaTemplateOptions.java
│   │       │                           │   │   └── NovaTemplateOptions.java
│   │       │                           │   ├── predicates/
│   │       │                           │   │   └── AllNodesInGroupTerminated.java
│   │       │                           │   └── strategy/
│   │       │                           │       └── ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet.java
│   │       │                           ├── config/
│   │       │                           │   ├── NovaHttpApiModule.java
│   │       │                           │   ├── NovaParserModule.java
│   │       │                           │   └── NovaProperties.java
│   │       │                           ├── domain/
│   │       │                           │   ├── Address.java
│   │       │                           │   ├── BackupType.java
│   │       │                           │   ├── BlockDeviceMapping.java
│   │       │                           │   ├── Console.java
│   │       │                           │   ├── FixedIP.java
│   │       │                           │   ├── Flavor.java
│   │       │                           │   ├── FloatingIP.java
│   │       │                           │   ├── FloatingIPPool.java
│   │       │                           │   ├── FloatingIpForServer.java
│   │       │                           │   ├── Host.java
│   │       │                           │   ├── HostAggregate.java
│   │       │                           │   ├── HostResourceUsage.java
│   │       │                           │   ├── Image.java
│   │       │                           │   ├── Ingress.java
│   │       │                           │   ├── InterfaceAttachment.java
│   │       │                           │   ├── KeyPair.java
│   │       │                           │   ├── Network.java
│   │       │                           │   ├── PortInterface.java
│   │       │                           │   ├── PortState.java
│   │       │                           │   ├── Quota.java
│   │       │                           │   ├── RebootType.java
│   │       │                           │   ├── SecurityGroup.java
│   │       │                           │   ├── SecurityGroupRule.java
│   │       │                           │   ├── Server.java
│   │       │                           │   ├── ServerCreated.java
│   │       │                           │   ├── ServerExtendedAttributes.java
│   │       │                           │   ├── ServerExtendedStatus.java
│   │       │                           │   ├── ServerWithSecurityGroups.java
│   │       │                           │   ├── SimpleServerUsage.java
│   │       │                           │   ├── SimpleTenantUsage.java
│   │       │                           │   ├── TenantIdAndName.java
│   │       │                           │   ├── VirtualInterface.java
│   │       │                           │   ├── Volume.java
│   │       │                           │   ├── VolumeAttachment.java
│   │       │                           │   ├── VolumeSnapshot.java
│   │       │                           │   ├── VolumeType.java
│   │       │                           │   ├── regionscoped/
│   │       │                           │   │   ├── AvailabilityZone.java
│   │       │                           │   │   ├── AvailabilityZoneDetails.java
│   │       │                           │   │   ├── FlavorInRegion.java
│   │       │                           │   │   ├── Hypervisor.java
│   │       │                           │   │   ├── HypervisorDetails.java
│   │       │                           │   │   ├── ImageInRegion.java
│   │       │                           │   │   ├── NeutronSecurityGroupInRegion.java
│   │       │                           │   │   ├── RegionAndId.java
│   │       │                           │   │   ├── RegionAndName.java
│   │       │                           │   │   ├── RegionSecurityGroupNameAndPorts.java
│   │       │                           │   │   ├── SecurityGroupInRegion.java
│   │       │                           │   │   ├── ServerInRegion.java
│   │       │                           │   │   └── ZoneState.java
│   │       │                           │   └── zonescoped/
│   │       │                           │       ├── AvailabilityZone.java
│   │       │                           │       ├── FlavorInRegion.java
│   │       │                           │       ├── ImageInRegion.java
│   │       │                           │       ├── RegionAndId.java
│   │       │                           │       ├── RegionAndName.java
│   │       │                           │       ├── RegionSecurityGroupNameAndPorts.java
│   │       │                           │       ├── SecurityGroupInRegion.java
│   │       │                           │       ├── ServerInRegion.java
│   │       │                           │       └── ZoneState.java
│   │       │                           ├── extensions/
│   │       │                           │   ├── AttachInterfaceApi.java
│   │       │                           │   ├── AvailabilityZoneApi.java
│   │       │                           │   ├── ConsolesApi.java
│   │       │                           │   ├── ExtensionAliases.java
│   │       │                           │   ├── ExtensionNames.java
│   │       │                           │   ├── ExtensionNamespaces.java
│   │       │                           │   ├── FlavorExtraSpecsApi.java
│   │       │                           │   ├── FloatingIPApi.java
│   │       │                           │   ├── FloatingIPPoolApi.java
│   │       │                           │   ├── HostAdministrationApi.java
│   │       │                           │   ├── HostAggregateApi.java
│   │       │                           │   ├── HypervisorApi.java
│   │       │                           │   ├── KeyPairApi.java
│   │       │                           │   ├── QuotaApi.java
│   │       │                           │   ├── SecurityGroupApi.java
│   │       │                           │   ├── ServerAdminApi.java
│   │       │                           │   ├── ServerWithSecurityGroupsApi.java
│   │       │                           │   ├── SimpleTenantUsageApi.java
│   │       │                           │   ├── VirtualInterfaceApi.java
│   │       │                           │   ├── VolumeApi.java
│   │       │                           │   ├── VolumeAttachmentApi.java
│   │       │                           │   └── VolumeTypeApi.java
│   │       │                           ├── features/
│   │       │                           │   ├── FlavorApi.java
│   │       │                           │   ├── ImageApi.java
│   │       │                           │   └── ServerApi.java
│   │       │                           ├── functions/
│   │       │                           │   ├── FieldValueResponseParsers.java
│   │       │                           │   ├── OverLimitParser.java
│   │       │                           │   ├── ParseImageIdFromLocationHeader.java
│   │       │                           │   └── internal/
│   │       │                           │       ├── OnlyMetadataValueOrNull.java
│   │       │                           │       ├── ParseDiagnostics.java
│   │       │                           │       ├── ParseFlavorDetails.java
│   │       │                           │       ├── ParseFlavors.java
│   │       │                           │       ├── ParseImageDetails.java
│   │       │                           │       ├── ParseImages.java
│   │       │                           │       ├── ParseKeyPairs.java
│   │       │                           │       ├── ParseServerDetails.java
│   │       │                           │       └── ParseServers.java
│   │       │                           ├── handlers/
│   │       │                           │   └── NovaErrorHandler.java
│   │       │                           ├── options/
│   │       │                           │   ├── CreateBackupOfServerOptions.java
│   │       │                           │   ├── CreateServerOptions.java
│   │       │                           │   ├── CreateVolumeOptions.java
│   │       │                           │   ├── CreateVolumeSnapshotOptions.java
│   │       │                           │   ├── CreateVolumeTypeOptions.java
│   │       │                           │   ├── ListOptions.java
│   │       │                           │   └── RebuildServerOptions.java
│   │       │                           └── predicates/
│   │       │                               ├── FindSecurityGroupWithNameAndReturnTrue.java
│   │       │                               ├── ImagePredicates.java
│   │       │                               ├── KeyPairPredicates.java
│   │       │                               └── SecurityGroupPredicates.java
│   │       └── test/
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── jclouds/
│   │           │           └── openstack/
│   │           │               └── nova/
│   │           │                   └── v2_0/
│   │           │                       ├── AccessKeyAndSecretKeyAndTenantIdAuthenticationExpectTest.java
│   │           │                       ├── AccessKeyAndSecretKeyAndTenantNamePropertyAuthenticationExpectTest.java
│   │           │                       ├── AccessKeyAndSecretKeyAuthenticationExpectTest.java
│   │           │                       ├── EndpointIdIsRandomExpectTest.java
│   │           │                       ├── NovaApiMetadataTest.java
│   │           │                       ├── PasswordAuthenticationExpectTest.java
│   │           │                       ├── PasswordAuthenticationWithTenantNameExpectTest.java
│   │           │                       ├── compute/
│   │           │                       │   ├── NovaComputeServiceAdapterExpectTest.java
│   │           │                       │   ├── NovaComputeServiceExpectTest.java
│   │           │                       │   ├── NovaComputeServiceLiveTest.java
│   │           │                       │   ├── NovaWithNeutronComputeServiceLiveTest.java
│   │           │                       │   ├── extensions/
│   │           │                       │   │   ├── NeutronSecurityGroupExtensionLiveTest.java
│   │           │                       │   │   ├── NovaImageExtensionExpectTest.java
│   │           │                       │   │   ├── NovaImageExtensionLiveTest.java
│   │           │                       │   │   ├── NovaSecurityGroupExtensionExpectTest.java
│   │           │                       │   │   └── NovaSecurityGroupExtensionLiveTest.java
│   │           │                       │   ├── functions/
│   │           │                       │   │   ├── AllocateAndAddFloatingIpToNodeExpectTest.java
│   │           │                       │   │   ├── FlavorInRegionToHardwareTest.java
│   │           │                       │   │   ├── ImageInRegionToImageTest.java
│   │           │                       │   │   ├── ImageToOperatingSystemTest.java
│   │           │                       │   │   ├── NovaSecurityGroupInRegionToSecurityGroupTest.java
│   │           │                       │   │   ├── OrphanedGroupsByRegionIdTest.java
│   │           │                       │   │   └── ServerInRegionToNodeMetadataTest.java
│   │           │                       │   ├── loaders/
│   │           │                       │   │   ├── FindSecurityGroupInRegionOrCreateTest.java
│   │           │                       │   │   └── LoadFloatingIpsForInstanceTest.java
│   │           │                       │   └── options/
│   │           │                       │       └── NovaTemplateOptionsTest.java
│   │           │                       ├── config/
│   │           │                       │   └── ImageAdapterTest.java
│   │           │                       ├── extensions/
│   │           │                       │   ├── AdminActionsApiExpectTest.java
│   │           │                       │   ├── AdminActionsApiLiveTest.java
│   │           │                       │   ├── AttachInterfaceApiExpectTest.java
│   │           │                       │   ├── AvailabilityZoneApiExpectTest.java
│   │           │                       │   ├── AvailabilityZonesApiLiveTest.java
│   │           │                       │   ├── ConsolesApiLiveTest.java
│   │           │                       │   ├── ConsolesApiMockTest.java
│   │           │                       │   ├── DeprecatedAvailabilityZoneApiExpectTest.java
│   │           │                       │   ├── DeprecatedAvailabilityZonesApiLiveTest.java
│   │           │                       │   ├── ExtendedAvailabilityZoneExpectTest.java
│   │           │                       │   ├── ExtendedAvailabilityZoneLiveTest.java
│   │           │                       │   ├── FlavorExtraSpecsApiExpectTest.java
│   │           │                       │   ├── FlavorExtraSpecsApiLiveTest.java
│   │           │                       │   ├── FloatingIPApiExpectTest.java
│   │           │                       │   ├── FloatingIPApiLiveTest.java
│   │           │                       │   ├── FloatingIPPoolApiExpectTest.java
│   │           │                       │   ├── FloatingIPPoolApiLiveTest.java
│   │           │                       │   ├── HostAdministrationApiExpectTest.java
│   │           │                       │   ├── HostAdministrationApiLiveTest.java
│   │           │                       │   ├── HostAggregateApiExpectTest.java
│   │           │                       │   ├── HostAggregateApiLiveTest.java
│   │           │                       │   ├── HypervisorApiLiveTest.java
│   │           │                       │   ├── HypervisorApiMockTest.java
│   │           │                       │   ├── KeyPairApiExpectTest.java
│   │           │                       │   ├── KeyPairApiLiveTest.java
│   │           │                       │   ├── QuotaApiExpectTest.java
│   │           │                       │   ├── QuotaApiLiveTest.java
│   │           │                       │   ├── SecurityGroupApiExpectTest.java
│   │           │                       │   ├── SecurityGroupApiLiveTest.java
│   │           │                       │   ├── ServerWithSecurityGroupsApiExpectTest.java
│   │           │                       │   ├── ServerWithSecurityGroupsApiLiveTest.java
│   │           │                       │   ├── SimpleTenantUsageApiExpectTest.java
│   │           │                       │   ├── SimpleTenantUsageApiLiveTest.java
│   │           │                       │   ├── VirtualInterfaceApiExpectTest.java
│   │           │                       │   ├── VirtualInterfaceApiLiveTest.java
│   │           │                       │   ├── VolumeApiExpectTest.java
│   │           │                       │   ├── VolumeApiLiveTest.java
│   │           │                       │   ├── VolumeAttachmentApiExpectTest.java
│   │           │                       │   ├── VolumeAttachmentApiLiveTest.java
│   │           │                       │   ├── VolumeTypeApiExpectTest.java
│   │           │                       │   └── VolumeTypeApiLiveTest.java
│   │           │                       ├── features/
│   │           │                       │   ├── ExtensionApiExpectTest.java
│   │           │                       │   ├── ExtensionApiLiveTest.java
│   │           │                       │   ├── FlavorApiExpectTest.java
│   │           │                       │   ├── FlavorApiLiveTest.java
│   │           │                       │   ├── ImageApiExpectTest.java
│   │           │                       │   ├── ImageApiLiveTest.java
│   │           │                       │   ├── ImageApiMockTest.java
│   │           │                       │   ├── ServerApiExpectTest.java
│   │           │                       │   └── ServerApiLiveTest.java
│   │           │                       ├── functions/
│   │           │                       │   ├── CreateSecurityGroupIfNeededTest.java
│   │           │                       │   ├── FindSecurityGroupWithNameAndReturnTrueExpectTest.java
│   │           │                       │   └── InternalURLLiveTest.java
│   │           │                       ├── handlers/
│   │           │                       │   └── NovaErrorHandlerTest.java
│   │           │                       ├── internal/
│   │           │                       │   ├── BaseNovaApiExpectTest.java
│   │           │                       │   ├── BaseNovaApiLiveTest.java
│   │           │                       │   ├── BaseNovaComputeServiceContextExpectTest.java
│   │           │                       │   ├── BaseNovaComputeServiceExpectTest.java
│   │           │                       │   └── BaseNovaExpectTest.java
│   │           │                       ├── options/
│   │           │                       │   ├── CreateServerOptionsTest.java
│   │           │                       │   └── ListOptionsTest.java
│   │           │                       ├── parse/
│   │           │                       │   ├── ParseComputeServiceTypicalSecurityGroupTest.java
│   │           │                       │   ├── ParseCreateFlavorTest.java
│   │           │                       │   ├── ParseCreatedServerTest.java
│   │           │                       │   ├── ParseExtensionListNormalTest.java
│   │           │                       │   ├── ParseExtensionListTest.java
│   │           │                       │   ├── ParseExtensionTest.java
│   │           │                       │   ├── ParseFlavorListTest.java
│   │           │                       │   ├── ParseFlavorTest.java
│   │           │                       │   ├── ParseFloatingIPListTest.java
│   │           │                       │   ├── ParseFloatingIPPoolListTest.java
│   │           │                       │   ├── ParseFloatingIPTest.java
│   │           │                       │   ├── ParseImageListTest.java
│   │           │                       │   ├── ParseImageTest.java
│   │           │                       │   ├── ParseKeyPairListTest.java
│   │           │                       │   ├── ParseKeyPairTest.java
│   │           │                       │   ├── ParseMetadataItemTest.java
│   │           │                       │   ├── ParseMetadataListTest.java
│   │           │                       │   ├── ParseMetadataUpdateTest.java
│   │           │                       │   ├── ParseNOVNCConsoleTest.java
│   │           │                       │   ├── ParseRDPConsoleTest.java
│   │           │                       │   ├── ParseSPICEConsoleTest.java
│   │           │                       │   ├── ParseSecurityGroupListTest.java
│   │           │                       │   ├── ParseSecurityGroupTest.java
│   │           │                       │   ├── ParseServerDetailsEssexTest.java
│   │           │                       │   ├── ParseServerDetailsStatesTest.java
│   │           │                       │   ├── ParseServerDiagnostics.java
│   │           │                       │   ├── ParseServerListTest.java
│   │           │                       │   ├── ParseServerTest.java
│   │           │                       │   ├── ParseServerWithAddressExtensionsTest.java
│   │           │                       │   ├── ParseServerWithAllExtensionsTest.java
│   │           │                       │   ├── ParseServerWithInternetAddressesTest.java
│   │           │                       │   ├── ParseServerWithoutImageTest.java
│   │           │                       │   ├── ParseXVPVNCConsoleTest.java
│   │           │                       │   └── PublicIpsInPrivateAddressBlockExpectTest.java
│   │           │                       └── predicates/
│   │           │                           ├── ImagePredicatesTest.java
│   │           │                           └── SecurityGroupPredicatesTest.java
│   │           └── resources/
│   │               ├── access.json
│   │               ├── attach_interface_details.json
│   │               ├── attach_interfaces_list.json
│   │               ├── attachment_details.json
│   │               ├── attachment_list.json
│   │               ├── availability_zone_list.json
│   │               ├── extension_details.json
│   │               ├── extension_list.json
│   │               ├── extension_list_full.json
│   │               ├── extension_list_full_no_namespaces.json
│   │               ├── extension_list_normal.json
│   │               ├── extension_list_openstack.json
│   │               ├── flavor_details.json
│   │               ├── flavor_list.json
│   │               ├── flavor_list_detail.json
│   │               ├── flavor_list_detail_openstack.json
│   │               ├── flavor_new.json
│   │               ├── floatingip_details.json
│   │               ├── floatingip_list.json
│   │               ├── floatingippool_list.json
│   │               ├── host.json
│   │               ├── host_aggregate_details.json
│   │               ├── host_aggregate_list.json
│   │               ├── host_aggregate_with_host_details.json
│   │               ├── hosts_list.json
│   │               ├── hypervisor_details.json
│   │               ├── hypervisor_list.json
│   │               ├── image_active.json
│   │               ├── image_details.json
│   │               ├── image_details_with_block_device_mapping.json
│   │               ├── image_details_without_metadata.json
│   │               ├── image_list.json
│   │               ├── image_list_detail.json
│   │               ├── image_list_detail_imageextension.json
│   │               ├── image_list_detail_openstack.json
│   │               ├── image_list_with_block_device_mapping.json
│   │               ├── keypair_created_computeservice.json
│   │               ├── keypair_details.json
│   │               ├── keypair_list.json
│   │               ├── listAvailabilityZones.json
│   │               ├── logback-test.xml
│   │               ├── metadata_item.json
│   │               ├── metadata_list.json
│   │               ├── metadata_updated.json
│   │               ├── new_server.json
│   │               ├── new_server_config_drive.json
│   │               ├── new_server_disk_config_auto.json
│   │               ├── new_server_disk_config_manual.json
│   │               ├── new_server_in_zone.json
│   │               ├── new_server_networks_response.json
│   │               ├── new_server_no_adminpass.json
│   │               ├── new_server_nova_networks.json
│   │               ├── novnc_console.json
│   │               ├── quotas.json
│   │               ├── rdp_console.json
│   │               ├── securitygroup_created.json
│   │               ├── securitygroup_details.json
│   │               ├── securitygroup_details_computeservice_typical.json
│   │               ├── securitygroup_details_extension.json
│   │               ├── securitygroup_details_extension_norules.json
│   │               ├── securitygroup_details_port22.json
│   │               ├── securitygroup_list.json
│   │               ├── securitygroup_list_details_computeservice_typical.json
│   │               ├── securitygroup_list_extension.json
│   │               ├── securitygrouprule_created.json
│   │               ├── securitygrouprule_created_cidr.json
│   │               ├── securitygrouprule_created_group.json
│   │               ├── server_details.json
│   │               ├── server_details_devstack.json
│   │               ├── server_details_openstack.json
│   │               ├── server_details_suspended.json
│   │               ├── server_details_with_address_ext.json
│   │               ├── server_details_without_image.json
│   │               ├── server_diagnostics.json
│   │               ├── server_list.json
│   │               ├── server_list_details.json
│   │               ├── server_list_details_essex.json
│   │               ├── server_list_details_states.json
│   │               ├── server_public_ip_in_private.json
│   │               ├── server_with_security_groups.json
│   │               ├── server_with_security_groups_extension.json
│   │               ├── simple_tenant_usage.json
│   │               ├── simple_tenant_usages.json
│   │               ├── snapshot_details.json
│   │               ├── snapshot_list.json
│   │               ├── snapshot_list_detail.json
│   │               ├── spice_console.json
│   │               ├── virtual_interfaces_list.json
│   │               ├── volume_details.json
│   │               ├── volume_list.json
│   │               ├── volume_list_detail.json
│   │               ├── volume_type.json
│   │               ├── volume_type_extra_specs.json
│   │               ├── volume_type_list.json
│   │               └── xvpvnc_console.json
│   ├── openstack-nova-ec2/
│   │   ├── bnd.bnd
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── org/
│   │       │           └── jclouds/
│   │       │               └── openstack/
│   │       │                   └── nova/
│   │       │                       └── ec2/
│   │       │                           ├── NovaEC2Api.java
│   │       │                           ├── NovaEC2ApiMetadata.java
│   │       │                           ├── config/
│   │       │                           │   ├── HyphenToNullIso8601Module.java
│   │       │                           │   ├── NovaEC2ComputeServiceContextModule.java
│   │       │                           │   └── NovaEC2HttpApiModule.java
│   │       │                           ├── features/
│   │       │                           │   └── NovaEC2KeyPairApi.java
│   │       │                           ├── internal/
│   │       │                           │   └── HyphenToNullIso8601Codec.java
│   │       │                           ├── loaders/
│   │       │                           │   └── NovaCreateSecurityGroupIfNeeded.java
│   │       │                           ├── strategy/
│   │       │                           │   └── NovaReviseParsedImage.java
│   │       │                           └── xml/
│   │       │
Download .txt
Showing preview only (4,559K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (52330 symbols across 5779 files)

FILE: apis/atmos/src/main/java/org/jclouds/atmos/AtmosApiMetadata.java
  class AtmosApiMetadata (line 37) | @AutoService(ApiMetadata.class)
    method builder (line 40) | private static Builder builder() {
    method toBuilder (line 44) | @Override
    method AtmosApiMetadata (line 49) | public AtmosApiMetadata() {
    method AtmosApiMetadata (line 53) | protected AtmosApiMetadata(Builder builder) {
    method defaultProperties (line 57) | public static Properties defaultProperties() {
    class Builder (line 65) | public static class Builder extends BaseHttpApiMetadata.Builder<AtmosC...
      method Builder (line 66) | protected Builder() {
      method build (line 80) | @Override
      method self (line 85) | @Override

FILE: apis/atmos/src/main/java/org/jclouds/atmos/AtmosClient.java
  type AtmosClient (line 71) | @RequestFilters(SignRequest.class)
    method newObject (line 75) | @Provides
    method listDirectories (line 78) | @Named("ListDirectory")
    method listDirectory (line 85) | @Named("ListDirectory")
    method createDirectory (line 95) | @Named("CreateDirectory")
    method createFile (line 103) | @Nullable
    method updateFile (line 113) | @Named("UpdateObject")
    method readFile (line 122) | @Named("ReadObject")
    method headFile (line 130) | @Named("GetObjectMetadata")
    method getSystemMetadata (line 138) | @Named("GetSystemMetadata")
    method getUserMetadata (line 147) | @Named("GetUserMetadata")
    method deletePath (line 156) | @Named("DeleteObject")
    method pathExists (line 163) | @Named("GetObjectMetadata")
    method isPublic (line 170) | @Named("GetObjectMetadata")
    method setGroupAcl (line 178) | @Named("SetObjectMetadata")

FILE: apis/atmos/src/main/java/org/jclouds/atmos/AtmosResponseException.java
  class AtmosResponseException (line 31) | public class AtmosResponseException extends HttpResponseException {
    method AtmosResponseException (line 35) | public AtmosResponseException(HttpCommand command, HttpResponse response,
    method AtmosResponseException (line 43) | public AtmosResponseException(HttpCommand command, HttpResponse response,
    method AtmosResponseException (line 51) | public AtmosResponseException(String message, HttpCommand command, Htt...
    method AtmosResponseException (line 58) | public AtmosResponseException(String message, HttpCommand command, Htt...
    method setError (line 65) | public void setError(AtmosError error) {
    method getError (line 69) | @Nullable

FILE: apis/atmos/src/main/java/org/jclouds/atmos/binders/BindMetadataToHeaders.java
  class BindMetadataToHeaders (line 32) | @Singleton
    method BindMetadataToHeaders (line 36) | @Inject
    method bindToRequest (line 41) | @Override

FILE: apis/atmos/src/main/java/org/jclouds/atmos/binders/BindUserMetadataToHeaders.java
  class BindUserMetadataToHeaders (line 36) | @Singleton
    method bindToRequest (line 39) | @SuppressWarnings("unchecked")
    method apply (line 48) | @Override

FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/AtmosBlobRequestSigner.java
  class AtmosBlobRequestSigner (line 51) | @Singleton
    method AtmosBlobRequestSigner (line 69) | @Inject
    method signGetBlob (line 89) | @Override
    method signGetBlob (line 94) | @Override
    method signPutBlob (line 101) | @Override
    method signPutBlob (line 109) | @Override
    method getPath (line 114) | private String getPath(String container, String name) {
    method signGetBlob (line 118) | @Override
    method sign (line 126) | private HttpRequest sign(String method, String path, long timeInSecond...

FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/AtmosBlobStore.java
  class AtmosBlobStore (line 66) | @Singleton
    method AtmosBlobStore (line 79) | @Inject
    method blobMetadata (line 104) | @Override
    method deleteAndVerifyContainerGone (line 113) | protected boolean deleteAndVerifyContainerGone(final String container) {
    method createContainerInLocation (line 126) | @Override
    method getContainerAccess (line 131) | @Override
    method setContainerAccess (line 140) | @Override
    method createDirectory (line 157) | @Override
    method deleteDirectory (line 165) | @Override
    method containerExists (line 173) | @Override
    method directoryExists (line 181) | @Override
    method blobExists (line 194) | @Override
    method getBlob (line 202) | @Override
    method list (line 211) | @Override
    method list (line 219) | @Override
    method putBlob (line 243) | @Override
    method putBlob (line 253) | @Override
    method removeBlob (line 276) | @Override
    method getBlobAccess (line 281) | @Override
    method setBlobAccess (line 290) | @Override
    method createContainerInLocation (line 301) | @Override
    method initiateMultipartUpload (line 309) | @Override
    method abortMultipartUpload (line 314) | @Override
    method completeMultipartUpload (line 319) | @Override
    method uploadMultipartPart (line 324) | @Override
    method listMultipartUpload (line 329) | @Override
    method listMultipartUploads (line 334) | @Override
    method getMinimumMultipartPartSize (line 339) | @Override
    method getMaximumMultipartPartSize (line 344) | @Override
    method getMaximumNumberOfParts (line 349) | @Override
    method streamBlob (line 354) | @Override
    method copyBlob (line 359) | @Override

FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/config/AtmosBlobStoreContextModule.java
  class AtmosBlobStoreContextModule (line 37) | public class AtmosBlobStoreContextModule extends AbstractModule {
    method configure (line 39) | @Override
    method isPublic (line 46) | @Provides

FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/BlobMetadataToObject.java
  class BlobMetadataToObject (line 30) | @Singleton
    method BlobMetadataToObject (line 36) | @Inject
    method apply (line 44) | public AtmosObject apply(BlobMetadata from) {

FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/BlobStoreListOptionsToListOptions.java
  class BlobStoreListOptionsToListOptions (line 28) | @Singleton
    method apply (line 31) | @Override

FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/BlobToContentMetadata.java
  class BlobToContentMetadata (line 29) | @Singleton
    method apply (line 31) | public MutableContentMetadata apply(BlobMetadata base) {

FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/BlobToObject.java
  class BlobToObject (line 29) | @Singleton
    method BlobToObject (line 33) | @Inject
    method apply (line 38) | public AtmosObject apply(Blob from) {

FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/BlobToSystemMetadata.java
  class BlobToSystemMetadata (line 27) | @Singleton
    method apply (line 29) | public SystemMetadata apply(BlobMetadata base) {

FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/DirectoryEntryListToResourceMetadataList.java
  class DirectoryEntryListToResourceMetadataList (line 40) | @Singleton
    method DirectoryEntryListToResourceMetadataList (line 45) | @Inject
    method apply (line 50) | public PageSet<? extends StorageMetadata> apply(BoundedSet<? extends D...

FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/ObjectToBlob.java
  class ObjectToBlob (line 31) | @Singleton
    method ObjectToBlob (line 36) | @Inject
    method apply (line 42) | public Blob apply(AtmosObject from) {

FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/ObjectToBlobMetadata.java
  class ObjectToBlobMetadata (line 42) | @Singleton
    method ObjectToBlobMetadata (line 50) | @Inject
    method apply (line 57) | public MutableBlobMetadata apply(AtmosObject from) {

FILE: apis/atmos/src/main/java/org/jclouds/atmos/config/AtmosHttpApiModule.java
  class AtmosHttpApiModule (line 47) | @ConfiguresHttpApi
    method configure (line 50) | @Override
    method guiceProvideTimeStamp (line 57) | @Provides
    method provideTimeStamp (line 63) | protected String provideTimeStamp(@TimeStamp Supplier<String> cache) {
    method provideTimeStampCache (line 70) | @Provides
    method provideShareableUrlTimeout (line 82) | @Provides
    method bindErrorHandlers (line 88) | @Override
    method bindRetryHandlers (line 95) | @Override

FILE: apis/atmos/src/main/java/org/jclouds/atmos/config/AtmosObjectModule.java
  class AtmosObjectModule (line 29) | public class AtmosObjectModule extends AbstractModule {
    method configure (line 35) | @Override
    method provideAtmosObject (line 41) | @Provides

FILE: apis/atmos/src/main/java/org/jclouds/atmos/config/AtmosParserModule.java
  class AtmosParserModule (line 24) | public class AtmosParserModule extends AbstractModule {
    method configure (line 26) | @Override

FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/AtmosError.java
  class AtmosError (line 24) | public class AtmosError {
    method toString (line 29) | @Override
    method AtmosError (line 35) | public AtmosError(int code, String message) {
    method getCode (line 40) | public int getCode() {
    method getMessage (line 44) | public String getMessage() {
    method setStringSigned (line 48) | public void setStringSigned(String stringSigned) {
    method getStringSigned (line 55) | public String getStringSigned() {

FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/AtmosObject.java
  type AtmosObject (line 26) | public interface AtmosObject extends PayloadEnclosing, Comparable<AtmosO...
    type Factory (line 27) | @ImplementedBy(AtmosObjectFactory.class)
      method create (line 29) | AtmosObject create(@Nullable MutableContentMetadata contentMetadata);
      method create (line 31) | AtmosObject create(SystemMetadata systemMetadata, UserMetadata userM...
      method create (line 33) | AtmosObject create(MutableContentMetadata contentMetadata, SystemMet...
    method getContentMetadata (line 38) | MutableContentMetadata getContentMetadata();
    method getSystemMetadata (line 43) | SystemMetadata getSystemMetadata();
    method getUserMetadata (line 45) | UserMetadata getUserMetadata();
    method getAllHeaders (line 47) | Multimap<String, String> getAllHeaders();
    method setAllHeaders (line 49) | void setAllHeaders(Multimap<String, String> allHeaders);

FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/BoundedSet.java
  type BoundedSet (line 26) | @ImplementedBy(BoundedLinkedHashSet.class)
    method getToken (line 29) | @Nullable

FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/DirectoryEntry.java
  class DirectoryEntry (line 28) | public class DirectoryEntry implements Comparable<DirectoryEntry> {
    method DirectoryEntry (line 35) | @Deprecated
    method DirectoryEntry (line 40) | public DirectoryEntry(String objectid, FileType type, String objname, ...
    method getObjectID (line 48) | public String getObjectID() {
    method getObjectName (line 52) | public String getObjectName() {
    method getType (line 56) | public FileType getType() {
    method getSize (line 60) | public long getSize() {
    method getModifiedTime (line 64) | public Date getModifiedTime() {
    method compareTo (line 68) | public int compareTo(DirectoryEntry o) {
    method hashCode (line 74) | @Override
    method equals (line 79) | @Override
    method toString (line 94) | @Override

FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/FileType.java
  type FileType (line 19) | public enum FileType {
    method value (line 23) | public String value() {
    method fromValue (line 27) | public static FileType fromValue(String v) {

FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/MutableContentMetadata.java
  type MutableContentMetadata (line 28) | @ImplementedBy(DelegatingMutableContentMetadata.class)
    method getName (line 31) | String getName();
    method setName (line 33) | void setName(String name);
    method getUri (line 35) | URI getUri();
    method setUri (line 37) | void setUri(URI uri);
    method getPath (line 39) | String getPath();
    method setPath (line 41) | void setPath(String path);

FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/SystemMetadata.java
  class SystemMetadata (line 26) | public class SystemMetadata extends DirectoryEntry {
    method SystemMetadata (line 39) | public SystemMetadata(@Nullable byte [] contentmd5, Date atime, Date c...
    method getGroupID (line 54) | public String getGroupID() {
    method getHardLinkCount (line 58) | public int getHardLinkCount() {
    method getInceptionTime (line 62) | public Date getInceptionTime() {
    method getLastAccessTime (line 66) | public Date getLastAccessTime() {
    method getLastMetadataModification (line 70) | public Date getLastMetadataModification() {
    method getLastUserDataModification (line 74) | public Date getLastUserDataModification() {
    method getPolicyName (line 78) | public String getPolicyName() {
    method getSize (line 82) | public long getSize() {
    method getUserID (line 86) | public String getUserID() {
    method getContentMD5 (line 90) | public byte[] getContentMD5() {
    method hashCode (line 94) | @Override
    method equals (line 110) | @Override
    method toString (line 161) | @Override

FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/UploadInfo.java
  class UploadInfo (line 21) | public class UploadInfo {
    method UploadInfo (line 25) | public UploadInfo(String token, URI host) {
    method getToken (line 30) | public String getToken() {
    method getHost (line 34) | public URI getHost() {

FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/UserMetadata.java
  class UserMetadata (line 30) | public class UserMetadata {
    method UserMetadata (line 36) | public UserMetadata(Map<String, String> metadata, Map<String, String> ...
    method UserMetadata (line 44) | public UserMetadata() {
    method getMetadata (line 51) | public Map<String, String> getMetadata() {
    method getListableMetadata (line 55) | public Map<String, String> getListableMetadata() {
    method getTags (line 59) | public Set<String> getTags() {
    method getListableTags (line 63) | public Set<String> getListableTags() {
    method toString (line 67) | @Override
    method hashCode (line 73) | @Override
    method equals (line 84) | @Override

FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/internal/AtmosObjectImpl.java
  class AtmosObjectImpl (line 38) | public class AtmosObjectImpl extends PayloadEnclosingImpl implements Atm...
    class AtmosObjectFactory (line 39) | @Singleton
      method create (line 45) | public AtmosObject create(MutableContentMetadata contentMetadata) {
      method create (line 49) | public AtmosObject create(SystemMetadata systemMetadata, UserMetadat...
      method create (line 53) | public AtmosObject create(MutableContentMetadata contentMetadata, Sy...
    method getSystemMetadata (line 62) | public SystemMetadata getSystemMetadata() {
    method getUserMetadata (line 66) | public UserMetadata getUserMetadata() {
    method AtmosObjectImpl (line 73) | public AtmosObjectImpl(MutableContentMetadata contentMetadata, SystemM...
    method AtmosObjectImpl (line 80) | @Inject
    method getContentMetadata (line 88) | @Override
    method getAllHeaders (line 96) | @Override
    method setAllHeaders (line 104) | @Override
    method compareTo (line 112) | @Override
    method hashCode (line 119) | @Override
    method equals (line 129) | @Override
    method toString (line 156) | @Override
    method setPayload (line 161) | @Override

FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/internal/BoundedLinkedHashSet.java
  class BoundedLinkedHashSet (line 28) | public class BoundedLinkedHashSet<T> extends LinkedHashSet<T> implements...
    method BoundedLinkedHashSet (line 32) | public BoundedLinkedHashSet(Iterable<T> contents, @Nullable String tok...
    method getToken (line 37) | @Nullable
    method hashCode (line 42) | @Override
    method equals (line 50) | @Override
    method toString (line 67) | @Override

FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/internal/DelegatingMutableContentMetadata.java
  class DelegatingMutableContentMetadata (line 28) | public class DelegatingMutableContentMetadata implements MutableContentM...
    method DelegatingMutableContentMetadata (line 34) | public DelegatingMutableContentMetadata() {
    method DelegatingMutableContentMetadata (line 38) | public DelegatingMutableContentMetadata(URI uri, String name, String p...
    method getContentLength (line 46) | @Override
    method getContentMD5 (line 52) | @Deprecated
    method getContentMD5AsHashCode (line 58) | @Override
    method getContentType (line 63) | @Override
    method getName (line 68) | @Override
    method setContentLength (line 73) | @Override
    method setContentMD5 (line 79) | @Deprecated
    method setContentMD5 (line 85) | @Override
    method setContentType (line 90) | @Override
    method setName (line 95) | @Override
    method equals (line 100) | @Override
    method hashCode (line 117) | @Override
    method toString (line 125) | @Override
    method getDelegate (line 130) | public org.jclouds.io.MutableContentMetadata getDelegate() {
    method setCacheControl (line 134) | @Override
    method setContentDisposition (line 139) | @Override
    method setContentEncoding (line 144) | @Override
    method setContentLanguage (line 149) | @Override
    method getCacheControl (line 154) | @Override
    method getContentDisposition (line 159) | @Override
    method getContentEncoding (line 164) | @Override
    method getContentLanguage (line 169) | @Override
    method setExpires (line 174) | @Override
    method getExpires (line 179) | @Override
    method toBuilder (line 184) | @Override
    method getUri (line 189) | @Override
    method setUri (line 194) | @Override
    method getPath (line 199) | @Override
    method setPath (line 204) | @Override

FILE: apis/atmos/src/main/java/org/jclouds/atmos/fallbacks/EndpointIfAlreadyExists.java
  class EndpointIfAlreadyExists (line 32) | public class EndpointIfAlreadyExists implements Fallback<URI>, Invocatio...
    method createOrPropagate (line 36) | @Override
    method setContext (line 44) | @Override
    method setEndpoint (line 49) | @VisibleForTesting

FILE: apis/atmos/src/main/java/org/jclouds/atmos/fallbacks/TrueOn404FalseOnPathNotEmpty.java
  class TrueOn404FalseOnPathNotEmpty (line 27) | public final class TrueOn404FalseOnPathNotEmpty implements Fallback<Bool...
    method createOrPropagate (line 28) | @Override

FILE: apis/atmos/src/main/java/org/jclouds/atmos/filters/ShareUrl.java
  class ShareUrl (line 53) | @Singleton
    method ShareUrl (line 68) | @Inject
    method apply (line 77) | @Override
    method createStringToSign (line 87) | public String createStringToSign(String requestedResource, String expi...
    method signString (line 96) | public String signString(String toSign) {

FILE: apis/atmos/src/main/java/org/jclouds/atmos/filters/SignRequest.java
  class SignRequest (line 61) | @Singleton
    method SignRequest (line 77) | @Inject
    method filter (line 87) | @Override
    method createStringToSign (line 102) | public String createStringToSign(HttpRequest request) {
    method calculateSignature (line 116) | public String calculateSignature(String toSign) {
    method signString (line 123) | public String signString(String toSign) {
    method appendMethod (line 132) | private void appendMethod(HttpRequest request, StringBuilder toSign) {
    method appendCanonicalizedHeaders (line 136) | private void appendCanonicalizedHeaders(HttpRequest request, StringBui...
    method appendPayloadMetadata (line 162) | private void appendPayloadMetadata(HttpRequest request, StringBuilder ...
    method appendHttpHeaders (line 168) | @VisibleForTesting
    method appendCanonicalizedResource (line 177) | @VisibleForTesting

FILE: apis/atmos/src/main/java/org/jclouds/atmos/functions/AtmosObjectName.java
  class AtmosObjectName (line 28) | @Singleton
    method apply (line 30) | @Override

FILE: apis/atmos/src/main/java/org/jclouds/atmos/functions/ParseDirectoryListFromContentAndHeaders.java
  class ParseDirectoryListFromContentAndHeaders (line 39) | @Singleton
    method ParseDirectoryListFromContentAndHeaders (line 45) | @Inject
    method apply (line 54) | public BoundedSet<DirectoryEntry> apply(HttpResponse from) {

FILE: apis/atmos/src/main/java/org/jclouds/atmos/functions/ParseObjectFromHeadersAndHttpContent.java
  class ParseObjectFromHeadersAndHttpContent (line 39) | public class ParseObjectFromHeadersAndHttpContent implements Function<Ht...
    method ParseObjectFromHeadersAndHttpContent (line 48) | @Inject
    method apply (line 64) | public AtmosObject apply(HttpResponse from) {
    method setContext (line 77) | @Override
    method setPath (line 83) | private ParseObjectFromHeadersAndHttpContent setPath(String path) {

FILE: apis/atmos/src/main/java/org/jclouds/atmos/functions/ParseSystemMetadataFromHeaders.java
  class ParseSystemMetadataFromHeaders (line 36) | @Singleton
    method ParseSystemMetadataFromHeaders (line 40) | @Inject
    method apply (line 45) | public SystemMetadata apply(HttpResponse from) {

FILE: apis/atmos/src/main/java/org/jclouds/atmos/functions/ParseUserMetadataFromHeaders.java
  class ParseUserMetadataFromHeaders (line 37) | @Singleton
    method apply (line 44) | public UserMetadata apply(HttpResponse from) {
    method getMetaMap (line 63) | private static Map<String, String> getMetaMap(String meta) {

FILE: apis/atmos/src/main/java/org/jclouds/atmos/functions/ReturnTrueIfGroupACLIsOtherRead.java
  class ReturnTrueIfGroupACLIsOtherRead (line 27) | @Singleton
    method apply (line 30) | public Boolean apply(HttpResponse from) {

FILE: apis/atmos/src/main/java/org/jclouds/atmos/handlers/AtmosClientErrorRetryHandler.java
  class AtmosClientErrorRetryHandler (line 41) | public class AtmosClientErrorRetryHandler implements HttpRetryHandler {
    method AtmosClientErrorRetryHandler (line 45) | @Inject
    method shouldRetryRequest (line 58) | public boolean shouldRetryRequest(HttpCommand command, HttpResponse re...

FILE: apis/atmos/src/main/java/org/jclouds/atmos/handlers/AtmosServerErrorRetryHandler.java
  class AtmosServerErrorRetryHandler (line 41) | public class AtmosServerErrorRetryHandler implements HttpRetryHandler {
    method AtmosServerErrorRetryHandler (line 45) | @Inject
    method shouldRetryRequest (line 58) | public boolean shouldRetryRequest(HttpCommand command, HttpResponse re...

FILE: apis/atmos/src/main/java/org/jclouds/atmos/handlers/ParseAtmosErrorFromXmlContent.java
  class ParseAtmosErrorFromXmlContent (line 50) | @Singleton
    method ParseAtmosErrorFromXmlContent (line 57) | @Inject
    method handleError (line 65) | public void handleError(HttpCommand command, HttpResponse response) {

FILE: apis/atmos/src/main/java/org/jclouds/atmos/options/ListOptions.java
  class ListOptions (line 31) | public class ListOptions extends BaseHttpRequestOptions {
    method token (line 40) | public ListOptions token(String token) {
    method getToken (line 45) | public String getToken() {
    method limit (line 53) | public ListOptions limit(int maxresults) {
    method includeMeta (line 64) | public ListOptions includeMeta() {
    method metaIncluded (line 69) | public boolean metaIncluded() {
    method getLimit (line 74) | public Integer getLimit() {
    class Builder (line 79) | public static class Builder {
      method token (line 84) | public static ListOptions token(String token) {
      method includeMeta (line 92) | public static ListOptions includeMeta() {
      method limit (line 100) | public static ListOptions limit(int maxKeys) {

FILE: apis/atmos/src/main/java/org/jclouds/atmos/options/PutOptions.java
  class PutOptions (line 37) | public class PutOptions extends BaseHttpRequestOptions {
    method publicRead (line 44) | public PutOptions publicRead() {
    method publicNone (line 50) | public PutOptions publicNone() {
    method overwrite (line 61) | public PutOptions overwrite() {
    class Builder (line 66) | public static class Builder {
      method publicRead (line 71) | public static PutOptions publicRead() {
      method publicNone (line 76) | public static PutOptions publicNone() {
      method overwrite (line 81) | public static PutOptions overwrite() {

FILE: apis/atmos/src/main/java/org/jclouds/atmos/reference/AtmosErrorCode.java
  type AtmosErrorCode (line 21) | public enum AtmosErrorCode {
    method AtmosErrorCode (line 37) | private AtmosErrorCode(int code) {
    method getCode (line 41) | public int getCode() {

FILE: apis/atmos/src/main/java/org/jclouds/atmos/reference/AtmosHeaders.java
  class AtmosHeaders (line 24) | public final class AtmosHeaders {
    method AtmosHeaders (line 38) | private AtmosHeaders() {

FILE: apis/atmos/src/main/java/org/jclouds/atmos/util/AtmosUtils.java
  class AtmosUtils (line 51) | public class AtmosUtils {
    method parseAtmosErrorFromContent (line 62) | public AtmosError parseAtmosErrorFromContent(HttpCommand command, Http...
    method putBlob (line 72) | public static String putBlob(final AtmosClient sync, Crypto crypto, Bl...
    method deletePathAndEnsureGone (line 92) | public static void deletePathAndEnsureGone(final AtmosClient sync, Str...
    method parseAtmosErrorFromContent (line 105) | public AtmosError parseAtmosErrorFromContent(HttpCommand command, Http...
    method adjustContainerIfDirOptionPresent (line 110) | public static String adjustContainerIfDirOptionPresent(String container,

FILE: apis/atmos/src/main/java/org/jclouds/atmos/xml/ErrorHandler.java
  class ErrorHandler (line 25) | public class ErrorHandler extends ParseSax.HandlerWithResult<AtmosError> {
    method getResult (line 31) | public AtmosError getResult() {
    method endElement (line 35) | public void endElement(String uri, String name, String qName) {
    method characters (line 45) | public void characters(char[] ch, int start, int length) {

FILE: apis/atmos/src/main/java/org/jclouds/atmos/xml/ListDirectoryResponseHandler.java
  class ListDirectoryResponseHandler (line 37) | public class ListDirectoryResponseHandler extends ParseSax.HandlerWithRe...
    method ListDirectoryResponseHandler (line 53) | @Inject
    method getResult (line 58) | public Set<DirectoryEntry> getResult() {
    method endElement (line 62) | public void endElement(String uri, String name, String qName) {
    method characters (line 85) | public void characters(char[] ch, int start, int length) {

FILE: apis/atmos/src/test/java/org/jclouds/atmos/AtmosApiMetadataTest.java
  class AtmosApiMetadataTest (line 22) | @Test(groups = "unit", testName = "AtmosApiMetadataTest")
    method AtmosApiMetadataTest (line 25) | public AtmosApiMetadataTest() {

FILE: apis/atmos/src/test/java/org/jclouds/atmos/AtmosClientLiveTest.java
  class AtmosClientLiveTest (line 58) | @Test(groups = "live", singleThreaded = true)
    method AtmosClientLiveTest (line 60) | public AtmosClientLiveTest() {
    method getApi (line 64) | public AtmosClient getApi() {
    class HeadMatches (line 68) | private static final class HeadMatches implements Runnable {
      method HeadMatches (line 73) | private HeadMatches(AtmosClient connection, String name, String meta...
      method run (line 79) | public void run() {
    class ObjectMatches (line 88) | private static final class ObjectMatches implements Runnable {
      method ObjectMatches (line 94) | private ObjectMatches(AtmosClient connection, String name, String me...
      method run (line 101) | public void run() {
    method testListDirectorys (line 116) | @Test
    method testCreateDirectory (line 125) | @Test(timeOut = 5 * 60 * 1000)
    method testListOptions (line 148) | @Test(timeOut = 5 * 60 * 1000, dependsOnMethods = { "testCreateDirecto...
    method testFileOperations (line 165) | @Test(timeOut = 5 * 60 * 1000, dependsOnMethods = { "testListOptions" })
    method testPutZeroLengthBlob (line 191) | @Test(timeOut = 5 * 60 * 1000, dependsOnMethods = { "testFileOperation...
    method createOrUpdateWithErrorLoop (line 201) | private void createOrUpdateWithErrorLoop(boolean stream, String data, ...
    method makeData (line 206) | Object makeData(String in, boolean stream) {
    method createOrReplaceObject (line 210) | private void createOrReplaceObject(String name, Object data, HashCode ...
    method assertEventually (line 226) | protected static void assertEventually(Runnable assertion) throws Inte...
    method assertEventuallyObjectMatches (line 246) | protected void assertEventuallyObjectMatches(final String name, final ...
    method assertEventuallyHeadMatches (line 251) | protected void assertEventuallyHeadMatches(final String name, final St...
    method verifyHeadObject (line 256) | private static void verifyHeadObject(AtmosClient connection, String pa...
    method verifyObject (line 263) | private static void verifyObject(AtmosClient connection, String path, ...
    method verifyMetadata (line 270) | private static void verifyMetadata(String metadataValue, AtmosObject g...
    method replaceObject (line 289) | private void replaceObject(AtmosObject object) throws Exception {
    method alwaysDeleteFirstReplaceStrategy (line 295) | private void alwaysDeleteFirstReplaceStrategy(AtmosObject object) thro...
    method deleteConfirmed (line 311) | private void deleteConfirmed(final String path) throws InterruptedExce...
    method deleteImmediateAndVerifyWithHead (line 317) | protected void deleteImmediateAndVerifyWithHead(final String path) thr...
    method deleteConsistencyAware (line 330) | protected void deleteConsistencyAware(String path) throws InterruptedE...
    method retryAndCheckSystemMetadataAndPutIfPresentReplaceStrategy (line 347) | protected void retryAndCheckSystemMetadataAndPutIfPresentReplaceStrate...
    method checkSystemMetadataAndPutIfPresentReplaceStrategy (line 366) | private void checkSystemMetadataAndPutIfPresentReplaceStrategy(AtmosOb...

FILE: apis/atmos/src/test/java/org/jclouds/atmos/AtmosClientTest.java
  class AtmosClientTest (line 60) | @Test(groups = "unit", testName = "AtmosClientTest")
    method testListDirectories (line 65) | public void testListDirectories() throws SecurityException, NoSuchMeth...
    method testListDirectory (line 80) | public void testListDirectory() throws SecurityException, NoSuchMethod...
    method testListDirectoriesOptions (line 95) | public void testListDirectoriesOptions() throws SecurityException, NoS...
    method testListDirectoryOptions (line 110) | public void testListDirectoryOptions() throws SecurityException, NoSuc...
    method testCreateDirectory (line 125) | public void testCreateDirectory() throws SecurityException, NoSuchMeth...
    method testCreateDirectoryOptions (line 140) | public void testCreateDirectoryOptions() throws SecurityException, NoS...
    method testCreateFile (line 156) | public void testCreateFile() throws SecurityException, NoSuchMethodExc...
    method testCreateFileOptions (line 173) | public void testCreateFileOptions() throws SecurityException, NoSuchMe...
    method testUpdateFile (line 191) | public void testUpdateFile() throws SecurityException, NoSuchMethodExc...
    method testUpdateFileOptions (line 208) | public void testUpdateFileOptions() throws SecurityException, NoSuchMe...
    method testReadFile (line 226) | public void testReadFile() throws SecurityException, NoSuchMethodExcep...
    method testGetSystemMetadata (line 241) | public void testGetSystemMetadata() throws SecurityException, NoSuchMe...
    method testDeletePath (line 256) | public void testDeletePath() throws SecurityException, NoSuchMethodExc...
    method testIsPublic (line 271) | public void testIsPublic() throws SecurityException, NoSuchMethodExcep...
    method testNewObject (line 286) | public void testNewObject() throws SecurityException, NoSuchMethodExce...
    method checkFilters (line 291) | @Override
    method setupFactory (line 297) | @BeforeClass
    method createModule (line 304) | @Override
    class TestAtmosHttpApiModule (line 309) | @ConfiguresHttpApi
      method configure (line 311) | @Override
      method provideTimeStamp (line 316) | @Override
    method createApiMetadata (line 324) | @Override

FILE: apis/atmos/src/test/java/org/jclouds/atmos/binders/BindMetadataToHeadersTest.java
  class BindMetadataToHeadersTest (line 35) | @Test(groups = "unit")
    method testGood (line 40) | public void testGood() {
    method testMustBeAtmosObject (line 51) | @Test(expectedExceptions = IllegalArgumentException.class)
    method testNullIsBad (line 57) | @Test(expectedExceptions = NullPointerException.class)
    method testNullPayloadIsBad (line 63) | @Test(expectedExceptions = NullPointerException.class)
    method testNullContentLengthIllegal (line 70) | @Test(expectedExceptions = IllegalArgumentException.class)

FILE: apis/atmos/src/test/java/org/jclouds/atmos/binders/BindUserMetadataToHeadersTest.java
  class BindUserMetadataToHeadersTest (line 33) | @Test(groups = "unit")
    method testMeta (line 38) | public void testMeta() {
    method testListableMeta (line 47) | public void testListableMeta() {
    method testTags (line 56) | public void testTags() {
    method testListableTags (line 65) | public void testListableTags() {
    method testMustBeUserMetadata (line 74) | @Test(expectedExceptions = IllegalArgumentException.class)
    method testNullIsBad (line 80) | @Test(expectedExceptions = { NullPointerException.class, IllegalStateE...

FILE: apis/atmos/src/test/java/org/jclouds/atmos/blobstore/AtmosBlobRequestSignerTest.java
  class AtmosBlobRequestSignerTest (line 47) | @Test(groups = "unit", testName = "AtmosBlobRequestSignerTest")
    method AtmosBlobRequestSignerTest (line 50) | public AtmosBlobRequestSignerTest() {
    method testSignGetBlob (line 58) | public void testSignGetBlob() throws ArrayIndexOutOfBoundsException, S...
    method testSignPutBlob (line 69) | public void testSignPutBlob() throws ArrayIndexOutOfBoundsException, S...
    method setupFactory (line 98) | @BeforeClass
    method checkFilters (line 105) | @Override
    method createModule (line 111) | @Override
    class TestAtmosHttpApiModule (line 116) | @ConfiguresHttpApi
      method configure (line 118) | @Override
      method provideTimeStamp (line 123) | @Override
    method createApiMetadata (line 129) | @Override

FILE: apis/atmos/src/test/java/org/jclouds/atmos/blobstore/functions/ListOptionsToBlobStoreListOptions.java
  class ListOptionsToBlobStoreListOptions (line 25) | @Singleton
    method apply (line 28) | public ListContainerOptions apply(org.jclouds.atmos.options.ListOption...

FILE: apis/atmos/src/test/java/org/jclouds/atmos/blobstore/functions/ResourceMetadataListToDirectoryEntryList.java
  class ResourceMetadataListToDirectoryEntryList (line 31) | @Singleton
    method apply (line 36) | public BoundedSet<DirectoryEntry> apply(

FILE: apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosBlobSignerLiveTest.java
  class AtmosBlobSignerLiveTest (line 25) | @Test(groups = { "live" })
    method AtmosBlobSignerLiveTest (line 27) | public AtmosBlobSignerLiveTest() {
    method testSignPutUrlWithTime (line 31) | @Test
    method testSignPutUrlWithTimeExpired (line 41) | @Test

FILE: apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosContainerIntegrationLiveTest.java
  class AtmosContainerIntegrationLiveTest (line 23) | @Test(groups = "live")
    method AtmosContainerIntegrationLiveTest (line 25) | public AtmosContainerIntegrationLiveTest() {
    method testDelimiter (line 29) | @Override
    method testListMarkerAfterLastKey (line 34) | @Override
    method testListMarkerPrefix (line 39) | @Override
    method testListContainerWithZeroMaxResults (line 44) | @Override
    method testContainerListWithPrefix (line 49) | @Override
    method testDelimiterList (line 54) | @Override

FILE: apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosContainerLiveTest.java
  class AtmosContainerLiveTest (line 22) | @Test(groups = { "live" })
    method AtmosContainerLiveTest (line 24) | public AtmosContainerLiveTest() {

FILE: apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosIntegrationLiveTest.java
  class AtmosIntegrationLiveTest (line 38) | @Test(groups = { "integration", "live" })
    method AtmosIntegrationLiveTest (line 40) | public AtmosIntegrationLiveTest() {
    method createData (line 43) | @DataProvider(name = "delete")
    method testGetTwoRanges (line 50) | @Override
    method checkCacheControl (line 56) | @Override
    method checkContentDisposition (line 63) | @Override
    method checkContentEncoding (line 70) | @Override
    method checkContentLanguage (line 77) | @Override
    method testPutObjectStream (line 83) | @Override
    method testCreateBlobWithExpiry (line 89) | @Override
    method testMultipartUploadNoPartsAbort (line 94) | @Override
    method testMultipartUploadSinglePart (line 99) | @Override
    method testMultipartUploadMultipleParts (line 104) | @Override
    method testListMultipartUploads (line 109) | @Override
    method testPutMultipartByteSource (line 118) | @Override
    method testPutMultipartInputStream (line 123) | @Override
    method testPutBlobAccessMultipart (line 128) | @Override
    method testCopyIfMatch (line 134) | @Override
    method testCopyIfMatchNegative (line 140) | @Override
    method testCopyIfNoneMatch (line 146) | @Override
    method testCopyIfNoneMatchNegative (line 152) | @Override
    method testPutBlobTierStandardMultipart (line 158) | @Test(groups = { "integration", "live" })
    method testPutBlobTierInfrequentMultipart (line 168) | @Test(groups = { "integration", "live" })
    method testPutBlobTierArchiveMultipart (line 178) | @Test(groups = { "integration", "live" })
    method checkTier (line 188) | @Override
    method testETag (line 195) | @Test(groups = { "integration", "live" })

FILE: apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosLiveTest.java
  class AtmosLiveTest (line 22) | @Test(groups = { "live" })
    method AtmosLiveTest (line 24) | public AtmosLiveTest() {

FILE: apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosServiceIntegrationLiveTest.java
  class AtmosServiceIntegrationLiveTest (line 22) | @Test(groups = "live")
    method AtmosServiceIntegrationLiveTest (line 24) | public AtmosServiceIntegrationLiveTest() {

FILE: apis/atmos/src/test/java/org/jclouds/atmos/fallbacks/EndpointIfAlreadyExistsTest.java
  class EndpointIfAlreadyExistsTest (line 27) | @Test(groups = "unit")
    method testFoundIsNullWhenEndpointNotSet (line 30) | @Test
    method testFoundIsEndpointWhenSet (line 35) | @Test
    method testNotFoundPropagates (line 42) | @Test(expectedExceptions = RuntimeException.class)
    method testNullIsBad (line 47) | @Test(expectedExceptions = NullPointerException.class)

FILE: apis/atmos/src/test/java/org/jclouds/atmos/filters/SignRequestTest.java
  class SignRequestTest (line 48) | @Test(groups = "unit")
    method testCreateStringToSign (line 58) | @Test
    method testSignString (line 66) | @Test
    method testFilter (line 74) | @Test
    method testFilterReplacesOldValues (line 81) | @Test
    method createFilter (line 90) | @BeforeClass
    class TestAtmosHttpApiModule (line 103) | @ConfiguresHttpApi
      method configure (line 106) | @Override
      method provideTimeStamp (line 111) | @Override
    method newRequest (line 117) | public HttpRequest newRequest(Multimap<String, String> headers) {
    method preconstructedHeaders (line 128) | protected Builder<String, String> preconstructedHeaders() {
    method inputHeaders (line 135) | protected Builder<String, String> inputHeaders() {

FILE: apis/atmos/src/test/java/org/jclouds/atmos/functions/AtmosObjectNameTest.java
  class AtmosObjectNameTest (line 31) | @Test(groups = "unit")
    method testCorrectContentMetadataName (line 36) | @Test
    method testCorrectSystemMetadataObjectName (line 45) | @Test
    method testMustBeAtmosObject (line 53) | @Test(expectedExceptions = IllegalArgumentException.class)
    method testNullIsBad (line 58) | @Test(expectedExceptions = { NullPointerException.class, IllegalStateE...

FILE: apis/atmos/src/test/java/org/jclouds/atmos/functions/ParseDirectoryListFromContentAndHeadersTest.java
  class ParseDirectoryListFromContentAndHeadersTest (line 41) | @Test(groups = "unit", testName = "ParseDirectoryListFromContentAndHeade...
    method createFn (line 44) | Function<HttpResponse, BoundedSet<DirectoryEntry>> createFn() {
    method testWithToken (line 48) | public void testWithToken() {
    method testWithoutToken (line 60) | public void testWithoutToken() {
    method values (line 72) | protected Set<DirectoryEntry> values() {

FILE: apis/atmos/src/test/java/org/jclouds/atmos/functions/ParseObjectFromHeadersAndHttpContentTest.java
  class ParseObjectFromHeadersAndHttpContentTest (line 32) | @Test(groups = "unit", testName = "ParseObjectFromHeadersAndHttpContentT...
    method test (line 57) | public void test() {

FILE: apis/atmos/src/test/java/org/jclouds/atmos/functions/ParseSystemMetadataFromHeadersTest.java
  class ParseSystemMetadataFromHeadersTest (line 33) | @Test(groups = "unit")
    method test (line 46) | public void test() {

FILE: apis/atmos/src/test/java/org/jclouds/atmos/functions/ParseUserMetadataFromHeadersTest.java
  class ParseUserMetadataFromHeadersTest (line 31) | @Test(groups = "unit")
    method test (line 37) | public void test() {

FILE: apis/atmos/src/test/java/org/jclouds/atmos/handlers/AtmosServerErrorRetryHandlerTest.java
  class AtmosServerErrorRetryHandlerTest (line 36) | @Test(groups = "unit")
    method testGet500WithoutError (line 45) | @Test
    method testGet500WithError1040 (line 63) | @Test

FILE: apis/atmos/src/test/java/org/jclouds/atmos/options/ListOptionsTest.java
  class ListOptionsTest (line 28) | @Test(groups = "unit")
    method testToken (line 31) | public void testToken() {
    method testTokenStatic (line 36) | public void testTokenStatic() {
    method testLimit (line 41) | public void testLimit() {
    method testLimitStatic (line 47) | public void testLimitStatic() {
    method testNoMeta (line 53) | public void testNoMeta() {
    method testMeta (line 58) | public void testMeta() {
    method testMetaStatic (line 64) | public void testMetaStatic() {

FILE: apis/atmos/src/test/java/org/jclouds/atmos/xml/ErrorHandlerTest.java
  class ErrorHandlerTest (line 33) | @Test(groups = "unit", testName = "ErrorHandlerTest")
    method createParser (line 36) | ParseSax<AtmosError> createParser() {
    method testApplyInputStream (line 42) | public void testApplyInputStream() {

FILE: apis/atmos/src/test/java/org/jclouds/atmos/xml/ListDirectoryResponseHandlerTest.java
  class ListDirectoryResponseHandlerTest (line 36) | @Test(groups = "unit", testName = "ListDirectoryResponseHandlerTest")
    method createParser (line 39) | ParseSax<Set<DirectoryEntry>> createParser() {
    method testApplyInputStreamBase (line 45) | public void testApplyInputStreamBase() {

FILE: apis/byon/src/main/java/org/jclouds/byon/BYONApiMetadata.java
  class BYONApiMetadata (line 40) | @AutoService(ApiMetadata.class)
    method toBuilder (line 43) | @Override
    method BYONApiMetadata (line 48) | public BYONApiMetadata() {
    method BYONApiMetadata (line 52) | protected BYONApiMetadata(Builder builder) {
    class Builder (line 56) | public static class Builder extends BaseApiMetadata.Builder<Builder> {
      method Builder (line 58) | protected Builder() {
      method build (line 72) | @Override
      method self (line 77) | @Override

FILE: apis/byon/src/main/java/org/jclouds/byon/Node.java
  class Node (line 30) | public class Node {
    method builder (line 31) | public static Builder builder() {
    class Builder (line 35) | public static class Builder {
      method id (line 55) | public Builder id(String id) {
      method name (line 60) | public Builder name(String name) {
      method description (line 65) | public Builder description(String description) {
      method hostname (line 70) | public Builder hostname(String hostname) {
      method loginPort (line 75) | public Builder loginPort(int loginPort) {
      method locationId (line 80) | public Builder locationId(String locationId) {
      method osArch (line 85) | public Builder osArch(String osArch) {
      method osFamily (line 90) | public Builder osFamily(String osFamily) {
      method osDescription (line 95) | public Builder osDescription(String osDescription) {
      method osVersion (line 100) | public Builder osVersion(String osVersion) {
      method os64Bit (line 105) | public Builder os64Bit(boolean os64Bit) {
      method group (line 110) | public Builder group(String group) {
      method tags (line 115) | public Builder tags(Iterable<String> tags) {
      method metadata (line 120) | public Builder metadata(Map<String, String> metadata) {
      method username (line 125) | public Builder username(String username) {
      method credential (line 130) | public Builder credential(String credential) {
      method credentialUrl (line 135) | public Builder credentialUrl(URI credentialUrl) {
      method sudoPassword (line 140) | public Builder sudoPassword(String sudoPassword) {
      method build (line 145) | public Node build() {
    method Node (line 151) | public Node(String id, String name, String description, String hostnam...
    method getId (line 194) | public String getId() {
    method getLocationId (line 198) | public String getLocationId() {
    method getName (line 202) | public String getName() {
    method getDescription (line 206) | public String getDescription() {
    method getGroup (line 210) | public String getGroup() {
    method getHostname (line 214) | public String getHostname() {
    method getOsArch (line 218) | public String getOsArch() {
    method getOsFamily (line 222) | public String getOsFamily() {
    method getOsDescription (line 226) | public String getOsDescription() {
    method getOsVersion (line 230) | public String getOsVersion() {
    method isOs64Bit (line 234) | public boolean isOs64Bit() {
    method getLoginPort (line 238) | public int getLoginPort() {
    method getTags (line 242) | public Set<String> getTags() {
    method getMetadata (line 249) | public Map<String, String> getMetadata() {
    method getUsername (line 253) | public String getUsername() {
    method getCredential (line 257) | public String getCredential() {
    method getCredentialUrl (line 261) | public URI getCredentialUrl() {
    method getSudoPassword (line 265) | public String getSudoPassword() {
    method hashCode (line 269) | @Override
    method equals (line 274) | @Override
    method toString (line 301) | @Override

FILE: apis/byon/src/main/java/org/jclouds/byon/config/BYONComputeServiceContextModule.java
  class BYONComputeServiceContextModule (line 36) | @SingleThreaded
    method BYONComputeServiceContextModule (line 39) | public BYONComputeServiceContextModule() {
    method configure (line 43) | @Override

FILE: apis/byon/src/main/java/org/jclouds/byon/config/CacheNodeStoreModule.java
  class CacheNodeStoreModule (line 35) | @ConfiguresNodeStore
    method CacheNodeStoreModule (line 40) | public CacheNodeStoreModule(LoadingCache<String, Node> backing) {
    method CacheNodeStoreModule (line 44) | public CacheNodeStoreModule(Map<String, Node> backing) {
    method configure (line 50) | @Override

FILE: apis/byon/src/main/java/org/jclouds/byon/config/YamlNodeStoreModule.java
  class YamlNodeStoreModule (line 44) | @ConfiguresNodeStore
    method YamlNodeStoreModule (line 50) | public YamlNodeStoreModule(Map<String, ByteSource> backing) {
    method YamlNodeStoreModule (line 54) | public YamlNodeStoreModule() {
    method configure (line 58) | @Override
    method provideNodeStore (line 82) | @Provides
    method provideYamlStore (line 89) | @Provides

FILE: apis/byon/src/main/java/org/jclouds/byon/domain/YamlNode.java
  class YamlNode (line 69) | public class YamlNode {
    method apply (line 90) | @Override
    method toNode (line 103) | public Node toNode() {
    method apply (line 108) | @Override
    method fromYaml (line 124) | public static YamlNode fromYaml(ByteSource in) {
    method apply (line 129) | @Override
    method toYaml (line 176) | public ByteSource toYaml() {
    method fromNode (line 180) | public static YamlNode fromNode(Node in) {
    method apply (line 185) | @Override

FILE: apis/byon/src/main/java/org/jclouds/byon/functions/NodeToNodeMetadata.java
  class NodeToNodeMetadata (line 54) | @Singleton
    method NodeToNodeMetadata (line 65) | @Inject
    method apply (line 74) | @Override
    method findLocationWithId (line 114) | private Location findLocationWithId(final String locationId) {

FILE: apis/byon/src/main/java/org/jclouds/byon/functions/NodesFromYamlStream.java
  class NodesFromYamlStream (line 70) | @Singleton
    class Config (line 77) | public static class Config {
    method apply (line 81) | @Override

FILE: apis/byon/src/main/java/org/jclouds/byon/internal/BYONComputeServiceAdapter.java
  class BYONComputeServiceAdapter (line 50) | @Singleton
    method BYONComputeServiceAdapter (line 56) | @Inject
    method createNodeWithGroupEncodedIntoName (line 64) | @Override
    method listHardwareProfiles (line 69) | @Override
    method listImages (line 74) | @Override
    method listNodes (line 79) | @Override
    method listNodesByIds (line 84) | @Override
    method listLocations (line 89) | @Override
    method getNode (line 111) | @Override
    method getImage (line 123) | @Override
    method destroyNode (line 128) | @Override
    method rebootNode (line 133) | @Override
    method resumeNode (line 138) | @Override
    method suspendNode (line 143) | @Override

FILE: apis/byon/src/main/java/org/jclouds/byon/suppliers/NodesParsedFromSupplier.java
  class NodesParsedFromSupplier (line 35) | @Singleton
    method NodesParsedFromSupplier (line 43) | @Inject
    method get (line 49) | @Override

FILE: apis/byon/src/main/java/org/jclouds/byon/suppliers/SupplyFromProviderURIOrNodesProperty.java
  class SupplyFromProviderURIOrNodesProperty (line 40) | public class SupplyFromProviderURIOrNodesProperty extends ByteSource imp...
    method SupplyFromProviderURIOrNodesProperty (line 50) | @VisibleForTesting
    method SupplyFromProviderURIOrNodesProperty (line 55) | @Inject
    method openStream (line 60) | @Override
    method toString (line 67) | @Override
    method apply (line 72) | @Override

FILE: apis/byon/src/test/java/org/jclouds/byon/BYONApiMetadataTest.java
  class BYONApiMetadataTest (line 22) | @Test(groups = "unit", testName = "BYONApiMetadataTest")
    method BYONApiMetadataTest (line 25) | public BYONApiMetadataTest() {

FILE: apis/byon/src/test/java/org/jclouds/byon/BYONComputeServiceLiveTest.java
  class BYONComputeServiceLiveTest (line 43) | @Test(groups = "live")
    method setup (line 48) | @BeforeClass(groups = "live")
    method testCanRunCommandAsCurrentUser (line 74) | public void testCanRunCommandAsCurrentUser() throws Exception {
    method close (line 83) | @AfterClass(groups = "live")

FILE: apis/byon/src/test/java/org/jclouds/byon/BYONComputeServiceTest.java
  class BYONComputeServiceTest (line 43) | @Test(singleThreaded = true, testName = "BYONComputeServiceTest")
    method testNodesParseNodeMap (line 46) | @Test
    method testNodesParseWithFileUrl (line 56) | @Test
    method testNodesParseWithClasspathUrl (line 62) | @Test
    method assertNodesParse (line 68) | private void assertNodesParse(String endpoint, ComputeServiceContext c...
    method testNodesWithLocations (line 87) | public void testNodesWithLocations() {
    method supplier (line 131) | private Supplier<LoadingCache<String, Node>> supplier(ComputeServiceCo...

FILE: apis/byon/src/test/java/org/jclouds/byon/config/CacheNodeStoreModuleTest.java
  class CacheNodeStoreModuleTest (line 44) | @Test(groups = "unit", singleThreaded = true, testName = "CacheNodeStore...
    method createData (line 47) | @DataProvider(name = "names")
    method testProvidedMapWithValue (line 53) | public void testProvidedMapWithValue() throws IOException {
    method testProvidedConsistentAcrossRepeatedWrites (line 63) | public void testProvidedConsistentAcrossRepeatedWrites() throws IOExce...
    method testProvidedConsistentAcrossMultipleInjectors (line 76) | public void testProvidedConsistentAcrossMultipleInjectors() throws IOE...
    method testProvidedCacheConsistentAcrossMultipleInjectors (line 86) | public void testProvidedCacheConsistentAcrossMultipleInjectors() throw...
    method getStore (line 98) | private LoadingCache<String, Node> getStore(Injector injector) {
    method createInjectorWithProvidedMap (line 103) | private Injector createInjectorWithProvidedMap(Map<String, Node> map) {
    method createInjectorWithProvidedCache (line 114) | private Injector createInjectorWithProvidedCache(LoadingCache<String, ...
    method check (line 125) | private void check(Map<String, Node> map, LoadingCache<String, Node> s...
    method remove (line 132) | private void remove(Map<String, Node> map, LoadingCache<String, Node> ...
    method checkConsistent (line 146) | private void checkConsistent(Map<String, Node> map, LoadingCache<Strin...
    method put (line 157) | private void put(Map<String, Node> map, LoadingCache<String, Node> sto...

FILE: apis/byon/src/test/java/org/jclouds/byon/config/YamlNodeStoreModuleTest.java
  class YamlNodeStoreModuleTest (line 44) | @Test(groups = "unit", singleThreaded = true)
    method createData (line 48) | @DataProvider(name = "names")
    method deleteObject (line 54) | @Test(dataProvider = "names")
    method testProvidedMapWithValue (line 61) | public void testProvidedMapWithValue() throws IOException {
    method testProvidedConsistentAcrossRepeatedWrites (line 72) | public void testProvidedConsistentAcrossRepeatedWrites() throws IOExce...
    method testProvidedConsistentAcrossMultipleInjectors (line 86) | public void testProvidedConsistentAcrossMultipleInjectors() throws IOE...
    method testDefaultConsistentAcrossMultipleInjectors (line 97) | public void testDefaultConsistentAcrossMultipleInjectors() throws IOEx...
    method getStore (line 108) | protected LoadingCache<String, Node> getStore(Injector injector) {
    method getMap (line 113) | protected Map<String, ByteSource> getMap(Injector injector) {
    method createInjectorWithProvidedMap (line 118) | protected Injector createInjectorWithProvidedMap(Map<String, ByteSourc...
    method createInjector (line 129) | protected Injector createInjector() {
    method check (line 140) | protected void check(Map<String, ByteSource> map, LoadingCache<String,...
    method remove (line 147) | protected void remove(Map<String, ByteSource> map, LoadingCache<String...
    method checkConsistent (line 161) | protected void checkConsistent(Map<String, ByteSource> map, LoadingCac...
    method checkToYaml (line 175) | protected void checkToYaml(Map<String, ByteSource> map, String key, St...
    method put (line 179) | protected void put(Map<String, ByteSource> map, LoadingCache<String, N...

FILE: apis/byon/src/test/java/org/jclouds/byon/functions/NodeToNodeMetadataTest.java
  class NodeToNodeMetadataTest (line 43) | @Test(singleThreaded = true, testName = "NodeToNodeMetadataTest")
    method expectedProviderLocationFromResource (line 45) | public static Location expectedProviderLocationFromResource(String res...
    method zoneCalled (line 49) | public static Location zoneCalled(String zone, Location parent) {
    method expectedNodeMetadataFromResource (line 63) | public static NodeMetadata expectedNodeMetadataFromResource(String res...
    method expectedNodeMetadataFromResource (line 67) | public static NodeMetadata expectedNodeMetadataFromResource(String res...
    method expectedNodeMetadataFromResource (line 71) | public static NodeMetadata expectedNodeMetadataFromResource(int id, St...
    method expectedNodeMetadataFromResource (line 75) | public static NodeMetadata expectedNodeMetadataFromResource(int id, St...
    method testNodesParse (line 95) | @Test
    method testNodesParseLocation (line 101) | @Test
    method testNodesParseLoginPort (line 108) | @Test

FILE: apis/byon/src/test/java/org/jclouds/byon/functions/NodesFromYamlTest.java
  class NodesFromYamlTest (line 29) | public class NodesFromYamlTest {
    method testNodesParse (line 48) | @Test
    method testNodesParseLocation (line 57) | @Test
    method testNodesParseWhenCredentialInUrl (line 66) | @Test
    method testMustParseSomething (line 75) | @Test(expectedExceptions = IllegalStateException.class)

FILE: apis/byon/src/test/java/org/jclouds/byon/suppliers/NodesParsedFromSupplierTest.java
  class NodesParsedFromSupplierTest (line 25) | public class NodesParsedFromSupplierTest {
    method testMustParseSomething (line 27) | @Test(expectedExceptions = IllegalStateException.class)

FILE: apis/byon/src/test/java/org/jclouds/byon/suppliers/SupplyFromProviderURIOrNodesPropertyTest.java
  class SupplyFromProviderURIOrNodesPropertyTest (line 28) | public class SupplyFromProviderURIOrNodesPropertyTest {
    method testFromURI (line 30) | @Test
    method testFromURIClasspath (line 42) | @Test
    method testFromProperty (line 53) | @Test
    method testSupplyMultipleTimes (line 64) | @Test

FILE: apis/chef/src/main/java/org/jclouds/chef/ChefApi.java
  type ChefApi (line 96) | @RequestFilters(SignedHeaderAuth.class)
    method chefService (line 104) | @Provides
    method organizationApi (line 110) | @Delegate
    method listClients (line 120) | @Named("client:list")
    method getClient (line 133) | @Named("client:get")
    method createClient (line 146) | @Named("client:create")
    method createClient (line 160) | @Named("client:create")
    method generateKeyForClient (line 173) | @Named("client:generatekey")
    method deleteClient (line 185) | @Named("client:delete")
    method listCookbooks (line 198) | @Named("cookbook:list")
    method listCookbooksInEnvironment (line 213) | @SinceApiVersion("0.10.0")
    method listCookbooksInEnvironment (line 232) | @SinceApiVersion("0.10.0")
    method listVersionsOfCookbook (line 247) | @Named("cookbook:versions")
    method getCookbook (line 262) | @Named("cookbook:get")
    method getCookbookInEnvironment (line 276) | @SinceApiVersion("0.10.0")
    method getCookbookInEnvironment (line 294) | @SinceApiVersion("0.10.0")
    method listRecipesInEnvironment (line 308) | @SinceApiVersion("0.10.0")
    method updateCookbook (line 323) | @Named("cookbook:update")
    method deleteCookbook (line 336) | @Named("cookbook:delete")
    method listDatabags (line 349) | @Named("databag:list")
    method createDatabag (line 361) | @Named("databag:create")
    method deleteDatabag (line 371) | @Named("databag:delete")
    method listDatabagItems (line 383) | @Named("databag:listitems")
    method getDatabagItem (line 397) | @Named("databag:getitem")
    method createDatabagItem (line 411) | @Named("databag:createitem")
    method updateDatabagItem (line 424) | @Named("databag:updateitem")
    method deleteDatabagItem (line 438) | @Named("databag:deleteitem")
    method listEnvironments (line 453) | @SinceApiVersion("0.10.0")
    method getEnvironment (line 467) | @SinceApiVersion("0.10.0")
    method createEnvironment (line 479) | @SinceApiVersion("0.10.0")
    method updateEnvironment (line 491) | @SinceApiVersion("0.10.0")
    method deleteEnvironment (line 504) | @SinceApiVersion("0.10.0")
    method listNodes (line 518) | @Named("node:list")
    method listNodesInEnvironment (line 531) | @SinceApiVersion("0.10.0")
    method getNode (line 545) | @Named("node:get")
    method createNode (line 556) | @Named("node:create")
    method updateNode (line 567) | @Named("node:update")
    method deleteNode (line 578) | @Named("node:delete")
    method listRoles (line 591) | @Named("role:list")
    method getRole (line 604) | @Named("role:get")
    method createRole (line 615) | @Named("role:create")
    method updateRole (line 626) | @Named("role:update")
    method deleteRole (line 637) | @Named("role:delete")
    method createUploadSandboxForChecksums (line 656) | @Named("sandbox:upload")
    method uploadContent (line 670) | @Named("content:upload")
    method getResourceContents (line 681) | @Named("content:get")
    method commitSandbox (line 696) | @Named("sandbox:commit")
    method listSearchIndexes (line 715) | @Named("search:indexes")
    method searchClients (line 732) | @Named("search:clients")
    method searchClients (line 745) | @Named("search:clients")
    method searchDatabagItems (line 761) | @Named("search:databag")
    method searchDatabagItems (line 774) | @Named("search:databag")
    method searchEnvironments (line 791) | @SinceApiVersion("0.10.0")
    method searchEnvironments (line 805) | @SinceApiVersion("0.10.0")
    method searchNodes (line 822) | @Named("search:nodes")
    method searchNodes (line 835) | @Named("search:nodes")
    method searchRoles (line 851) | @Named("search:roles")
    method searchRoles (line 864) | @Named("search:roles")

FILE: apis/chef/src/main/java/org/jclouds/chef/ChefApiMetadata.java
  class ChefApiMetadata (line 45) | @AutoService(ApiMetadata.class)
    method toBuilder (line 53) | @Override
    method ChefApiMetadata (line 58) | public ChefApiMetadata() {
    method ChefApiMetadata (line 62) | protected ChefApiMetadata(Builder builder) {
    method defaultProperties (line 66) | public static Properties defaultProperties() {
    class Builder (line 85) | public static class Builder extends BaseHttpApiMetadata.Builder<ChefAp...
      method Builder (line 87) | protected Builder() {
      method build (line 101) | @Override
      method self (line 106) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/ChefService.java
  type ChefService (line 41) | @ImplementedBy(BaseChefService.class)
    method encrypt (line 53) | byte[] encrypt(InputStream input) throws IOException;
    method decrypt (line 62) | byte[] decrypt(InputStream input) throws IOException;
    method createBootstrapScriptForGroup (line 74) | Statement createBootstrapScriptForGroup(String group);
    method createBootstrapScriptForGroup (line 85) | Statement createBootstrapScriptForGroup(String group, @Nullable String...
    method updateBootstrapConfigForGroup (line 95) | void updateBootstrapConfigForGroup(String group, BootstrapConfig boots...
    method getBootstrapConfigForGroup (line 103) | BootstrapConfig getBootstrapConfigForGroup(String group);
    method createNodeAndPopulateAutomaticAttributes (line 116) | Node createNodeAndPopulateAutomaticAttributes(String nodeName, Iterabl...
    method updateAutomaticAttributesOnNode (line 123) | void updateAutomaticAttributesOnNode(String nodeName);
    method cleanupStaleNodesAndClients (line 133) | void cleanupStaleNodesAndClients(String prefix, int secondsStale);
    method deleteAllNodesInList (line 140) | void deleteAllNodesInList(Iterable<String> names);
    method deleteAllClientsInList (line 147) | void deleteAllClientsInList(Iterable<String> names);
    method listNodes (line 154) | Iterable<? extends Node> listNodes();
    method listNodes (line 161) | Iterable<? extends Node> listNodes(ExecutorService executorService);
    method listNodesInEnvironment (line 169) | @SinceApiVersion("0.10.0")
    method listNodesInEnvironment (line 179) | @SinceApiVersion("0.10.0")
    method listClients (line 187) | Iterable<? extends Client> listClients();
    method listClients (line 194) | Iterable<? extends Client> listClients(ExecutorService executorService);
    method listCookbookVersions (line 201) | Iterable<? extends CookbookVersion> listCookbookVersions();
    method listCookbookVersions (line 208) | Iterable<? extends CookbookVersion> listCookbookVersions(ExecutorServi...
    method listCookbookVersionsInEnvironment (line 216) | Iterable<? extends CookbookVersion> listCookbookVersionsInEnvironment(...
    method listCookbookVersionsInEnvironment (line 225) | Iterable<? extends CookbookVersion> listCookbookVersionsInEnvironment(...
    method listCookbookVersionsInEnvironment (line 236) | Iterable<? extends CookbookVersion> listCookbookVersionsInEnvironment(...
    method listCookbookVersionsInEnvironment (line 248) | Iterable<? extends CookbookVersion> listCookbookVersionsInEnvironment(...
    method listEnvironments (line 255) | @SinceApiVersion("0.10.0")

FILE: apis/chef/src/main/java/org/jclouds/chef/binders/BindChecksumsToJsonPayload.java
  class BindChecksumsToJsonPayload (line 33) | @Singleton
    method bindToRequest (line 36) | @SuppressWarnings("unchecked")

FILE: apis/chef/src/main/java/org/jclouds/chef/binders/BindCreateClientOptionsToJsonPayload.java
  class BindCreateClientOptionsToJsonPayload (line 39) | public class BindCreateClientOptionsToJsonPayload extends BindToJsonPayl...
    method BindCreateClientOptionsToJsonPayload (line 40) | @Inject
    method bindToRequest (line 45) | @Override
    class CreateClientParams (line 59) | @SuppressWarnings("unused")
      method CreateClientParams (line 65) | public CreateClientParams(String name, CreateClientOptions options) {

FILE: apis/chef/src/main/java/org/jclouds/chef/binders/BindGenerateKeyForClientToJsonPayload.java
  class BindGenerateKeyForClientToJsonPayload (line 25) | @Singleton
    method bindToRequest (line 28) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/binders/BindGroupToUpdateRequestJsonPayload.java
  class BindGroupToUpdateRequestJsonPayload (line 36) | @Singleton
    method BindGroupToUpdateRequestJsonPayload (line 39) | @Inject
    method bindToRequest (line 44) | @Override
    class GroupUpdateRequest (line 51) | @SuppressWarnings("unused")
      method GroupUpdateRequest (line 58) | public GroupUpdateRequest(Group group) {
    class ActorConfiguration (line 66) | @SuppressWarnings("unused")
      method ActorConfiguration (line 72) | public ActorConfiguration(Group group) {

FILE: apis/chef/src/main/java/org/jclouds/chef/binders/DatabagItemId.java
  class DatabagItemId (line 25) | @Singleton
    method apply (line 28) | public String apply(Object from) {

FILE: apis/chef/src/main/java/org/jclouds/chef/binders/EnvironmentName.java
  class EnvironmentName (line 24) | @Singleton
    method apply (line 27) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/binders/GroupName.java
  class GroupName (line 30) | @Singleton
    method apply (line 33) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/binders/NodeName.java
  class NodeName (line 25) | @Singleton
    method apply (line 28) | public String apply(Object from) {

FILE: apis/chef/src/main/java/org/jclouds/chef/binders/RoleName.java
  class RoleName (line 25) | @Singleton
    method apply (line 28) | public String apply(Object from) {

FILE: apis/chef/src/main/java/org/jclouds/chef/config/ChefBootstrapModule.java
  class ChefBootstrapModule (line 43) | public class ChefBootstrapModule extends AbstractModule {
    method installChefGems (line 45) | @Provides
    method installChefUsingOmnibus (line 60) | @Provides
    method installChef (line 69) | @Provides
    class BootstrapProperties (line 77) | @Singleton
      method chefVersion (line 99) | public Optional<String> chefVersion() {
      method gemSystemVersion (line 103) | public Optional<String> gemSystemVersion() {
      method updateGemSystem (line 107) | public boolean updateGemSystem() {
      method updateGems (line 111) | public boolean updateGems() {
      method useOmnibus (line 115) | public boolean useOmnibus() {
    method configure (line 120) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/config/ChefHttpApiModule.java
  class ChefHttpApiModule (line 74) | @ConfiguresHttpApi
    method guiceProvideTimeStamp (line 77) | @Provides
    method provideTimeStamp (line 83) | protected String provideTimeStamp(@TimeStamp Supplier<String> cache) {
    method provideTimeStampCache (line 90) | @Provides
    method supplyKey (line 103) | @Provides
    method privateKeyCache (line 115) | @Provides
    class PrivateKeyForCredentials (line 127) | @VisibleForTesting
      method PrivateKeyForCredentials (line 132) | @Inject
      method load (line 137) | @Override
    method provideValidatorName (line 150) | @Provides
    method provideValidatorCredential (line 164) | @Provides
    method bootstrapConfigForGroup (line 182) | @Provides
    method groupToClient (line 188) | @Provides
    method bindErrorHandlers (line 194) | @Override
    method bindRetryHandlers (line 201) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/config/ChefParserModule.java
  class ChefParserModule (line 63) | public class ChefParserModule extends AbstractModule {
    type PrivateKeyAdapter (line 64) | @ImplementedBy(PrivateKeyAdapterImpl.class)
    class PrivateKeyAdapterImpl (line 69) | @Singleton
      method PrivateKeyAdapterImpl (line 73) | @Inject
      method deserialize (line 78) | @Override
    type PublicKeyAdapter (line 98) | @ImplementedBy(PublicKeyAdapterImpl.class)
    class PublicKeyAdapterImpl (line 103) | @Singleton
      method PublicKeyAdapterImpl (line 107) | @Inject
      method deserialize (line 112) | @Override
    type X509CertificateAdapter (line 132) | @ImplementedBy(X509CertificateAdapterImpl.class)
    class X509CertificateAdapterImpl (line 137) | @Singleton
      method X509CertificateAdapterImpl (line 141) | @Inject
      method deserialize (line 146) | @Override
    class DataBagItemAdapter (line 169) | @Singleton
      method createJsonLiteralFromRawJson (line 173) | @Override
      method toString (line 182) | @Override
    class IdHolder (line 202) | private static class IdHolder {
    class KeepLastRepeatedKeyMapTypeAdapter (line 206) | private static final class KeepLastRepeatedKeyMapTypeAdapter<K, V>
      method KeepLastRepeatedKeyMapTypeAdapter (line 209) | protected KeepLastRepeatedKeyMapTypeAdapter(TypeAdapter<K> keyAdapte...
      method read (line 213) | @Override
    class KeepLastRepeatedKeyMapTypeAdapterFactory (line 236) | public static class KeepLastRepeatedKeyMapTypeAdapterFactory extends M...
      method KeepLastRepeatedKeyMapTypeAdapterFactory (line 238) | public KeepLastRepeatedKeyMapTypeAdapterFactory() {
      method newAdapter (line 242) | @SuppressWarnings("unchecked")
    method provideCustomAdapterBindings (line 249) | @Provides
    method configure (line 257) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/config/ChefProperties.java
  class ChefProperties (line 23) | public final class ChefProperties {
    method ChefProperties (line 110) | private ChefProperties() {

FILE: apis/chef/src/main/java/org/jclouds/chef/domain/Attribute.java
  class Attribute (line 36) | public class Attribute {
    method builder (line 37) | public static Builder builder() {
    class Builder (line 41) | public static class Builder {
      method required (line 51) | public Builder required(String required) {
      method calculated (line 56) | public Builder calculated(boolean calculated) {
      method choice (line 61) | public Builder choice(String choice) {
      method choices (line 66) | public Builder choices(Iterable<String> choices) {
      method defaultValue (line 71) | public Builder defaultValue(JsonBall defaultValue) {
      method type (line 76) | public Builder type(String type) {
      method recipe (line 81) | public Builder recipe(String recipe) {
      method recipes (line 86) | public Builder recipes(Iterable<String> recipes) {
      method displayName (line 91) | public Builder displayName(String displayName) {
      method description (line 96) | public Builder description(String description) {
      method build (line 101) | public Attribute build() {
    method Attribute (line 118) | @ConstructorProperties({ "required", "calculated", "choice", "default"...
    method getRequired (line 132) | public String getRequired() {
    method isCalculated (line 136) | public boolean isCalculated() {
    method getChoice (line 140) | public Set<String> getChoice() {
    method getDefaultValue (line 144) | public JsonBall getDefaultValue() {
    method getType (line 148) | public String getType() {
    method getRecipes (line 152) | public List<String> getRecipes() {
    method getDisplayName (line 156) | public String getDisplayName() {
    method getDescription (line 160) | public String getDescription() {
    method hashCode (line 164) | @Override
    method equals (line 179) | @Override
    method toString (line 228) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/domain/BootstrapConfig.java
  class BootstrapConfig (line 35) | public class BootstrapConfig {
    type SSLVerifyMode (line 37) | public static enum SSLVerifyMode {
      method toString (line 40) | @Override
      method fromValue (line 45) | public static SSLVerifyMode fromValue(String value) {
    method builder (line 50) | public static Builder builder() {
    class Builder (line 54) | public static class Builder {
      method runList (line 66) | public Builder runList(Iterable<String> runList) {
      method environment (line 74) | public Builder environment(String environment) {
      method attributes (line 82) | public Builder attributes(JsonBall attributes) {
      method sslCAFile (line 91) | public Builder sslCAFile(String sslCAFile) {
      method sslCAPath (line 100) | public Builder sslCAPath(String sslCAPath) {
      method sslVerifyMode (line 113) | public Builder sslVerifyMode(SSLVerifyMode sslVerifyMode) {
      method verifyApiCert (line 123) | public Builder verifyApiCert(boolean verifyApiCert) {
      method build (line 128) | public BootstrapConfig build() {
    method BootstrapConfig (line 153) | @ConstructorProperties({ "run_list", "environment", "attributes", "ssl...
    method getRunList (line 167) | public List<String> getRunList() {
    method getEnvironment (line 171) | @Nullable
    method getAttributes (line 176) | @Nullable
    method getSslCAFile (line 181) | @Nullable
    method getSslCAPath (line 186) | @Nullable
    method getSslVerifyMode (line 191) | @Nullable
    method getVerifyApiCert (line 196) | @Nullable

FILE: apis/chef/src/main/java/org/jclouds/chef/domain/ChecksumStatus.java
  class ChecksumStatus (line 28) | public class ChecksumStatus {
    method builder (line 29) | public static Builder builder() {
    class Builder (line 33) | public static class Builder {
      method url (line 37) | public Builder url(URI url) {
      method needsUpload (line 42) | public Builder needsUpload(boolean needsUpload) {
      method build (line 47) | public ChecksumStatus build() {
    method ChecksumStatus (line 56) | @ConstructorProperties({ "url", "needs_upload" })
    method getUrl (line 62) | public URI getUrl() {
    method needsUpload (line 66) | public boolean needsUpload() {
    method hashCode (line 70) | @Override
    method equals (line 79) | @Override
    method toString (line 98) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/domain/Client.java
  class Client (line 33) | public class Client {
    method builder (line 34) | public static Builder builder() {
    class Builder (line 38) | public static class Builder {
      method certificate (line 47) | public Builder certificate(X509Certificate certificate) {
      method privateKey (line 52) | public Builder privateKey(PrivateKey privateKey) {
      method publicKey (line 57) | public Builder publicKey(PublicKey publicKey) {
      method orgname (line 62) | public Builder orgname(String orgname) {
      method clientname (line 67) | public Builder clientname(String clientname) {
      method name (line 72) | public Builder name(String name) {
      method isValidator (line 77) | public Builder isValidator(boolean validator) {
      method build (line 82) | public Client build() {
    method Client (line 97) | @ConstructorProperties({ "certificate", "orgname", "clientname", "name...
    method getPublicKey (line 109) | public PublicKey getPublicKey() {
    method getPrivateKey (line 113) | public PrivateKey getPrivateKey() {
    method getCertificate (line 117) | public X509Certificate getCertificate() {
    method getOrgname (line 121) | public String getOrgname() {
    method getClientname (line 125) | public String getClientname() {
    method getName (line 129) | public String getName() {
    method isValidator (line 133) | public boolean isValidator() {
    method hashCode (line 137) | @Override
    method equals (line 151) | @Override
    method toString (line 195) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/domain/CookbookDefinition.java
  class CookbookDefinition (line 33) | public class CookbookDefinition {
    method builder (line 34) | public static Builder builder() {
    class Builder (line 38) | public static class Builder {
      method name (line 43) | public Builder name(String name) {
      method url (line 48) | public Builder url(URI url) {
      method version (line 53) | public Builder version(Version version) {
      method versions (line 58) | public Builder versions(Iterable<Version> versions) {
      method from (line 63) | public Builder from(CookbookDefinition def) {
      method build (line 70) | public CookbookDefinition build() {
    method CookbookDefinition (line 79) | @ConstructorProperties({"name", "url", "versions" })
    method getName (line 86) | public String getName() {
    method getUrl (line 90) | public URI getUrl() {
    method getVersions (line 94) | public Set<Version> getVersions() {
    method hashCode (line 98) | @Override
    method equals (line 108) | @Override
    method toString (line 135) | @Override
    class Version (line 140) | public static class Version {
      method builder (line 141) | public static Builder builder() {
      class Builder (line 145) | public static class Builder {
        method url (line 149) | public Builder url(URI url) {
        method version (line 154) | public Builder version(String version) {
        method build (line 159) | public Version build() {
      method Version (line 167) | @ConstructorProperties({ "url", "version" })
      method getUrl (line 173) | public URI getUrl() {
      method getVersion (line 177) | public String getVersion() {
      method hashCode (line 181) | @Override
      method equals (line 190) | @Override
      method toString (line 212) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/domain/CookbookVersion.java
  class CookbookVersion (line 33) | public class CookbookVersion {
    method builder (line 34) | public static Builder builder(String name, String version) {
    class Builder (line 38) | public static class Builder {
      method Builder (line 52) | public Builder(String name, String version) {
      method cookbookName (line 57) | public Builder cookbookName(String cookbookName) {
      method definition (line 62) | public Builder definition(Resource definition) {
      method definitions (line 67) | public Builder definitions(Iterable<Resource> definitions) {
      method attribute (line 72) | public Builder attribute(Resource attribute) {
      method attributes (line 77) | public Builder attributes(Iterable<Resource> attributes) {
      method file (line 82) | public Builder file(Resource file) {
      method files (line 87) | public Builder files(Iterable<Resource> files) {
      method metadata (line 92) | public Builder metadata(Metadata metadata) {
      method provider (line 97) | public Builder provider(Resource provider) {
      method providers (line 102) | public Builder providers(Iterable<Resource> providers) {
      method resource (line 107) | public Builder resource(Resource resource) {
      method resources (line 112) | public Builder resources(Iterable<Resource> resources) {
      method template (line 117) | public Builder template(Resource template) {
      method templates (line 122) | public Builder templates(Iterable<Resource> templates) {
      method library (line 127) | public Builder library(Resource library) {
      method libraries (line 132) | public Builder libraries(Iterable<Resource> libraries) {
      method version (line 137) | public Builder version(String version) {
      method recipe (line 142) | public Builder recipe(Resource recipe) {
      method recipes (line 147) | public Builder recipes(Iterable<Resource> recipes) {
      method rootFile (line 152) | public Builder rootFile(Resource rootFile) {
      method rootFiles (line 157) | public Builder rootFiles(Iterable<Resource> rootFiles) {
      method build (line 162) | public CookbookVersion build() {
    method CookbookVersion (line 191) | @ConstructorProperties({ "name", "definitions", "attributes", "files",...
    method getName (line 212) | public String getName() {
    method getDefinitions (line 216) | public Set<Resource> getDefinitions() {
    method getAttributes (line 220) | public Set<Resource> getAttributes() {
    method getFiles (line 224) | public Set<Resource> getFiles() {
    method getMetadata (line 228) | public Metadata getMetadata() {
    method getSuppliers (line 232) | public Set<Resource> getSuppliers() {
    method getCookbookName (line 236) | public String getCookbookName() {
    method getResources (line 240) | public Set<Resource> getResources() {
    method getTemplates (line 244) | public Set<Resource> getTemplates() {
    method getLibraries (line 248) | public Set<Resource> getLibraries() {
    method getVersion (line 252) | public String getVersion() {
    method getRecipes (line 256) | public Set<Resource> getRecipes() {
    method getRootFiles (line 260) | public Set<Resource> getRootFiles() {
    method hashCode (line 264) | @Override
    method equals (line 284) | @Override
    method toString (line 361) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/domain/DatabagItem.java
  class DatabagItem (line 26) | public class DatabagItem extends JsonBall {
    method DatabagItem (line 30) | public DatabagItem(String id, String value) {
    method hashCode (line 35) | @Override
    method equals (line 43) | @Override
    method getId (line 60) | public String getId() {

FILE: apis/chef/src/main/java/org/jclouds/chef/domain/Environment.java
  class Environment (line 34) | public class Environment {
    method builder (line 35) | public static Builder builder() {
    class Builder (line 39) | public static class Builder {
      method name (line 46) | public Builder name(String name) {
      method attribute (line 51) | public Builder attribute(String key, JsonBall value) {
      method attributes (line 56) | public Builder attributes(Map<String, JsonBall> attributes) {
      method overrideAttribute (line 61) | public Builder overrideAttribute(String key, JsonBall value) {
      method overrideAttributes (line 66) | public Builder overrideAttributes(Map<String, JsonBall> overrideAttr...
      method cookbookVersion (line 71) | public Builder cookbookVersion(String key, String version) {
      method cookbookVersions (line 76) | public Builder cookbookVersions(Map<String, String> cookbookVersions) {
      method description (line 81) | public Builder description(String description) {
      method build (line 86) | public Environment build() {
    method Environment (line 107) | @ConstructorProperties({ "name", "default_attributes", "override_attri...
    method getName (line 118) | public String getName() {
    method getAttributes (line 122) | public Map<String, JsonBall> getAttributes() {
    method getOverrideAttributes (line 126) | public Map<String, JsonBall> getOverrideAttributes() {
    method getDescription (line 130) | public String getDescription() {
    method getCookbookVersions (line 134) | public Map<String, String> getCookbookVersions() {
    method equals (line 138) | @Override
    method hashCode (line 162) | @Override
    method toString (line 172) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/domain/Group.java
  class Group (line 32) | public class Group {
    method builder (line 33) | public static Builder builder(String groupname) {
    class Builder (line 37) | public static class Builder {
      method Builder (line 46) | public Builder(String groupname) {
      method name (line 50) | public Builder name(String name) {
      method groupname (line 55) | public Builder groupname(String groupname) {
      method orgname (line 60) | public Builder orgname(String orgname) {
      method actor (line 65) | public Builder actor(String actor) {
      method actors (line 70) | public Builder actors(Iterable<String> actors) {
      method client (line 75) | public Builder client(String client) {
      method clients (line 80) | public Builder clients(Iterable<String> clients) {
      method group (line 85) | public Builder group(String group) {
      method groups (line 90) | public Builder groups(Iterable<String> groups) {
      method user (line 95) | public Builder user(String user) {
      method users (line 100) | public Builder users(Iterable<String> users) {
      method build (line 105) | public Group build() {
    method Group (line 119) | @ConstructorProperties({ "name", "groupname", "orgname", "actors", "cl...
    method getName (line 131) | public String getName() {
    method getGroupname (line 135) | public String getGroupname() {
    method getOrgname (line 139) | public String getOrgname() {
    method getActors (line 143) | public Set<String> getActors() {
    method getClients (line 147) | public Set<String> getClients() {
    method getGroups (line 151) | public Set<String> getGroups() {
    method getUsers (line 155) | public Set<String> getUsers() {
    method hashCode (line 159) | @Override
    method equals (line 169) | @Override
    method toString (line 205) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/domain/Grouping.java
  class Grouping (line 26) | public class Grouping {
    method builder (line 27) | public static Builder builder() {
    class Builder (line 31) | public static class Builder {
      method title (line 35) | public Builder title(String title) {
      method description (line 40) | public Builder description(String description) {
      method build (line 45) | public Grouping build() {
    method Grouping (line 53) | @ConstructorProperties({ "title", "description" })
    method getTitle (line 59) | public String getTitle() {
    method getDescription (line 63) | public String getDescription() {
    method hashCode (line 67) | @Override
    method equals (line 76) | @Override
    method toString (line 98) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/domain/Metadata.java
  class Metadata (line 33) | public class Metadata {
    method builder (line 34) | public static Builder builder() {
    class Builder (line 38) | public static class Builder {
      method license (line 57) | public Builder license(String license) {
      method maintainer (line 62) | public Builder maintainer(String maintainer) {
      method suggestion (line 67) | public Builder suggestion(String key, String value) {
      method suggestions (line 72) | public Builder suggestions(Map<String, String> suggestions) {
      method dependency (line 77) | public Builder dependency(String key, String value) {
      method dependencies (line 82) | public Builder dependencies(Map<String, String> dependencies) {
      method maintainerEmail (line 87) | public Builder maintainerEmail(String maintainerEmail) {
      method conflicting (line 92) | public Builder conflicting(String key, String value) {
      method conflicting (line 97) | public Builder conflicting(Map<String, String> conflicting) {
      method description (line 102) | public Builder description(String description) {
      method providing (line 107) | public Builder providing(String key, String value) {
      method providing (line 112) | public Builder providing(Map<String, String> providing) {
      method platform (line 117) | public Builder platform(String key, String value) {
      method platforms (line 122) | public Builder platforms(Map<String, String> platforms) {
      method version (line 127) | public Builder version(String version) {
      method recipe (line 132) | public Builder recipe(String key, String value) {
      method recipes (line 137) | public Builder recipes(Map<String, String> recipes) {
      method replacing (line 142) | public Builder replacing(String key, String value) {
      method replacing (line 147) | public Builder replacing(Map<String, String> replacing) {
      method name (line 152) | public Builder name(String name) {
      method grouping (line 157) | public Builder grouping(String key, Grouping value) {
      method grouping (line 162) | public Builder grouping(Map<String, Grouping> groupings) {
      method longDescription (line 167) | public Builder longDescription(String longDescription) {
      method attribute (line 172) | public Builder attribute(String key, Attribute value) {
      method attributes (line 177) | public Builder attributes(Map<String, Attribute> attributes) {
      method recommendation (line 182) | public Builder recommendation(String key, String value) {
      method recommendations (line 187) | public Builder recommendations(Map<String, String> recommendations) {
      method build (line 192) | public Metadata build() {
    method Metadata (line 220) | @ConstructorProperties({ "license", "maintainer", "suggestions", "depe...
    method getLicense (line 248) | public String getLicense() {
    method getMaintainer (line 252) | public String getMaintainer() {
    method getSuggestions (line 256) | public Map<String, String> getSuggestions() {
    method getDependencies (line 260) | public Map<String, String> getDependencies() {
    method getMaintainerEmail (line 264) | public String getMaintainerEmail() {
    method getConflicting (line 268) | public Map<String, String> getConflicting() {
    method getDescription (line 272) | public String getDescription() {
    method getProviding (line 276) | public Map<String, String> getProviding() {
    method getPlatforms (line 280) | public Map<String, String> getPlatforms() {
    method getVersion (line 284) | public String getVersion() {
    method getRecipes (line 288) | public Map<String, String> getRecipes() {
    method getReplacing (line 292) | public Map<String, String> getReplacing() {
    method getName (line 296) | public String getName() {
    method getGroupings (line 300) | public Map<String, Grouping> getGroupings() {
    method getLongDescription (line 304) | public String getLongDescription() {
    method getAttributes (line 308) | public Map<String, Attribute> getAttributes() {
    method getRecommendations (line 312) | public Map<String, String> getRecommendations() {
    method hashCode (line 316) | @Override
    method equals (line 340) | @Override
    method toString (line 437) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/domain/Node.java
  class Node (line 36) | public class Node {
    method builder (line 37) | public static Builder builder() {
    class Builder (line 41) | public static class Builder {
      method name (line 50) | public Builder name(String name) {
      method normalAttribute (line 55) | public Builder normalAttribute(String key, JsonBall value) {
      method normalAttributes (line 60) | public Builder normalAttributes(Map<String, JsonBall> normalAttribut...
      method overrideAttribute (line 65) | public Builder overrideAttribute(String key, JsonBall value) {
      method overrideAttributes (line 70) | public Builder overrideAttributes(Map<String, JsonBall> overrideAttr...
      method defaultAttribute (line 75) | public Builder defaultAttribute(String key, JsonBall value) {
      method defaultAttributes (line 80) | public Builder defaultAttributes(Map<String, JsonBall> defaultAttrib...
      method automaticAttribute (line 85) | public Builder automaticAttribute(String key, JsonBall value) {
      method automaticAttributes (line 90) | public Builder automaticAttributes(Map<String, JsonBall> automaticAt...
      method runListElement (line 95) | public Builder runListElement(String element) {
      method runList (line 100) | public Builder runList(Iterable<String> runList) {
      method environment (line 108) | public Builder environment(String environment) {
      method build (line 113) | public Node build() {
    method Node (line 139) | @ConstructorProperties({ "name", "normal", "override", "default", "aut...
    method getName (line 152) | public String getName() {
    method getNormalAttributes (line 156) | public Map<String, JsonBall> getNormalAttributes() {
    method getOverrideAttributes (line 160) | public Map<String, JsonBall> getOverrideAttributes() {
    method getDefaultAttributes (line 164) | public Map<String, JsonBall> getDefaultAttributes() {
    method getAutomaticAttributes (line 168) | public Map<String, JsonBall> getAutomaticAttributes() {
    method getRunList (line 172) | public List<String> getRunList() {
    method getEnvironment (line 179) | public String getEnvironment() {
    method hashCode (line 183) | @Override
    method equals (line 199) | @Override
    method toString (line 256) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/domain/Resource.java
  class Resource (line 32) | public class Resource {
    method builder (line 33) | public static Builder builder() {
    class Builder (line 37) | public static class Builder {
      method name (line 44) | public Builder name(String name) {
      method url (line 49) | public Builder url(URI url) {
      method checksum (line 54) | public Builder checksum(byte[] checksum) {
      method path (line 59) | public Builder path(String path) {
      method specificity (line 64) | public Builder specificity(String specificity) {
      method fromPayload (line 69) | public Builder fromPayload(FilePayload payload) {
      method build (line 77) | public Resource build() {
    method Resource (line 88) | @ConstructorProperties({ "name", "url", "checksum", "path", "specifici...
    method getName (line 97) | public String getName() {
    method getUrl (line 101) | public URI getUrl() {
    method getChecksum (line 105) | public byte[] getChecksum() {
    method getPath (line 109) | public String getPath() {
    method getSpecificity (line 113) | public String getSpecificity() {
    method hashCode (line 117) | @Override
    method equals (line 129) | @Override
    method toString (line 163) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/domain/Role.java
  class Role (line 40) | public class Role {
    method builder (line 41) | public static Builder builder() {
    class Builder (line 45) | public static class Builder {
      method name (line 56) | public Builder name(String name) {
      method description (line 61) | public Builder description(String description) {
      method overrideAttribute (line 66) | public Builder overrideAttribute(String key, JsonBall value) {
      method overrideAttributes (line 71) | public Builder overrideAttributes(Map<String, JsonBall> overrideAttr...
      method defaultAttribute (line 76) | public Builder defaultAttribute(String key, JsonBall value) {
      method defaultAttributes (line 81) | public Builder defaultAttributes(Map<String, JsonBall> defaultAttrib...
      method runListElement (line 86) | public Builder runListElement(String element) {
      method runList (line 91) | public Builder runList(Iterable<String> runList) {
      method envRunList (line 96) | public Builder envRunList(Map<String, List<String>> envRunList) {
      method envRunList (line 101) | public Builder envRunList(String name, List<String> runList) {
      method envRunListElement (line 106) | public Builder envRunListElement(String name, String value) {
      method build (line 118) | public Role build() {
    method Role (line 150) | @ConstructorProperties({ "name", "description", "default_attributes", ...
    method getName (line 163) | public String getName() {
    method getDescription (line 167) | public String getDescription() {
    method getOverrideAttributes (line 171) | public Map<String, JsonBall> getOverrideAttributes() {
    method getDefaultAttributes (line 175) | public Map<String, JsonBall> getDefaultAttributes() {
    method getRunList (line 179) | public List<String> getRunList() {
    method getEnvRunList (line 183) | public Map<String, List<String>> getEnvRunList() {
    method hashCode (line 187) | @Override
    method equals (line 202) | @Override
    method toString (line 254) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/domain/Sandbox.java
  class Sandbox (line 34) | public class Sandbox {
    method builder (line 35) | public static Builder builder() {
    class Builder (line 39) | public static class Builder {
      method rev (line 47) | public Builder rev(String rev) {
      method isCompleted (line 52) | public Builder isCompleted(boolean isCompleted) {
      method createTime (line 57) | public Builder createTime(Date createTime) {
      method checksum (line 62) | public Builder checksum(String checksum) {
      method checksums (line 67) | public Builder checksums(Iterable<String> checksums) {
      method name (line 72) | public Builder name(String name) {
      method guid (line 77) | public Builder guid(String guid) {
      method build (line 82) | public Sandbox build() {
    method Sandbox (line 103) | @ConstructorProperties({ "_rev", "is_completed", "create_time", "check...
    method getRev (line 114) | public String getRev() {
    method isCompleted (line 118) | public boolean isCompleted() {
    method getCreateTime (line 122) | public Date getCreateTime() {
    method getChecksums (line 126) | public Set<String> getChecksums() {
    method getName (line 130) | public String getName() {
    method getGuid (line 134) | public String getGuid() {
    method hashCode (line 138) | @Override
    method equals (line 151) | @Override
    method toString (line 190) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/domain/SearchResult.java
  class SearchResult (line 26) | public class SearchResult<T> extends LinkedHashSet<T> {
    method SearchResult (line 30) | SearchResult() {
    method SearchResult (line 33) | public SearchResult(long start, Iterable<T> results) {
    method getStart (line 42) | long getStart() {

FILE: apis/chef/src/main/java/org/jclouds/chef/domain/UploadSandbox.java
  class UploadSandbox (line 35) | public class UploadSandbox {
    method builder (line 36) | public static Builder builder() {
    class Builder (line 40) | public static class Builder {
      method uri (line 45) | public Builder uri(URI uri) {
      method checksum (line 50) | public Builder checksum(List<Byte> key, ChecksumStatus value) {
      method checksums (line 55) | public Builder checksums(Map<List<Byte>, ChecksumStatus> checksums) {
      method sandboxId (line 60) | public Builder sandboxId(String sandboxId) {
      method build (line 65) | public UploadSandbox build() {
    method UploadSandbox (line 75) | @ConstructorProperties({ "uri", "checksums", "sandbox_id" })
    method getUri (line 82) | public URI getUri() {
    method getChecksums (line 86) | public Map<List<Byte>, ChecksumStatus> getChecksums() {
    method getSandboxId (line 90) | public String getSandboxId() {
    method hashCode (line 94) | @Override
    method equals (line 104) | @Override
    method toString (line 131) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/domain/User.java
  class User (line 29) | public class User {
    method builder (line 30) | public static Builder builder() {
    class Builder (line 34) | public static class Builder {
      method username (line 43) | public Builder username(String username) {
      method firstName (line 48) | public Builder firstName(String firstName) {
      method middleName (line 53) | public Builder middleName(String middleName) {
      method lastName (line 58) | public Builder lastName(String lastName) {
      method displayName (line 63) | public Builder displayName(String displayName) {
      method email (line 68) | public Builder email(String email) {
      method publicKey (line 73) | public Builder publicKey(PublicKey publicKey) {
      method build (line 78) | public User build() {
    method User (line 96) | @ConstructorProperties({ "username", "first_name", "middle_name", "las...
    method getUsername (line 108) | public String getUsername() {
    method getFirstName (line 112) | public String getFirstName() {
    method getMiddleName (line 116) | public String getMiddleName() {
    method getLastName (line 120) | public String getLastName() {
    method getDisplayName (line 124) | public String getDisplayName() {
    method getEmail (line 128) | public String getEmail() {
    method getPublicKey (line 132) | public PublicKey getPublicKey() {
    method hashCode (line 136) | @Override
    method equals (line 150) | @Override
    method toString (line 214) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/features/OrganizationApi.java
  type OrganizationApi (line 52) | @RequestFilters(SignedHeaderAuth.class)
    method getUser (line 64) | @Named("user:get")
    method listGroups (line 75) | @Named("group:list")
    method getGroup (line 88) | @Named("group:get")
    method createGroup (line 100) | @Named("group:create")
    method updateGroup (line 113) | @Named("group:update")
    method deleteGroup (line 125) | @Named("group:delete")

FILE: apis/chef/src/main/java/org/jclouds/chef/filters/SignedHeaderAuth.java
  class SignedHeaderAuth (line 68) | @Singleton
    method SignedHeaderAuth (line 84) | @Inject
    method filter (line 96) | public HttpRequest filter(HttpRequest input) throws HttpException {
    method calculateAndReplaceAuthorizationHeaders (line 113) | @VisibleForTesting
    method createStringToSign (line 127) | public String createStringToSign(String request, String hashedPath, St...
    method hashPath (line 136) | @VisibleForTesting
    method canonicalPath (line 150) | @VisibleForTesting
    method hashBody (line 156) | @VisibleForTesting
    method useTheFilePartIfForm (line 171) | private Payload useTheFilePartIfForm(Payload payload) {
    method sign (line 190) | public String sign(String toSign) {

FILE: apis/chef/src/main/java/org/jclouds/chef/functions/BootstrapConfigForGroup.java
  class BootstrapConfigForGroup (line 36) | @Singleton
    method BootstrapConfigForGroup (line 43) | @Inject
    method apply (line 50) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/functions/ClientForGroup.java
  class ClientForGroup (line 36) | @Singleton
    method ClientForGroup (line 40) | @Inject
    method apply (line 45) | @Override
    method findNextClientName (line 58) | private static String findNextClientName(Set<String> clients, String p...

FILE: apis/chef/src/main/java/org/jclouds/chef/functions/GroupToBootScript.java
  class GroupToBootScript (line 54) | @Singleton
    method GroupToBootScript (line 64) | @Inject
    method apply (line 75) | public Statement apply(String group, @Nullable String nodeName) {
    method createClientRbFile (line 102) | private Statement createClientRbFile(String clientRbFile, String group...
    method createAttributesFile (line 123) | private Statement createAttributesFile(String chefBootFile, BootstrapC...
    method addIfPresent (line 147) | private void addIfPresent(ImmutableList.Builder<String> lines, String ...

FILE: apis/chef/src/main/java/org/jclouds/chef/functions/ParseCookbookDefinitionFromJson.java
  class ParseCookbookDefinitionFromJson (line 31) | @Singleton
    method ParseCookbookDefinitionFromJson (line 37) | @Inject
    method apply (line 42) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/functions/ParseCookbookDefinitionListFromJson.java
  class ParseCookbookDefinitionListFromJson (line 35) | @Singleton
    method ParseCookbookDefinitionListFromJson (line 43) | @Inject
    method apply (line 48) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/functions/ParseCookbookNamesFromJson.java
  class ParseCookbookNamesFromJson (line 35) | @Singleton
    method ParseCookbookNamesFromJson (line 41) | @Inject
    method apply (line 46) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/functions/ParseCookbookVersionsFromJson.java
  class ParseCookbookVersionsFromJson (line 38) | @Singleton
    method ParseCookbookVersionsFromJson (line 44) | @Inject
    method apply (line 49) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/functions/ParseErrorFromJsonOrReturnBody.java
  class ParseErrorFromJsonOrReturnBody (line 30) | @Singleton
    method ParseErrorFromJsonOrReturnBody (line 35) | @Inject
    method apply (line 40) | @Override
    method parse (line 48) | public String parse(String in) {

FILE: apis/chef/src/main/java/org/jclouds/chef/functions/ParseKeySetFromJson.java
  class ParseKeySetFromJson (line 30) | @Singleton
    method ParseKeySetFromJson (line 35) | @Inject
    method apply (line 40) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/functions/ParseSearchClientsFromJson.java
  class ParseSearchClientsFromJson (line 25) | @Singleton
    method ParseSearchClientsFromJson (line 30) | @Inject

FILE: apis/chef/src/main/java/org/jclouds/chef/functions/ParseSearchDatabagFromJson.java
  class ParseSearchDatabagFromJson (line 41) | @Singleton
    class Row (line 48) | static class Row {
    class Response (line 53) | static class Response {
    method ParseSearchDatabagFromJson (line 58) | @Inject
    method apply (line 64) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/functions/ParseSearchEnvironmentsFromJson.java
  class ParseSearchEnvironmentsFromJson (line 25) | @Singleton
    method ParseSearchEnvironmentsFromJson (line 30) | @Inject

FILE: apis/chef/src/main/java/org/jclouds/chef/functions/ParseSearchNodesFromJson.java
  class ParseSearchNodesFromJson (line 25) | @Singleton
    method ParseSearchNodesFromJson (line 30) | @Inject

FILE: apis/chef/src/main/java/org/jclouds/chef/functions/ParseSearchResultFromJson.java
  class ParseSearchResultFromJson (line 30) | @Singleton
    class Response (line 35) | static class Response<T> {
    method ParseSearchResultFromJson (line 40) | @Inject
    method apply (line 45) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/functions/ParseSearchRolesFromJson.java
  class ParseSearchRolesFromJson (line 25) | @Singleton
    method ParseSearchRolesFromJson (line 30) | @Inject

FILE: apis/chef/src/main/java/org/jclouds/chef/functions/UriForResource.java
  class UriForResource (line 33) | @Singleton
    method apply (line 36) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/handlers/ChefApiErrorRetryHandler.java
  class ChefApiErrorRetryHandler (line 36) | public class ChefApiErrorRetryHandler implements HttpRetryHandler {
    method ChefApiErrorRetryHandler (line 47) | @Inject
    method shouldRetryRequest (line 52) | public boolean shouldRetryRequest(HttpCommand command, HttpResponse re...

FILE: apis/chef/src/main/java/org/jclouds/chef/handlers/ChefErrorHandler.java
  class ChefErrorHandler (line 37) | @Singleton
    method ChefErrorHandler (line 43) | @Inject
    method handleError (line 48) | public void handleError(HttpCommand command, HttpResponse response) {

FILE: apis/chef/src/main/java/org/jclouds/chef/internal/BaseChefService.java
  class BaseChefService (line 68) | @Singleton
    method BaseChefService (line 94) | @Inject
    method encrypt (line 124) | @Override
    method decrypt (line 131) | @Override
    method createBootstrapScriptForGroup (line 138) | @Override
    method createBootstrapScriptForGroup (line 143) | @Override
    method updateBootstrapConfigForGroup (line 148) | @Override
    method buildBootstrapConfiguration (line 167) | @VisibleForTesting
    method getBootstrapConfigForGroup (line 172) | @Override
    method cleanupStaleNodesAndClients (line 177) | @Override
    method createNodeAndPopulateAutomaticAttributes (line 182) | @Override
    method updateAutomaticAttributesOnNode (line 187) | @Override
    method deleteAllNodesInList (line 192) | @Override
    method deleteAllClientsInList (line 197) | @Override
    method listNodes (line 202) | @Override
    method listNodes (line 207) | @Override
    method listClients (line 212) | @Override
    method listClients (line 217) | @Override
    method listCookbookVersions (line 222) | @Override
    method listCookbookVersions (line 227) | @Override
    method listCookbookVersionsInEnvironment (line 232) | @Override
    method listCookbookVersionsInEnvironment (line 237) | @Override
    method listCookbookVersionsInEnvironment (line 243) | @Override
    method listCookbookVersionsInEnvironment (line 249) | @Override
    method listEnvironments (line 255) | @Override
    method listNodesInEnvironment (line 260) | @Override
    method listNodesInEnvironment (line 265) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/options/CreateClientOptions.java
  class CreateClientOptions (line 22) | public class CreateClientOptions implements Cloneable {
    method CreateClientOptions (line 26) | public CreateClientOptions() {
    method CreateClientOptions (line 29) | CreateClientOptions(final boolean admin) {
    method isAdmin (line 34) | public boolean isAdmin() {
    method admin (line 38) | public CreateClientOptions admin() {
    method clone (line 43) | @Override
    method toString (line 48) | @Override
    class Builder (line 53) | public static class Builder {
      method admin (line 57) | public static CreateClientOptions admin() {

FILE: apis/chef/src/main/java/org/jclouds/chef/options/SearchOptions.java
  class SearchOptions (line 26) | public class SearchOptions extends BaseHttpRequestOptions {
    method query (line 31) | public SearchOptions query(String query) {
    method sort (line 39) | public SearchOptions sort(String sort) {
    method rows (line 47) | public SearchOptions rows(int rows) {
    method start (line 55) | public SearchOptions start(int start) {
    class Builder (line 60) | public static class Builder {
      method query (line 65) | public static SearchOptions query(String query) {
      method start (line 73) | public static SearchOptions start(String start) {
      method rows (line 81) | public static SearchOptions rows(int rows) {
      method start (line 89) | public static SearchOptions start(int start) {

FILE: apis/chef/src/main/java/org/jclouds/chef/predicates/CookbookVersionPredicates.java
  class CookbookVersionPredicates (line 37) | public class CookbookVersionPredicates {
    method containsRecipe (line 41) | public static Predicate<CookbookVersion> containsRecipe(String recipe) {
    method containsRecipes (line 55) | public static Predicate<CookbookVersion> containsRecipes(String... rec...

FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/CleanupStaleNodesAndClients.java
  type CleanupStaleNodesAndClients (line 27) | @ImplementedBy(CleanupStaleNodesAndClientsImpl.class)
    method execute (line 30) | void execute(String prefix, int secondsStale);

FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/CreateNodeAndPopulateAutomaticAttributes.java
  type CreateNodeAndPopulateAutomaticAttributes (line 28) | @ImplementedBy(CreateNodeAndPopulateAutomaticAttributesImpl.class)
    method execute (line 30) | Node execute(Node node);
    method execute (line 32) | Node execute(String nodeName, Iterable<String> runList);

FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/DeleteAllClientsInList.java
  type DeleteAllClientsInList (line 27) | @ImplementedBy(DeleteAllClientsInListImpl.class)
    method execute (line 30) | void execute(Iterable<String> names);
    method execute (line 32) | void execute(ListeningExecutorService executor, Iterable<String> names);

FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/DeleteAllNodesInList.java
  type DeleteAllNodesInList (line 24) | @ImplementedBy(DeleteAllNodesInListImpl.class)
    method execute (line 27) | void execute(Iterable<String> names);
    method execute (line 29) | void execute(ListeningExecutorService executor, Iterable<String> names);

FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/ListClients.java
  type ListClients (line 25) | @ImplementedBy(ListClientsImpl.class)
    method execute (line 28) | Iterable<? extends Client> execute();
    method execute (line 30) | Iterable<? extends Client> execute(ExecutorService executor);

FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/ListCookbookVersions.java
  type ListCookbookVersions (line 25) | @ImplementedBy(ListCookbookVersionsImpl.class)
    method execute (line 28) | Iterable<? extends CookbookVersion> execute();
    method execute (line 30) | Iterable<? extends CookbookVersion> execute(ExecutorService executor);

FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/ListCookbookVersionsInEnvironment.java
  type ListCookbookVersionsInEnvironment (line 25) | @ImplementedBy(ListCookbookVersionsInEnvironmentImpl.class)
    method execute (line 28) | Iterable<? extends CookbookVersion> execute(String environmentName);
    method execute (line 30) | Iterable<? extends CookbookVersion> execute(String environmentName, St...
    method execute (line 32) | Iterable<? extends CookbookVersion> execute(ExecutorService executor, ...
    method execute (line 34) | Iterable<? extends CookbookVersion> execute(ExecutorService executor, ...

FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/ListEnvironments.java
  type ListEnvironments (line 25) | @ImplementedBy(ListEnvironmentsImpl.class)
    method execute (line 28) | Iterable<? extends Environment> execute();
    method execute (line 30) | Iterable<? extends Environment> execute(ExecutorService executor);

FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/ListNodes.java
  type ListNodes (line 25) | @ImplementedBy(ListNodesImpl.class)
    method execute (line 28) | Iterable<? extends Node> execute();
    method execute (line 30) | Iterable<? extends Node> execute(ExecutorService executor);

FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/ListNodesInEnvironment.java
  type ListNodesInEnvironment (line 25) | @ImplementedBy(ListNodesInEnvironmentImpl.class)
    method execute (line 28) | Iterable<? extends Node> execute(String environmentName);
    method execute (line 30) | Iterable<? extends Node> execute(ExecutorService executor, String envi...

FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/UpdateAutomaticAttributesOnNode.java
  type UpdateAutomaticAttributesOnNode (line 27) | @ImplementedBy(UpdateAutomaticAttributesOnNodeImpl.class)
    method execute (line 30) | void execute(String nodeName);

FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/internal/BaseListCookbookVersionsImpl.java
  class BaseListCookbookVersionsImpl (line 36) | public abstract class BaseListCookbookVersionsImpl {
    method BaseListCookbookVersionsImpl (line 42) | BaseListCookbookVersionsImpl(ChefApi api) {
    method execute (line 46) | protected Iterable<? extends CookbookVersion> execute(Iterable<String>...
    method executeConcurrently (line 69) | protected Iterable<? extends CookbookVersion> executeConcurrently(fina...

FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/internal/BaseListNodesImpl.java
  class BaseListNodesImpl (line 35) | public abstract class BaseListNodesImpl {
    method BaseListNodesImpl (line 41) | BaseListNodesImpl(ChefApi api) {
    method execute (line 45) | protected Iterable<? extends Node> execute(Iterable<String> toGet) {
    method executeConcurrently (line 59) | protected Iterable<? extends Node> executeConcurrently(final Listening...

FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/internal/CleanupStaleNodesAndClientsImpl.java
  class CleanupStaleNodesAndClientsImpl (line 50) | @Singleton
    method CleanupStaleNodesAndClientsImpl (line 60) | @Inject
    method execute (line 68) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/internal/CreateNodeAndPopulateAutomaticAttributesImpl.java
  class CreateNodeAndPopulateAutomaticAttributesImpl (line 42) | @Singleton
    method CreateNodeAndPopulateAutomaticAttributesImpl (line 52) | @Inject
    method execute (line 59) | @Override
    method execute (line 79) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/internal/DeleteAllClientsInListImpl.java
  class DeleteAllClientsInListImpl (line 47) | @Singleton
    method DeleteAllClientsInListImpl (line 56) | @Inject
    method execute (line 62) | @Override
    method execute (line 67) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/internal/DeleteAllNodesInListImpl.java
  class DeleteAllNodesInListImpl (line 44) | @Singleton
    method DeleteAllNodesInListImpl (line 53) | @Inject
    method execute (line 59) | @Override
    method execute (line 64) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/internal/ListClientsImpl.java
  class ListClientsImpl (line 46) | @Singleton
    method ListClientsImpl (line 54) | @Inject
    method execute (line 59) | @Override
    method execute (line 79) | @Override
    method execute (line 85) | private Iterable<? extends Client> execute(ListeningExecutorService li...
    method executeConcurrently (line 89) | private Iterable<? extends Client> executeConcurrently(final Listening...

FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/internal/ListCookbookVersionsImpl.java
  class ListCookbookVersionsImpl (line 33) | @Singleton
    method ListCookbookVersionsImpl (line 40) | @Inject
    method execute (line 45) | @Override
    method execute (line 50) | @Override
    method executeConcurrently (line 56) | private Iterable<? extends CookbookVersion> executeConcurrently(Listen...

FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/internal/ListCookbookVersionsInEnvironmentImpl.java
  class ListCookbookVersionsInEnvironmentImpl (line 38) | @Singleton
    method ListCookbookVersionsInEnvironmentImpl (line 46) | @Inject
    method execute (line 51) | @Override
    method execute (line 64) | @Override
    method execute (line 77) | @Override
    method execute (line 83) | @Override
    method executeConcurrently (line 90) | private Iterable<? extends CookbookVersion> executeConcurrently(Listen...
    method executeConcurrently (line 104) | private Iterable<? extends CookbookVersion> executeConcurrently(Listen...

FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/internal/ListEnvironmentsImpl.java
  class ListEnvironmentsImpl (line 50) | @Singleton
    method ListEnvironmentsImpl (line 59) | @Inject
    method execute (line 65) | @Override
    method execute (line 70) | @Override
    method execute (line 75) | private Iterable<? extends Environment> execute(ListeningExecutorServi...
    method execute (line 79) | private Iterable<? extends Environment> execute(final ListeningExecuto...

FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/internal/ListNodesImpl.java
  class ListNodesImpl (line 34) | @Singleton
    method ListNodesImpl (line 42) | @Inject
    method execute (line 47) | @Override
    method execute (line 52) | @Override
    method executeConcurrently (line 58) | private Iterable<? extends Node> executeConcurrently(ListeningExecutor...

FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/internal/ListNodesInEnvironmentImpl.java
  class ListNodesInEnvironmentImpl (line 34) | @Singleton
    method ListNodesInEnvironmentImpl (line 41) | @Inject
    method execute (line 46) | @Override
    method execute (line 51) | @Override
    method executeConcurrently (line 57) | private Iterable<? extends Node> executeConcurrently(ListeningExecutor...

FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/internal/UpdateAutomaticAttributesOnNodeImpl.java
  class UpdateAutomaticAttributesOnNodeImpl (line 42) | @Singleton
    method UpdateAutomaticAttributesOnNodeImpl (line 52) | @Inject
    method execute (line 58) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/suppliers/ChefVersionSupplier.java
  class ChefVersionSupplier (line 39) | @Singleton
    method ChefVersionSupplier (line 52) | @Inject
    method get (line 57) | @Override

FILE: apis/chef/src/main/java/org/jclouds/chef/util/ChefUtils.java
  class ChefUtils (line 36) | public class ChefUtils {
    method fromOhaiTime (line 38) | public static Date fromOhaiTime(JsonBall ohaiDate) {
    method toOhaiTime (line 42) | public static JsonBall toOhaiTime(long millis) {
    method ohaiAutomaticAttributeBinder (line 46) | public static MapBinder<String, Supplier<JsonBall>> ohaiAutomaticAttri...
    method findRoleInRunList (line 57) | public static String findRoleInRunList(List<String> runList) {

FILE: apis/chef/src/main/java/org/jclouds/chef/util/CollectionUtils.java
  class CollectionUtils (line 32) | public class CollectionUtils {
    method copyOfOrEmpty (line 42) | public static <T> ImmutableList<T> copyOfOrEmpty(@Nullable List<T> inp...
    method copyOfOrEmpty (line 54) | public static <T> ImmutableSet<T> copyOfOrEmpty(@Nullable Set<T> input) {
    method copyOfOrEmpty (line 66) | public static <K, V> ImmutableMap<K, V> copyOfOrEmpty(@Nullable Map<K,...

FILE: apis/chef/src/main/java/org/jclouds/chef/util/RunListBuilder.java
  class RunListBuilder (line 33) | public class RunListBuilder {
    method addRecipe (line 39) | public RunListBuilder addRecipe(String recipe) {
    method addRecipes (line 46) | public RunListBuilder addRecipes(String... recipes) {
    method addRole (line 61) | public RunListBuilder addRole(String role) {
    method addRoles (line 68) | public RunListBuilder addRoles(String... roles) {
    method build (line 80) | public List<String> build() {

FILE: apis/chef/src/main/java/org/jclouds/ohai/AutomaticSupplier.java
  class AutomaticSupplier (line 32) | @Singleton
    method AutomaticSupplier (line 37) | @Inject
    method get (line 43) | @Override

FILE: apis/chef/src/main/java/org/jclouds/ohai/config/JMXOhaiModule.java
  class JMXOhaiModule (line 34) | @ConfiguresOhai
    method guiceProvideRuntimeMXBean (line 37) | @Provides
    method provideRuntimeMXBean (line 43) | protected RuntimeMXBean provideRuntimeMXBean() {
    method bindOhai (line 47) | @Override

FILE: apis/chef/src/main/java/org/jclouds/ohai/config/OhaiModule.java
  class OhaiModule (line 50) | @ConfiguresOhai
    method configure (line 53) | @Override
    method guiceProvideAutomatic (line 61) | @Provides
    method provideAutomatic (line 67) | protected Supplier<Map<String, JsonBall>> provideAutomatic(AutomaticSu...
    method provideAutomatic (line 71) | @Provides
    method provideSystemProperties (line 79) | @Named("systemProperties")
    method systemProperties (line 85) | protected Properties systemProperties() {
    method bindOhai (line 89) | public MapBinder<String, Supplier<JsonBall>> bindOhai() {
    class OhaiTimeProvider (line 99) | @Singleton
      method OhaiTimeProvider (line 103) | @Inject
      method get (line 108) | @Override
    method provideMillis (line 115) | @Provides
    method millis (line 121) | protected Long millis() {
    class SystemPropertiesProvider (line 125) | @Singleton
      method SystemPropertiesProvider (line 131) | @Inject
      method get (line 137) | @Override
    class PlatformProvider (line 144) | @Singleton
      method PlatformProvider (line 147) | @Inject
      method get (line 152) | @Override
    class PlatformVersionProvider (line 160) | @Singleton
      method PlatformVersionProvider (line 163) | @Inject
    class CurrentUserProvider (line 170) | @Singleton
      method CurrentUserProvider (line 173) | @Inject
    class SystemPropertyProvider (line 180) | public static class SystemPropertyProvider implements Supplier<JsonBal...
      method SystemPropertyProvider (line 184) | @Inject
      method get (line 190) | @Override

FILE: apis/chef/src/main/java/org/jclouds/ohai/functions/ByteArrayToMacAddress.java
  class ByteArrayToMacAddress (line 36) | @Singleton
    method apply (line 39) | @Override

FILE: apis/chef/src/main/java/org/jclouds/ohai/functions/MapSetToMultimap.java
  class MapSetToMultimap (line 29) | @Singleton
    method apply (line 32) | @Override

FILE: apis/chef/src/main/java/org/jclouds/ohai/functions/NestSlashKeys.java
  class NestSlashKeys (line 45) | @Singleton
    method NestSlashKeys (line 50) | @Inject
    method apply (line 55) | @Override
    method mergeSameKeys (line 82) | private Map<String, JsonBall> mergeSameKeys(Multimap<String, Supplier<...
    method mergeAsPeer (line 94) | @VisibleForTesting
    method putUnderContext (line 126) | void putUnderContext(List<String> keyParts, JsonBall toInsert, Map<Str...

FILE: apis/chef/src/main/java/org/jclouds/ohai/suppliers/UptimeSecondsSupplier.java
  class UptimeSecondsSupplier (line 28) | @Singleton
    method UptimeSecondsSupplier (line 31) | @Inject
    method get (line 38) | @Override

FILE: apis/chef/src/test/java/org/jclouds/chef/BaseChefApiExpectTest.java
  class BaseChefApiExpectTest (line 30) | public abstract class BaseChefApiExpectTest<S> extends BaseRestApiExpect...
    method BaseChefApiExpectTest (line 35) | public BaseChefApiExpectTest() {
    method signed (line 42) | protected HttpRequest signed(HttpRequest input) {

FILE: apis/chef/src/test/java/org/jclouds/chef/ChefApiDelegationTest.java
  class ChefApiDelegationTest (line 27) | @Test(groups = "unit", testName = "ChefApiDelegationTest")
    method testOrganizationApiNotAvailableInOldVersions (line 30) | public void testOrganizationApiNotAvailableInOldVersions() throws IOEx...
    method testOrganizationApiPresentInRecentVersions (line 43) | public void testOrganizationApiPresentInRecentVersions() throws IOExce...

FILE: apis/chef/src/test/java/org/jclouds/chef/ChefApiExpectTest.java
  class ChefApiExpectTest (line 43) | @Test(groups = "unit", testName = "ChefApiExpectTest")
    method getHttpRequestBuilder (line 46) | private HttpRequest.Builder<?> getHttpRequestBuilder(String method, St...
    method testListClientsReturnsValidSet (line 54) | public void testListClientsReturnsValidSet() {
    method testListClientsReturnsEmptySetOn404 (line 65) | public void testListClientsReturnsEmptySetOn404() {
    method testListNodesReturnsValidSet (line 74) | public void testListNodesReturnsValidSet() {
    method testListNodesReturnsEmptySetOn404 (line 85) | public void testListNodesReturnsEmptySetOn404() {
    method testListRecipesInEnvironmentReturnsValidSet (line 93) | public void testListRecipesInEnvironmentReturnsValidSet() {
    method testListRecipesInEnvironmentReturnsEmptySetOn404 (line 104) | public void testListRecipesInEnvironmentReturnsEmptySetOn404() {
    method testListNodesInEnvironmentReturnsValidSet (line 112) | public void testListNodesInEnvironmentReturnsValidSet() {
    method testListNodesInEnvironmentReturnsEmptySetOn404 (line 123) | public void testListNodesInEnvironmentReturnsEmptySetOn404() {
    method testListCookbooksReturnsValidSet (line 131) | public void testListCookbooksReturnsValidSet() {
    method testListCookbooksReturnsEmptySetOn404 (line 142) | public void testListCookbooksReturnsEmptySetOn404() {
    method testListCookbooksInEnvironmentReturnsValidSet (line 150) | public void testListCookbooksInEnvironmentReturnsValidSet() {
    method testListCookbooksInEnvironmentReturnsEmptySetOn404 (line 160) | public void testListCookbooksInEnvironmentReturnsEmptySetOn404() {
    method testListCookbooksInEnvironmentWithNumVersionReturnsEmptySetOn404 (line 168) | public void testListCookbooksInEnvironmentWithNumVersionReturnsEmptySe...
    method testSearchRolesReturnsValidResult (line 176) | public void testSearchRolesReturnsValidResult() {
    method testSearchRolesReturnsEmptyResult (line 187) | public void testSearchRolesReturnsEmptyResult() {
    method testSearchRolesWithOptionsReturnsValidResult (line 197) | public void testSearchRolesWithOptionsReturnsValidResult() {
    method testSearchRolesWithOptionsReturnsEmptyResult (line 209) | public void testSearchRolesWithOptionsReturnsEmptyResult() {
    method testListRolesReturnsValidSet (line 220) | public void testListRolesReturnsValidSet() {
    method testListRolesReturnsEmptySetOn404 (line 231) | public void testListRolesReturnsEmptySetOn404() {
    method testListDatabagsReturnsValidSet (line 239) | public void testListDatabagsReturnsValidSet() {
    method testListDatabagsReturnsEmptySetOn404 (line 250) | public void testListDatabagsReturnsEmptySetOn404() {
    method createModule (line 258) | @Override
    class TestChefHttpApiModule (line 263) | @ConfiguresHttpApi
      method provideTimeStamp (line 265) | @Override
    method createApiMetadata (line 271) | @Override

FILE: apis/chef/src/test/java/org/jclouds/chef/ChefApiLiveTest.java
  class ChefApiLiveTest (line 75) | @Test(groups = { "live", "integration" })
    method testCreateNewCookbook (line 87) | public void testCreateNewCookbook() throws Exception {
    method uploadAndGetFilePayload (line 113) | private FilePayload uploadAndGetFilePayload(File file) throws IOExcept...
    method testListCookbooks (line 143) | public void testListCookbooks() throws Exception {
    method testListCookbookVersionsWithChefService (line 158) | @Test(dependsOnMethods = "testListCookbooks")
    method testDownloadCookbooks (line 164) | @Test(dependsOnMethods = "testListCookbookVersionsWithChefService")
    method testUpdateCookbook (line 182) | @Test(dependsOnMethods = "testCreateNewCookbook")
    method testDeleteCookbook (line 189) | @Test(dependsOnMethods = { "testCreateNewCookbook", "testUpdateCookboo...
    method testCreateClient (line 194) | @Test
    method testCreateAdminClient (line 201) | @Test
    method testGenerateKeyForClient (line 208) | @Test(dependsOnMethods = "testCreateClient")
    method testListNodes (line 214) | @Test
    method testCreateNode (line 220) | @Test(dependsOnMethods = "testCreateRole")
    method testUpdateNode (line 231) | @Test(dependsOnMethods = "testCreateNode")
    method testListRoles (line 239) | @Test
    method testCreateRole (line 245) | @Test
    method testUpdateRole (line 270) | @Test(dependsOnMethods = "testCreateRole")
    method testListDatabags (line 278) | @Test
    method testCreateDatabag (line 284) | @Test
    method testListDatabagItems (line 290) | @Test(dependsOnMethods = "testCreateDatabagItem")
    method testCreateDatabagItem (line 296) | @Test(dependsOnMethods = "testCreateDatabag")
    method testUpdateDatabagItem (line 315) | @Test(dependsOnMethods = "testCreateDatabagItem")
    method testDeleteDatabagItem (line 323) | @Test(dependsOnMethods = "testSearchDatabagWithOptions")
    method testListSearchIndexes (line 333) | @Test
    method testSearchNodes (line 342) | @Test
    method testSearchNodesWithOptions (line 348) | @Test(dependsOnMethods = { "testListSearchIndexes", "testCreateNode" })
    method testSearchClients (line 370) | @Test
    method testSearchClientsWithOptions (line 376) | @Test(dependsOnMethods = { "testListSearchIndexes", "testCreateClient" })
    method testSearchRoles (line 398) | @Test
    method testSearchRolesWithOptions (line 404) | @Test(dependsOnMethods = { "testListSearchIndexes", "testCreateRole" })
    method testSearchDatabag (line 426) | @Test(dependsOnMethods = { "testListSearchIndexes", "testCreateDatabag...
    method testSearchDatabagWithOptions (line 432) | @Test(dependsOnMethods = { "testListSearchIndexes", "testCreateDatabag...
    method testSearchDatabagNotFound (line 454) | @Test(expectedExceptions = ResourceNotFoundException.class, dependsOnM...
    method testCreateEnvironment (line 460) | @Test
    method testListEnvironment (line 470) | @Test(dependsOnMethods = "testCreateEnvironment")
    method testSearchEnvironments (line 477) | @Test(dependsOnMethods = "testCreateEnvironment")
    method testSearchEnvironmentsWithOptions (line 483) | @Test(dependsOnMethods = { "testListSearchIndexes", "testCreateEnviron...
    method testListRecipesInEnvironment (line 505) | @Test(dependsOnMethods = "testCreateEnvironment")
    method testListNodesInEnvironment (line 511) | @Test(dependsOnMethods = "testCreateEnvironment")
    method testListCookbooksInEnvironment (line 521) | @Test(dependsOnMethods = "testCreateNewCookbook")
    method tearDown (line 531) | @AfterClass(groups = { "live", "integration" })
    method assertClientCreated (line 544) | private void assertClientCreated(String identity, String credential) {

FILE: apis/chef/src/test/java/org/jclouds/chef/ChefApiMetadataTest.java
  class ChefApiMetadataTest (line 26) | @Test(groups = "unit", testName = "ChefApiMetadataTest")
    method ChefApiMetadataTest (line 30) | public ChefApiMetadataTest() {

FILE: apis/chef/src/test/java/org/jclouds/chef/ChefApiTest.java
  class ChefApiTest (line 73) | @Test(groups = { "unit" })
    method testCommitSandbox (line 76) | public void testCommitSandbox() throws SecurityException, NoSuchMethod...
    method testCreateUploadSandboxForChecksums (line 95) | public void testCreateUploadSandboxForChecksums() throws SecurityExcep...
    method testUploadContent (line 115) | public void testUploadContent() throws SecurityException, NoSuchMethod...
    method testGetCookbook (line 132) | public void testGetCookbook() throws SecurityException, NoSuchMethodEx...
    method testDeleteCookbook (line 149) | public void testDeleteCookbook() throws SecurityException, NoSuchMetho...
    method testUpdateCookbook (line 166) | public void testUpdateCookbook() throws SecurityException, NoSuchMetho...
    method testListVersionsOfCookbook (line 192) | public void testListVersionsOfCookbook() throws SecurityException, NoS...
    method testDeleteClient (line 210) | public void testDeleteClient() throws SecurityException, NoSuchMethodE...
    method testCreateApi (line 227) | public void testCreateApi() throws SecurityException, NoSuchMethodExce...
    method testCreateAdminApi (line 244) | public void testCreateAdminApi() throws SecurityException, NoSuchMetho...
    method testGenerateKeyForClient (line 262) | public void testGenerateKeyForClient() throws SecurityException, NoSuc...
    method testDeleteNode (line 279) | public void testDeleteNode() throws SecurityException, NoSuchMethodExc...
    method testCreateNode (line 295) | public void testCreateNode() throws SecurityException, NoSuchMethodExc...
    method testUpdateNode (line 318) | public void testUpdateNode() throws SecurityException, NoSuchMethodExc...
    method testDeleteRole (line 341) | public void testDeleteRole() throws SecurityException, NoSuchMethodExc...
    method testCreateRole (line 357) | public void testCreateRole() throws SecurityException, NoSuchMethodExc...
    method testUpdateRole (line 382) | public void testUpdateRole() throws SecurityException, NoSuchMethodExc...
    method testDeleteDatabag (line 407) | public void testDeleteDatabag() throws SecurityException, NoSuchMethod...
    method testCreateDatabag (line 424) | public void testCreateDatabag() throws SecurityException, NoSuchMethod...
    method testDeleteDatabagItem (line 441) | public void testDeleteDatabagItem() throws SecurityException, NoSuchMe...
    method testCreateDatabagItemThrowsIllegalArgumentOnPrimitive (line 457) | @Test(expectedExceptions = IllegalArgumentException.class)
    method testCreateDatabagItemThrowsIllegalArgumentOnWrongId (line 481) | @Test(expectedExceptions = IllegalArgumentException.class)
    method testCreateDatabagItem (line 505) | public void testCreateDatabagItem() throws SecurityException, NoSuchMe...
    method testCreateDatabagItemEvenWhenUserForgotId (line 523) | public void testCreateDatabagItemEvenWhenUserForgotId() throws Securit...
    method testUpdateDatabagItem (line 541) | public void testUpdateDatabagItem() throws SecurityException, NoSuchMe...
    method testListDatabagItems (line 560) | public void testListDatabagItems() throws SecurityException, NoSuchMet...
    method testListSearchIndexes (line 577) | public void testListSearchIndexes() throws SecurityException, NoSuchMe...
    method testSearchClients (line 595) | public void testSearchClients() throws SecurityException, NoSuchMethod...
    method testSearchClientsWithOptions (line 612) | public void testSearchClientsWithOptions() throws SecurityException, N...
    method testSearchNodes (line 630) | public void testSearchNodes() throws SecurityException, NoSuchMethodEx...
    method testSearchNodesWithOptions (line 647) | public void testSearchNodesWithOptions() throws SecurityException, NoS...
    method testSearchDatabagItems (line 665) | public void testSearchDatabagItems() throws SecurityException, NoSuchM...
    method testSearchDatabagItemsWithOptions (line 682) | public void testSearchDatabagItemsWithOptions() throws SecurityExcepti...
    method testGetResourceContents (line 700) | public void testGetResourceContents() throws SecurityException, NoSuch...
    method checkFilters (line 718) | @Override
    method createModule (line 724) | @Override
    method setupProperties (line 729) | @Override
    class TestChefHttpApiModule (line 736) | @ConfiguresHttpApi
      method provideTimeStamp (line 738) | @Override
    method createApiMetadata (line 744) | @Override

FILE: apis/chef/src/test/java/org/jclouds/chef/binders/BindGroupToUpdateRequestJsonPayloadTest.java
  class BindGroupToUpdateRequestJsonPayloadTest (line 40) | @Test(groups = "unit", testName = "BindGroupToUpdateRequestJsonPayloadTe...
    method configure (line 44) | @Override
    method testInvalidNullInput (line 52) | @Test(expectedExceptions = NullPointerException.class)
    method testInvalidTypeInput (line 58) | @Test(expectedExceptions = IllegalArgumentException.class)
    method testBindOnlyName (line 64) | public void testBindOnlyName() throws IOException {
    method testBindNameAndLists (line 72) | public void testBindNameAndLists() throws IOException {

FILE: apis/chef/src/test/java/org/jclouds/chef/binders/BindHexEncodedMD5sToJsonPayloadTest.java
  class BindHexEncodedMD5sToJsonPayloadTest (line 39) | @Test(groups = { "unit" })
    method configure (line 43) | @Override
    method testMustBeIterable (line 51) | @Test(expectedExceptions = IllegalArgumentException.class)
    method testCorrect (line 57) | public void testCorrect() {
    method testNullIsBad (line 64) | @Test(expectedExceptions = { NullPointerException.class, IllegalStateE...

FILE: apis/chef/src/test/java/org/jclouds/chef/binders/GroupNameTest.java
  class GroupNameTest (line 29) | @Test(groups = "unit", testName = "GroupNameTest")
    method testInvalidNullInput (line 32) | @Test(expectedExceptions = NullPointerException.class)
    method testApplyGroupName (line 37) | public void testApplyGroupName() throws IOException {

FILE: apis/chef/src/test/java/org/jclouds/chef/config/ChefParserModuleTest.java
  class ChefParserModuleTest (line 40) | @Test(groups = "unit", testName = "ChefParserModuleTest")
    class KeyValue (line 43) | private static class KeyValue {
      method KeyValue (line 47) | private KeyValue(String key, String value) {
      method hashCode (line 52) | @Override
      method equals (line 57) | @Override
    method testKeepLastRepeatedKeyMapTypeAdapter (line 77) | public void testKeepLastRepeatedKeyMapTypeAdapter() {
    method testListInMap (line 103) | public void testListInMap() {

FILE: apis/chef/src/test/java/org/jclouds/chef/domain/RoleTest.java
  class RoleTest (line 34) | @Test(groups = { "unit" })
    method canNotAddEnvRunListMapThatIsNull (line 36) | @Test(expectedExceptions = NullPointerException.class)
    method canNotAddRunListForEnvironmentThatIsNull (line 41) | @Test(expectedExceptions = NullPointerException.class)
    method canNotUseNullEnvNameWhenAddingEnvRunListEntry (line 46) | @Test(expectedExceptions = NullPointerException.class)
    method canNotUseNullEntryWhenAddingEnvRunListEntry (line 51) | @Test(expectedExceptions = NullPointerException.class)
    method multipleEnvRunListsCanBePopulated (line 56) | public void multipleEnvRunListsCanBePopulated() {
    method envRunListOnNewlyBuiltRoleIsImmutable (line 72) | @Test(expectedExceptions = UnsupportedOperationException.class)
    method envRunListEntriesOnNewlyBuiltRoleIsImmutable (line 79) | @Test(expectedExceptions = UnsupportedOperationException.class)
    method rolesWithSameEnvRunListAreEqual (line 86) | public void rolesWithSameEnvRunListAreEqual() {
    method rolesWithDifferentEnvRunListAreNotEqual (line 98) | public void rolesWithDifferentEnvRunListAreNotEqual() {
    method verifyRunListForEnvironment (line 110) | @Test(enabled = false)

FILE: apis/chef/src/test/java/org/jclouds/chef/features/OrganizationApiExpectTest.java
  class OrganizationApiExpectTest (line 48) | @Test(groups = "unit", testName = "OrganizationApiExpectTest")
    method testGetUserReturns2xx (line 51) | public void testGetUserReturns2xx() {
    method testGetUserReturns404 (line 67) | public void testGetUserReturns404() {
    method testListGroups (line 79) | public void testListGroups() {
    method testGetGroupReturns2xx (line 95) | public void testGetGroupReturns2xx() {
    method testGetGroupReturns404 (line 111) | public void testGetGroupReturns404() {
    method testCreateGroupReturns2xx (line 123) | public void testCreateGroupReturns2xx() {
    method testDeleteGroupReturns2xx (line 136) | public void testDeleteGroupReturns2xx() {
    method testDeleteGroupFailsOn404 (line 148) | @Test(expectedExceptions = HttpResponseException.class)
    method testUpdateGroupReturns2xx (line 161) | public void testUpdateGroupReturns2xx() {
    method testUpdateGroupFailsOn404 (line 175) | @Test(expectedExceptions = ResourceNotFoundException.class)
    method createModule (line 190) | @Override
    class TestChefHttpApiModule (line 195) | @ConfiguresHttpApi
      method provideTimeStamp (line 197) | @Override
    method createApiMetadata (line 203) | @Override

FILE: apis/chef/src/test/java/org/jclouds/chef/features/OrganizationApiLiveTest.java
  class OrganizationApiLiveTest (line 39) | @Test(groups = "live", singleThreaded = true, testName = "OrganizationAp...
    method skipIfApiNotAvailable (line 45) | @BeforeMethod
    method testGetUser (line 54) | public void testGetUser() {
    method testGetUnexistingUser (line 60) | public void testGetUnexistingUser() {
    method testListGroups (line 65) | public void testListGroups() {
    method testGetUnexistingGroup (line 71) | public void testGetUnexistingGroup() {
    method testCreateGroup (line 76) | public void testCreateGroup() {
    method testUpdateGroup (line 83) | @Test(dependsOnMethods = "testCreateGroup")
    method testUpdateUnexistingGroup (line 103) | @Test(expectedExceptions = ResourceNotFoundException.class)
    method testDeleteGroup (line 108) | @Test(dependsOnMethods = "testUpdateGroup", alwaysRun = true)
    method testDeleteUnexistingGroup (line 115) | @Test(expectedExceptions = ResourceNotFoundException.class)

FILE: apis/chef/src/test/java/org/jclouds/chef/filters/SignedHeaderAuthTest.java
  class SignedHeaderAuthTest (line 56) | @Test(groups = { "unit" })
    method canonicalizedPathRemovesMultipleSlashes (line 118) | @Test
    method canonicalizedPathRemovesTrailingSlash (line 123) | @Test
    method shouldGenerateTheCorrectStringToSignAndSignature (line 128) | @Test
    method shouldGenerateTheCorrectStringToSignAndSignatureWithNoBody (line 149) | @Test
    method shouldNotChokeWhenSigningARequestForAResourceWithALongName (line 161) | @Test
    method shouldReplacePercentage3FWithQuestionMarkAtUrl (line 172) | @Test
    method createFilter (line 190) | @BeforeClass

FILE: apis/chef/src/test/java/org/jclouds/chef/functions/BootstrapConfigForGroupTest.java
  class BootstrapConfigForGroupTest (line 40) | @Test(groups = "unit", testName = "BootstrapConfigForGroupTest")
    method setup (line 45) | @BeforeClass
    method testWhenNoDatabagItem (line 51) | @Test(expectedExceptions = IllegalStateException.class)
    method testReturnsItem (line 66) | @Test

FILE: apis/chef/src/test/java/org/jclouds/chef/functions/ClientForGroupTest.java
  class ClientForGroupTest (line 34) | @Test(groups = "unit", testName = "ClientForGroupTest")
    method testWhenNoClientsInList (line 37) | public void testWhenNoClientsInList() throws IOException {
    method testWhenClientsInListAddsToEnd (line 60) | public void testWhenClientsInListAddsToEnd() throws IOException {
    method testWhenClientsInListReplacesMissing (line 84) | public void testWhenClientsInListReplacesMissing() throws IOException {

FILE: apis/chef/src/test/java/org/jclouds/chef/functions/GroupToBootScriptTest.java
  class GroupToBootScriptTest (line 62) | @Test(groups = "unit", testName = "GroupToBootScriptTest")
    method setup (line 69) | @BeforeClass
    method testMustHaveValidatorName (line 96) | @Test(expectedExceptions = IllegalStateException.class)
    method testMustHaveValidatorCredential (line 105) | @Test(expectedExceptions = IllegalStateException.class)
    method testMustHaveRunScriptsName (line 113) | @Test(expectedExceptions = IllegalArgumentException.class, expectedExc...
    method testMustHaveRunScriptsValue (line 122) | @Test(expectedExceptions = NullPointerException.class, expectedExcepti...
    method testOneRecipe (line 131) | public void testOneRecipe() throws IOException {
    method testOneRecipeAndEnvironment (line 151) | public void testOneRecipeAndEnvironment() throws IOException {
    method testOneRecipeOmnibus (line 171) | public void testOneRecipeOmnibus() throws IOException {
    method testOneRecipeAndEnvironmentOmnibus (line 189) | public void testOneRecipeAndEnvironmentOmnibus() throws IOException {
    method testNoAttribtues (line 207) | public void testNoAttribtues() throws IOException {
    method testCustomNodeName (line 225) | public void testCustomNodeName() throws IOException {
    method testCustomSecurityOptions (line 243) | public void testCustomSecurityOptions() throws IOException {
    method exitInsteadOfReturn (line 263) | private static String exitInsteadOfReturn(OsFamily family, String inpu...
    method groupToBootScriptFor (line 267) | private GroupToBootScript groupToBootScriptFor(BootstrapConfig config,...
    method readContent (line 274) | private static String readContent(String resource) throws IOException {

FILE: apis/chef/src/test/java/org/jclouds/chef/functions/ParseClientFromJsonTest.java
  class ParseClientFromJsonTest (line 60) | @Test(groups = { "unit" })
    method setUpInjector (line 71) | @BeforeTest
    method testClientWithPubKey (line 91) | public void testClientWithPubKey() throws IOException, CertificateExce...
    method testClientWithoutPubKey (line 101) | public void testClientWithoutPubKey() throws IOException, CertificateE...
    method testEncryptionWithClientPriv (line 111) | @SuppressWarnings("resource")

FILE: apis/chef/src/test/java/org/jclouds/chef/functions/ParseCookbookDefinitionFromJsonTest.java
  class ParseCookbookDefinitionFromJsonTest (line 38) | @Test(groups = { "unit" }, singleThreaded = true)
    method setUpInjector (line 44) | @BeforeTest
    method testCookbokDefinitionParsing (line 56) | public void testCookbokDefinitionParsing() throws URISyntaxException {

FILE: apis/chef/src/test/java/org/jclouds/chef/functions/ParseCookbookDefinitionListFromJsonTest.java
  class ParseCookbookDefinitionListFromJsonTest (line 39) | @Test(groups = {"unit"}, singleThreaded = true)
    method setUpInjector (line 44) | @BeforeTest
    method testCookbokDefinitionListParsing (line 56) | public void testCookbokDefinitionListParsing() throws URISyntaxExcepti...

FILE: apis/chef/src/test/java/org/jclouds/chef/functions/ParseCookbookNamesFromJsonTest.java
  class ParseCookbookNamesFromJsonTest (line 39) | @Test(groups = { "unit" }, singleThreaded = true)
    method setUpInjector (line 44) | @BeforeTest
    method testParse010Response (line 56) | public void testParse010Response() {

FILE: apis/chef/src/test/java/org/jclouds/chef/functions/ParseCookbookVersionFromJsonTest.java
  class ParseCookbookVersionFromJsonTest (line 48) | @Test(groups = { "unit" }, singleThreaded = true)
    method setUpInjector (line 55) | @BeforeTest
    method testBrew (line 69) | public void testBrew() throws IOException {
    method testTomcat (line 77) | public void testTomcat() {
    method testMysql (line 85) | public void testMysql() throws IOException {
    method testApache (line 93) | public void testApache() {

FILE: apis/chef/src/test/java/org/jclouds/chef/functions/ParseCookbookVersionsFromJsonTest.java
  class ParseCookbookVersionsFromJsonTest (line 39) | @Test(groups = { "unit" }, singleThreaded = true)
    method setUpInjector (line 44) | @BeforeTest
    method testRegex (line 56) | public void testRegex() {

FILE: apis/chef/src/test/java/org/jclouds/chef/functions/ParseDataBagItemFromJsonTest.java
  class ParseDataBagItemFromJsonTest (line 40) | @Test(groups = { "unit" })
    method setUpInjector (line 45) | @BeforeTest
    method test1 (line 59) | public void test1() {

FILE: apis/chef/src/test/java/org/jclouds/chef/functions/ParseErrorFromJsonOrReturnBodyTest.java
  class ParseErrorFromJsonOrReturnBodyTest (line 29) | @Test(groups = { "unit" })
    method testApplyInputStreamDetails (line 32) | @Test

FILE: apis/chef/src/test/java/org/jclouds/chef/functions/ParseKeySetFromJsonTest.java
  class ParseKeySetFromJsonTest (line 39) | @Test(groups = { "unit" }, singleThreaded = true)
    method setUpInjector (line 44) | @BeforeTest
    method testRegex (line 56) | public void testRegex() {

FILE: apis/chef/src/test/java/org/jclouds/chef/functions/ParseNodeFromJsonTest.java
  class ParseNodeFromJsonTest (line 43) | @Test(groups = { "unit" }, singleThreaded = true)
    method setUpInjector (line 48) | @BeforeTest
    method test (line 61) | public void test() {

FILE: apis/chef/src/test/java/org/jclouds/chef/functions/ParseSandboxFromJsonTest.java
  class ParseSandboxFromJsonTest (line 43) | @Test(groups = { "unit" }, singleThreaded = true)
    method setUpInjector (line 49) | @BeforeTest
    method test (line 63) | public void test() {

FILE: apis/chef/src/test/java/org/jclouds/chef/functions/ParseSearchDataBagItemFromJsonTest.java
  class ParseSearchDataBagItemFromJsonTest (line 37) | @Test(groups = { "unit" })
    method setUpInjector (line 41) | @BeforeTest
    method test1 (line 53) | public void test1() {

FILE: apis/chef/src/test/java/org/jclouds/chef/functions/ParseUploadSandboxFromJsonTest.java
  class ParseUploadSandboxFromJsonTest (line 46) | @Test(groups = { "unit" }, singleThreaded = true)
    method setUpInjector (line 52) | @BeforeTest
    method test (line 65) | public void test() {

FILE: apis/chef/src/test/java/org/jclouds/chef/functions/UriForResourceTest.java
  class UriForResourceTest (line 31) | @Test(groups = { "unit" })
    method testWithNullInput (line 34) | @Test(expectedExceptions = NullPointerException.class)
    method testWithInvalidInput (line 40) | @Test(expectedExceptions = IllegalArgumentException.class)
    method testWithValidResource (line 46) | @Test

FILE: apis/chef/src/test/java/org/jclouds/chef/handlers/ChefApiErrorRetryHandlerTest.java
  class ChefApiErrorRetryHandlerTest (line 33) | @Test(groups = { "unit" })
    method test401DoesNotRetry (line 35) | @Test
    method test400DoesNotRetry (line 59) | @Test
    method testRetryOn400PutSandbox (line 83) | @Test

FILE: apis/chef/src/test/java/org/jclouds/chef/internal/BaseChefLiveTest.java
  class BaseChefLiveTest (line 35) | @Test(groups = "live")
    method BaseChefLiveTest (line 42) | protected BaseChefLiveTest() {
    method setupProperties (line 49) | @Override
    method initialize (line 56) | @Override
    method create (line 63) | @Override
    method setCredentialFromPemFile (line 69) | protected String setCredentialFromPemFile(Properties overrides, String...

FILE: apis/chef/src/test/java/org/jclouds/chef/internal/BaseChefServiceTest.java
  class BaseChefServiceTest (line 42) | @Test(groups = "unit", testName = "BaseChefServiceTest")
    method setup (line 47) | @BeforeClass
    method testBuildBootstrapConfigurationWithEmptyRunlist (line 56) | public void testBuildBootstrapConfigurationWithEmptyRunlist() {
    method testBuildBootstrapConfigurationWithRunlist (line 62) | public void testBuildBootstrapConfigurationWithRunlist() {
    method testBuildBootstrapConfigurationWithRunlistAndEmptyAttributes (line 69) | public void testBuildBootstrapConfigurationWithRunlistAndEmptyAttribut...
    method testBuildBootstrapConfigurationWithRunlistAndAttributes (line 77) | public void testBuildBootstrapConfigurationWithRunlistAndAttributes() {
    method testBuildBootstrapConfigurationWithRunlistAndAttributesAndEnvironment (line 86) | public void testBuildBootstrapConfigurationWithRunlistAndAttributesAnd...

FILE: apis/chef/src/test/java/org/jclouds/chef/strategy/internal/CleanupStaleNodesAndClientsImplLiveTest.java
  class CleanupStaleNodesAndClientsImplLiveTest (line 30) | @Test(groups = "live", testName = "CleanupStaleNodesAndClientsImplLiveTe...
    method initialize (line 36) | @Override
    method testExecute (line 44) | @Test

FILE: apis/chef/src/test/java/org/jclouds/chef/strategy/internal/CreateNodeAndPopulateAutomaticAttributesImplLiveTest.java
  class CreateNodeAndPopulateAutomaticAttributesImplLiveTest (line 34) | @Test(groups = "live", testName = "CreateNodeAndPopulateAutomaticAttribu...
    method initialize (line 40) | @Override
    method testExecute (line 48) | @Test

FILE: apis/chef/src/test/java/org/jclouds/chef/strategy/internal/CreateNodeAndPopulateAutomaticAttributesImplTest.java
  class CreateNodeAndPopulateAutomaticAttributesImplTest (line 38) | @Test(groups = "unit", testName = "CreateNodeAndPopulateAutomaticAttribu...
    method testWithNoRunlist (line 41) | @Test

FILE: apis/chef/src/test/java/org/jclouds/chef/strategy/internal/DeleteAllApisAndNodesInListImplLiveTest.java
  class DeleteAllApisAndNodesInListImplLiveTest (line 30) | @Test(groups = "live", testName = "DeleteAllApisAndNodesInListImplLiveTe...
    method initialize (line 36) | @Override
    method testExecute (line 44) | @Test

FILE: apis/chef/src/test/java/org/jclouds/chef/strategy/internal/ListCookbookVersionsInEnvironmentImplLiveTest.java
  class ListCookbookVersionsInEnvironmentImplLiveTest (line 50) | @Test(groups = "live", testName = "ListCookbookVersionsInEnvironmentImpl...
    method initialize (line 58) | @Override
    method tearDown (line 74) | @AfterClass(groups = { "integration", "live" })
    method testExecute (line 88) | @Test
    method testExecuteConcurrentlyWithExecutorService (line 93) | @Test
    method testExecuteConcurrentlyWithListeningExecutorService (line 99) | @Test
    method testExecuteWithNumVersions (line 105) | @Test
    method testExecuteConcurrentlyWithNumVersionsAndExecutorService (line 110) | @Test
    method testExecuteConcurrentlyWithNumVersionsAndListeningExecutorService (line 116) | @Test
    method testExecuteWithNumVersionsAll (line 122) | @Test
    method testExecuteConcurrentlyWithNumVersionsAllAndExecutorService (line 127) | @Test
    method testExecuteConcurrentlyWithNumVersionsAllAndListeningExecutorService (line 133) | @Test
    method uploadContent (line 139) | private FilePayload uploadContent(String fileName) throws Exception {
    method createCookbooksWithMultipleVersions (line 172) | private void createCookbooksWithMultipleVersions(String cookbookName) ...

FILE: apis/chef/src/test/java/org/jclouds/chef/strategy/internal/ListNodesImplLiveTest.java
  class ListNodesImplLiveTest (line 36) | @Test(groups = "live", testName = "ListNodesImplLiveTest")
    method initialize (line 45) | @Override
    method tearDown (line 57) | @AfterClass(groups = { "integration", "live" })
    method testExecute (line 69) | @Test
    method testExecuteConcurrentlyWithExecutorService (line 74) | public void testExecuteConcurrentlyWithExecutorService() {
    method testExecuteConcurrentlyWithListeningExecutorService (line 78) | public void testExecuteConcurrentlyWithListeningExecutorService() {

FILE: apis/chef/src/test/java/org/jclouds/chef/strategy/internal/ListNodesInEnvironmentImplLiveTest.java
  class ListNodesInEnvironmentImplLiveTest (line 36) | @Test(groups = "live", testName = "ListNodesInEnvironmentImplLiveTest")
    method initialize (line 45) | @Override
    method tearDown (line 58) | @AfterClass(groups = { "integration", "live" })
    method testExecute (line 70) | @Test
    method testExecuteConcurrentlyWithExecutorService (line 75) | @Test
    method testExecuteConcurrentlyWithListeningExecutorService (line 81) | @Test

FILE: apis/chef/src/test/java/org/jclouds/chef/strategy/internal/UpdateAutomaticAttributesOnNodeImplLiveTest.java
  class UpdateAutomaticAttributesOnNodeImplLiveTest (line 33) | @Test(groups = "live", testName = "UpdateAutomaticAttributesOnNodeImplLi...
    method initialize (line 39) | @Override
    method testExecute (line 47) | @Test

FILE: apis/chef/src/test/java/org/jclouds/chef/strategy/internal/UpdateAutomaticAttributesOnNodeImplTest.java
  class UpdateAutomaticAttributesOnNodeImplTest (line 38) | @Test(groups = { "unit" })
    method test (line 41) | @Test

FILE: apis/chef/src/test/java/org/jclouds/chef/suppliers/ChefVersionSupplierTest.java
  class ChefVersionSupplierTest (line 27) | @Test(groups = "unit", testName = "ChefVersionSupplierTest")
    method testReturnsDefaultVersion (line 30) | public void testReturnsDefaultVersion() {
    method testReturnsMajorVersionIfNotZero (line 36) | public void testReturnsMajorVersionIfNotZero() {
    method testReturnsMinorVersionIfMajorIsZero (line 42) | public void testReturnsMinorVersionIfMajorIsZero() {

FILE: apis/chef/src/test/java/org/jclouds/chef/util/ChefUtilsTest.java
  class ChefUtilsTest (line 32) | @Test(groups = { "unit" }, singleThreaded = true)
    method testToOhaiTime (line 38) | public void testToOhaiTime() {
    method testFromOhaiTime (line 42) | public void testFromOhaiTime() {
    method testFindRoleInRunListThrowsNoSuchElementOnRecipe (line 47) | @Test(expectedExceptions = NoSuchElementException.class)
    method testFindRoleInRunList (line 52) | public void testFindRoleInRunList() {

FILE: apis/chef/src/test/java/org/jclouds/chef/util/RunListBuilderTest.java
  class RunListBuilderTest (line 28) | public class RunListBuilderTest {
    method testRecipeAndRole (line 30) | @Test
    method testRecipe (line 37) | @Test
    method testRecipes (line 44) | @Test
    method testRole (line 51) | @Test
    method testRoles (line 58) | @Test
    method testNoneRecipe (line 65) | @Test

FILE: apis/chef/src/test/java/org/jclouds/ohai/config/JMXTest.java
  class JMXTest (line 46) | @Test(groups = { "unit" })
    method test (line 49) | @Test
    class Ohai (line 74) | static class Ohai {
      method Ohai (line 77) | @Inject

FILE: apis/chef/src/test/java/org/jclouds/ohai/config/OhaiModuleTest.java
  class OhaiModuleTest (line 49) | @Test(groups = { "unit" })
    method test (line 52) | @Test
    method test2modules (line 87) | public void test2modules() throws SocketException {
    class Ohai (line 139) | static class Ohai {
      method Ohai (line 142) | @Inject

FILE: apis/chef/src/test/java/org/jclouds/ohai/functions/ByteArrayToMacAddressTest.java
  class ByteArrayToMacAddressTest (line 27) | @Test(groups = { "unit" }, singleThreaded = true)
    method test (line 30) | public void test() {

FILE: apis/chef/src/test/java/org/jclouds/ohai/functions/NestSlashKeysTest.java
  class NestSlashKeysTest (line 42) | @Test(groups = "unit", testName = "NestSlashKeysTest")
    method setUpInjector (line 48) | @BeforeTest
    method testBase (line 60) | @Test
    method testIllegal (line 67) | @Test(expectedExceptions = IllegalArgumentException.class)
    method testOne (line 73) | @Test
    method testOneDuplicate (line 82) | @Test
    method testMerge (line 91) | @Test
    method testMergeNestedTwice (line 100) | @Test
    method testReplaceList (line 109) | @Test

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/AsyncJobException.java
  class AsyncJobException (line 19) | public class AsyncJobException extends RuntimeException {
    method AsyncJobException (line 21) | public AsyncJobException() {
    method AsyncJobException (line 24) | public AsyncJobException(String s) {
    method AsyncJobException (line 28) | public AsyncJobException(String s, Throwable throwable) {
    method AsyncJobException (line 32) | public AsyncJobException(Throwable throwable) {

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/CloudStackApi.java
  type CloudStackApi (line 54) | public interface CloudStackApi extends Closeable {
    method getZoneApi (line 58) | @Delegate
    method getTemplateApi (line 64) | @Delegate
    method getOfferingApi (line 71) | @Delegate
    method getNetworkApi (line 77) | @Delegate
    method getVirtualMachineApi (line 83) | @Delegate
    method getSecurityGroupApi (line 89) | @Delegate
    method getAsyncJobApi (line 95) | @Delegate
    method getAddressApi (line 101) | @Delegate
    method getNATApi (line 107) | @Delegate
    method getFirewallApi (line 113) | @Delegate
    method getLoadBalancerApi (line 119) | @Delegate
    method getGuestOSApi (line 125) | @Delegate
    method getHypervisorApi (line 131) | @Delegate
    method getConfigurationApi (line 137) | @Delegate
    method getAccountApi (line 143) | @Delegate
    method getSSHKeyPairApi (line 149) | @Delegate
    method getVMGroupApi (line 155) | @Delegate
    method getEventApi (line 161) | @Delegate
    method getLimitApi (line 167) | @Delegate
    method getISOApi (line 173) | @Delegate
    method getVolumeApi (line 179) | @Delegate
    method getSnapshotApi (line 185) | @Delegate
    method getSessionApi (line 191) | @Delegate
    method getProjectApi (line 197) | @Delegate
    method getTagApi (line 203) | @Delegate

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/CloudStackApiMetadata.java
  class CloudStackApiMetadata (line 36) | @AutoService(ApiMetadata.class)
    method toBuilder (line 39) | @Override
    method CloudStackApiMetadata (line 44) | public CloudStackApiMetadata() {
    method CloudStackApiMetadata (line 48) | protected CloudStackApiMetadata(Builder builder) {
    method defaultProperties (line 52) | public static Properties defaultProperties() {
    class Builder (line 60) | public static class Builder extends BaseHttpApiMetadata.Builder<CloudS...
      method Builder (line 62) | @SuppressWarnings("deprecation")
      method build (line 79) | @Override
      method self (line 84) | @Override

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/CloudStackContext.java
  type CloudStackContext (line 24) | @ImplementedBy(CloudStackContextImpl.class)
    method getApi (line 27) | CloudStackApi getApi();
    method getDomainApi (line 29) | CloudStackDomainApi getDomainApi();
    method getGlobalApi (line 31) | CloudStackGlobalApi getGlobalApi();

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/CloudStackDomainApi.java
  type CloudStackDomainApi (line 33) | public interface CloudStackDomainApi extends CloudStackApi {
    method getLimitApi (line 38) | @Delegate
    method getAccountApi (line 45) | @Delegate
    method getUserClient (line 52) | @Delegate
    method getDomainClient (line 58) | @Delegate

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/CloudStackGlobalApi.java
  type CloudStackGlobalApi (line 42) | public interface CloudStackGlobalApi extends CloudStackDomainApi {
    method getAccountApi (line 47) | @Delegate
    method getUserClient (line 54) | @Delegate
    method getAlertClient (line 61) | @Delegate
    method getCapacityClient (line 67) | @Delegate
    method getOfferingApi (line 73) | @Delegate
    method getHostClient (line 80) | @Delegate
    method getStoragePoolClient (line 86) | @Delegate
    method getUsageClient (line 92) | @Delegate
    method getConfigurationApi (line 98) | @Delegate
    method getDomainClient (line 105) | @Delegate
    method getZoneApi (line 112) | @Delegate
    method getPodClient (line 119) | @Delegate
    method getVlanClient (line 125) | @Delegate

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/binders/BindAccountSecurityGroupPairsToIndexedQueryParams.java
  class BindAccountSecurityGroupPairsToIndexedQueryParams (line 36) | @Singleton
    method bindToRequest (line 39) | @SuppressWarnings("unchecked")

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/binders/BindCIDRsToCommaDelimitedQueryParam.java
  class BindCIDRsToCommaDelimitedQueryParam (line 30) | @Singleton
    method bindToRequest (line 33) | @SuppressWarnings("unchecked")

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/binders/BindIdListToCommaDelimitedQueryParam.java
  class BindIdListToCommaDelimitedQueryParam (line 30) | @Singleton
    method bindToRequest (line 33) | @SuppressWarnings("unchecked")

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/binders/BindSnapshotPolicyScheduleToQueryParam.java
  class BindSnapshotPolicyScheduleToQueryParam (line 30) | @Singleton
    method bindToRequest (line 33) | @SuppressWarnings("unchecked")

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/binders/BindTemplateMetadataToQueryParams.java
  class BindTemplateMetadataToQueryParams (line 28) | public class BindTemplateMetadataToQueryParams implements Binder {
    method bindToRequest (line 30) | @SuppressWarnings("unchecked")

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/binders/ResourceLimitToQueryParams.java
  class ResourceLimitToQueryParams (line 34) | public class ResourceLimitToQueryParams implements Binder {
    method bindToRequest (line 36) | @SuppressWarnings("unchecked")

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/CloudStackComputeService.java
  class CloudStackComputeService (line 80) | @Singleton
    method CloudStackComputeService (line 89) | @Inject
    method cleanUpIncidentalResourcesOfDeadNodes (line 123) | @Override
    method cleanOrphanedGroupsInZone (line 131) | protected void cleanOrphanedGroupsInZone(Set<String> groups, String zo...
    method cleanupOrphanedSecurityGroupsInZone (line 136) | private void cleanupOrphanedSecurityGroupsInZone(Set<String> groups, S...
    method cleanupOrphanedKeyPairsInZone (line 154) | private void cleanupOrphanedKeyPairsInZone(Set<String> groups, String ...
    method templateOptions (line 171) | @Override

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/config/CloudStackComputeServiceContextModule.java
  class CloudStackComputeServiceContextModule (line 107) | public class CloudStackComputeServiceContextModule extends
    method configure (line 110) | @Override
    method provideTemplateOptions (line 159) | @Override
    method listOSCategories (line 166) | @Provides
    method listOSTypes (line 185) | @Provides
    method listNetworks (line 210) | @Provides
    method listProjects (line 219) | @Provides
    method getCurrentUser (line 228) | @Provides
    method jobComplete (line 237) | @Provides
    method keyPairMap (line 243) | @Provides
    method securityGroupMap (line 250) | @Provides
    method getIPForwardingRulesByVirtualMachine (line 257) | @Provides
    method getFirewallRulesByVirtualMachine (line 265) | @Provides
    method optionsConverters (line 272) | @Provides

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/extensions/CloudStackImageExtension.java
  class CloudStackImageExtension (line 68) | @Singleton
    method CloudStackImageExtension (line 82) | @Inject
    method buildImageTemplateFromNode (line 98) | @Override
    method createImage (line 107) | @Override
    method deleteImage (line 149) | @Override

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/extensions/CloudStackSecurityGroupExtension.java
  class CloudStackSecurityGroupExtension (line 56) | public class CloudStackSecurityGroupExtension implements SecurityGroupEx...
    method CloudStackSecurityGroupExtension (line 65) | @Inject
    method listSecurityGroups (line 83) | @Override
    method listSecurityGroupsInLocation (line 99) | @Override
    method listSecurityGroupsForNode (line 104) | @Override
    method getSecurityGroupById (line 117) | @Override
    method createSecurityGroup (line 131) | @Override
    method removeSecurityGroup (line 146) | @Override
    method invalidateCache (line 168) | private void invalidateCache(String id) {
    method addIpPermission (line 177) | @Override
    method addIpPermission (line 202) | @Override
    method removeIpPermission (line 218) | @Override
    method removeIpPermission (line 250) | @Override
    method supportsTenantIdGroupNamePairs (line 266) | @Override
    method supportsTenantIdGroupIdPairs (line 271) | @Override
    method supportsGroupIds (line 276) | @Override
    method supportsPortRangesForGroups (line 281) | @Override
    method supportsExclusionCidrBlocks (line 286) | @Override

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/functions/CloudStackSecurityGroupToSecurityGroup.java
  class CloudStackSecurityGroupToSecurityGroup (line 41) | @Singleton
    method CloudStackSecurityGroupToSecurityGroup (line 49) | @Inject
    method apply (line 54) | @Override

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/functions/IngressRuleToIpPermission.java
  class IngressRuleToIpPermission (line 35) | public class IngressRuleToIpPermission implements Function<IngressRule, ...
    method IngressRuleToIpPermission (line 40) | public IngressRuleToIpPermission() {
    method apply (line 43) | @Override

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/functions/OrphanedGroupsByZoneId.java
  class OrphanedGroupsByZoneId (line 42) | public class OrphanedGroupsByZoneId implements Function<Set<? extends No...
    method OrphanedGroupsByZoneId (line 45) | @Inject
    method OrphanedGroupsByZoneId (line 50) | @VisibleForTesting
    method apply (line 55) | public Multimap<String, String> apply(Set<? extends NodeMetadata> dead...

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/functions/ServiceOfferingToHardware.java
  class ServiceOfferingToHardware (line 29) | @Singleton
    method apply (line 32) | @Override

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/functions/TemplateToImage.java
  class TemplateToImage (line 39) | @Singleton
    method TemplateToImage (line 44) | @Inject
    method apply (line 51) | @Override

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/functions/TemplateToOperatingSystem.java
  class TemplateToOperatingSystem (line 43) | @Singleton
    method TemplateToOperatingSystem (line 56) | @Inject
    method apply (line 64) | public OperatingSystem apply(Template from) {

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/functions/VirtualMachineToNodeMetadata.java
  class VirtualMachineToNodeMetadata (line 60) | @Singleton
    method VirtualMachineToNodeMetadata (line 80) | @Inject
    method apply (line 92) | @Override

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/functions/ZoneToLocation.java
  class ZoneToLocation (line 36) | public class ZoneToLocation implements Function<Zone, Location> {
    method ZoneToLocation (line 40) | @Inject
    method apply (line 45) | @Override

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/loaders/CreateUniqueKeyPair.java
  class CreateUniqueKeyPair (line 34) | @Singleton
    method CreateUniqueKeyPair (line 41) | @Inject
    method load (line 46) | @Override

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/loaders/FindSecurityGroupOrCreate.java
  class FindSecurityGroupOrCreate (line 36) | public class FindSecurityGroupOrCreate extends CacheLoader<ZoneAndName, ...
    method FindSecurityGroupOrCreate (line 43) | @Inject
    method load (line 50) | @Override
    method createNewSecurityGroup (line 60) | private SecurityGroup createNewSecurityGroup(ZoneAndName in) {
    method toString (line 69) | @Override

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/options/CloudStackTemplateOptions.java
  class CloudStackTemplateOptions (line 57) | public class CloudStackTemplateOptions extends TemplateOptions implement...
    method securityGroupIds (line 72) | public CloudStackTemplateOptions securityGroupIds(Iterable<String> sec...
    method ipsToNetworks (line 77) | public CloudStackTemplateOptions ipsToNetworks(Map<String, String> ips...
    method ipOnDefaultNetwork (line 82) | public CloudStackTemplateOptions ipOnDefaultNetwork(String ipOnDefault...
    method keyPair (line 87) | public CloudStackTemplateOptions keyPair(String keyPair) {
    method setupStaticNat (line 92) | public CloudStackTemplateOptions setupStaticNat(boolean setupStaticNat) {
    method account (line 97) | public CloudStackTemplateOptions account(String account) {
    method domainId (line 102) | public CloudStackTemplateOptions domainId(String domainId) {
    method generateKeyPair (line 107) | public CloudStackTemplateOptions generateKeyPair(boolean generateKeyPa...
    method generateSecurityGroup (line 112) | public CloudStackTemplateOptions generateSecurityGroup(boolean generat...
    method diskOfferingId (line 117) | public CloudStackTemplateOptions diskOfferingId(String diskOfferingId) {
    method dataDiskSize (line 122) | public CloudStackTemplateOptions dataDiskSize(int dataDiskSize) {
    method userData (line 127) | public CloudStackTemplateOptions userData(byte[] userData) {
    method userData (line 132) | public CloudStackTemplateOptions userData(String userData) {
    method userData (line 137) | public CloudStackTemplateOptions userData(URL userDataUrl) throws IOEx...
    method getSecurityGroupIds (line 142) | public Set<String> getSecurityGroupIds() {
    method getIpsToNetworks (line 146) | public Map<String, String> getIpsToNetworks() {
    method getIpOnDefaultNetwork (line 150) | public String getIpOnDefaultNetwork() {
    method getKeyPair (line 154) | public String getKeyPair() {
    method shouldSetupStaticNat (line 158) | public boolean shouldSetupStaticNat() {
    method getAccount (line 162) | public String getAccount() {
    method getDomainId (line 166) | public String getDomainId() {
    method shouldGenerateKeyPair (line 170) | public boolean shouldGenerateKeyPair() {
    method shouldGenerateSecurityGroup (line 174) | public boolean shouldGenerateSecurityGroup() {
    method getDiskOfferingId (line 178) | public String getDiskOfferingId() {
    method getDataDiskSize (line 182) | public int getDataDiskSize() {
    method getUserData (line 186) | public byte[] getUserData() {
    method clone (line 190) | @Override
    method copyTo (line 197) | @Override
    method equals (line 217) | @Override
    method hashCode (line 237) | @Override
    method toString (line 242) | @Override
    class Builder (line 260) | public static class Builder {
      method securityGroupIds (line 265) | public static CloudStackTemplateOptions securityGroupIds(Iterable<St...
      method ipsToNetworks (line 273) | public static CloudStackTemplateOptions ipsToNetworks(Map<String, St...
      method ipOnDefaultNetwork (line 281) | public static CloudStackTemplateOptions ipOnDefaultNetwork(String ip...
      method keyPair (line 289) | public static CloudStackTemplateOptions keyPair(String keyPair) {
      method setupStaticNat (line 297) | public static CloudStackTemplateOptions setupStaticNat(boolean setup...
      method account (line 305) | public static CloudStackTemplateOptions account(String account) {
      method domainId (line 313) | public static CloudStackTemplateOptions domainId(String domainId) {
      method generateKeyPair (line 321) | public static CloudStackTemplateOptions generateKeyPair(boolean enab...
      method generateSecurityGroup (line 328) | public static CloudStackTemplateOptions generateSecurityGroup(boolea...
      method diskOfferingId (line 335) | public static CloudStackTemplateOptions diskOfferingId(String diskOf...
      method dataDiskSize (line 343) | public static CloudStackTemplateOptions dataDiskSize(int dataDiskSiz...
      method userData (line 351) | public static CloudStackTemplateOptions userData(byte[] userData) {
    method blockOnPort (line 363) | @Override
    method inboundPorts (line 371) | @Override
    method authorizePublicKey (line 379) | @Override
    method installPrivateKey (line 387) | @Override
    method blockUntilRunning (line 395) | @Override
    method dontAuthorizePublicKey (line 403) | @Override
    method nameTask (line 411) | @Override
    method runAsRoot (line 419) | @Override
    method runScript (line 427) | @Override
    method overrideLoginCredentials (line 435) | @Override
    method overrideLoginPassword (line 443) | @Override
    method overrideLoginPrivateKey (line 451) | @Override
    method overrideLoginUser (line 459) | @Override
    method overrideAuthenticateSudo (line 467) | @Override
    method userMetadata (line 475) | @Override
    method userMetadata (line 483) | @Override
    method nodeNames (line 491) | @Override
    method networks (line 499) | @Override

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/predicates/AllNodesInGroupTerminated.java
  class AllNodesInGroupTerminated (line 35) | public class AllNodesInGroupTerminated implements Predicate<ZoneAndName> {
    method AllNodesInGroupTerminated (line 40) | @Inject
    method apply (line 45) | @Override

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/strategy/AdvancedNetworkOptionsConverter.java
  class AdvancedNetworkOptionsConverter (line 36) | public class AdvancedNetworkOptionsConverter implements OptionsConverter {
    method apply (line 37) | @Override

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/strategy/BasicNetworkOptionsConverter.java
  class BasicNetworkOptionsConverter (line 28) | public class BasicNetworkOptionsConverter implements OptionsConverter {
    method apply (line 29) | @Override

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/strategy/CloudStackComputeServiceAdapter.java
  class CloudStackComputeServiceAdapter (line 91) | @Singleton
    method CloudStackComputeServiceAdapter (line 116) | @Inject
    method createNodeWithGroupEncodedIntoName (line 151) | @Override
    method listHardwareProfiles (line 314) | @Override
    method listImages (line 320) | @Override
    method getImage (line 332) | @Override
    method listNodes (line 337) | @Override
    method listNodesByIds (line 342) | @Override
    method listLocations (line 353) | @Override
    method getNode (line 359) | @Override
    method destroyNode (line 365) | @Override
    method disassociateIPAddresses (line 397) | public void disassociateIPAddresses(Set<String> ipAddresses) {
    method destroyVirtualMachine (line 404) | public void destroyVirtualMachine(String virtualMachineId) {
    method disableStaticNATOnIPAddresses (line 416) | public void disableStaticNATOnIPAddresses(Set<String> ipAddresses) {
    method deleteIPForwardingRulesForVMAndReturnDistinctIPs (line 428) | public Set<String> deleteIPForwardingRulesForVMAndReturnDistinctIPs(St...
    method deleteFirewallRulesForVMAndReturnDistinctIPs (line 450) | public Set<String> deleteFirewallRulesForVMAndReturnDistinctIPs(String...
    method awaitCompletion (line 470) | public void awaitCompletion(Iterable<String> jobs) {
    method awaitCompletion (line 477) | public void awaitCompletion(String job) {
    method rebootNode (line 482) | @Override
    method resumeNode (line 492) | @Override
    method suspendNode (line 502) | @Override

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/strategy/OptionsConverter.java
  type OptionsConverter (line 30) | public interface OptionsConverter {
    method apply (line 41) | DeployVirtualMachineOptions apply(CloudStackTemplateOptions templateOp...

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/config/CloudStackHttpApiModule.java
  class CloudStackHttpApiModule (line 62) | @ConfiguresHttpApi
    method configure (line 65) | @Override
    method installLocations (line 83) | @Override
    method bindErrorHandlers (line 89) | @Override
    class CredentialTypeFromPropertyOrDefault (line 96) | @Singleton
      method get (line 106) | @Override
    method authenticationFilterForCredentialType (line 118) | @Provides
    method provideLoginResponseCache (line 133) | @Provides
    method provideLoginResponseSupplier (line 143) | @Provides

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/config/CloudStackParserModule.java
  class CloudStackParserModule (line 39) | public class CloudStackParserModule extends AbstractModule {
    method configure (line 41) | @Override
    class CloudStackDateAdapter (line 54) | public static class CloudStackDateAdapter extends Iso8601DateAdapter {
      method CloudStackDateAdapter (line 56) | @Inject
      method read (line 61) | public Date read(JsonReader reader) throws IOException {
    class CommaDelimitedOKIterableTypeAdapterFactory (line 71) | public static class CommaDelimitedOKIterableTypeAdapterFactory extends...
      method newAdapter (line 73) | @Override
      class Adapter (line 79) | public static final class Adapter<E> extends TypeAdapter<Iterable<E>> {
        method Adapter (line 83) | public Adapter(TypeAdapter<E> elementAdapter) {
        method write (line 88) | public void write(JsonWriter out, Iterable<E> value) throws IOExce...
        method read (line 92) | @SuppressWarnings("unchecked")

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/config/CloudStackProperties.java
  class CloudStackProperties (line 23) | public final class CloudStackProperties {
    method CloudStackProperties (line 49) | private CloudStackProperties() {

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/config/CredentialType.java
  type CredentialType (line 26) | public enum CredentialType {
    method toString (line 32) | @Override
    method fromValue (line 37) | public static CredentialType fromValue(String credentialType) {

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/domain/Account.java
  class Account (line 39) | public class Account extends ForwardingSet<User> {
    type State (line 43) | public static enum State {
      method toString (line 46) | @Override
      method fromValue (line 51) | public static State fromValue(String state) {
    type Type (line 63) | public static enum Type {
      method apply (line 86) | @Override
      method Type (line 93) | Type(int code) {
      method toString (line 97) | @Override
      method fromValue (line 102) | public static Type fromValue(String type) {
    method builder (line 109) | public static Builder<?> builder() {
    method toBuilder (line 113) | public Builder<?> toBuilder() {
    class Builder (line 117) | public abstract static class Builder<T extends Builder<T>> {
      method self (line 118) | protected abstract T self();
      method id (line 152) | public T id(String id) {
      method type (line 160) | public T type(Account.Type type) {
      method networkDomain (line 168) | public T networkDomain(String networkDomain) {
      method domain (line 176) | public T domain(String domain) {
      method domainId (line 184) | public T domainId(String domainId) {
      method IPsAvailable (line 192) | public T IPsAvailable(Long IPsAvailable) {
      method IPLimit (line 200) | public T IPLimit(Long IPLimit) {
      method IPs (line 208) | public T IPs(long IPs) {
      method cleanupRequired (line 216) | public T cleanupRequired(boolean cleanupRequired) {
      method name (line 224) | public T name(String name) {
      method receivedBytes (line 232) | public T receivedBytes(long receivedBytes) {
      method sentBytes (line 240) | public T sentBytes(long sentBytes) {
      method snapshotsAvailable (line 248) | public T snapshotsAvailable(Long snapshotsAvailable) {
      method snapshotLimit (line 256) | public T snapshotLimit(Long snapshotLimit) {
      method snapshots (line 264) | public T snapshots(long snapshots) {
      method state (line 272) | public T state(Account.State state) {
      method templatesAvailable (line 280) | public T templatesAvailable(Long templatesAvailable) {
      method templateLimit (line 288) | public T templateLimit(Long templateLimit) {
      method templates (line 296) | public T templates(long templates) {
      method VMsAvailable (line 304) | public T VMsAvailable(Long VMsAvailable) {
      method VMLimit (line 312) | public T VMLimit(Long VMLimit) {
      method VMsRunning (line 320) | public T VMsRunning(long VMsRunning) {
      method VMsStopped (line 328) | public T VMsStopped(long VMsStopped) {
      method VMs (line 336) | public T VMs(long VMs) {
      method volumesAvailable (line 344) | public T volumesAvailable(Long volumesAvailable) {
      method volumeLimit (line 352) | public T volumeLimit(Long volumeLimit) {
      method volumes (line 360) | public T volumes(long volumes) {
      method users (line 368) | public T users(Set<User> users) {
      method users (line 373) | public T users(User... in) {
      method build (line 377) | public Account build() {
      method fromAccount (line 381) | public T fromAccount(Account in) {
    class ConcreteBuilder (line 414) | private static class ConcreteBuilder extends Builder<ConcreteBuilder> {
      method self (line 415) | @Override
    method Account (line 450) | @ConstructorProperties({
    method toLongNullIfUnlimited (line 471) | private static Long toLongNullIfUnlimited(String in) {
    method Account (line 475) | protected Account(String id, @Nullable Account.Type type, @Nullable St...
    method getId (line 515) | public String getId() {
    method getType (line 522) | @Nullable
    method getNetworkDomain (line 530) | @Nullable
    method getDomain (line 538) | @Nullable
    method getDomainId (line 546) | @Nullable
    method getIPsAvailable (line 555) | @Nullable
    method getIPLimit (line 564) | @Nullable
    method getIPs (line 572) | public long getIPs() {
    method isCleanupRequired (line 579) | public boolean isCleanupRequired() {
    method getName (line 586) | @Nullable
    method getReceivedBytes (line 594) | public long getReceivedBytes() {
    method getSentBytes (line 601) | public long getSentBytes() {
    method getSnapshotsAvailable (line 609) | @Nullable
    method getSnapshotLimit (line 618) | @Nullable
    method getSnapshots (line 626) | public long getSnapshots() {
    method getState (line 633) | @Nullable
    method getTemplatesAvailable (line 642) | @Nullable
    method getTemplateLimit (line 651) | @Nullable
    method getTemplates (line 660) | public long getTemplates() {
    method getVMsAvailable (line 668) | @Nullable
    method getVMLimit (line 677) | @Nullable
    method getVMsRunning (line 685) | public long getVMsRunning() {
    method getVMsStopped (line 692) | public long getVMsStopped() {
    method getVMs (line 699) | public long getVMs() {
    method getVolumesAvailable (line 706) | @Nullable
    method getVolumeLimit (line 715) | @Nullable
    method getVolumes (line 723) | public long getVolumes() {
    method getUsers (line 730) | public Set<User> getUsers() {
    method delegate (line 734) | @Override
    method hashCode (line 739) | @Override
    method equals (line 744) | @Override
    method string (line 779) | protected ToStringHelper string() {
    method toString (line 784) | @Override

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/domain/Alert.java
  class Alert (line 33) | public class Alert {
    method builder (line 35) | public static Builder<?> builder() {
    method toBuilder (line 39) | public Builder<?> toBuilder() {
    class Builder (line 43) | public abstract static class Builder<T extends Builder<T>> {
      method self (line 44) | protected abstract T self();
      method id (line 54) | public T id(String id) {
      method description (line 62) | public T description(String description) {
      method sent (line 70) | public T sent(Date sent) {
      method type (line 78) | public T type(String type) {
      method build (line 83) | public Alert build() {
      method fromAlert (line 87) | public T fromAlert(Alert in) {
    class ConcreteBuilder (line 96) | private static class ConcreteBuilder extends Builder<ConcreteBuilder> {
      method self (line 97) | @Override
    method Alert (line 108) | @ConstructorProperties({
    method getId (line 118) | public String getId() {
    method getDescription (line 122) | @Nullable
    method getSent (line 127) | @Nullable
    method getType (line 132) | @Nullable
    method hashCode (line 137) | @Override
    method equals (line 142) | @Override
    method string (line 153) | protected ToStringHelper string() {
    method toString (line 158) | @Override

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/domain/AllocationState.java
  type AllocationState (line 25) | public enum AllocationState {
    method fromValue (line 30) | public static AllocationState fromValue(String value) {
    method toString (line 38) | @Override

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/domain/ApiKeyPair.java
  class ApiKeyPair (line 30) | public class ApiKeyPair {
    method builder (line 32) | public static Builder<?> builder() {
    method toBuilder (line 36) | public Builder<?> toBuilder() {
    class Builder (line 40) | public abstract static class Builder<T extends Builder<T>> {
      method self (line 41) | protected abstract T self();
      method apiKey (line 49) | public T apiKey(String apiKey) {
      method secretKey (line 57) | public T secretKey(String secretKey) {
      method build (line 62) | public ApiKeyPair build() {
      method fromApiKeyPair (line 66) | public T fromApiKeyPair(ApiKeyPair in) {
    class ConcreteBuilder (line 73) | private static class ConcreteBuilder extends Builder<ConcreteBuilder> {
      method self (line 74) | @Override
    method ApiKeyPair (line 83) | @ConstructorProperties({
    method getApiKey (line 91) | @Nullable
    method getSecretKey (line 96) | @Nullable
    method hashCode (line 101) | @Override
    method equals (line 106) | @Override
    method string (line 115) | protected ToStringHelper string() {
    method toString (line 120) | @Override

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/domain/AsyncCreateResponse.java
  class AsyncCreateResponse (line 30) | public class AsyncCreateResponse {
    method builder (line 33) | public static Builder<?> builder() {
    method toBuilder (line 37) | public Builder<?> toBuilder() {
    class Builder (line 41) | public abstract static class Builder<T extends Builder<T>> {
      method self (line 42) | protected abstract T self();
      method id (line 50) | public T id(String id) {
      method jobId (line 58) | public T jobId(String jobId) {
      method build (line 63) | public AsyncCreateResponse build() {
      method fromAsyncCreateResponse (line 67) | public T fromAsyncCreateResponse(AsyncCreateResponse in) {
    class ConcreteBuilder (line 74) | private static class ConcreteBuilder extends Builder<ConcreteBuilder> {
      method self (line 75) | @Override
    method AsyncCreateResponse (line 84) | @ConstructorProperties({
    method getId (line 95) | @Nullable
    method getJobId (line 103) | @Nullable
    method hashCode (line 108) | @Override
    method equals (line 113) | @Override
    method string (line 122) | protected ToStringHelper string() {
    method toString (line 127) | @Override

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/domain/AsyncJob.java
  class AsyncJob (line 33) | public class AsyncJob<S> {
    type ResultCode (line 38) | public static enum ResultCode {
      method ResultCode (line 45) | private ResultCode(int code) {
      method code (line 49) | public int code() {
      method fromValue (line 53) | public static ResultCode fromValue(String value) {
    type Status (line 73) | public static enum Status {
      method Status (line 81) | private Status(int code) {
      method code (line 85) | public int code() {
      method fromValue (line 89) | public static Status fromValue(String value) {
    method builder (line 108) | public static <T> Builder<?, T> builder() {
    method toBuilder (line 112) | public Builder toBuilder() {
    class Builder (line 116) | public abstract static class Builder<T extends Builder<T, S>, S> {
      method self (line 117) | protected abstract T self();
      method accountId (line 136) | public T accountId(String accountId) {
      method cmd (line 144) | public T cmd(String cmd) {
      method created (line 152) | public T created(Date created) {
      method id (line 160) | public T id(String id) {
      method instanceId (line 168) | public T instanceId(String instanceId) {
      method instanceType (line 176) | public T instanceType(String instanceType) {
      method progress (line 184) | public T progress(int progress) {
      method result (line 192) | public T result(S result) {
      method resultCode (line 200) | public T resultCode(AsyncJob.ResultCode resultCode) {
      method resultType (line 208) | public T resultType(String resultType) {
      method status (line 216) | public T status(AsyncJob.Status status) {
      method userId (line 224) | public T userId(String userId) {
      method error (line 232) | public T error(AsyncJobError error) {
      method build (line 237) | public AsyncJob build() {
      method fromAsyncJob (line 242) | public T fromAsyncJob(AsyncJob<S> in) {
      method fromAsyncJobUntyped (line 259) | public static Builder<?, Object> fromAsyncJobUntyped(AsyncJob<?> in) {
    class ConcreteBuilder (line 264) | private static class ConcreteBuilder<T> extends Builder<ConcreteBuilde...
      method self (line 265) | @Override
    method AsyncJob (line 285) | @ConstructorProperties({
    method getAccountId (line 311) | @Nullable
    method getCmd (line 319) | @Nullable
    method getCreated (line 327) | @Nullable
    method getId (line 335) | public String getId() {
    method getInstanceId (line 342) | @Nullable
    method getInstanceType (line 350) | @Nullable
    method getProgress (line 358) | public int getProgress() {
    method getResult (line 365) | @Nullable
    method getResultCode (line 373) | @Nullable
    method getResultType (line 381) | @Nullable
    method getStatus (line 389) | @Nullable
    method getUserId (line 397) | @Nullable
    method getError (line 406) | @Nullable
    method hasFailed (line 411) | public boolean hasFailed() {
    method hasSucceed (line 415) | public boolean hasSucceed() {
    method hashCode (line 419) | @Override
    method equals (line 424) | @Override
    method string (line 444) | protected ToStringHelper string() {
    method toString (line 451) | @Override

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/domain/AsyncJobError.java
  class AsyncJobError (line 27) | public class AsyncJobError {
    type ErrorCode (line 32) | public static enum ErrorCode {
      method ErrorCode (line 45) | private ErrorCode(int code) {
      method code (line 49) | public int code() {
      method fromValue (line 53) | public static ErrorCode fromValue(String value) {
    method builder (line 69) | public static Builder<?> builder() {
    method toBuilder (line 73) | public Builder<?> toBuilder() {
    class Builder (line 77) | public abstract static class Builder<T extends Builder<T>> {
      method self (line 78) | protected abstract T self();
      method errorCode (line 86) | public T errorCode(ErrorCode errorCode) {
      method errorText (line 94) | public T errorText(String errorText) {
      method build (line 99) | public AsyncJobError build() {
      method fromAsyncJobError (line 103) | public T fromAsyncJobError(AsyncJobError in) {
    class ConcreteBuilder (line 110) | private static class ConcreteBuilder extends Builder<ConcreteBuilder> {
      method self (line 111) | @Override
    method AsyncJobError (line 120) | @ConstructorProperties({
    method getErrorCode (line 128) | @Nullable
    method getErrorText (line 133) | @Nullable
    method hashCode (line 138) | @Override
    method equals (line 143) | @Override
    method string (line 152) | protected ToStringHelper string() {
    method toString (line 157) | @Override

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/domain/Capabilities.java
  class Capabilities (line 30) | public class Capabilities {
    method builder (line 32) | public static Builder<?> builder() {
    method toBuilder (line 36) | public Builder<?> toBuilder() {
    class Builder (line 40) | public abstract static class Builder<T extends Builder<T>> {
      method self (line 41) | protected abstract T self();
      method cloudStackVersion (line 52) | public T cloudStackVersion(String cloudStackVersion) {
      method securityGroupsEnabled (line 60) | public T securityGroupsEnabled(boolean securityGroupsEnabled) {
      method canShareTemplates (line 68) | public T canShareTemplates(boolean canShareTemplates) {
      method firewallRuleUiEnabled (line 76) | public T firewallRuleUiEnabled(boolean firewallRuleUiEnabled) {
      method supportELB (line 84) | public T supportELB(boolean supportELB) {
      method build (line 89) | public Capabilities build() {
      method fromCapabilities (line 93) | public T fromCapabilities(Capabilities in) {
    class ConcreteBuilder (line 103) | private static class ConcreteBuilder extends Builder<ConcreteBuilder> {
      method self (line 104) | @Override
    method Capabilities (line 116) | @ConstructorProperties({
    method getCloudStackVersion (line 131) | @Nullable
    method isSecurityGroupsEnabled (line 139) | public boolean isSecurityGroupsEnabled() {
    method canShareTemplates (line 143) | public boolean canShareTemplates() {
    method isFirewallRuleUiEnabled (line 150) | public boolean isFirewallRuleUiEnabled() {
    method isSupportELB (line 157) | public boolean isSupportELB() {
    method hashCode (line 161) | @Override
    method equals (line 166) | @Override
    method string (line 178) | protected ToStringHelper string() {
    method toString (line 183) | @Override

FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/domain/Capacity.java
  class Capacity (line 36) | public class Capacity implements Comparable<Capacity> {
    type Type (line 40) | public static enum Type {
      method apply (line 58) | @Override
      method Type (line 65) | Type(int code) {
      method toString (line 69) | @Override
      method fromValue (line 74) | public static Type fromValue(String type) {
    method builder (line 80) | public static Builder<?> builder() {
    method toBuilder (line 84) | public Builder<?> toBuilder() {
    class Builder (line 88) | public abstract static class Builder<T extends Builder<T>> {
      method self (line 89) | protected abstract T self();
      method capacityTotal (line 103) | public T capacityTotal(long capacityTotal) {
      method capacityUsed (line 111) | public T capacityUsed(long capacityUsed) {
      method percentUsed (line 119) | public T percentUsed(double percentUsed) {
      method podId (line 127) | public T podId(String podId) {
      method podName (line 135) | public T podName(String podName) {
      method type (line 143) | public T type(Capacity.Type type) {
      method zoneId (line 151) | public T zoneId(String zoneId) {
      method zoneName (line 159) | public T zoneName(String zoneName) {
      method build (line 164) | public Capacity build() {
      method f
Copy disabled (too large) Download .json
Condensed preview — 7733 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (30,474K chars).
[
  {
    "path": ".asf.yaml",
    "chars": 1342,
    "preview": "# Licensed to the Apache Software Foundation (ASF) under one or more\n# contributor license agreements.  See the NOTICE f"
  },
  {
    "path": ".dir-locals.el",
    "chars": 852,
    "preview": ";;   Licensed to the Apache Software Foundation (ASF) under one or more\n;;   contributor license agreements.  See the NO"
  },
  {
    "path": ".gitattributes",
    "chars": 27,
    "preview": "* text eol=lf\n*.cmd binary\n"
  },
  {
    "path": ".github/workflows/ci.yaml",
    "chars": 1235,
    "preview": "# Licensed to the Apache Software Foundation (ASF) under one or more\n# contributor license agreements.  See the NOTICE f"
  },
  {
    "path": ".gitignore",
    "chars": 340,
    "preview": "# use glob syntax.\nsyntax: glob\ntarget/\ntest-output/\nbin/\n.settings/\n.classpath\n.project\n.idea/\n*.iml\n*.eml\n*.ipr\n*.iws\n"
  },
  {
    "path": ".mailmap",
    "chars": 1477,
    "preview": "Adrian Cole <acole@.eng.vmware.com>\nAdrian Cole <acole@twitter.com>\nAdrian Cole <adrian.f.cole@3d8758e0-26b5-11de-8745-d"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 381,
    "preview": "Please review the [How to Contribute](https://cwiki.apache.org/confluence/display/JCLOUDS/Contribute) page for informati"
  },
  {
    "path": "README.md",
    "chars": 495,
    "preview": "jclouds\n======\n\nApache jclouds is an open source multi-cloud toolkit for the Java platform that gives you the freedom to"
  },
  {
    "path": "all/pom.xml",
    "chars": 4807,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n\n    Licensed to the Apache Software Foundation (ASF) under one or more\n    "
  },
  {
    "path": "allblobstore/pom.xml",
    "chars": 3154,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n\n    Licensed to the Apache Software Foundation (ASF) under one or more\n    "
  },
  {
    "path": "allcompute/pom.xml",
    "chars": 5644,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n\n    Licensed to the Apache Software Foundation (ASF) under one or more\n    "
  },
  {
    "path": "allloadbalancer/pom.xml",
    "chars": 1818,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n\n    Licensed to the Apache Software Foundation (ASF) under one or more\n    "
  },
  {
    "path": "apis/atmos/README.txt",
    "chars": 161,
    "preview": "#\n# The jclouds API for EMC's Atmos Online Storage (http://www.emccis.com/).\n#\n# TODO: Implementation status.\n# TODO: Su"
  },
  {
    "path": "apis/atmos/bnd.bnd",
    "chars": 87,
    "preview": "Export-Package: \\\n    org.jclouds.atmos.*;version=\"${project.version}\";-noimport:=true\n"
  },
  {
    "path": "apis/atmos/pom.xml",
    "chars": 4368,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n\n    Licensed to the Apache Software Foundation (ASF) under one or more\n    "
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/AtmosApiMetadata.java",
    "chars": 3272,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/AtmosClient.java",
    "chars": 7061,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/AtmosResponseException.java",
    "chars": 2529,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/binders/BindMetadataToHeaders.java",
    "chars": 2398,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/binders/BindUserMetadataToHeaders.java",
    "chars": 2792,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/blobstore/AtmosBlobRequestSigner.java",
    "chars": 6022,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/blobstore/AtmosBlobStore.java",
    "chars": 14276,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/blobstore/config/AtmosBlobStoreContextModule.java",
    "chars": 2275,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/BlobMetadataToObject.java",
    "chars": 2104,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/BlobStoreListOptionsToListOptions.java",
    "chars": 1837,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/BlobToContentMetadata.java",
    "chars": 1705,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/BlobToObject.java",
    "chars": 1665,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/BlobToSystemMetadata.java",
    "chars": 1551,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/DirectoryEntryListToResourceMetadataList.java",
    "chars": 3432,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/ObjectToBlob.java",
    "chars": 1927,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/ObjectToBlobMetadata.java",
    "chars": 3770,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/config/AtmosHttpApiModule.java",
    "chars": 3640,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/config/AtmosObjectModule.java",
    "chars": 1678,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/config/AtmosParserModule.java",
    "chars": 1167,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/domain/AtmosError.java",
    "chars": 1801,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/domain/AtmosObject.java",
    "chars": 1856,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/domain/BoundedSet.java",
    "chars": 1141,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/domain/DirectoryEntry.java",
    "chars": 2984,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/domain/FileType.java",
    "chars": 1160,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/domain/MutableContentMetadata.java",
    "chars": 1305,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/domain/SystemMetadata.java",
    "chars": 4874,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/domain/UploadInfo.java",
    "chars": 1156,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/domain/UserMetadata.java",
    "chars": 3935,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/domain/internal/AtmosObjectImpl.java",
    "chars": 5515,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/domain/internal/BoundedLinkedHashSet.java",
    "chars": 2243,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/domain/internal/DelegatingMutableContentMetadata.java",
    "chars": 5249,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/fallbacks/EndpointIfAlreadyExists.java",
    "chars": 1920,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/fallbacks/TrueOn404FalseOnPathNotEmpty.java",
    "chars": 1637,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/filters/ShareUrl.java",
    "chars": 3963,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/filters/SignRequest.java",
    "chars": 7682,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/functions/AtmosObjectName.java",
    "chars": 1610,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/functions/ParseDirectoryListFromContentAndHeaders.java",
    "chars": 2485,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/functions/ParseObjectFromHeadersAndHttpContent.java",
    "chars": 3653,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/functions/ParseSystemMetadataFromHeaders.java",
    "chars": 3259,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/functions/ParseUserMetadataFromHeaders.java",
    "chars": 2882,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/functions/ReturnTrueIfGroupACLIsOtherRead.java",
    "chars": 1295,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/handlers/AtmosClientErrorRetryHandler.java",
    "chars": 3420,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/handlers/AtmosServerErrorRetryHandler.java",
    "chars": 3244,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/handlers/ParseAtmosErrorFromXmlContent.java",
    "chars": 4887,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/options/ListOptions.java",
    "chars": 3405,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/options/PutOptions.java",
    "chars": 2745,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/reference/AtmosErrorCode.java",
    "chars": 1653,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/reference/AtmosHeaders.java",
    "chars": 1736,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/util/AtmosUtils.java",
    "chars": 4592,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/xml/ErrorHandler.java",
    "chars": 1692,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/main/java/org/jclouds/atmos/xml/ListDirectoryResponseHandler.java",
    "chars": 3156,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/test/java/org/jclouds/atmos/AtmosApiMetadataTest.java",
    "chars": 1146,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/test/java/org/jclouds/atmos/AtmosClientLiveTest.java",
    "chars": 16255,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/test/java/org/jclouds/atmos/AtmosClientTest.java",
    "chars": 16671,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/test/java/org/jclouds/atmos/binders/BindMetadataToHeadersTest.java",
    "chars": 3381,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/test/java/org/jclouds/atmos/binders/BindUserMetadataToHeadersTest.java",
    "chars": 3640,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/test/java/org/jclouds/atmos/blobstore/AtmosBlobRequestSignerTest.java",
    "chars": 5163,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/test/java/org/jclouds/atmos/blobstore/functions/ListOptionsToBlobStoreListOptions.java",
    "chars": 1701,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/test/java/org/jclouds/atmos/blobstore/functions/ResourceMetadataListToDirectoryEntryList.java",
    "chars": 2195,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosBlobSignerLiveTest.java",
    "chars": 1755,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosContainerIntegrationLiveTest.java",
    "chars": 2097,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosContainerLiveTest.java",
    "chars": 1127,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosIntegrationLiveTest.java",
    "chars": 8076,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosLiveTest.java",
    "chars": 1099,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosServiceIntegrationLiveTest.java",
    "chars": 1151,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/test/java/org/jclouds/atmos/fallbacks/EndpointIfAlreadyExistsTest.java",
    "chars": 1934,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/test/java/org/jclouds/atmos/filters/SignRequestTest.java",
    "chars": 5800,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/test/java/org/jclouds/atmos/functions/AtmosObjectNameTest.java",
    "chars": 2273,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/test/java/org/jclouds/atmos/functions/ParseDirectoryListFromContentAndHeadersTest.java",
    "chars": 3548,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/test/java/org/jclouds/atmos/functions/ParseObjectFromHeadersAndHttpContentTest.java",
    "chars": 3027,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/test/java/org/jclouds/atmos/functions/ParseSystemMetadataFromHeadersTest.java",
    "chars": 2269,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/test/java/org/jclouds/atmos/functions/ParseUserMetadataFromHeadersTest.java",
    "chars": 1808,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/test/java/org/jclouds/atmos/handlers/AtmosServerErrorRetryHandlerTest.java",
    "chars": 3565,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/test/java/org/jclouds/atmos/options/ListOptionsTest.java",
    "chars": 2475,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/test/java/org/jclouds/atmos/xml/ErrorHandlerTest.java",
    "chars": 1854,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/test/java/org/jclouds/atmos/xml/ListDirectoryResponseHandlerTest.java",
    "chars": 2352,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/atmos/src/test/resources/error.xml",
    "chars": 133,
    "preview": "<?xml version='1.0' encoding='UTF-8'?> \n<Error> \n<Code>1003</Code> \n<Message>The requested object was not found.</Messag"
  },
  {
    "path": "apis/atmos/src/test/resources/hashstring.txt",
    "chars": 298,
    "preview": "POST\napplication/octet-stream\n\nThu, 05 Jun 2008 16:38:19 GMT\n/rest/objects\nx-emc-date:Thu, 05 Jun 2008 16:38:19 GMT\nx-em"
  },
  {
    "path": "apis/atmos/src/test/resources/list_basic.xml",
    "chars": 543,
    "preview": "<?xml version='1.0' encoding='UTF-8'?>\n<ListDirectoryResponse xmlns='http://www.emc.com/cos/'>\n\t<DirectoryList>\n\t<Direct"
  },
  {
    "path": "apis/atmos/src/test/resources/list_meta.xml",
    "chars": 2218,
    "preview": "<?xml version='1.0' encoding='UTF-8'?>\n<ListObjectsResponse xmlns='http://www.emc.com/cos/'>\n    <Object>\n        <Objec"
  },
  {
    "path": "apis/atmos/src/test/resources/log4j.xml",
    "chars": 4140,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE log4j:configuration SYSTEM \"log4j.dtd\">\n\n    <!--\n        For more conf"
  },
  {
    "path": "apis/byon/README.txt",
    "chars": 4079,
    "preview": "= Bring Your Own Nodes to the jclouds ComputeService =\nThe bring your own node provider (byon) allows you to specify a s"
  },
  {
    "path": "apis/byon/bnd.bnd",
    "chars": 86,
    "preview": "Export-Package: \\\n    org.jclouds.byon.*;version=\"${project.version}\";-noimport:=true\n"
  },
  {
    "path": "apis/byon/pom.xml",
    "chars": 3821,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n\n    Licensed to the Apache Software Foundation (ASF) under one or more\n    "
  },
  {
    "path": "apis/byon/src/main/java/org/jclouds/byon/BYONApiMetadata.java",
    "chars": 2785,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/byon/src/main/java/org/jclouds/byon/Node.java",
    "chars": 9127,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/byon/src/main/java/org/jclouds/byon/config/BYONComputeServiceContextModule.java",
    "chars": 2222,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/byon/src/main/java/org/jclouds/byon/config/CacheNodeStoreModule.java",
    "chars": 2152,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/byon/src/main/java/org/jclouds/byon/config/ConfiguresNodeStore.java",
    "chars": 1234,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/byon/src/main/java/org/jclouds/byon/config/YamlNodeStoreModule.java",
    "chars": 3949,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/byon/src/main/java/org/jclouds/byon/domain/YamlNode.java",
    "chars": 8008,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/byon/src/main/java/org/jclouds/byon/functions/NodeToNodeMetadata.java",
    "chars": 5235,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/byon/src/main/java/org/jclouds/byon/functions/NodesFromYamlStream.java",
    "chars": 4041,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/byon/src/main/java/org/jclouds/byon/internal/BYONComputeServiceAdapter.java",
    "chars": 5128,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/byon/src/main/java/org/jclouds/byon/suppliers/NodesParsedFromSupplier.java",
    "chars": 2100,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/byon/src/main/java/org/jclouds/byon/suppliers/SupplyFromProviderURIOrNodesProperty.java",
    "chars": 2690,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/byon/src/test/java/org/jclouds/byon/BYONApiMetadataTest.java",
    "chars": 1149,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/byon/src/test/java/org/jclouds/byon/BYONComputeServiceLiveTest.java",
    "chars": 3985,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/byon/src/test/java/org/jclouds/byon/BYONComputeServiceTest.java",
    "chars": 6565,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/byon/src/test/java/org/jclouds/byon/config/CacheNodeStoreModuleTest.java",
    "chars": 6632,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/byon/src/test/java/org/jclouds/byon/config/YamlNodeStoreModuleTest.java",
    "chars": 7422,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/byon/src/test/java/org/jclouds/byon/functions/NodeToNodeMetadataTest.java",
    "chars": 5053,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/byon/src/test/java/org/jclouds/byon/functions/NodesFromYamlTest.java",
    "chars": 3693,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/byon/src/test/java/org/jclouds/byon/suppliers/NodesParsedFromSupplierTest.java",
    "chars": 1305,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/byon/src/test/java/org/jclouds/byon/suppliers/SupplyFromProviderURIOrNodesPropertyTest.java",
    "chars": 2819,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/byon/src/test/resources/log4j.xml",
    "chars": 3983,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE log4j:configuration SYSTEM \"log4j.dtd\">\n\n    <!--\n        For more conf"
  },
  {
    "path": "apis/byon/src/test/resources/test1.yaml",
    "chars": 1515,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE"
  },
  {
    "path": "apis/byon/src/test/resources/test_location.yaml",
    "chars": 2342,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE"
  },
  {
    "path": "apis/byon/src/test/resources/test_with_url.yaml",
    "chars": 1217,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE"
  },
  {
    "path": "apis/byon/src/test/resources/testkey.txt",
    "chars": 244,
    "preview": "-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAuzaE6azgUxwESX1rCGdJ5xpdrc1XC311bOGZBCE8NA+CpFh2\nu01Vfv68NC4u6LFgdXSY1vQ"
  },
  {
    "path": "apis/chef/bnd.bnd",
    "chars": 156,
    "preview": "Export-Package: \\\n    org.jclouds.chef.*;version=\"${project.version}\";-noimport:=true, \\\n    org.jclouds.ohai.*;version="
  },
  {
    "path": "apis/chef/pom.xml",
    "chars": 4527,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n\n    Licensed to the Apache Software Foundation (ASF) under one or more\n    "
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/ChefApi.java",
    "chars": 29530,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/ChefApiMetadata.java",
    "chars": 4703,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/ChefService.java",
    "chars": 9387,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/binders/BindChecksumsToJsonPayload.java",
    "chars": 2123,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/binders/BindCreateClientOptionsToJsonPayload.java",
    "chars": 2734,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/binders/BindGenerateKeyForClientToJsonPayload.java",
    "chars": 1410,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/binders/BindGroupToUpdateRequestJsonPayload.java",
    "chars": 2681,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/binders/DatabagItemId.java",
    "chars": 1123,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/binders/EnvironmentName.java",
    "chars": 1140,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/binders/GroupName.java",
    "chars": 1252,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/binders/NodeName.java",
    "chars": 1106,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/binders/RoleName.java",
    "chars": 1106,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/config/ChefBootstrapModule.java",
    "chars": 4414,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/config/ChefHttpApiModule.java",
    "chars": 7589,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/config/ChefParserModule.java",
    "chars": 9456,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/config/ChefProperties.java",
    "chars": 4059,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/config/InstallChef.java",
    "chars": 1332,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/config/Validator.java",
    "chars": 1487,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/domain/Attribute.java",
    "chars": 7555,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/domain/BootstrapConfig.java",
    "chars": 6084,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/domain/ChecksumStatus.java",
    "chars": 2875,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/domain/Client.java",
    "chars": 6349,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/domain/CookbookDefinition.java",
    "chars": 6160,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/domain/CookbookVersion.java",
    "chars": 12989,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/domain/DatabagItem.java",
    "chars": 1839,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/domain/Environment.java",
    "chars": 6447,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/domain/Group.java",
    "chars": 6178,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/domain/Grouping.java",
    "chars": 2935,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/domain/Metadata.java",
    "chars": 16619,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/domain/Node.java",
    "chars": 9740,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/domain/Resource.java",
    "chars": 4902,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/domain/Role.java",
    "chars": 9631,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/domain/Sandbox.java",
    "chars": 5831,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/domain/SearchResult.java",
    "chars": 1379,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/domain/UploadSandbox.java",
    "chars": 4195,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/domain/User.java",
    "chars": 6518,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/features/OrganizationApi.java",
    "chars": 4005,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/filters/SignedHeaderAuth.java",
    "chars": 8090,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/functions/BootstrapConfigForGroup.java",
    "chars": 2110,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/functions/ClientForGroup.java",
    "chars": 2280,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/functions/GroupToBootScript.java",
    "chars": 6614,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/functions/ParseCookbookDefinitionFromJson.java",
    "chars": 1952,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/functions/ParseCookbookDefinitionListFromJson.java",
    "chars": 2416,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/functions/ParseCookbookNamesFromJson.java",
    "chars": 1698,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/functions/ParseCookbookVersionsFromJson.java",
    "chars": 2169,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/functions/ParseErrorFromJsonOrReturnBody.java",
    "chars": 1837,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/functions/ParseKeySetFromJson.java",
    "chars": 1443,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/functions/ParseSearchClientsFromJson.java",
    "chars": 1233,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/functions/ParseSearchDatabagFromJson.java",
    "chars": 2491,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/functions/ParseSearchEnvironmentsFromJson.java",
    "chars": 1258,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/functions/ParseSearchNodesFromJson.java",
    "chars": 1223,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/functions/ParseSearchResultFromJson.java",
    "chars": 1622,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/functions/ParseSearchRolesFromJson.java",
    "chars": 1223,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/functions/UriForResource.java",
    "chars": 1488,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/handlers/ChefApiErrorRetryHandler.java",
    "chars": 2505,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/handlers/ChefErrorHandler.java",
    "chars": 2675,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/internal/BaseChefService.java",
    "chars": 10656,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/options/CreateClientOptions.java",
    "chars": 1792,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/options/SearchOptions.java",
    "chars": 2695,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/predicates/CookbookVersionPredicates.java",
    "chars": 3581,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/strategy/CleanupStaleNodesAndClients.java",
    "chars": 1192,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/strategy/CreateNodeAndPopulateAutomaticAttributes.java",
    "chars": 1284,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/strategy/DeleteAllClientsInList.java",
    "chars": 1278,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/strategy/DeleteAllNodesInList.java",
    "chars": 1224,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/strategy/ListClients.java",
    "chars": 1203,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/strategy/ListCookbookVersions.java",
    "chars": 1257,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/strategy/ListCookbookVersionsInEnvironment.java",
    "chars": 1555,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/strategy/ListEnvironments.java",
    "chars": 1232,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/strategy/ListNodes.java",
    "chars": 1191,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/strategy/ListNodesInEnvironment.java",
    "chars": 1276,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/strategy/UpdateAutomaticAttributesOnNode.java",
    "chars": 1164,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/strategy/internal/BaseListCookbookVersionsImpl.java",
    "chars": 4085,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "apis/chef/src/main/java/org/jclouds/chef/strategy/internal/BaseListNodesImpl.java",
    "chars": 2829,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  }
]

// ... and 7533 more files (download for full content)

About this extraction

This page contains the full source code of the apache/jclouds GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 7733 files (27.2 MB), approximately 7.6M tokens, and a symbol index with 52330 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!