All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.gs2.identifier.Gs2IdentifierRestClient Maven / Gradle / Ivy

The newest version!
/*
 * Copyright 2016 Game Server Services, Inc. or its affiliates. All Rights
 * Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 *
 *  http://www.apache.org/licenses/LICENSE-2.0
 *
 * or in the "license" file accompanying this file. This file 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 io.gs2.identifier;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.json.JSONObject;
import org.json.JSONArray;

import io.gs2.model.AsyncAction;
import io.gs2.model.AsyncResult;
import io.gs2.exception.*;
import io.gs2.net.*;
import io.gs2.util.EncodingUtil;

import io.gs2.AbstractGs2Client;
import io.gs2.identifier.request.*;
import io.gs2.identifier.result.*;
import io.gs2.identifier.model.*;

/**
 * GS2 Identifier API クライアント
 *
 * @author Game Server Services, Inc.
 *
 */
public class Gs2IdentifierRestClient extends AbstractGs2Client {

	/**
	 * コンストラクタ。
	 *
	 * @param gs2RestSession セッション
	 */
	public Gs2IdentifierRestClient(Gs2RestSession gs2RestSession) {
		super(gs2RestSession);
	}

    class DescribeUsersTask extends Gs2RestSessionTask {
        private DescribeUsersRequest request;

        public DescribeUsersTask(
            DescribeUsersRequest request,
            AsyncAction> userCallback,
            Class clazz
        ) {
            super(
                    (Gs2RestSession) session,
                    userCallback,
                    clazz
            );
            this.request = request;
        }

        @Override
        protected void executeImpl() {

            String url = Gs2RestSession.EndpointHost
                .replace("{service}", "identifier")
                .replace("{region}", session.getRegion().getName())
                + "/user";

            List queryStrings = new ArrayList<> ();
            if (this.request.getContextStack() != null) {
                queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack()));
            }
            if (this.request.getPageToken() != null) {
                queryStrings.add("pageToken=" + EncodingUtil.urlEncode((String.valueOf(this.request.getPageToken()))));
            }
            if (this.request.getLimit() != null) {
                queryStrings.add("limit=" + String.valueOf(this.request.getLimit()));
            }
            url += "?" + String.join("&", queryStrings);

            builder
                .setMethod(HttpTask.Method.GET)
                .setUrl(url)
                .setHeader("Content-Type", "application/json")
                .setHttpResponseHandler(this);

            if (this.request.getRequestId() != null) {
                builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId());
            }

            builder
                .build()
                .send();
        }
    }

    /**
     * ユーザの一覧を取得します
* * @param callback コールバック * @param request リクエストパラメータ */ public void describeUsersAsync( DescribeUsersRequest request, AsyncAction> callback ) { DescribeUsersTask task = new DescribeUsersTask(request, callback, DescribeUsersResult.class); session.execute(task); } /** * ユーザの一覧を取得します
* * @param request リクエストパラメータ */ public DescribeUsersResult describeUsers( DescribeUsersRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; describeUsersAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class CreateUserTask extends Gs2RestSessionTask { private CreateUserRequest request; public CreateUserTask( CreateUserRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "identifier") .replace("{region}", session.getRegion().getName()) + "/user"; ObjectMapper mapper = new ObjectMapper(); JSONObject json = new JSONObject(); if (this.request.getName() != null) { json.put("name", this.request.getName()); } if (this.request.getDescription() != null) { json.put("description", this.request.getDescription()); } if (this.request.getContextStack() != null) { json.put("contextStack", this.request.getContextStack()); } builder.setBody(json.toString().getBytes()); builder .setMethod(HttpTask.Method.POST) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } builder .build() .send(); } } /** * ユーザを新規作成します
* * @param callback コールバック * @param request リクエストパラメータ */ public void createUserAsync( CreateUserRequest request, AsyncAction> callback ) { CreateUserTask task = new CreateUserTask(request, callback, CreateUserResult.class); session.execute(task); } /** * ユーザを新規作成します
* * @param request リクエストパラメータ */ public CreateUserResult createUser( CreateUserRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; createUserAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class UpdateUserTask extends Gs2RestSessionTask { private UpdateUserRequest request; public UpdateUserTask( UpdateUserRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "identifier") .replace("{region}", session.getRegion().getName()) + "/user/{userName}"; url = url.replace("{userName}", this.request.getUserName() == null|| this.request.getUserName().length() == 0 ? "null" : String.valueOf(this.request.getUserName())); ObjectMapper mapper = new ObjectMapper(); JSONObject json = new JSONObject(); if (this.request.getDescription() != null) { json.put("description", this.request.getDescription()); } if (this.request.getContextStack() != null) { json.put("contextStack", this.request.getContextStack()); } builder.setBody(json.toString().getBytes()); builder .setMethod(HttpTask.Method.PUT) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } builder .build() .send(); } } /** * ユーザを更新します
* * @param callback コールバック * @param request リクエストパラメータ */ public void updateUserAsync( UpdateUserRequest request, AsyncAction> callback ) { UpdateUserTask task = new UpdateUserTask(request, callback, UpdateUserResult.class); session.execute(task); } /** * ユーザを更新します
* * @param request リクエストパラメータ */ public UpdateUserResult updateUser( UpdateUserRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; updateUserAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class GetUserTask extends Gs2RestSessionTask { private GetUserRequest request; public GetUserTask( GetUserRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "identifier") .replace("{region}", session.getRegion().getName()) + "/user/{userName}"; url = url.replace("{userName}", this.request.getUserName() == null|| this.request.getUserName().length() == 0 ? "null" : String.valueOf(this.request.getUserName())); List queryStrings = new ArrayList<> (); if (this.request.getContextStack() != null) { queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack())); } url += "?" + String.join("&", queryStrings); builder .setMethod(HttpTask.Method.GET) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } builder .build() .send(); } } /** * ユーザを取得します
* * @param callback コールバック * @param request リクエストパラメータ */ public void getUserAsync( GetUserRequest request, AsyncAction> callback ) { GetUserTask task = new GetUserTask(request, callback, GetUserResult.class); session.execute(task); } /** * ユーザを取得します
* * @param request リクエストパラメータ */ public GetUserResult getUser( GetUserRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; getUserAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class DeleteUserTask extends Gs2RestSessionTask { private DeleteUserRequest request; public DeleteUserTask( DeleteUserRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "identifier") .replace("{region}", session.getRegion().getName()) + "/user/{userName}"; url = url.replace("{userName}", this.request.getUserName() == null|| this.request.getUserName().length() == 0 ? "null" : String.valueOf(this.request.getUserName())); List queryStrings = new ArrayList<> (); if (this.request.getContextStack() != null) { queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack())); } url += "?" + String.join("&", queryStrings); builder .setMethod(HttpTask.Method.DELETE) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } builder .build() .send(); } } /** * ユーザを削除します
* * @param callback コールバック * @param request リクエストパラメータ */ public void deleteUserAsync( DeleteUserRequest request, AsyncAction> callback ) { DeleteUserTask task = new DeleteUserTask(request, callback, DeleteUserResult.class); session.execute(task); } /** * ユーザを削除します
* * @param request リクエストパラメータ */ public DeleteUserResult deleteUser( DeleteUserRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; deleteUserAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class DescribeSecurityPoliciesTask extends Gs2RestSessionTask { private DescribeSecurityPoliciesRequest request; public DescribeSecurityPoliciesTask( DescribeSecurityPoliciesRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "identifier") .replace("{region}", session.getRegion().getName()) + "/securityPolicy"; List queryStrings = new ArrayList<> (); if (this.request.getContextStack() != null) { queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack())); } if (this.request.getPageToken() != null) { queryStrings.add("pageToken=" + EncodingUtil.urlEncode((String.valueOf(this.request.getPageToken())))); } if (this.request.getLimit() != null) { queryStrings.add("limit=" + String.valueOf(this.request.getLimit())); } url += "?" + String.join("&", queryStrings); builder .setMethod(HttpTask.Method.GET) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } builder .build() .send(); } } /** * セキュリティポリシーの一覧を取得します
* * @param callback コールバック * @param request リクエストパラメータ */ public void describeSecurityPoliciesAsync( DescribeSecurityPoliciesRequest request, AsyncAction> callback ) { DescribeSecurityPoliciesTask task = new DescribeSecurityPoliciesTask(request, callback, DescribeSecurityPoliciesResult.class); session.execute(task); } /** * セキュリティポリシーの一覧を取得します
* * @param request リクエストパラメータ */ public DescribeSecurityPoliciesResult describeSecurityPolicies( DescribeSecurityPoliciesRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; describeSecurityPoliciesAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class DescribeCommonSecurityPoliciesTask extends Gs2RestSessionTask { private DescribeCommonSecurityPoliciesRequest request; public DescribeCommonSecurityPoliciesTask( DescribeCommonSecurityPoliciesRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "identifier") .replace("{region}", session.getRegion().getName()) + "/securityPolicy/common"; List queryStrings = new ArrayList<> (); if (this.request.getContextStack() != null) { queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack())); } if (this.request.getPageToken() != null) { queryStrings.add("pageToken=" + EncodingUtil.urlEncode((String.valueOf(this.request.getPageToken())))); } if (this.request.getLimit() != null) { queryStrings.add("limit=" + String.valueOf(this.request.getLimit())); } url += "?" + String.join("&", queryStrings); builder .setMethod(HttpTask.Method.GET) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } builder .build() .send(); } } /** * オーナーIDを指定してセキュリティポリシーの一覧を取得します
* * @param callback コールバック * @param request リクエストパラメータ */ public void describeCommonSecurityPoliciesAsync( DescribeCommonSecurityPoliciesRequest request, AsyncAction> callback ) { DescribeCommonSecurityPoliciesTask task = new DescribeCommonSecurityPoliciesTask(request, callback, DescribeCommonSecurityPoliciesResult.class); session.execute(task); } /** * オーナーIDを指定してセキュリティポリシーの一覧を取得します
* * @param request リクエストパラメータ */ public DescribeCommonSecurityPoliciesResult describeCommonSecurityPolicies( DescribeCommonSecurityPoliciesRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; describeCommonSecurityPoliciesAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class CreateSecurityPolicyTask extends Gs2RestSessionTask { private CreateSecurityPolicyRequest request; public CreateSecurityPolicyTask( CreateSecurityPolicyRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "identifier") .replace("{region}", session.getRegion().getName()) + "/securityPolicy"; ObjectMapper mapper = new ObjectMapper(); JSONObject json = new JSONObject(); if (this.request.getName() != null) { json.put("name", this.request.getName()); } if (this.request.getDescription() != null) { json.put("description", this.request.getDescription()); } if (this.request.getPolicy() != null) { json.put("policy", this.request.getPolicy()); } if (this.request.getContextStack() != null) { json.put("contextStack", this.request.getContextStack()); } builder.setBody(json.toString().getBytes()); builder .setMethod(HttpTask.Method.POST) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } builder .build() .send(); } } /** * セキュリティポリシーを新規作成します
* * @param callback コールバック * @param request リクエストパラメータ */ public void createSecurityPolicyAsync( CreateSecurityPolicyRequest request, AsyncAction> callback ) { CreateSecurityPolicyTask task = new CreateSecurityPolicyTask(request, callback, CreateSecurityPolicyResult.class); session.execute(task); } /** * セキュリティポリシーを新規作成します
* * @param request リクエストパラメータ */ public CreateSecurityPolicyResult createSecurityPolicy( CreateSecurityPolicyRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; createSecurityPolicyAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class UpdateSecurityPolicyTask extends Gs2RestSessionTask { private UpdateSecurityPolicyRequest request; public UpdateSecurityPolicyTask( UpdateSecurityPolicyRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "identifier") .replace("{region}", session.getRegion().getName()) + "/securityPolicy/{securityPolicyName}"; url = url.replace("{securityPolicyName}", this.request.getSecurityPolicyName() == null|| this.request.getSecurityPolicyName().length() == 0 ? "null" : String.valueOf(this.request.getSecurityPolicyName())); ObjectMapper mapper = new ObjectMapper(); JSONObject json = new JSONObject(); if (this.request.getDescription() != null) { json.put("description", this.request.getDescription()); } if (this.request.getPolicy() != null) { json.put("policy", this.request.getPolicy()); } if (this.request.getContextStack() != null) { json.put("contextStack", this.request.getContextStack()); } builder.setBody(json.toString().getBytes()); builder .setMethod(HttpTask.Method.PUT) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } builder .build() .send(); } } /** * セキュリティポリシーを更新します
* * @param callback コールバック * @param request リクエストパラメータ */ public void updateSecurityPolicyAsync( UpdateSecurityPolicyRequest request, AsyncAction> callback ) { UpdateSecurityPolicyTask task = new UpdateSecurityPolicyTask(request, callback, UpdateSecurityPolicyResult.class); session.execute(task); } /** * セキュリティポリシーを更新します
* * @param request リクエストパラメータ */ public UpdateSecurityPolicyResult updateSecurityPolicy( UpdateSecurityPolicyRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; updateSecurityPolicyAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class GetSecurityPolicyTask extends Gs2RestSessionTask { private GetSecurityPolicyRequest request; public GetSecurityPolicyTask( GetSecurityPolicyRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "identifier") .replace("{region}", session.getRegion().getName()) + "/securityPolicy/{securityPolicyName}"; url = url.replace("{securityPolicyName}", this.request.getSecurityPolicyName() == null|| this.request.getSecurityPolicyName().length() == 0 ? "null" : String.valueOf(this.request.getSecurityPolicyName())); List queryStrings = new ArrayList<> (); if (this.request.getContextStack() != null) { queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack())); } url += "?" + String.join("&", queryStrings); builder .setMethod(HttpTask.Method.GET) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } builder .build() .send(); } } /** * セキュリティポリシーを取得します
* * @param callback コールバック * @param request リクエストパラメータ */ public void getSecurityPolicyAsync( GetSecurityPolicyRequest request, AsyncAction> callback ) { GetSecurityPolicyTask task = new GetSecurityPolicyTask(request, callback, GetSecurityPolicyResult.class); session.execute(task); } /** * セキュリティポリシーを取得します
* * @param request リクエストパラメータ */ public GetSecurityPolicyResult getSecurityPolicy( GetSecurityPolicyRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; getSecurityPolicyAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class DeleteSecurityPolicyTask extends Gs2RestSessionTask { private DeleteSecurityPolicyRequest request; public DeleteSecurityPolicyTask( DeleteSecurityPolicyRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "identifier") .replace("{region}", session.getRegion().getName()) + "/securityPolicy/{securityPolicyName}"; url = url.replace("{securityPolicyName}", this.request.getSecurityPolicyName() == null|| this.request.getSecurityPolicyName().length() == 0 ? "null" : String.valueOf(this.request.getSecurityPolicyName())); List queryStrings = new ArrayList<> (); if (this.request.getContextStack() != null) { queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack())); } url += "?" + String.join("&", queryStrings); builder .setMethod(HttpTask.Method.DELETE) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } builder .build() .send(); } } /** * セキュリティポリシーを削除します
* * @param callback コールバック * @param request リクエストパラメータ */ public void deleteSecurityPolicyAsync( DeleteSecurityPolicyRequest request, AsyncAction> callback ) { DeleteSecurityPolicyTask task = new DeleteSecurityPolicyTask(request, callback, DeleteSecurityPolicyResult.class); session.execute(task); } /** * セキュリティポリシーを削除します
* * @param request リクエストパラメータ */ public DeleteSecurityPolicyResult deleteSecurityPolicy( DeleteSecurityPolicyRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; deleteSecurityPolicyAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class DescribeIdentifiersTask extends Gs2RestSessionTask { private DescribeIdentifiersRequest request; public DescribeIdentifiersTask( DescribeIdentifiersRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "identifier") .replace("{region}", session.getRegion().getName()) + "/user/{userName}/identifier"; url = url.replace("{userName}", this.request.getUserName() == null|| this.request.getUserName().length() == 0 ? "null" : String.valueOf(this.request.getUserName())); List queryStrings = new ArrayList<> (); if (this.request.getContextStack() != null) { queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack())); } if (this.request.getPageToken() != null) { queryStrings.add("pageToken=" + EncodingUtil.urlEncode((String.valueOf(this.request.getPageToken())))); } if (this.request.getLimit() != null) { queryStrings.add("limit=" + String.valueOf(this.request.getLimit())); } url += "?" + String.join("&", queryStrings); builder .setMethod(HttpTask.Method.GET) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } builder .build() .send(); } } /** * クレデンシャルの一覧を取得します
* * @param callback コールバック * @param request リクエストパラメータ */ public void describeIdentifiersAsync( DescribeIdentifiersRequest request, AsyncAction> callback ) { DescribeIdentifiersTask task = new DescribeIdentifiersTask(request, callback, DescribeIdentifiersResult.class); session.execute(task); } /** * クレデンシャルの一覧を取得します
* * @param request リクエストパラメータ */ public DescribeIdentifiersResult describeIdentifiers( DescribeIdentifiersRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; describeIdentifiersAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class CreateIdentifierTask extends Gs2RestSessionTask { private CreateIdentifierRequest request; public CreateIdentifierTask( CreateIdentifierRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "identifier") .replace("{region}", session.getRegion().getName()) + "/user/{userName}/identifier"; url = url.replace("{userName}", this.request.getUserName() == null|| this.request.getUserName().length() == 0 ? "null" : String.valueOf(this.request.getUserName())); ObjectMapper mapper = new ObjectMapper(); JSONObject json = new JSONObject(); if (this.request.getContextStack() != null) { json.put("contextStack", this.request.getContextStack()); } builder.setBody(json.toString().getBytes()); builder .setMethod(HttpTask.Method.POST) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } builder .build() .send(); } } /** * クレデンシャルを新規作成します
* * @param callback コールバック * @param request リクエストパラメータ */ public void createIdentifierAsync( CreateIdentifierRequest request, AsyncAction> callback ) { CreateIdentifierTask task = new CreateIdentifierTask(request, callback, CreateIdentifierResult.class); session.execute(task); } /** * クレデンシャルを新規作成します
* * @param request リクエストパラメータ */ public CreateIdentifierResult createIdentifier( CreateIdentifierRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; createIdentifierAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class GetIdentifierTask extends Gs2RestSessionTask { private GetIdentifierRequest request; public GetIdentifierTask( GetIdentifierRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "identifier") .replace("{region}", session.getRegion().getName()) + "/user/{userName}/identifier/{clientId}"; url = url.replace("{userName}", this.request.getUserName() == null|| this.request.getUserName().length() == 0 ? "null" : String.valueOf(this.request.getUserName())); url = url.replace("{clientId}", this.request.getClientId() == null|| this.request.getClientId().length() == 0 ? "null" : String.valueOf(this.request.getClientId())); List queryStrings = new ArrayList<> (); if (this.request.getContextStack() != null) { queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack())); } url += "?" + String.join("&", queryStrings); builder .setMethod(HttpTask.Method.GET) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } builder .build() .send(); } } /** * クレデンシャルを取得します
* * @param callback コールバック * @param request リクエストパラメータ */ public void getIdentifierAsync( GetIdentifierRequest request, AsyncAction> callback ) { GetIdentifierTask task = new GetIdentifierTask(request, callback, GetIdentifierResult.class); session.execute(task); } /** * クレデンシャルを取得します
* * @param request リクエストパラメータ */ public GetIdentifierResult getIdentifier( GetIdentifierRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; getIdentifierAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class DeleteIdentifierTask extends Gs2RestSessionTask { private DeleteIdentifierRequest request; public DeleteIdentifierTask( DeleteIdentifierRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "identifier") .replace("{region}", session.getRegion().getName()) + "/user/{userName}/identifier/{clientId}"; url = url.replace("{userName}", this.request.getUserName() == null|| this.request.getUserName().length() == 0 ? "null" : String.valueOf(this.request.getUserName())); url = url.replace("{clientId}", this.request.getClientId() == null|| this.request.getClientId().length() == 0 ? "null" : String.valueOf(this.request.getClientId())); List queryStrings = new ArrayList<> (); if (this.request.getContextStack() != null) { queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack())); } url += "?" + String.join("&", queryStrings); builder .setMethod(HttpTask.Method.DELETE) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } builder .build() .send(); } } /** * クレデンシャルを削除します
* * @param callback コールバック * @param request リクエストパラメータ */ public void deleteIdentifierAsync( DeleteIdentifierRequest request, AsyncAction> callback ) { DeleteIdentifierTask task = new DeleteIdentifierTask(request, callback, DeleteIdentifierResult.class); session.execute(task); } /** * クレデンシャルを削除します
* * @param request リクエストパラメータ */ public DeleteIdentifierResult deleteIdentifier( DeleteIdentifierRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; deleteIdentifierAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class GetHasSecurityPolicyTask extends Gs2RestSessionTask { private GetHasSecurityPolicyRequest request; public GetHasSecurityPolicyTask( GetHasSecurityPolicyRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "identifier") .replace("{region}", session.getRegion().getName()) + "/user/{userName}/securityPolicy"; url = url.replace("{userName}", this.request.getUserName() == null|| this.request.getUserName().length() == 0 ? "null" : String.valueOf(this.request.getUserName())); List queryStrings = new ArrayList<> (); if (this.request.getContextStack() != null) { queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack())); } url += "?" + String.join("&", queryStrings); builder .setMethod(HttpTask.Method.GET) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } builder .build() .send(); } } /** * 割り当てられたセキュリティポリシーの一覧を取得します
* * @param callback コールバック * @param request リクエストパラメータ */ public void getHasSecurityPolicyAsync( GetHasSecurityPolicyRequest request, AsyncAction> callback ) { GetHasSecurityPolicyTask task = new GetHasSecurityPolicyTask(request, callback, GetHasSecurityPolicyResult.class); session.execute(task); } /** * 割り当てられたセキュリティポリシーの一覧を取得します
* * @param request リクエストパラメータ */ public GetHasSecurityPolicyResult getHasSecurityPolicy( GetHasSecurityPolicyRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; getHasSecurityPolicyAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class AttachSecurityPolicyTask extends Gs2RestSessionTask { private AttachSecurityPolicyRequest request; public AttachSecurityPolicyTask( AttachSecurityPolicyRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "identifier") .replace("{region}", session.getRegion().getName()) + "/user/{userName}/securityPolicy"; url = url.replace("{userName}", this.request.getUserName() == null|| this.request.getUserName().length() == 0 ? "null" : String.valueOf(this.request.getUserName())); ObjectMapper mapper = new ObjectMapper(); JSONObject json = new JSONObject(); if (this.request.getSecurityPolicyId() != null) { json.put("securityPolicyId", this.request.getSecurityPolicyId()); } if (this.request.getContextStack() != null) { json.put("contextStack", this.request.getContextStack()); } builder.setBody(json.toString().getBytes()); builder .setMethod(HttpTask.Method.POST) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } builder .build() .send(); } } /** * 割り当てられたセキュリティポリシーを新しくユーザーに割り当てます
* * @param callback コールバック * @param request リクエストパラメータ */ public void attachSecurityPolicyAsync( AttachSecurityPolicyRequest request, AsyncAction> callback ) { AttachSecurityPolicyTask task = new AttachSecurityPolicyTask(request, callback, AttachSecurityPolicyResult.class); session.execute(task); } /** * 割り当てられたセキュリティポリシーを新しくユーザーに割り当てます
* * @param request リクエストパラメータ */ public AttachSecurityPolicyResult attachSecurityPolicy( AttachSecurityPolicyRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; attachSecurityPolicyAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class DetachSecurityPolicyTask extends Gs2RestSessionTask { private DetachSecurityPolicyRequest request; public DetachSecurityPolicyTask( DetachSecurityPolicyRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "identifier") .replace("{region}", session.getRegion().getName()) + "/user/{userName}/securityPolicy/{securityPolicyId}"; url = url.replace("{userName}", this.request.getUserName() == null|| this.request.getUserName().length() == 0 ? "null" : String.valueOf(this.request.getUserName())); url = url.replace("{securityPolicyId}", this.request.getSecurityPolicyId() == null|| this.request.getSecurityPolicyId().length() == 0 ? "null" : String.valueOf(this.request.getSecurityPolicyId())); List queryStrings = new ArrayList<> (); if (this.request.getContextStack() != null) { queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack())); } url += "?" + String.join("&", queryStrings); builder .setMethod(HttpTask.Method.DELETE) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } builder .build() .send(); } } /** * 割り当てられたセキュリティポリシーをユーザーから外します
* * @param callback コールバック * @param request リクエストパラメータ */ public void detachSecurityPolicyAsync( DetachSecurityPolicyRequest request, AsyncAction> callback ) { DetachSecurityPolicyTask task = new DetachSecurityPolicyTask(request, callback, DetachSecurityPolicyResult.class); session.execute(task); } /** * 割り当てられたセキュリティポリシーをユーザーから外します
* * @param request リクエストパラメータ */ public DetachSecurityPolicyResult detachSecurityPolicy( DetachSecurityPolicyRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; detachSecurityPolicyAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class LoginTask extends Gs2RestSessionTask { private LoginRequest request; public LoginTask( LoginRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "identifier") .replace("{region}", session.getRegion().getName()) + "/projectToken/login"; ObjectMapper mapper = new ObjectMapper(); JSONObject json = new JSONObject(); if (this.request.getClientId() != null) { json.put("clientId", this.request.getClientId()); } if (this.request.getClientSecret() != null) { json.put("clientSecret", this.request.getClientSecret()); } if (this.request.getContextStack() != null) { json.put("contextStack", this.request.getContextStack()); } builder.setBody(json.toString().getBytes()); builder .setMethod(HttpTask.Method.POST) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } builder .build() .send(); } } /** * プロジェクトトークン を取得します
* * @param callback コールバック * @param request リクエストパラメータ */ public void loginAsync( LoginRequest request, AsyncAction> callback ) { LoginTask task = new LoginTask(request, callback, LoginResult.class); session.execute(task); } /** * プロジェクトトークン を取得します
* * @param request リクエストパラメータ */ public LoginResult login( LoginRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; loginAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy