228 lines
17 KiB
Go
228 lines
17 KiB
Go
// Code generated by ogen, DO NOT EDIT.
|
|
|
|
package api
|
|
|
|
import (
|
|
"context"
|
|
"net/http"
|
|
|
|
"github.com/go-faster/errors"
|
|
)
|
|
|
|
// SecuritySource is provider of security values (tokens, passwords, etc.).
|
|
type SecuritySource interface {
|
|
// Authorization provides Authorization security value.
|
|
// JWT obtained login.
|
|
Authorization(ctx context.Context, operationName OperationName) (Authorization, error)
|
|
}
|
|
|
|
// operationRolesAuthorization is a private map storing roles per operation.
|
|
var operationRolesAuthorization = map[string][]string{
|
|
ApiTokensCreateOperation: []string{},
|
|
ApiTokensDeleteOperation: []string{},
|
|
ApiTokensFindAllOperation: []string{},
|
|
ApiTokensGetScopesOperation: []string{},
|
|
BandwidthStatsNodesGetNodeUserUsageOperation: []string{},
|
|
BandwidthStatsNodesGetStatsNodeUsersUsageOperation: []string{},
|
|
BandwidthStatsNodesGetStatsNodesUsersUsageOperation: []string{},
|
|
BandwidthStatsUsersGetStatsNodesUsageOperation: []string{},
|
|
BandwidthStatsUsersGetUserUsageByRangeOperation: []string{},
|
|
ConfigProfileCreateConfigProfileOperation: []string{},
|
|
ConfigProfileDeleteConfigProfileByUuidOperation: []string{},
|
|
ConfigProfileGetAllInboundsOperation: []string{},
|
|
ConfigProfileGetComputedConfigProfileByUuidOperation: []string{},
|
|
ConfigProfileGetConfigProfileByUuidOperation: []string{},
|
|
ConfigProfileGetConfigProfilesOperation: []string{},
|
|
ConfigProfileGetInboundsByProfileUuidOperation: []string{},
|
|
ConfigProfileReorderConfigProfilesOperation: []string{},
|
|
ConfigProfileUpdateConfigProfileOperation: []string{},
|
|
ExternalSquadAddUsersToExternalSquadOperation: []string{},
|
|
ExternalSquadCreateExternalSquadOperation: []string{},
|
|
ExternalSquadDeleteExternalSquadOperation: []string{},
|
|
ExternalSquadGetExternalSquadByUuidOperation: []string{},
|
|
ExternalSquadGetExternalSquadsOperation: []string{},
|
|
ExternalSquadRemoveUsersFromExternalSquadOperation: []string{},
|
|
ExternalSquadReorderExternalSquadsOperation: []string{},
|
|
ExternalSquadUpdateExternalSquadOperation: []string{},
|
|
HostsBulkActionsDeleteHostsOperation: []string{},
|
|
HostsBulkActionsDisableHostsOperation: []string{},
|
|
HostsBulkActionsEnableHostsOperation: []string{},
|
|
HostsBulkActionsSetPortToHostsOperation: []string{},
|
|
HostsCreateHostOperation: []string{},
|
|
HostsDeleteHostOperation: []string{},
|
|
HostsGetAllHostTagsOperation: []string{},
|
|
HostsGetAllHostsOperation: []string{},
|
|
HostsGetOneHostOperation: []string{},
|
|
HostsReorderHostsOperation: []string{},
|
|
HostsUpdateHostOperation: []string{},
|
|
HwidUserDevicesCreateUserHwidDeviceOperation: []string{},
|
|
HwidUserDevicesDeleteAllUserHwidDevicesOperation: []string{},
|
|
HwidUserDevicesDeleteUserHwidDeviceOperation: []string{},
|
|
HwidUserDevicesGetAllUsersOperation: []string{},
|
|
HwidUserDevicesGetHwidDevicesStatsOperation: []string{},
|
|
HwidUserDevicesGetTopUsersByHwidDevicesOperation: []string{},
|
|
HwidUserDevicesGetUserHwidDevicesOperation: []string{},
|
|
InfraBillingCreateInfraBillingHistoryRecordOperation: []string{},
|
|
InfraBillingCreateInfraBillingNodeOperation: []string{},
|
|
InfraBillingCreateInfraProviderOperation: []string{},
|
|
InfraBillingDeleteInfraBillingHistoryRecordByUuidOperation: []string{},
|
|
InfraBillingDeleteInfraBillingNodeByUuidOperation: []string{},
|
|
InfraBillingDeleteInfraProviderByUuidOperation: []string{},
|
|
InfraBillingGetBillingNodesOperation: []string{},
|
|
InfraBillingGetInfraBillingHistoryRecordsOperation: []string{},
|
|
InfraBillingGetInfraProviderByUuidOperation: []string{},
|
|
InfraBillingGetInfraProvidersOperation: []string{},
|
|
InfraBillingUpdateInfraBillingNodeOperation: []string{},
|
|
InfraBillingUpdateInfraProviderOperation: []string{},
|
|
InternalSquadAddUsersToInternalSquadOperation: []string{},
|
|
InternalSquadCreateInternalSquadOperation: []string{},
|
|
InternalSquadDeleteInternalSquadOperation: []string{},
|
|
InternalSquadGetInternalSquadAccessibleNodesOperation: []string{},
|
|
InternalSquadGetInternalSquadByUuidOperation: []string{},
|
|
InternalSquadGetInternalSquadsOperation: []string{},
|
|
InternalSquadRemoveUsersFromInternalSquadOperation: []string{},
|
|
InternalSquadReorderInternalSquadsOperation: []string{},
|
|
InternalSquadUpdateInternalSquadOperation: []string{},
|
|
IpControlDropConnectionsOperation: []string{},
|
|
IpControlFetchUserIpsOperation: []string{},
|
|
IpControlFetchUsersIpsOperation: []string{},
|
|
IpControlGetFetchIpsResultOperation: []string{},
|
|
IpControlGetFetchUsersIpsResultOperation: []string{},
|
|
KeygenGenerateKeyOperation: []string{},
|
|
MetadataGetNodeMetadataOperation: []string{},
|
|
MetadataGetUserMetadataOperation: []string{},
|
|
MetadataUpsertNodeMetadataOperation: []string{},
|
|
MetadataUpsertUserMetadataOperation: []string{},
|
|
NodePluginCloneNodePluginOperation: []string{},
|
|
NodePluginCreateConfigOperation: []string{},
|
|
NodePluginDeleteConfigOperation: []string{},
|
|
NodePluginGetAllConfigsOperation: []string{},
|
|
NodePluginGetConfigByUuidOperation: []string{},
|
|
NodePluginPluginExecutorOperation: []string{},
|
|
NodePluginReorderNodePluginsOperation: []string{},
|
|
NodePluginUpdateConfigOperation: []string{},
|
|
NodesBulkNodesActionsOperation: []string{},
|
|
NodesBulkNodesUpdateOperation: []string{},
|
|
NodesCreateNodeOperation: []string{},
|
|
NodesDeleteNodeOperation: []string{},
|
|
NodesDisableNodeOperation: []string{},
|
|
NodesEnableNodeOperation: []string{},
|
|
NodesGetAllNodesOperation: []string{},
|
|
NodesGetAllNodesTagsOperation: []string{},
|
|
NodesGetOneNodeOperation: []string{},
|
|
NodesProfileModificationOperation: []string{},
|
|
NodesReorderNodesOperation: []string{},
|
|
NodesResetNodeTrafficOperation: []string{},
|
|
NodesRestartAllNodesOperation: []string{},
|
|
NodesRestartNodeOperation: []string{},
|
|
NodesUpdateNodeOperation: []string{},
|
|
NodesUsageHistoryGetStatsNodesUsageOperation: []string{},
|
|
PasskeyDeletePasskeyOperation: []string{},
|
|
PasskeyGetActivePasskeysOperation: []string{},
|
|
PasskeyPasskeyRegistrationOptionsOperation: []string{},
|
|
PasskeyPasskeyRegistrationVerifyOperation: []string{},
|
|
PasskeyUpdatePasskeyOperation: []string{},
|
|
RemnawaveSettingsGetSettingsOperation: []string{},
|
|
RemnawaveSettingsUpdateSettingsOperation: []string{},
|
|
SnippetsCreateSnippetOperation: []string{},
|
|
SnippetsDeleteSnippetByNameOperation: []string{},
|
|
SnippetsGetSnippetsOperation: []string{},
|
|
SnippetsUpdateSnippetOperation: []string{},
|
|
SubscriptionPageConfigCloneSubscriptionPageConfigOperation: []string{},
|
|
SubscriptionPageConfigCreateConfigOperation: []string{},
|
|
SubscriptionPageConfigDeleteConfigOperation: []string{},
|
|
SubscriptionPageConfigGetAllConfigsOperation: []string{},
|
|
SubscriptionPageConfigGetConfigByUuidOperation: []string{},
|
|
SubscriptionPageConfigReorderSubscriptionPageConfigsOperation: []string{},
|
|
SubscriptionPageConfigUpdateConfigOperation: []string{},
|
|
SubscriptionSettingsGetSettingsOperation: []string{},
|
|
SubscriptionSettingsUpdateSettingsOperation: []string{},
|
|
SubscriptionTemplateCreateTemplateOperation: []string{},
|
|
SubscriptionTemplateDeleteTemplateOperation: []string{},
|
|
SubscriptionTemplateGetAllTemplatesOperation: []string{},
|
|
SubscriptionTemplateGetTemplateByUuidOperation: []string{},
|
|
SubscriptionTemplateReorderSubscriptionTemplatesOperation: []string{},
|
|
SubscriptionTemplateUpdateTemplateOperation: []string{},
|
|
SubscriptionsGetAllSubscriptionsOperation: []string{},
|
|
SubscriptionsGetConnectionKeysByUuidOperation: []string{},
|
|
SubscriptionsGetRawSubscriptionByShortUuidOperation: []string{},
|
|
SubscriptionsGetSubpageConfigByShortUuidOperation: []string{},
|
|
SubscriptionsGetSubscriptionByShortUuidProtectedOperation: []string{},
|
|
SubscriptionsGetSubscriptionByUsernameOperation: []string{},
|
|
SubscriptionsGetSubscriptionByUuidOperation: []string{},
|
|
SystemDebugSrrMatcherOperation: []string{},
|
|
SystemGetBandwidthStatsOperation: []string{},
|
|
SystemGetMetadataOperation: []string{},
|
|
SystemGetNodesMetricsOperation: []string{},
|
|
SystemGetNodesStatisticsOperation: []string{},
|
|
SystemGetRecapOperation: []string{},
|
|
SystemGetRemnawaveHealthOperation: []string{},
|
|
SystemGetStatsOperation: []string{},
|
|
SystemGetX25519KeypairsOperation: []string{},
|
|
TorrentBlockerReportsGetTorrentBlockerReportsOperation: []string{},
|
|
TorrentBlockerReportsGetTorrentBlockerReportsStatsOperation: []string{},
|
|
TorrentBlockerReportsTruncateTorrentBlockerReportsOperation: []string{},
|
|
UserSubscriptionRequestHistoryGetSubscriptionRequestHistoryOperation: []string{},
|
|
UserSubscriptionRequestHistoryGetSubscriptionRequestHistoryStatsOperation: []string{},
|
|
UsersBulkActionsBulkAllExtendExpirationDateOperation: []string{},
|
|
UsersBulkActionsBulkAllResetUserTrafficOperation: []string{},
|
|
UsersBulkActionsBulkDeleteUsersOperation: []string{},
|
|
UsersBulkActionsBulkDeleteUsersByStatusOperation: []string{},
|
|
UsersBulkActionsBulkExtendExpirationDateOperation: []string{},
|
|
UsersBulkActionsBulkResetUserTrafficOperation: []string{},
|
|
UsersBulkActionsBulkRevokeUsersSubscriptionOperation: []string{},
|
|
UsersBulkActionsBulkUpdateAllUsersOperation: []string{},
|
|
UsersBulkActionsBulkUpdateUsersOperation: []string{},
|
|
UsersBulkActionsBulkUpdateUsersInternalSquadsOperation: []string{},
|
|
UsersCreateUserOperation: []string{},
|
|
UsersDeleteUserOperation: []string{},
|
|
UsersDisableUserOperation: []string{},
|
|
UsersEnableUserOperation: []string{},
|
|
UsersGetAllTagsOperation: []string{},
|
|
UsersGetAllUsersOperation: []string{},
|
|
UsersGetUserAccessibleNodesOperation: []string{},
|
|
UsersGetUserByIdOperation: []string{},
|
|
UsersGetUserByShortUuidOperation: []string{},
|
|
UsersGetUserByTelegramIdOperation: []string{},
|
|
UsersGetUserByUsernameOperation: []string{},
|
|
UsersGetUserByUuidOperation: []string{},
|
|
UsersGetUserSubscriptionRequestHistoryOperation: []string{},
|
|
UsersGetUsersByEmailOperation: []string{},
|
|
UsersGetUsersByTagOperation: []string{},
|
|
UsersGetUsersStreamOperation: []string{},
|
|
UsersResetUserTrafficOperation: []string{},
|
|
UsersResolveUserOperation: []string{},
|
|
UsersRevokeUserSubscriptionOperation: []string{},
|
|
UsersUpdateUserOperation: []string{},
|
|
}
|
|
|
|
// GetRolesForAuthorization returns the required roles for the given operation.
|
|
//
|
|
// This is useful for authorization scenarios where you need to know which roles
|
|
// are required for an operation.
|
|
//
|
|
// Example:
|
|
//
|
|
// requiredRoles := GetRolesForAuthorization(AddPetOperation)
|
|
//
|
|
// Returns nil if the operation has no role requirements or if the operation is unknown.
|
|
func GetRolesForAuthorization(operation string) []string {
|
|
roles, ok := operationRolesAuthorization[operation]
|
|
if !ok {
|
|
return nil
|
|
}
|
|
// Return a copy to prevent external modification
|
|
result := make([]string, len(roles))
|
|
copy(result, roles)
|
|
return result
|
|
}
|
|
|
|
func (s *Client) securityAuthorization(ctx context.Context, operationName OperationName, req *http.Request) error {
|
|
t, err := s.sec.Authorization(ctx, operationName)
|
|
if err != nil {
|
|
return errors.Wrap(err, "security source \"Authorization\"")
|
|
}
|
|
req.Header.Set("Authorization", "Bearer "+t.Token)
|
|
return nil
|
|
}
|