summaryrefslogtreecommitdiffstats
path: root/keystone-client/src/main/java/com/woorea/openstack/keystone/api/TokensResource.java
diff options
context:
space:
mode:
Diffstat (limited to 'keystone-client/src/main/java/com/woorea/openstack/keystone/api/TokensResource.java')
-rw-r--r--keystone-client/src/main/java/com/woorea/openstack/keystone/api/TokensResource.java83
1 files changed, 83 insertions, 0 deletions
diff --git a/keystone-client/src/main/java/com/woorea/openstack/keystone/api/TokensResource.java b/keystone-client/src/main/java/com/woorea/openstack/keystone/api/TokensResource.java
new file mode 100644
index 0000000..4f30313
--- /dev/null
+++ b/keystone-client/src/main/java/com/woorea/openstack/keystone/api/TokensResource.java
@@ -0,0 +1,83 @@
+package com.woorea.openstack.keystone.api;
+
+/*
+ * Modifications copyright (c) 2017 AT&T Intellectual Property
+ */
+
+import com.woorea.openstack.base.client.Entity;
+import com.woorea.openstack.base.client.HttpMethod;
+import com.woorea.openstack.base.client.OpenStackClient;
+import com.woorea.openstack.base.client.OpenStackRequest;
+import com.woorea.openstack.keystone.model.Access;
+import com.woorea.openstack.keystone.model.Authentication;
+import com.woorea.openstack.keystone.model.authentication.AccessKey;
+import com.woorea.openstack.keystone.model.authentication.RackspaceAuthentication;
+import com.woorea.openstack.keystone.model.authentication.TokenAuthentication;
+import com.woorea.openstack.keystone.model.authentication.UsernamePassword;
+
+public class TokensResource {
+
+ private final OpenStackClient CLIENT;
+
+ public TokensResource(OpenStackClient client) {
+ CLIENT = client;
+ }
+
+ public Authenticate.Builder authenticate() {
+ return new Authenticate().new Builder();
+ }
+
+ public Authenticate authenticate(Authentication authentication) {
+ return new Authenticate(authentication);
+ }
+
+ public class Authenticate extends OpenStackRequest<Access> {
+
+ private Authentication authentication;
+
+ public Authenticate() {
+
+ }
+
+ public Authenticate(Authentication authentication) {
+ super(CLIENT, HttpMethod.POST, "/tokens", Entity.json(authentication), Access.class);
+ this.authentication = authentication;
+ }
+
+ public Authenticate withTenantId(String tenantId) {
+ authentication.setTenantId(tenantId);
+ return this;
+ }
+
+ public Authenticate withTenantName(String tenantName) {
+ authentication.setTenantName(tenantName);
+ return this;
+ }
+
+ public class Builder {
+
+ public Authenticate withUsernamePassword(String username, String password) {
+ Authentication authentication = new UsernamePassword(username, password);
+ return new Authenticate(authentication);
+ }
+
+ public Authenticate withToken(String token) {
+ Authentication authentication = new TokenAuthentication(token);
+ return new Authenticate(authentication);
+ }
+
+ public Authenticate withRackspace(String username, String apiKey, String region) {
+ Authentication authentication = new RackspaceAuthentication(username, apiKey);
+ return new Authenticate(authentication);
+ }
+
+ public Authenticate withAccessKey(String accessKey, String secretKey) {
+ Authentication authentication = new AccessKey(accessKey, secretKey);
+ return new Authenticate(authentication);
+ }
+
+ }
+
+ }
+
+}