diff options
author | alexnick <alexnick@yandex-team.ru> | 2022-04-08 17:13:53 +0300 |
---|---|---|
committer | alexnick <alexnick@yandex-team.ru> | 2022-04-08 17:13:53 +0300 |
commit | 908f92f6598ef0e03bb0b0ae8bb19b64e7c96556 (patch) | |
tree | a1155067576ce85bc75d0373f46ad87b39bbd491 /kikimr/yndx/ycloud/api | |
parent | d9f739c514743c454cc186a5e302784e1b45a6f7 (diff) | |
download | ydb-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.h | 33 | ||||
-rw-r--r-- | kikimr/yndx/ycloud/api/events.h | 24 | ||||
-rw-r--r-- | kikimr/yndx/ycloud/api/folder_service.h | 29 | ||||
-rw-r--r-- | kikimr/yndx/ycloud/api/iam_token_service.h | 30 | ||||
-rw-r--r-- | kikimr/yndx/ycloud/api/service_account_service.h | 34 | ||||
-rw-r--r-- | kikimr/yndx/ycloud/api/user_account_service.h | 29 |
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> {}; + }; +} |