aboutsummaryrefslogtreecommitdiffstats
path: root/kikimr/yndx/ycloud/api
diff options
context:
space:
mode:
authoralexnick <alexnick@yandex-team.ru>2022-04-08 17:13:53 +0300
committeralexnick <alexnick@yandex-team.ru>2022-04-08 17:13:53 +0300
commit908f92f6598ef0e03bb0b0ae8bb19b64e7c96556 (patch)
treea1155067576ce85bc75d0373f46ad87b39bbd491 /kikimr/yndx/ycloud/api
parentd9f739c514743c454cc186a5e302784e1b45a6f7 (diff)
downloadydb-908f92f6598ef0e03bb0b0ae8bb19b64e7c96556.tar.gz
support of http kinesis proxy inside ydb KIKIMR-14665
ref:f446d2d5b36d480c4c6c4109be7b4fbdf3a1871b
Diffstat (limited to 'kikimr/yndx/ycloud/api')
-rw-r--r--kikimr/yndx/ycloud/api/access_service.h33
-rw-r--r--kikimr/yndx/ycloud/api/events.h24
-rw-r--r--kikimr/yndx/ycloud/api/folder_service.h29
-rw-r--r--kikimr/yndx/ycloud/api/iam_token_service.h30
-rw-r--r--kikimr/yndx/ycloud/api/service_account_service.h34
-rw-r--r--kikimr/yndx/ycloud/api/user_account_service.h29
6 files changed, 179 insertions, 0 deletions
diff --git a/kikimr/yndx/ycloud/api/access_service.h b/kikimr/yndx/ycloud/api/access_service.h
new file mode 100644
index 0000000000..dc644f2702
--- /dev/null
+++ b/kikimr/yndx/ycloud/api/access_service.h
@@ -0,0 +1,33 @@
+#pragma once
+#include <ydb/core/base/defs.h>
+#include <ydb/core/base/events.h>
+#include <yandex/cloud/priv/servicecontrol/v1/access_service.grpc.pb.h>
+#include "events.h"
+
+namespace NCloud {
+ using namespace NKikimr;
+
+ struct TEvAccessService {
+ enum EEv {
+ // requests
+ EvAuthenticateRequest = EventSpaceBegin(TKikimrEvents::ES_ACCESS_SERVICE),
+ EvAuthorizeRequest,
+
+ // replies
+ EvAuthenticateResponse = EventSpaceBegin(TKikimrEvents::ES_ACCESS_SERVICE) + 512,
+ EvAuthorizeResponse,
+
+ EvEnd
+ };
+
+ static_assert(EvEnd < EventSpaceEnd(TKikimrEvents::ES_ACCESS_SERVICE), "expect EvEnd < EventSpaceEnd(TKikimrEvents::ES_ACCESS_SERVICE)");
+
+ // https://a.yandex-team.ru/arc/trunk/arcadia/cloud/servicecontrol/proto/servicecontrol/v1/access_service.proto
+
+ struct TEvAuthenticateRequest : TEvGrpcProtoRequest<TEvAuthenticateRequest, EvAuthenticateRequest, yandex::cloud::priv::servicecontrol::v1::AuthenticateRequest> {};
+ struct TEvAuthenticateResponse : TEvGrpcProtoResponse<TEvAuthenticateResponse, EvAuthenticateResponse, yandex::cloud::priv::servicecontrol::v1::AuthenticateResponse> {};
+
+ struct TEvAuthorizeRequest : TEvGrpcProtoRequest<TEvAuthorizeRequest, EvAuthorizeRequest, yandex::cloud::priv::servicecontrol::v1::AuthorizeRequest> {};
+ struct TEvAuthorizeResponse : TEvGrpcProtoResponse<TEvAuthorizeResponse, EvAuthorizeResponse, yandex::cloud::priv::servicecontrol::v1::AuthorizeResponse> {};
+ };
+}
diff --git a/kikimr/yndx/ycloud/api/events.h b/kikimr/yndx/ycloud/api/events.h
new file mode 100644
index 0000000000..c7812b7054
--- /dev/null
+++ b/kikimr/yndx/ycloud/api/events.h
@@ -0,0 +1,24 @@
+#pragma once
+#include <util/generic/ptr.h>
+#include <util/generic/string.h>
+#include <library/cpp/actors/core/actor.h>
+#include <library/cpp/actors/core/event_local.h>
+#include <library/cpp/grpc/client/grpc_client_low.h>
+
+namespace NCloud {
+
+template <typename TEv, ui32 TEventType, typename TProtoMessage>
+struct TEvGrpcProtoRequest : NActors::TEventLocal<TEv, TEventType> {
+ TProtoMessage Request;
+ TString Token;
+ TString RequestId;
+};
+
+template <typename TEv, ui32 TEventType, typename TProtoMessage>
+struct TEvGrpcProtoResponse : NActors::TEventLocal<TEv, TEventType> {
+ THolder<NActors::IEventHandle> Request;
+ TProtoMessage Response;
+ NGrpc::TGrpcStatus Status;
+};
+
+}
diff --git a/kikimr/yndx/ycloud/api/folder_service.h b/kikimr/yndx/ycloud/api/folder_service.h
new file mode 100644
index 0000000000..dfa7fee84a
--- /dev/null
+++ b/kikimr/yndx/ycloud/api/folder_service.h
@@ -0,0 +1,29 @@
+#pragma once
+#include <ydb/core/base/defs.h>
+#include <ydb/core/base/events.h>
+#include <yandex/cloud/priv/resourcemanager/v1/transitional/folder_service.grpc.pb.h>
+#include "events.h"
+
+namespace NCloud {
+ using namespace NKikimr;
+
+ struct TEvFolderService {
+ enum EEv {
+ // requests
+ EvListFolderRequest = EventSpaceBegin(TKikimrEvents::ES_FOLDER_SERVICE),
+
+ // replies
+ EvListFolderResponse = EventSpaceBegin(TKikimrEvents::ES_FOLDER_SERVICE) + 512,
+
+ EvEnd
+ };
+
+ static_assert(EvEnd < EventSpaceEnd(TKikimrEvents::ES_FOLDER_SERVICE), "expect EvEnd < EventSpaceEnd(TKikimrEvents::ES_FOLDER_SERVICE)");
+
+ // https://a.yandex-team.ru/arc/trunk/arcadia/cloud/identity/proto/resourcemanager/v1/folder.proto
+ // https://a.yandex-team.ru/arc/trunk/arcadia/cloud/identity/proto/resourcemanager/v1/transitional/folder_service.proto
+
+ struct TEvListFolderRequest : TEvGrpcProtoRequest<TEvListFolderRequest, EvListFolderRequest, yandex::cloud::priv::resourcemanager::v1::transitional::ListFoldersRequest> {};
+ struct TEvListFolderResponse : TEvGrpcProtoResponse<TEvListFolderResponse, EvListFolderResponse, yandex::cloud::priv::resourcemanager::v1::transitional::ListFoldersResponse> {};
+ };
+}
diff --git a/kikimr/yndx/ycloud/api/iam_token_service.h b/kikimr/yndx/ycloud/api/iam_token_service.h
new file mode 100644
index 0000000000..0375e94d9d
--- /dev/null
+++ b/kikimr/yndx/ycloud/api/iam_token_service.h
@@ -0,0 +1,30 @@
+#pragma once
+#include <ydb/core/base/defs.h>
+#include <ydb/core/base/events.h>
+#include <yandex/cloud/priv/iam/v1/iam_token_service.grpc.pb.h>
+#include "events.h"
+
+namespace NCloud {
+ using namespace NKikimr;
+
+ class TIamTokenService;
+
+ struct TEvIamTokenService {
+ enum EEv {
+ // requests
+ EvCreateForServiceAccountRequest = EventSpaceBegin(TKikimrEvents::ES_IAM_TOKEN_SERVICE),
+
+ // replies
+ EvCreateResponse = EventSpaceBegin(TKikimrEvents::ES_IAM_TOKEN_SERVICE) + 1024,
+
+ EvEnd
+ };
+
+ static_assert(EvEnd < EventSpaceEnd(TKikimrEvents::ES_IAM_TOKEN_SERVICE), "expect EvEnd < EventSpaceEnd(TKikimrEvents::ES_SERVICE_ACCOUNT_SERVICE)");
+
+ // https://a.yandex-team.ru/arc/trunk/arcadia/cloud/bitbucket/private-api/yandex/cloud/priv/iam/v1/iam_token_service.proto
+
+ struct TEvCreateForServiceAccountRequest : TEvGrpcProtoRequest<TEvCreateForServiceAccountRequest, EvCreateForServiceAccountRequest, yandex::cloud::priv::iam::v1::CreateIamTokenForServiceAccountRequest> {};
+ struct TEvCreateResponse : TEvGrpcProtoResponse<TEvCreateResponse, EvCreateResponse, yandex::cloud::priv::iam::v1::CreateIamTokenResponse> {};
+ };
+}
diff --git a/kikimr/yndx/ycloud/api/service_account_service.h b/kikimr/yndx/ycloud/api/service_account_service.h
new file mode 100644
index 0000000000..07377c4afe
--- /dev/null
+++ b/kikimr/yndx/ycloud/api/service_account_service.h
@@ -0,0 +1,34 @@
+#pragma once
+#include <ydb/core/base/defs.h>
+#include <ydb/core/base/events.h>
+#include <yandex/cloud/priv/iam/v1/service_account_service.grpc.pb.h>
+#include "events.h"
+
+namespace NCloud {
+ using namespace NKikimr;
+
+ struct TEvServiceAccountService {
+ enum EEv {
+ // requests
+ EvGetServiceAccountRequest = EventSpaceBegin(TKikimrEvents::ES_SERVICE_ACCOUNT_SERVICE),
+ EvIssueTokenRequest,
+
+ // replies
+ EvGetServiceAccountResponse = EventSpaceBegin(TKikimrEvents::ES_SERVICE_ACCOUNT_SERVICE) + 1024,
+ EvIssueTokenResponse,
+
+ EvEnd
+ };
+
+ static_assert(EvEnd < EventSpaceEnd(TKikimrEvents::ES_SERVICE_ACCOUNT_SERVICE), "expect EvEnd < EventSpaceEnd(TKikimrEvents::ES_SERVICE_ACCOUNT_SERVICE)");
+
+ // https://a.yandex-team.ru/arc/trunk/arcadia/cloud/bitbucket/private-api/yandex/cloud/priv/iam/v1/service_account.proto
+ // https://a.yandex-team.ru/arc/trunk/arcadia/cloud/bitbucket/private-api/yandex/cloud/priv/iam/v1/service_account_service.proto
+
+ struct TEvGetServiceAccountRequest : TEvGrpcProtoRequest<TEvGetServiceAccountRequest, EvGetServiceAccountRequest, yandex::cloud::priv::iam::v1::GetServiceAccountRequest> {};
+ struct TEvGetServiceAccountResponse : TEvGrpcProtoResponse<TEvGetServiceAccountResponse, EvGetServiceAccountResponse, yandex::cloud::priv::iam::v1::ServiceAccount> {};
+
+ struct TEvIssueTokenRequest : TEvGrpcProtoRequest<TEvIssueTokenRequest, EvIssueTokenRequest, yandex::cloud::priv::iam::v1::IssueTokenRequest> {};
+ struct TEvIssueTokenResponse : TEvGrpcProtoResponse<TEvIssueTokenResponse, EvIssueTokenResponse, yandex::cloud::priv::iam::v1::IamToken> {};
+ };
+}
diff --git a/kikimr/yndx/ycloud/api/user_account_service.h b/kikimr/yndx/ycloud/api/user_account_service.h
new file mode 100644
index 0000000000..59b89249b4
--- /dev/null
+++ b/kikimr/yndx/ycloud/api/user_account_service.h
@@ -0,0 +1,29 @@
+#pragma once
+#include <ydb/core/base/defs.h>
+#include <ydb/core/base/events.h>
+#include <yandex/cloud/priv/iam/v1/user_account_service.grpc.pb.h>
+#include "events.h"
+
+namespace NCloud {
+ using namespace NKikimr;
+
+ struct TEvUserAccountService {
+ enum EEv {
+ // requests
+ EvGetUserAccountRequest = EventSpaceBegin(TKikimrEvents::ES_USER_ACCOUNT_SERVICE),
+
+ // replies
+ EvGetUserAccountResponse = EventSpaceBegin(TKikimrEvents::ES_USER_ACCOUNT_SERVICE) + 512,
+
+ EvEnd
+ };
+
+ static_assert(EvEnd < EventSpaceEnd(TKikimrEvents::ES_USER_ACCOUNT_SERVICE), "expect EvEnd < EventSpaceEnd(TKikimrEvents::ES_USER_ACCOUNT_SERVICE)");
+
+ // https://a.yandex-team.ru/arc/trunk/arcadia/cloud/identity/proto/iam/v1/user_account.proto
+ // https://a.yandex-team.ru/arc/trunk/arcadia/cloud/identity/proto/iam/v1/user_account_service.proto
+
+ struct TEvGetUserAccountRequest : TEvGrpcProtoRequest<TEvGetUserAccountRequest, EvGetUserAccountRequest, yandex::cloud::priv::iam::v1::GetUserAccountRequest> {};
+ struct TEvGetUserAccountResponse : TEvGrpcProtoResponse<TEvGetUserAccountResponse, EvGetUserAccountResponse, yandex::cloud::priv::iam::v1::UserAccount> {};
+ };
+}