commit c46da4d94f7989d38b410aa47374b77998d9ecb7 Author: shiranui Date: Tue Jun 30 22:43:45 2026 +0300 feat: generate SDK for Remnawave API v2.7.4 diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..05d64fe --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,4 @@ +patreon: ShiranuiYami +custom: [ + "https://boosty.to/shiranuiyami" +] diff --git a/.ogen.yml b/.ogen.yml new file mode 100644 index 0000000..7fe72ad --- /dev/null +++ b/.ogen.yml @@ -0,0 +1,16 @@ +parser: + infer_types: true + allow_remote: true + +generator: + ignore_not_implemented: ["object defaults"] + features: + disable_all: true + enable: + - "paths/client" + - "client/request/validation" + - "client/request/options" + - "client/editors" + - "ogen/otel" + - "ogen/unimplemented" + - "debug/example_tests" diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..777273c --- /dev/null +++ b/LICENSE @@ -0,0 +1,19 @@ +MIT License + +Copyright (c) 2026 vpn + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and +associated documentation files (the "Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial +portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT +LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO +EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + diff --git a/README.md b/README.md new file mode 100644 index 0000000..75deffb --- /dev/null +++ b/README.md @@ -0,0 +1,269 @@ +# Remnawave GO SDK + +A Go SDK client for interacting with the **[Remnawave API](https://remna.st)**. + +## Version Compatibility + +| API Version | SDK Version | Install | +|-------------|-------------|---------| +| 2.7.4 | v2.7.4 | `go get git.voidsmiths.dev/shiranui/remnawave-api-go/v2@v2.7.4` | + +Generated with [**ogen**](https://github.com/ogen-go/ogen) v1.19.0: +* Zero-reflection JSON decoder for high throughput +* Compile-time validation against OpenAPI 3.0 spec +* First-class `context.Context` support +* Built-in OpenTelemetry instrumentation +* Per-request options via `RequestOption` +* Request/response editors (middleware) +* Organized sub-clients for clean API access +* Simplified method signatures (no verbose Params structs) + +## Installation + +```bash +go get github.com/shiranuiyami/remnawave-api-go/v2@v2.7.4 +``` + +## Quick Start + +```go +package main + +import ( + "context" + "fmt" + remapi "git.voidsmiths.dev/shiranui/remnawave-api-go/v2/api" +) + +func main() { + ctx := context.Background() + + // Create base client + baseClient, _ := remapi.NewClient( + "https://your-panel.example.com", + remapi.StaticToken{Token: "YOUR_JWT_TOKEN"}, + ) + + // Wrap with organized sub-clients + client := remapi.NewClientExt(baseClient) + + // Get user by UUID - simple string argument + user, _ := client.Users().GetUserByUuid(ctx, "user-uuid-here") + fmt.Printf("User: %s\n", user.(*remapi.UserResponse).Response.Username) + + // Get node by UUID + node, _ := client.Nodes().GetOneNode(ctx, "node-uuid-here") + fmt.Printf("Node: %s\n", node.(*remapi.NodeResponse).Response.Name) + + // Create user + newUser, _ := client.Users().CreateUser(ctx, &remapi.CreateUserRequest{ + Username: "john_doe", + }) + fmt.Printf("Created: %s\n", newUser.(*remapi.UserResponse).Response.Username) +} +``` + +## Available Controllers + +| Controller | Description | +|------------|-------------| +| `client.ApiTokens()` | API token management | +| `client.Auth()` | Authentication | +| `client.BandwidthStatsNodes()` | Node bandwidth statistics | +| `client.BandwidthStatsUsers()` | User bandwidth statistics | +| `client.ConfigProfile()` | Config profiles | +| `client.ExternalSquad()` | External squads | +| `client.Hosts()` | Host management | +| `client.HostsBulkActions()` | Bulk host operations | +| `client.HwidUserDevices()` | HWID devices | +| `client.InfraBilling()` | Infrastructure billing | +| `client.InternalSquad()` | Internal squads | +| `client.Keygen()` | Key generation | +| `client.Nodes()` | Node management | +| `client.NodesUsageHistory()` | Node usage history | +| `client.Passkey()` | Passkey authentication | +| `client.RemnawaveSettings()` | Panel settings | +| `client.Snippets()` | Code snippets | +| `client.Subscription()` | Subscription management | +| `client.SubscriptionPageConfig()` | Subscription page config | +| `client.SubscriptionSettings()` | Subscription settings | +| `client.SubscriptionTemplate()` | Subscription templates | +| `client.Subscriptions()` | Multiple subscriptions | +| `client.System()` | System info | +| `client.UserSubscriptionRequestHistory()` | Request history | +| `client.Users()` | User management | +| `client.UsersBulkActions()` | Bulk user operations | + +## Error Handling + +Unified error types for consistent error handling: + +```go +resp, err := client.Users().GetUserByUuid(ctx, "invalid-uuid") +if err != nil { + panic(err) +} + +switch e := resp.(type) { +case *remapi.UserResponse: + fmt.Printf("User: %s\n", e.Response.Username) +case *remapi.BadRequestError: + for _, validationErr := range e.Errors { + fmt.Printf("Field: %v, Error: %s\n", validationErr.Path, validationErr.Message) + } +case *remapi.NotFoundError: + fmt.Println("User not found") +case *remapi.InternalServerError: + fmt.Printf("Server error: %s\n", e.Message.Value) +} +``` + +### Error Types + +| Type | Status | Description | +|------|--------|-------------| +| `BadRequestError` | 400 | Validation errors with `[]ValidationError` | +| `UnauthorizedError` | 401 | Authentication required | +| `ForbiddenError` | 403 | Access denied | +| `NotFoundError` | 404 | Resource not found | +| `InternalServerError` | 500 | Server error | + +### ValidationError Structure + +```go +type ValidationError struct { + Validation string // e.g., "uuid" + Code string // e.g., "invalid_string" + Message string // e.g., "Invalid uuid" + Path []string // e.g., ["uuid"] +} +``` + +## Common Operations + +### Users + +```go +// Get by UUID (simplified - just pass the string) +user, _ := client.Users().GetUserByUuid(ctx, "uuid-here") + +// Get by username +user, _ := client.Users().GetUserByUsername(ctx, "john") + +// Get by short UUID +user, _ := client.Users().GetUserByShortUuid(ctx, "short-uuid") + +// Create +user, _ := client.Users().CreateUser(ctx, &remapi.CreateUserRequest{ + Username: "new_user", +}) + +// Update +user, _ := client.Users().UpdateUser(ctx, &remapi.UpdateUserRequest{ + Uuid: "uuid-here", +}) + +// Delete +client.Users().DeleteUser(ctx, "uuid-here") + +// Enable/Disable +client.Users().EnableUser(ctx, "uuid-here") +client.Users().DisableUser(ctx, "uuid-here") + +// Reset traffic +client.Users().ResetUserTraffic(ctx, "uuid-here") +``` + +### Nodes + +```go +// List all +nodes, _ := client.Nodes().GetAllNodes(ctx) + +// Get one (simplified) +node, _ := client.Nodes().GetOneNode(ctx, "uuid-here") + +// Create +node, _ := client.Nodes().CreateNode(ctx, &remapi.CreateNodeRequest{ + Name: "Node-1", +}) + +// Delete +client.Nodes().DeleteNode(ctx, "uuid-here") + +// Enable/Disable +client.Nodes().EnableNode(ctx, "uuid-here") +client.Nodes().DisableNode(ctx, "uuid-here") + +// Restart +client.Nodes().RestartNode(ctx, "uuid-here") + +// Reset traffic +client.Nodes().ResetNodeTraffic(ctx, "uuid-here") +``` + +### Hosts + +```go +// List all +hosts, _ := client.Hosts().GetAllHosts(ctx) + +// Get one +host, _ := client.Hosts().GetOneHost(ctx, "uuid-here") + +// Create +host, _ := client.Hosts().CreateHost(ctx, &remapi.CreateHostRequest{...}) + +// Delete +client.Hosts().DeleteHost(ctx, "uuid-here") +``` + +### Authentication + +```go +// Login +resp, _ := client.Auth().Login(ctx, &remapi.LoginRequest{ + Username: "admin", + Password: "password", +}) +token := resp.(*remapi.TokenResponse).Response.AccessToken + +// Get status +status, _ := client.Auth().GetStatus(ctx) +``` + +## Request Options + +All methods support per-request `RequestOption` for customization: + +```go +// Pass options as the last variadic argument +user, err := client.Users().GetUserByUuid(ctx, "uuid-here", opts...) +``` + +## Access to Base Client + +If you need direct access to the underlying ogen client: + +```go +baseClient := client.Client() +``` + +## Requirements + +| Requirement | Version | +|-------------|---------| +| Go | 1.21+ | +| Remnawave API | 2.8.+ | + +## License + +[MIT](LICENSE) + +## Acknowledgments + +* [Jolymmiles](https://github.com/Jolymmiles) + +## Donation + +- **LTC:** `ltc1qac3x0rfh6py309apjlztzrmr2rdv0jmu9dytex` diff --git a/api/client_ext.go b/api/client_ext.go new file mode 100644 index 0000000..c28c8f4 --- /dev/null +++ b/api/client_ext.go @@ -0,0 +1,1604 @@ +// Code generated by pipeline.py. DO NOT EDIT manually. + +package api + +import "context" + +// ClientExt wraps the base Client with organized sub-client access. +// Use controller methods (e.g., client.Users().GetByUuid()) to call API operations. +type ClientExt struct { + client *Client + apiTokens *ApiTokensClient + auth *AuthClient + bandwidthStatsNodes *BandwidthStatsNodesClient + bandwidthStatsUsers *BandwidthStatsUsersClient + configProfile *ConfigProfileClient + externalSquad *ExternalSquadClient + hosts *HostsClient + hostsBulkActions *HostsBulkActionsClient + hwidUserDevices *HwidUserDevicesClient + infraBilling *InfraBillingClient + internalSquad *InternalSquadClient + ipControl *IpControlClient + keygen *KeygenClient + metadata *MetadataClient + nodePlugin *NodePluginClient + nodes *NodesClient + nodesUsageHistory *NodesUsageHistoryClient + passkey *PasskeyClient + remnawaveSettings *RemnawaveSettingsClient + snippets *SnippetsClient + subscription *SubscriptionClient + subscriptionPageConfig *SubscriptionPageConfigClient + subscriptionSettings *SubscriptionSettingsClient + subscriptionTemplate *SubscriptionTemplateClient + subscriptions *SubscriptionsClient + system *SystemClient + torrentBlockerReports *TorrentBlockerReportsClient + userSubscriptionRequestHistory *UserSubscriptionRequestHistoryClient + users *UsersClient + usersBulkActions *UsersBulkActionsClient +} + +// NewClientExt creates a new ClientExt wrapper. +func NewClientExt(client *Client) *ClientExt { + return &ClientExt{ + client: client, + apiTokens: NewApiTokensClient(client), + auth: NewAuthClient(client), + bandwidthStatsNodes: NewBandwidthStatsNodesClient(client), + bandwidthStatsUsers: NewBandwidthStatsUsersClient(client), + configProfile: NewConfigProfileClient(client), + externalSquad: NewExternalSquadClient(client), + hosts: NewHostsClient(client), + hostsBulkActions: NewHostsBulkActionsClient(client), + hwidUserDevices: NewHwidUserDevicesClient(client), + infraBilling: NewInfraBillingClient(client), + internalSquad: NewInternalSquadClient(client), + ipControl: NewIpControlClient(client), + keygen: NewKeygenClient(client), + metadata: NewMetadataClient(client), + nodePlugin: NewNodePluginClient(client), + nodes: NewNodesClient(client), + nodesUsageHistory: NewNodesUsageHistoryClient(client), + passkey: NewPasskeyClient(client), + remnawaveSettings: NewRemnawaveSettingsClient(client), + snippets: NewSnippetsClient(client), + subscription: NewSubscriptionClient(client), + subscriptionPageConfig: NewSubscriptionPageConfigClient(client), + subscriptionSettings: NewSubscriptionSettingsClient(client), + subscriptionTemplate: NewSubscriptionTemplateClient(client), + subscriptions: NewSubscriptionsClient(client), + system: NewSystemClient(client), + torrentBlockerReports: NewTorrentBlockerReportsClient(client), + userSubscriptionRequestHistory: NewUserSubscriptionRequestHistoryClient(client), + users: NewUsersClient(client), + usersBulkActions: NewUsersBulkActionsClient(client), + } +} + +// Client returns the underlying ogen Client. +func (ce *ClientExt) Client() *Client { + return ce.client +} + +// ApiTokens returns the ApiTokensClient. +func (ce *ClientExt) ApiTokens() *ApiTokensClient { + return ce.apiTokens +} + +// Auth returns the AuthClient. +func (ce *ClientExt) Auth() *AuthClient { + return ce.auth +} + +// BandwidthStatsNodes returns the BandwidthStatsNodesClient. +func (ce *ClientExt) BandwidthStatsNodes() *BandwidthStatsNodesClient { + return ce.bandwidthStatsNodes +} + +// BandwidthStatsUsers returns the BandwidthStatsUsersClient. +func (ce *ClientExt) BandwidthStatsUsers() *BandwidthStatsUsersClient { + return ce.bandwidthStatsUsers +} + +// ConfigProfile returns the ConfigProfileClient. +func (ce *ClientExt) ConfigProfile() *ConfigProfileClient { + return ce.configProfile +} + +// ExternalSquad returns the ExternalSquadClient. +func (ce *ClientExt) ExternalSquad() *ExternalSquadClient { + return ce.externalSquad +} + +// Hosts returns the HostsClient. +func (ce *ClientExt) Hosts() *HostsClient { + return ce.hosts +} + +// HostsBulkActions returns the HostsBulkActionsClient. +func (ce *ClientExt) HostsBulkActions() *HostsBulkActionsClient { + return ce.hostsBulkActions +} + +// HwidUserDevices returns the HwidUserDevicesClient. +func (ce *ClientExt) HwidUserDevices() *HwidUserDevicesClient { + return ce.hwidUserDevices +} + +// InfraBilling returns the InfraBillingClient. +func (ce *ClientExt) InfraBilling() *InfraBillingClient { + return ce.infraBilling +} + +// InternalSquad returns the InternalSquadClient. +func (ce *ClientExt) InternalSquad() *InternalSquadClient { + return ce.internalSquad +} + +// IpControl returns the IpControlClient. +func (ce *ClientExt) IpControl() *IpControlClient { + return ce.ipControl +} + +// Keygen returns the KeygenClient. +func (ce *ClientExt) Keygen() *KeygenClient { + return ce.keygen +} + +// Metadata returns the MetadataClient. +func (ce *ClientExt) Metadata() *MetadataClient { + return ce.metadata +} + +// NodePlugin returns the NodePluginClient. +func (ce *ClientExt) NodePlugin() *NodePluginClient { + return ce.nodePlugin +} + +// Nodes returns the NodesClient. +func (ce *ClientExt) Nodes() *NodesClient { + return ce.nodes +} + +// NodesUsageHistory returns the NodesUsageHistoryClient. +func (ce *ClientExt) NodesUsageHistory() *NodesUsageHistoryClient { + return ce.nodesUsageHistory +} + +// Passkey returns the PasskeyClient. +func (ce *ClientExt) Passkey() *PasskeyClient { + return ce.passkey +} + +// RemnawaveSettings returns the RemnawaveSettingsClient. +func (ce *ClientExt) RemnawaveSettings() *RemnawaveSettingsClient { + return ce.remnawaveSettings +} + +// Snippets returns the SnippetsClient. +func (ce *ClientExt) Snippets() *SnippetsClient { + return ce.snippets +} + +// Subscription returns the SubscriptionClient. +func (ce *ClientExt) Subscription() *SubscriptionClient { + return ce.subscription +} + +// SubscriptionPageConfig returns the SubscriptionPageConfigClient. +func (ce *ClientExt) SubscriptionPageConfig() *SubscriptionPageConfigClient { + return ce.subscriptionPageConfig +} + +// SubscriptionSettings returns the SubscriptionSettingsClient. +func (ce *ClientExt) SubscriptionSettings() *SubscriptionSettingsClient { + return ce.subscriptionSettings +} + +// SubscriptionTemplate returns the SubscriptionTemplateClient. +func (ce *ClientExt) SubscriptionTemplate() *SubscriptionTemplateClient { + return ce.subscriptionTemplate +} + +// Subscriptions returns the SubscriptionsClient. +func (ce *ClientExt) Subscriptions() *SubscriptionsClient { + return ce.subscriptions +} + +// System returns the SystemClient. +func (ce *ClientExt) System() *SystemClient { + return ce.system +} + +// TorrentBlockerReports returns the TorrentBlockerReportsClient. +func (ce *ClientExt) TorrentBlockerReports() *TorrentBlockerReportsClient { + return ce.torrentBlockerReports +} + +// UserSubscriptionRequestHistory returns the UserSubscriptionRequestHistoryClient. +func (ce *ClientExt) UserSubscriptionRequestHistory() *UserSubscriptionRequestHistoryClient { + return ce.userSubscriptionRequestHistory +} + +// Users returns the UsersClient. +func (ce *ClientExt) Users() *UsersClient { + return ce.users +} + +// UsersBulkActions returns the UsersBulkActionsClient. +func (ce *ClientExt) UsersBulkActions() *UsersBulkActionsClient { + return ce.usersBulkActions +} + +// ApiTokensClient provides ApiTokens operations. +type ApiTokensClient struct { + client *Client +} + +// NewApiTokensClient creates a new ApiTokensClient. +func NewApiTokensClient(client *Client) *ApiTokensClient { + return &ApiTokensClient{client: client} +} + +// Create calls ApiTokens_create. +func (sc *ApiTokensClient) Create(ctx context.Context, request *CreateApiTokenRequest, options ...RequestOption) (ApiTokensCreateRes, error) { + return sc.client.ApiTokensCreate(ctx, request, options...) +} + +// Delete calls ApiTokens_delete. +func (sc *ApiTokensClient) Delete(ctx context.Context, uuid string, options ...RequestOption) (ApiTokensDeleteRes, error) { + return sc.client.ApiTokensDelete(ctx, ApiTokensDeleteParams{ + UUID: uuid, + }, options...) +} + +// FindAll calls ApiTokens_findAll. +func (sc *ApiTokensClient) FindAll(ctx context.Context, options ...RequestOption) (ApiTokensFindAllRes, error) { + return sc.client.ApiTokensFindAll(ctx, options...) +} + +// AuthClient provides Auth operations. +type AuthClient struct { + client *Client +} + +// NewAuthClient creates a new AuthClient. +func NewAuthClient(client *Client) *AuthClient { + return &AuthClient{client: client} +} + +// GetStatus calls Auth_getStatus. +func (sc *AuthClient) GetStatus(ctx context.Context, options ...RequestOption) (AuthGetStatusRes, error) { + return sc.client.AuthGetStatus(ctx, options...) +} + +// Login calls Auth_login. +func (sc *AuthClient) Login(ctx context.Context, request *LoginRequest, options ...RequestOption) (AuthLoginRes, error) { + return sc.client.AuthLogin(ctx, request, options...) +} + +// Oauth2Authorize calls Auth_oauth2Authorize. +func (sc *AuthClient) Oauth2Authorize(ctx context.Context, request *OAuth2AuthorizeRequest, options ...RequestOption) (AuthOauth2AuthorizeRes, error) { + return sc.client.AuthOauth2Authorize(ctx, request, options...) +} + +// Oauth2Callback calls Auth_oauth2Callback. +func (sc *AuthClient) Oauth2Callback(ctx context.Context, request *OAuth2CallbackRequest, options ...RequestOption) (AuthOauth2CallbackRes, error) { + return sc.client.AuthOauth2Callback(ctx, request, options...) +} + +// PasskeyAuthenticationOptions calls Auth_passkeyAuthenticationOptions. +func (sc *AuthClient) PasskeyAuthenticationOptions(ctx context.Context, options ...RequestOption) (AuthPasskeyAuthenticationOptionsRes, error) { + return sc.client.AuthPasskeyAuthenticationOptions(ctx, options...) +} + +// PasskeyAuthenticationVerify calls Auth_passkeyAuthenticationVerify. +func (sc *AuthClient) PasskeyAuthenticationVerify(ctx context.Context, request *PasskeyOptions, options ...RequestOption) (AuthPasskeyAuthenticationVerifyRes, error) { + return sc.client.AuthPasskeyAuthenticationVerify(ctx, request, options...) +} + +// Register calls Auth_register. +func (sc *AuthClient) Register(ctx context.Context, request *RegisterRequest, options ...RequestOption) (AuthRegisterRes, error) { + return sc.client.AuthRegister(ctx, request, options...) +} + +// BandwidthStatsNodesClient provides BandwidthStatsNodes operations. +type BandwidthStatsNodesClient struct { + client *Client +} + +// NewBandwidthStatsNodesClient creates a new BandwidthStatsNodesClient. +func NewBandwidthStatsNodesClient(client *Client) *BandwidthStatsNodesClient { + return &BandwidthStatsNodesClient{client: client} +} + +// GetNodeUserUsage calls BandwidthStatsNodes_getNodeUserUsage. +func (sc *BandwidthStatsNodesClient) GetNodeUserUsage(ctx context.Context, params BandwidthStatsNodesGetNodeUserUsageParams, options ...RequestOption) (BandwidthStatsNodesGetNodeUserUsageRes, error) { + return sc.client.BandwidthStatsNodesGetNodeUserUsage(ctx, params, options...) +} + +// GetStatsNodeUsersUsage calls BandwidthStatsNodes_getStatsNodeUsersUsage. +func (sc *BandwidthStatsNodesClient) GetStatsNodeUsersUsage(ctx context.Context, params BandwidthStatsNodesGetStatsNodeUsersUsageParams, options ...RequestOption) (BandwidthStatsNodesGetStatsNodeUsersUsageRes, error) { + return sc.client.BandwidthStatsNodesGetStatsNodeUsersUsage(ctx, params, options...) +} + +// BandwidthStatsUsersClient provides BandwidthStatsUsers operations. +type BandwidthStatsUsersClient struct { + client *Client +} + +// NewBandwidthStatsUsersClient creates a new BandwidthStatsUsersClient. +func NewBandwidthStatsUsersClient(client *Client) *BandwidthStatsUsersClient { + return &BandwidthStatsUsersClient{client: client} +} + +// GetStatsNodesUsage calls BandwidthStatsUsers_getStatsNodesUsage. +func (sc *BandwidthStatsUsersClient) GetStatsNodesUsage(ctx context.Context, params BandwidthStatsUsersGetStatsNodesUsageParams, options ...RequestOption) (BandwidthStatsUsersGetStatsNodesUsageRes, error) { + return sc.client.BandwidthStatsUsersGetStatsNodesUsage(ctx, params, options...) +} + +// GetUserUsageByRange calls BandwidthStatsUsers_getUserUsageByRange. +func (sc *BandwidthStatsUsersClient) GetUserUsageByRange(ctx context.Context, params BandwidthStatsUsersGetUserUsageByRangeParams, options ...RequestOption) (BandwidthStatsUsersGetUserUsageByRangeRes, error) { + return sc.client.BandwidthStatsUsersGetUserUsageByRange(ctx, params, options...) +} + +// ConfigProfileClient provides ConfigProfile operations. +type ConfigProfileClient struct { + client *Client +} + +// NewConfigProfileClient creates a new ConfigProfileClient. +func NewConfigProfileClient(client *Client) *ConfigProfileClient { + return &ConfigProfileClient{client: client} +} + +// CreateConfigProfile calls ConfigProfile_createConfigProfile. +func (sc *ConfigProfileClient) CreateConfigProfile(ctx context.Context, request *CreateConfigProfileRequest, options ...RequestOption) (ConfigProfileCreateConfigProfileRes, error) { + return sc.client.ConfigProfileCreateConfigProfile(ctx, request, options...) +} + +// DeleteConfigProfileByUuid calls ConfigProfile_deleteConfigProfileByUuid. +func (sc *ConfigProfileClient) DeleteConfigProfileByUuid(ctx context.Context, uuid string, options ...RequestOption) (ConfigProfileDeleteConfigProfileByUuidRes, error) { + return sc.client.ConfigProfileDeleteConfigProfileByUuid(ctx, ConfigProfileDeleteConfigProfileByUuidParams{ + UUID: uuid, + }, options...) +} + +// GetAllInbounds calls ConfigProfile_getAllInbounds. +func (sc *ConfigProfileClient) GetAllInbounds(ctx context.Context, options ...RequestOption) (ConfigProfileGetAllInboundsRes, error) { + return sc.client.ConfigProfileGetAllInbounds(ctx, options...) +} + +// GetComputedConfigProfileByUuid calls ConfigProfile_getComputedConfigProfileByUuid. +func (sc *ConfigProfileClient) GetComputedConfigProfileByUuid(ctx context.Context, uuid string, options ...RequestOption) (ConfigProfileGetComputedConfigProfileByUuidRes, error) { + return sc.client.ConfigProfileGetComputedConfigProfileByUuid(ctx, ConfigProfileGetComputedConfigProfileByUuidParams{ + UUID: uuid, + }, options...) +} + +// GetConfigProfileByUuid calls ConfigProfile_getConfigProfileByUuid. +func (sc *ConfigProfileClient) GetConfigProfileByUuid(ctx context.Context, uuid string, options ...RequestOption) (ConfigProfileGetConfigProfileByUuidRes, error) { + return sc.client.ConfigProfileGetConfigProfileByUuid(ctx, ConfigProfileGetConfigProfileByUuidParams{ + UUID: uuid, + }, options...) +} + +// GetConfigProfiles calls ConfigProfile_getConfigProfiles. +func (sc *ConfigProfileClient) GetConfigProfiles(ctx context.Context, options ...RequestOption) (ConfigProfileGetConfigProfilesRes, error) { + return sc.client.ConfigProfileGetConfigProfiles(ctx, options...) +} + +// GetInboundsByProfileUuid calls ConfigProfile_getInboundsByProfileUuid. +func (sc *ConfigProfileClient) GetInboundsByProfileUuid(ctx context.Context, uuid string, options ...RequestOption) (ConfigProfileGetInboundsByProfileUuidRes, error) { + return sc.client.ConfigProfileGetInboundsByProfileUuid(ctx, ConfigProfileGetInboundsByProfileUuidParams{ + UUID: uuid, + }, options...) +} + +// ReorderConfigProfiles calls ConfigProfile_reorderConfigProfiles. +func (sc *ConfigProfileClient) ReorderConfigProfiles(ctx context.Context, request *ReorderRequest, options ...RequestOption) (ConfigProfileReorderConfigProfilesRes, error) { + return sc.client.ConfigProfileReorderConfigProfiles(ctx, request, options...) +} + +// UpdateConfigProfile calls ConfigProfile_updateConfigProfile. +func (sc *ConfigProfileClient) UpdateConfigProfile(ctx context.Context, request *UpdateConfigProfileRequest, options ...RequestOption) (ConfigProfileUpdateConfigProfileRes, error) { + return sc.client.ConfigProfileUpdateConfigProfile(ctx, request, options...) +} + +// ExternalSquadClient provides ExternalSquad operations. +type ExternalSquadClient struct { + client *Client +} + +// NewExternalSquadClient creates a new ExternalSquadClient. +func NewExternalSquadClient(client *Client) *ExternalSquadClient { + return &ExternalSquadClient{client: client} +} + +// AddUsersToExternalSquad calls ExternalSquad_addUsersToExternalSquad. +func (sc *ExternalSquadClient) AddUsersToExternalSquad(ctx context.Context, uuid string, options ...RequestOption) (ExternalSquadAddUsersToExternalSquadRes, error) { + return sc.client.ExternalSquadAddUsersToExternalSquad(ctx, ExternalSquadAddUsersToExternalSquadParams{ + UUID: uuid, + }, options...) +} + +// CreateExternalSquad calls ExternalSquad_createExternalSquad. +func (sc *ExternalSquadClient) CreateExternalSquad(ctx context.Context, request *CreateExternalSquadRequest, options ...RequestOption) (ExternalSquadCreateExternalSquadRes, error) { + return sc.client.ExternalSquadCreateExternalSquad(ctx, request, options...) +} + +// DeleteExternalSquad calls ExternalSquad_deleteExternalSquad. +func (sc *ExternalSquadClient) DeleteExternalSquad(ctx context.Context, uuid string, options ...RequestOption) (ExternalSquadDeleteExternalSquadRes, error) { + return sc.client.ExternalSquadDeleteExternalSquad(ctx, ExternalSquadDeleteExternalSquadParams{ + UUID: uuid, + }, options...) +} + +// GetExternalSquadByUuid calls ExternalSquad_getExternalSquadByUuid. +func (sc *ExternalSquadClient) GetExternalSquadByUuid(ctx context.Context, uuid string, options ...RequestOption) (ExternalSquadGetExternalSquadByUuidRes, error) { + return sc.client.ExternalSquadGetExternalSquadByUuid(ctx, ExternalSquadGetExternalSquadByUuidParams{ + UUID: uuid, + }, options...) +} + +// GetExternalSquads calls ExternalSquad_getExternalSquads. +func (sc *ExternalSquadClient) GetExternalSquads(ctx context.Context, options ...RequestOption) (ExternalSquadGetExternalSquadsRes, error) { + return sc.client.ExternalSquadGetExternalSquads(ctx, options...) +} + +// RemoveUsersFromExternalSquad calls ExternalSquad_removeUsersFromExternalSquad. +func (sc *ExternalSquadClient) RemoveUsersFromExternalSquad(ctx context.Context, uuid string, options ...RequestOption) (ExternalSquadRemoveUsersFromExternalSquadRes, error) { + return sc.client.ExternalSquadRemoveUsersFromExternalSquad(ctx, ExternalSquadRemoveUsersFromExternalSquadParams{ + UUID: uuid, + }, options...) +} + +// ReorderExternalSquads calls ExternalSquad_reorderExternalSquads. +func (sc *ExternalSquadClient) ReorderExternalSquads(ctx context.Context, request *ReorderRequest, options ...RequestOption) (ExternalSquadReorderExternalSquadsRes, error) { + return sc.client.ExternalSquadReorderExternalSquads(ctx, request, options...) +} + +// UpdateExternalSquad calls ExternalSquad_updateExternalSquad. +func (sc *ExternalSquadClient) UpdateExternalSquad(ctx context.Context, request *UpdateExternalSquadRequest, options ...RequestOption) (ExternalSquadUpdateExternalSquadRes, error) { + return sc.client.ExternalSquadUpdateExternalSquad(ctx, request, options...) +} + +// HostsClient provides Hosts operations. +type HostsClient struct { + client *Client +} + +// NewHostsClient creates a new HostsClient. +func NewHostsClient(client *Client) *HostsClient { + return &HostsClient{client: client} +} + +// CreateHost calls Hosts_createHost. +func (sc *HostsClient) CreateHost(ctx context.Context, request *CreateHostRequest, options ...RequestOption) (HostsCreateHostRes, error) { + return sc.client.HostsCreateHost(ctx, request, options...) +} + +// DeleteHost calls Hosts_deleteHost. +func (sc *HostsClient) DeleteHost(ctx context.Context, uuid string, options ...RequestOption) (HostsDeleteHostRes, error) { + return sc.client.HostsDeleteHost(ctx, HostsDeleteHostParams{ + UUID: uuid, + }, options...) +} + +// GetAllHostTags calls Hosts_getAllHostTags. +func (sc *HostsClient) GetAllHostTags(ctx context.Context, options ...RequestOption) (HostsGetAllHostTagsRes, error) { + return sc.client.HostsGetAllHostTags(ctx, options...) +} + +// GetAllHosts calls Hosts_getAllHosts. +func (sc *HostsClient) GetAllHosts(ctx context.Context, options ...RequestOption) (HostsGetAllHostsRes, error) { + return sc.client.HostsGetAllHosts(ctx, options...) +} + +// GetOneHost calls Hosts_getOneHost. +func (sc *HostsClient) GetOneHost(ctx context.Context, uuid string, options ...RequestOption) (HostsGetOneHostRes, error) { + return sc.client.HostsGetOneHost(ctx, HostsGetOneHostParams{ + UUID: uuid, + }, options...) +} + +// ReorderHosts calls Hosts_reorderHosts. +func (sc *HostsClient) ReorderHosts(ctx context.Context, request *ReorderHostRequest, options ...RequestOption) (HostsReorderHostsRes, error) { + return sc.client.HostsReorderHosts(ctx, request, options...) +} + +// UpdateHost calls Hosts_updateHost. +func (sc *HostsClient) UpdateHost(ctx context.Context, request *UpdateHostRequest, options ...RequestOption) (HostsUpdateHostRes, error) { + return sc.client.HostsUpdateHost(ctx, request, options...) +} + +// HostsBulkActionsClient provides HostsBulkActions operations. +type HostsBulkActionsClient struct { + client *Client +} + +// NewHostsBulkActionsClient creates a new HostsBulkActionsClient. +func NewHostsBulkActionsClient(client *Client) *HostsBulkActionsClient { + return &HostsBulkActionsClient{client: client} +} + +// DeleteHosts calls HostsBulkActions_deleteHosts. +func (sc *HostsBulkActionsClient) DeleteHosts(ctx context.Context, request *BulkUuidsRequest2, options ...RequestOption) (HostsBulkActionsDeleteHostsRes, error) { + return sc.client.HostsBulkActionsDeleteHosts(ctx, request, options...) +} + +// DisableHosts calls HostsBulkActions_disableHosts. +func (sc *HostsBulkActionsClient) DisableHosts(ctx context.Context, request *BulkUuidsRequest2, options ...RequestOption) (HostsBulkActionsDisableHostsRes, error) { + return sc.client.HostsBulkActionsDisableHosts(ctx, request, options...) +} + +// EnableHosts calls HostsBulkActions_enableHosts. +func (sc *HostsBulkActionsClient) EnableHosts(ctx context.Context, request *BulkUuidsRequest2, options ...RequestOption) (HostsBulkActionsEnableHostsRes, error) { + return sc.client.HostsBulkActionsEnableHosts(ctx, request, options...) +} + +// SetInboundToHosts calls HostsBulkActions_setInboundToHosts. +func (sc *HostsBulkActionsClient) SetInboundToHosts(ctx context.Context, request *SetInboundToManyHostsRequest, options ...RequestOption) (HostsBulkActionsSetInboundToHostsRes, error) { + return sc.client.HostsBulkActionsSetInboundToHosts(ctx, request, options...) +} + +// SetPortToHosts calls HostsBulkActions_setPortToHosts. +func (sc *HostsBulkActionsClient) SetPortToHosts(ctx context.Context, request *SetPortToManyHostsRequest, options ...RequestOption) (HostsBulkActionsSetPortToHostsRes, error) { + return sc.client.HostsBulkActionsSetPortToHosts(ctx, request, options...) +} + +// HwidUserDevicesClient provides HwidUserDevices operations. +type HwidUserDevicesClient struct { + client *Client +} + +// NewHwidUserDevicesClient creates a new HwidUserDevicesClient. +func NewHwidUserDevicesClient(client *Client) *HwidUserDevicesClient { + return &HwidUserDevicesClient{client: client} +} + +// CreateUserHwidDevice calls HwidUserDevices_createUserHwidDevice. +func (sc *HwidUserDevicesClient) CreateUserHwidDevice(ctx context.Context, request *CreateUserHwidDeviceRequest, options ...RequestOption) (HwidUserDevicesCreateUserHwidDeviceRes, error) { + return sc.client.HwidUserDevicesCreateUserHwidDevice(ctx, request, options...) +} + +// DeleteAllUserHwidDevices calls HwidUserDevices_deleteAllUserHwidDevices. +func (sc *HwidUserDevicesClient) DeleteAllUserHwidDevices(ctx context.Context, request *DeleteAllUserHwidDevicesRequest, options ...RequestOption) (HwidUserDevicesDeleteAllUserHwidDevicesRes, error) { + return sc.client.HwidUserDevicesDeleteAllUserHwidDevices(ctx, request, options...) +} + +// DeleteUserHwidDevice calls HwidUserDevices_deleteUserHwidDevice. +func (sc *HwidUserDevicesClient) DeleteUserHwidDevice(ctx context.Context, request *DeleteUserHwidDeviceRequest, options ...RequestOption) (HwidUserDevicesDeleteUserHwidDeviceRes, error) { + return sc.client.HwidUserDevicesDeleteUserHwidDevice(ctx, request, options...) +} + +// GetAllUsers calls HwidUserDevices_getAllUsers. +func (sc *HwidUserDevicesClient) GetAllUsers(ctx context.Context, size int, start int, options ...RequestOption) (HwidUserDevicesGetAllUsersRes, error) { + return sc.client.HwidUserDevicesGetAllUsers(ctx, HwidUserDevicesGetAllUsersParams{ + Size: NewOptInt(size), + Start: NewOptInt(start), + }, options...) +} + +// GetHwidDevicesStats calls HwidUserDevices_getHwidDevicesStats. +func (sc *HwidUserDevicesClient) GetHwidDevicesStats(ctx context.Context, options ...RequestOption) (HwidUserDevicesGetHwidDevicesStatsRes, error) { + return sc.client.HwidUserDevicesGetHwidDevicesStats(ctx, options...) +} + +// GetTopUsersByHwidDevices calls HwidUserDevices_getTopUsersByHwidDevices. +func (sc *HwidUserDevicesClient) GetTopUsersByHwidDevices(ctx context.Context, size int, start int, options ...RequestOption) (HwidUserDevicesGetTopUsersByHwidDevicesRes, error) { + return sc.client.HwidUserDevicesGetTopUsersByHwidDevices(ctx, HwidUserDevicesGetTopUsersByHwidDevicesParams{ + Size: NewOptInt(size), + Start: NewOptInt(start), + }, options...) +} + +// GetUserHwidDevices calls HwidUserDevices_getUserHwidDevices. +func (sc *HwidUserDevicesClient) GetUserHwidDevices(ctx context.Context, useruuid string, options ...RequestOption) (HwidUserDevicesGetUserHwidDevicesRes, error) { + return sc.client.HwidUserDevicesGetUserHwidDevices(ctx, HwidUserDevicesGetUserHwidDevicesParams{ + UserUuid: useruuid, + }, options...) +} + +// InfraBillingClient provides InfraBilling operations. +type InfraBillingClient struct { + client *Client +} + +// NewInfraBillingClient creates a new InfraBillingClient. +func NewInfraBillingClient(client *Client) *InfraBillingClient { + return &InfraBillingClient{client: client} +} + +// CreateInfraBillingHistoryRecord calls InfraBilling_createInfraBillingHistoryRecord. +func (sc *InfraBillingClient) CreateInfraBillingHistoryRecord(ctx context.Context, request *CreateInfraBillingHistoryRecordRequest, options ...RequestOption) (InfraBillingCreateInfraBillingHistoryRecordRes, error) { + return sc.client.InfraBillingCreateInfraBillingHistoryRecord(ctx, request, options...) +} + +// CreateInfraBillingNode calls InfraBilling_createInfraBillingNode. +func (sc *InfraBillingClient) CreateInfraBillingNode(ctx context.Context, request *CreateInfraBillingNodeRequest, options ...RequestOption) (InfraBillingCreateInfraBillingNodeRes, error) { + return sc.client.InfraBillingCreateInfraBillingNode(ctx, request, options...) +} + +// CreateInfraProvider calls InfraBilling_createInfraProvider. +func (sc *InfraBillingClient) CreateInfraProvider(ctx context.Context, request *CreateInfraProviderRequest, options ...RequestOption) (InfraBillingCreateInfraProviderRes, error) { + return sc.client.InfraBillingCreateInfraProvider(ctx, request, options...) +} + +// DeleteInfraBillingHistoryRecordByUuid calls InfraBilling_deleteInfraBillingHistoryRecordByUuid. +func (sc *InfraBillingClient) DeleteInfraBillingHistoryRecordByUuid(ctx context.Context, uuid string, options ...RequestOption) (InfraBillingDeleteInfraBillingHistoryRecordByUuidRes, error) { + return sc.client.InfraBillingDeleteInfraBillingHistoryRecordByUuid(ctx, InfraBillingDeleteInfraBillingHistoryRecordByUuidParams{ + UUID: uuid, + }, options...) +} + +// DeleteInfraBillingNodeByUuid calls InfraBilling_deleteInfraBillingNodeByUuid. +func (sc *InfraBillingClient) DeleteInfraBillingNodeByUuid(ctx context.Context, uuid string, options ...RequestOption) (InfraBillingDeleteInfraBillingNodeByUuidRes, error) { + return sc.client.InfraBillingDeleteInfraBillingNodeByUuid(ctx, InfraBillingDeleteInfraBillingNodeByUuidParams{ + UUID: uuid, + }, options...) +} + +// DeleteInfraProviderByUuid calls InfraBilling_deleteInfraProviderByUuid. +func (sc *InfraBillingClient) DeleteInfraProviderByUuid(ctx context.Context, uuid string, options ...RequestOption) (InfraBillingDeleteInfraProviderByUuidRes, error) { + return sc.client.InfraBillingDeleteInfraProviderByUuid(ctx, InfraBillingDeleteInfraProviderByUuidParams{ + UUID: uuid, + }, options...) +} + +// GetBillingNodes calls InfraBilling_getBillingNodes. +func (sc *InfraBillingClient) GetBillingNodes(ctx context.Context, options ...RequestOption) (InfraBillingGetBillingNodesRes, error) { + return sc.client.InfraBillingGetBillingNodes(ctx, options...) +} + +// GetInfraBillingHistoryRecords calls InfraBilling_getInfraBillingHistoryRecords. +func (sc *InfraBillingClient) GetInfraBillingHistoryRecords(ctx context.Context, options ...RequestOption) (InfraBillingGetInfraBillingHistoryRecordsRes, error) { + return sc.client.InfraBillingGetInfraBillingHistoryRecords(ctx, options...) +} + +// GetInfraProviderByUuid calls InfraBilling_getInfraProviderByUuid. +func (sc *InfraBillingClient) GetInfraProviderByUuid(ctx context.Context, uuid string, options ...RequestOption) (InfraBillingGetInfraProviderByUuidRes, error) { + return sc.client.InfraBillingGetInfraProviderByUuid(ctx, InfraBillingGetInfraProviderByUuidParams{ + UUID: uuid, + }, options...) +} + +// GetInfraProviders calls InfraBilling_getInfraProviders. +func (sc *InfraBillingClient) GetInfraProviders(ctx context.Context, options ...RequestOption) (InfraBillingGetInfraProvidersRes, error) { + return sc.client.InfraBillingGetInfraProviders(ctx, options...) +} + +// UpdateInfraBillingNode calls InfraBilling_updateInfraBillingNode. +func (sc *InfraBillingClient) UpdateInfraBillingNode(ctx context.Context, request *UpdateInfraBillingNodeRequest, options ...RequestOption) (InfraBillingUpdateInfraBillingNodeRes, error) { + return sc.client.InfraBillingUpdateInfraBillingNode(ctx, request, options...) +} + +// UpdateInfraProvider calls InfraBilling_updateInfraProvider. +func (sc *InfraBillingClient) UpdateInfraProvider(ctx context.Context, request *UpdateInfraProviderRequest, options ...RequestOption) (InfraBillingUpdateInfraProviderRes, error) { + return sc.client.InfraBillingUpdateInfraProvider(ctx, request, options...) +} + +// InternalSquadClient provides InternalSquad operations. +type InternalSquadClient struct { + client *Client +} + +// NewInternalSquadClient creates a new InternalSquadClient. +func NewInternalSquadClient(client *Client) *InternalSquadClient { + return &InternalSquadClient{client: client} +} + +// AddUsersToInternalSquad calls InternalSquad_addUsersToInternalSquad. +func (sc *InternalSquadClient) AddUsersToInternalSquad(ctx context.Context, uuid string, options ...RequestOption) (InternalSquadAddUsersToInternalSquadRes, error) { + return sc.client.InternalSquadAddUsersToInternalSquad(ctx, InternalSquadAddUsersToInternalSquadParams{ + UUID: uuid, + }, options...) +} + +// CreateInternalSquad calls InternalSquad_createInternalSquad. +func (sc *InternalSquadClient) CreateInternalSquad(ctx context.Context, request *CreateInternalSquadRequest, options ...RequestOption) (InternalSquadCreateInternalSquadRes, error) { + return sc.client.InternalSquadCreateInternalSquad(ctx, request, options...) +} + +// DeleteInternalSquad calls InternalSquad_deleteInternalSquad. +func (sc *InternalSquadClient) DeleteInternalSquad(ctx context.Context, uuid string, options ...RequestOption) (InternalSquadDeleteInternalSquadRes, error) { + return sc.client.InternalSquadDeleteInternalSquad(ctx, InternalSquadDeleteInternalSquadParams{ + UUID: uuid, + }, options...) +} + +// GetInternalSquadAccessibleNodes calls InternalSquad_getInternalSquadAccessibleNodes. +func (sc *InternalSquadClient) GetInternalSquadAccessibleNodes(ctx context.Context, uuid string, options ...RequestOption) (InternalSquadGetInternalSquadAccessibleNodesRes, error) { + return sc.client.InternalSquadGetInternalSquadAccessibleNodes(ctx, InternalSquadGetInternalSquadAccessibleNodesParams{ + UUID: uuid, + }, options...) +} + +// GetInternalSquadByUuid calls InternalSquad_getInternalSquadByUuid. +func (sc *InternalSquadClient) GetInternalSquadByUuid(ctx context.Context, uuid string, options ...RequestOption) (InternalSquadGetInternalSquadByUuidRes, error) { + return sc.client.InternalSquadGetInternalSquadByUuid(ctx, InternalSquadGetInternalSquadByUuidParams{ + UUID: uuid, + }, options...) +} + +// GetInternalSquads calls InternalSquad_getInternalSquads. +func (sc *InternalSquadClient) GetInternalSquads(ctx context.Context, options ...RequestOption) (InternalSquadGetInternalSquadsRes, error) { + return sc.client.InternalSquadGetInternalSquads(ctx, options...) +} + +// RemoveUsersFromInternalSquad calls InternalSquad_removeUsersFromInternalSquad. +func (sc *InternalSquadClient) RemoveUsersFromInternalSquad(ctx context.Context, uuid string, options ...RequestOption) (InternalSquadRemoveUsersFromInternalSquadRes, error) { + return sc.client.InternalSquadRemoveUsersFromInternalSquad(ctx, InternalSquadRemoveUsersFromInternalSquadParams{ + UUID: uuid, + }, options...) +} + +// ReorderInternalSquads calls InternalSquad_reorderInternalSquads. +func (sc *InternalSquadClient) ReorderInternalSquads(ctx context.Context, request *ReorderRequest, options ...RequestOption) (InternalSquadReorderInternalSquadsRes, error) { + return sc.client.InternalSquadReorderInternalSquads(ctx, request, options...) +} + +// UpdateInternalSquad calls InternalSquad_updateInternalSquad. +func (sc *InternalSquadClient) UpdateInternalSquad(ctx context.Context, request *UpdateInternalSquadRequest, options ...RequestOption) (InternalSquadUpdateInternalSquadRes, error) { + return sc.client.InternalSquadUpdateInternalSquad(ctx, request, options...) +} + +// IpControlClient provides IpControl operations. +type IpControlClient struct { + client *Client +} + +// NewIpControlClient creates a new IpControlClient. +func NewIpControlClient(client *Client) *IpControlClient { + return &IpControlClient{client: client} +} + +// DropConnections calls IpControl_dropConnections. +func (sc *IpControlClient) DropConnections(ctx context.Context, request *DropConnectionsRequest, options ...RequestOption) (IpControlDropConnectionsRes, error) { + return sc.client.IpControlDropConnections(ctx, request, options...) +} + +// FetchUserIps calls IpControl_fetchUserIps. +func (sc *IpControlClient) FetchUserIps(ctx context.Context, uuid string, options ...RequestOption) (IpControlFetchUserIpsRes, error) { + return sc.client.IpControlFetchUserIps(ctx, IpControlFetchUserIpsParams{ + UUID: uuid, + }, options...) +} + +// FetchUsersIps calls IpControl_fetchUsersIps. +func (sc *IpControlClient) FetchUsersIps(ctx context.Context, nodeuuid string, options ...RequestOption) (IpControlFetchUsersIpsRes, error) { + return sc.client.IpControlFetchUsersIps(ctx, IpControlFetchUsersIpsParams{ + NodeUuid: nodeuuid, + }, options...) +} + +// GetFetchIpsResult calls IpControl_getFetchIpsResult. +func (sc *IpControlClient) GetFetchIpsResult(ctx context.Context, jobid string, options ...RequestOption) (IpControlGetFetchIpsResultRes, error) { + return sc.client.IpControlGetFetchIpsResult(ctx, IpControlGetFetchIpsResultParams{ + JobId: jobid, + }, options...) +} + +// GetFetchUsersIpsResult calls IpControl_getFetchUsersIpsResult. +func (sc *IpControlClient) GetFetchUsersIpsResult(ctx context.Context, jobid string, options ...RequestOption) (IpControlGetFetchUsersIpsResultRes, error) { + return sc.client.IpControlGetFetchUsersIpsResult(ctx, IpControlGetFetchUsersIpsResultParams{ + JobId: jobid, + }, options...) +} + +// KeygenClient provides Keygen operations. +type KeygenClient struct { + client *Client +} + +// NewKeygenClient creates a new KeygenClient. +func NewKeygenClient(client *Client) *KeygenClient { + return &KeygenClient{client: client} +} + +// GenerateKey calls Keygen_generateKey. +func (sc *KeygenClient) GenerateKey(ctx context.Context, options ...RequestOption) (KeygenGenerateKeyRes, error) { + return sc.client.KeygenGenerateKey(ctx, options...) +} + +// MetadataClient provides Metadata operations. +type MetadataClient struct { + client *Client +} + +// NewMetadataClient creates a new MetadataClient. +func NewMetadataClient(client *Client) *MetadataClient { + return &MetadataClient{client: client} +} + +// GetNodeMetadata calls Metadata_getNodeMetadata. +func (sc *MetadataClient) GetNodeMetadata(ctx context.Context, uuid string, options ...RequestOption) (MetadataGetNodeMetadataRes, error) { + return sc.client.MetadataGetNodeMetadata(ctx, MetadataGetNodeMetadataParams{ + UUID: uuid, + }, options...) +} + +// GetUserMetadata calls Metadata_getUserMetadata. +func (sc *MetadataClient) GetUserMetadata(ctx context.Context, uuid string, options ...RequestOption) (MetadataGetUserMetadataRes, error) { + return sc.client.MetadataGetUserMetadata(ctx, MetadataGetUserMetadataParams{ + UUID: uuid, + }, options...) +} + +// UpsertNodeMetadata calls Metadata_upsertNodeMetadata. +func (sc *MetadataClient) UpsertNodeMetadata(ctx context.Context, request *UpsertUserMetadataRequestBodyRequest, uuid string, options ...RequestOption) (MetadataUpsertNodeMetadataRes, error) { + return sc.client.MetadataUpsertNodeMetadata(ctx, request, MetadataUpsertNodeMetadataParams{ + UUID: uuid, + }, options...) +} + +// UpsertUserMetadata calls Metadata_upsertUserMetadata. +func (sc *MetadataClient) UpsertUserMetadata(ctx context.Context, request *UpsertUserMetadataRequestBodyRequest, uuid string, options ...RequestOption) (MetadataUpsertUserMetadataRes, error) { + return sc.client.MetadataUpsertUserMetadata(ctx, request, MetadataUpsertUserMetadataParams{ + UUID: uuid, + }, options...) +} + +// NodePluginClient provides NodePlugin operations. +type NodePluginClient struct { + client *Client +} + +// NewNodePluginClient creates a new NodePluginClient. +func NewNodePluginClient(client *Client) *NodePluginClient { + return &NodePluginClient{client: client} +} + +// CloneNodePlugin calls NodePlugin_cloneNodePlugin. +func (sc *NodePluginClient) CloneNodePlugin(ctx context.Context, request *CloneNodePluginRequestRequest, options ...RequestOption) (NodePluginCloneNodePluginRes, error) { + return sc.client.NodePluginCloneNodePlugin(ctx, request, options...) +} + +// CreateConfig calls NodePlugin_createConfig. +func (sc *NodePluginClient) CreateConfig(ctx context.Context, request *CreateNodePluginRequest, options ...RequestOption) (NodePluginCreateConfigRes, error) { + return sc.client.NodePluginCreateConfig(ctx, request, options...) +} + +// DeleteConfig calls NodePlugin_deleteConfig. +func (sc *NodePluginClient) DeleteConfig(ctx context.Context, uuid string, options ...RequestOption) (NodePluginDeleteConfigRes, error) { + return sc.client.NodePluginDeleteConfig(ctx, NodePluginDeleteConfigParams{ + UUID: uuid, + }, options...) +} + +// GetAllConfigs calls NodePlugin_getAllConfigs. +func (sc *NodePluginClient) GetAllConfigs(ctx context.Context, options ...RequestOption) (NodePluginGetAllConfigsRes, error) { + return sc.client.NodePluginGetAllConfigs(ctx, options...) +} + +// GetConfigByUuid calls NodePlugin_getConfigByUuid. +func (sc *NodePluginClient) GetConfigByUuid(ctx context.Context, uuid string, options ...RequestOption) (NodePluginGetConfigByUuidRes, error) { + return sc.client.NodePluginGetConfigByUuid(ctx, NodePluginGetConfigByUuidParams{ + UUID: uuid, + }, options...) +} + +// PluginExecutor calls NodePlugin_pluginExecutor. +func (sc *NodePluginClient) PluginExecutor(ctx context.Context, request *PluginExecutorRequest, options ...RequestOption) (NodePluginPluginExecutorRes, error) { + return sc.client.NodePluginPluginExecutor(ctx, request, options...) +} + +// ReorderNodePlugins calls NodePlugin_reorderNodePlugins. +func (sc *NodePluginClient) ReorderNodePlugins(ctx context.Context, request *ReorderRequest, options ...RequestOption) (NodePluginReorderNodePluginsRes, error) { + return sc.client.NodePluginReorderNodePlugins(ctx, request, options...) +} + +// UpdateConfig calls NodePlugin_updateConfig. +func (sc *NodePluginClient) UpdateConfig(ctx context.Context, request *UpdateNodePluginRequest, options ...RequestOption) (NodePluginUpdateConfigRes, error) { + return sc.client.NodePluginUpdateConfig(ctx, request, options...) +} + +// NodesClient provides Nodes operations. +type NodesClient struct { + client *Client +} + +// NewNodesClient creates a new NodesClient. +func NewNodesClient(client *Client) *NodesClient { + return &NodesClient{client: client} +} + +// BulkNodesActions calls Nodes_bulkNodesActions. +func (sc *NodesClient) BulkNodesActions(ctx context.Context, request *BulkNodesActionsRequest, options ...RequestOption) (NodesBulkNodesActionsRes, error) { + return sc.client.NodesBulkNodesActions(ctx, request, options...) +} + +// BulkNodesUpdate calls Nodes_bulkNodesUpdate. +func (sc *NodesClient) BulkNodesUpdate(ctx context.Context, request *BulkNodesUpdateRequest, options ...RequestOption) (NodesBulkNodesUpdateRes, error) { + return sc.client.NodesBulkNodesUpdate(ctx, request, options...) +} + +// CreateNode calls Nodes_createNode. +func (sc *NodesClient) CreateNode(ctx context.Context, request *CreateNodeRequest, options ...RequestOption) (NodesCreateNodeRes, error) { + return sc.client.NodesCreateNode(ctx, request, options...) +} + +// DeleteNode calls Nodes_deleteNode. +func (sc *NodesClient) DeleteNode(ctx context.Context, uuid string, options ...RequestOption) (NodesDeleteNodeRes, error) { + return sc.client.NodesDeleteNode(ctx, NodesDeleteNodeParams{ + UUID: uuid, + }, options...) +} + +// DisableNode calls Nodes_disableNode. +func (sc *NodesClient) DisableNode(ctx context.Context, uuid string, options ...RequestOption) (NodesDisableNodeRes, error) { + return sc.client.NodesDisableNode(ctx, NodesDisableNodeParams{ + UUID: uuid, + }, options...) +} + +// EnableNode calls Nodes_enableNode. +func (sc *NodesClient) EnableNode(ctx context.Context, uuid string, options ...RequestOption) (NodesEnableNodeRes, error) { + return sc.client.NodesEnableNode(ctx, NodesEnableNodeParams{ + UUID: uuid, + }, options...) +} + +// GetAllNodes calls Nodes_getAllNodes. +func (sc *NodesClient) GetAllNodes(ctx context.Context, options ...RequestOption) (NodesGetAllNodesRes, error) { + return sc.client.NodesGetAllNodes(ctx, options...) +} + +// GetAllNodesTags calls Nodes_getAllNodesTags. +func (sc *NodesClient) GetAllNodesTags(ctx context.Context, options ...RequestOption) (NodesGetAllNodesTagsRes, error) { + return sc.client.NodesGetAllNodesTags(ctx, options...) +} + +// GetOneNode calls Nodes_getOneNode. +func (sc *NodesClient) GetOneNode(ctx context.Context, uuid string, options ...RequestOption) (NodesGetOneNodeRes, error) { + return sc.client.NodesGetOneNode(ctx, NodesGetOneNodeParams{ + UUID: uuid, + }, options...) +} + +// ProfileModification calls Nodes_profileModification. +func (sc *NodesClient) ProfileModification(ctx context.Context, request *ProfileModificationRequest, options ...RequestOption) (NodesProfileModificationRes, error) { + return sc.client.NodesProfileModification(ctx, request, options...) +} + +// ReorderNodes calls Nodes_reorderNodes. +func (sc *NodesClient) ReorderNodes(ctx context.Context, request *ReorderNodeRequest, options ...RequestOption) (NodesReorderNodesRes, error) { + return sc.client.NodesReorderNodes(ctx, request, options...) +} + +// ResetNodeTraffic calls Nodes_resetNodeTraffic. +func (sc *NodesClient) ResetNodeTraffic(ctx context.Context, uuid string, options ...RequestOption) (NodesResetNodeTrafficRes, error) { + return sc.client.NodesResetNodeTraffic(ctx, NodesResetNodeTrafficParams{ + UUID: uuid, + }, options...) +} + +// RestartAllNodes calls Nodes_restartAllNodes. +func (sc *NodesClient) RestartAllNodes(ctx context.Context, request *RestartAllNodesRequestBody, options ...RequestOption) (NodesRestartAllNodesRes, error) { + return sc.client.NodesRestartAllNodes(ctx, request, options...) +} + +// RestartNode calls Nodes_restartNode. +func (sc *NodesClient) RestartNode(ctx context.Context, uuid string, options ...RequestOption) (NodesRestartNodeRes, error) { + return sc.client.NodesRestartNode(ctx, NodesRestartNodeParams{ + UUID: uuid, + }, options...) +} + +// UpdateNode calls Nodes_updateNode. +func (sc *NodesClient) UpdateNode(ctx context.Context, request *UpdateNodeRequest, options ...RequestOption) (NodesUpdateNodeRes, error) { + return sc.client.NodesUpdateNode(ctx, request, options...) +} + +// NodesUsageHistoryClient provides NodesUsageHistory operations. +type NodesUsageHistoryClient struct { + client *Client +} + +// NewNodesUsageHistoryClient creates a new NodesUsageHistoryClient. +func NewNodesUsageHistoryClient(client *Client) *NodesUsageHistoryClient { + return &NodesUsageHistoryClient{client: client} +} + +// GetStatsNodesUsage calls NodesUsageHistory_getStatsNodesUsage. +func (sc *NodesUsageHistoryClient) GetStatsNodesUsage(ctx context.Context, params NodesUsageHistoryGetStatsNodesUsageParams, options ...RequestOption) (NodesUsageHistoryGetStatsNodesUsageRes, error) { + return sc.client.NodesUsageHistoryGetStatsNodesUsage(ctx, params, options...) +} + +// PasskeyClient provides Passkey operations. +type PasskeyClient struct { + client *Client +} + +// NewPasskeyClient creates a new PasskeyClient. +func NewPasskeyClient(client *Client) *PasskeyClient { + return &PasskeyClient{client: client} +} + +// DeletePasskey calls Passkey_deletePasskey. +func (sc *PasskeyClient) DeletePasskey(ctx context.Context, request *DeletePasskeyRequest, options ...RequestOption) (PasskeyDeletePasskeyRes, error) { + return sc.client.PasskeyDeletePasskey(ctx, request, options...) +} + +// GetActivePasskeys calls Passkey_getActivePasskeys. +func (sc *PasskeyClient) GetActivePasskeys(ctx context.Context, options ...RequestOption) (PasskeyGetActivePasskeysRes, error) { + return sc.client.PasskeyGetActivePasskeys(ctx, options...) +} + +// PasskeyRegistrationOptions calls Passkey_passkeyRegistrationOptions. +func (sc *PasskeyClient) PasskeyRegistrationOptions(ctx context.Context, options ...RequestOption) (PasskeyPasskeyRegistrationOptionsRes, error) { + return sc.client.PasskeyPasskeyRegistrationOptions(ctx, options...) +} + +// PasskeyRegistrationVerify calls Passkey_passkeyRegistrationVerify. +func (sc *PasskeyClient) PasskeyRegistrationVerify(ctx context.Context, request *PasskeyOptions, options ...RequestOption) (PasskeyPasskeyRegistrationVerifyRes, error) { + return sc.client.PasskeyPasskeyRegistrationVerify(ctx, request, options...) +} + +// UpdatePasskey calls Passkey_updatePasskey. +func (sc *PasskeyClient) UpdatePasskey(ctx context.Context, request *UpdatePasskeyRequest, options ...RequestOption) (PasskeyUpdatePasskeyRes, error) { + return sc.client.PasskeyUpdatePasskey(ctx, request, options...) +} + +// RemnawaveSettingsClient provides RemnawaveSettings operations. +type RemnawaveSettingsClient struct { + client *Client +} + +// NewRemnawaveSettingsClient creates a new RemnawaveSettingsClient. +func NewRemnawaveSettingsClient(client *Client) *RemnawaveSettingsClient { + return &RemnawaveSettingsClient{client: client} +} + +// GetSettings calls RemnawaveSettings_getSettings. +func (sc *RemnawaveSettingsClient) GetSettings(ctx context.Context, options ...RequestOption) (RemnawaveSettingsGetSettingsRes, error) { + return sc.client.RemnawaveSettingsGetSettings(ctx, options...) +} + +// UpdateSettings calls RemnawaveSettings_updateSettings. +func (sc *RemnawaveSettingsClient) UpdateSettings(ctx context.Context, request *UpdateRemnawaveSettingsRequest, options ...RequestOption) (RemnawaveSettingsUpdateSettingsRes, error) { + return sc.client.RemnawaveSettingsUpdateSettings(ctx, request, options...) +} + +// SnippetsClient provides Snippets operations. +type SnippetsClient struct { + client *Client +} + +// NewSnippetsClient creates a new SnippetsClient. +func NewSnippetsClient(client *Client) *SnippetsClient { + return &SnippetsClient{client: client} +} + +// CreateSnippet calls Snippets_createSnippet. +func (sc *SnippetsClient) CreateSnippet(ctx context.Context, request *SnippetRequest, options ...RequestOption) (SnippetsCreateSnippetRes, error) { + return sc.client.SnippetsCreateSnippet(ctx, request, options...) +} + +// DeleteSnippetByName calls Snippets_deleteSnippetByName. +func (sc *SnippetsClient) DeleteSnippetByName(ctx context.Context, request *DeleteSnippetRequest, options ...RequestOption) (SnippetsDeleteSnippetByNameRes, error) { + return sc.client.SnippetsDeleteSnippetByName(ctx, request, options...) +} + +// GetSnippets calls Snippets_getSnippets. +func (sc *SnippetsClient) GetSnippets(ctx context.Context, options ...RequestOption) (SnippetsGetSnippetsRes, error) { + return sc.client.SnippetsGetSnippets(ctx, options...) +} + +// UpdateSnippet calls Snippets_updateSnippet. +func (sc *SnippetsClient) UpdateSnippet(ctx context.Context, request *SnippetRequest, options ...RequestOption) (SnippetsUpdateSnippetRes, error) { + return sc.client.SnippetsUpdateSnippet(ctx, request, options...) +} + +// SubscriptionClient provides Subscription operations. +type SubscriptionClient struct { + client *Client +} + +// NewSubscriptionClient creates a new SubscriptionClient. +func NewSubscriptionClient(client *Client) *SubscriptionClient { + return &SubscriptionClient{client: client} +} + +// GetSubscription calls Subscription_getSubscription. +func (sc *SubscriptionClient) GetSubscription(ctx context.Context, shortuuid string, options ...RequestOption) (SubscriptionGetSubscriptionOK, error) { + return sc.client.SubscriptionGetSubscription(ctx, SubscriptionGetSubscriptionParams{ + ShortUuid: shortuuid, + }, options...) +} + +// GetSubscriptionByClientType calls Subscription_getSubscriptionByClientType. +func (sc *SubscriptionClient) GetSubscriptionByClientType(ctx context.Context, params SubscriptionGetSubscriptionByClientTypeParams, options ...RequestOption) (SubscriptionGetSubscriptionByClientTypeOK, error) { + return sc.client.SubscriptionGetSubscriptionByClientType(ctx, params, options...) +} + +// GetSubscriptionInfoByShortUuid calls Subscription_getSubscriptionInfoByShortUuid. +func (sc *SubscriptionClient) GetSubscriptionInfoByShortUuid(ctx context.Context, shortuuid string, options ...RequestOption) (SubscriptionGetSubscriptionInfoByShortUuidRes, error) { + return sc.client.SubscriptionGetSubscriptionInfoByShortUuid(ctx, SubscriptionGetSubscriptionInfoByShortUuidParams{ + ShortUuid: shortuuid, + }, options...) +} + +// SubscriptionPageConfigClient provides SubscriptionPageConfig operations. +type SubscriptionPageConfigClient struct { + client *Client +} + +// NewSubscriptionPageConfigClient creates a new SubscriptionPageConfigClient. +func NewSubscriptionPageConfigClient(client *Client) *SubscriptionPageConfigClient { + return &SubscriptionPageConfigClient{client: client} +} + +// CloneSubscriptionPageConfig calls SubscriptionPageConfig_cloneSubscriptionPageConfig. +func (sc *SubscriptionPageConfigClient) CloneSubscriptionPageConfig(ctx context.Context, request *CloneNodePluginRequestRequest, options ...RequestOption) (SubscriptionPageConfigCloneSubscriptionPageConfigRes, error) { + return sc.client.SubscriptionPageConfigCloneSubscriptionPageConfig(ctx, request, options...) +} + +// CreateConfig calls SubscriptionPageConfig_createConfig. +func (sc *SubscriptionPageConfigClient) CreateConfig(ctx context.Context, request *CreateSubscriptionPageConfigRequest, options ...RequestOption) (SubscriptionPageConfigCreateConfigRes, error) { + return sc.client.SubscriptionPageConfigCreateConfig(ctx, request, options...) +} + +// DeleteConfig calls SubscriptionPageConfig_deleteConfig. +func (sc *SubscriptionPageConfigClient) DeleteConfig(ctx context.Context, uuid string, options ...RequestOption) (SubscriptionPageConfigDeleteConfigRes, error) { + return sc.client.SubscriptionPageConfigDeleteConfig(ctx, SubscriptionPageConfigDeleteConfigParams{ + UUID: uuid, + }, options...) +} + +// GetAllConfigs calls SubscriptionPageConfig_getAllConfigs. +func (sc *SubscriptionPageConfigClient) GetAllConfigs(ctx context.Context, options ...RequestOption) (SubscriptionPageConfigGetAllConfigsRes, error) { + return sc.client.SubscriptionPageConfigGetAllConfigs(ctx, options...) +} + +// GetConfigByUuid calls SubscriptionPageConfig_getConfigByUuid. +func (sc *SubscriptionPageConfigClient) GetConfigByUuid(ctx context.Context, uuid string, options ...RequestOption) (SubscriptionPageConfigGetConfigByUuidRes, error) { + return sc.client.SubscriptionPageConfigGetConfigByUuid(ctx, SubscriptionPageConfigGetConfigByUuidParams{ + UUID: uuid, + }, options...) +} + +// ReorderSubscriptionPageConfigs calls SubscriptionPageConfig_reorderSubscriptionPageConfigs. +func (sc *SubscriptionPageConfigClient) ReorderSubscriptionPageConfigs(ctx context.Context, request *ReorderRequest, options ...RequestOption) (SubscriptionPageConfigReorderSubscriptionPageConfigsRes, error) { + return sc.client.SubscriptionPageConfigReorderSubscriptionPageConfigs(ctx, request, options...) +} + +// UpdateConfig calls SubscriptionPageConfig_updateConfig. +func (sc *SubscriptionPageConfigClient) UpdateConfig(ctx context.Context, request *UpdateSubscriptionPageConfigRequest, options ...RequestOption) (SubscriptionPageConfigUpdateConfigRes, error) { + return sc.client.SubscriptionPageConfigUpdateConfig(ctx, request, options...) +} + +// SubscriptionSettingsClient provides SubscriptionSettings operations. +type SubscriptionSettingsClient struct { + client *Client +} + +// NewSubscriptionSettingsClient creates a new SubscriptionSettingsClient. +func NewSubscriptionSettingsClient(client *Client) *SubscriptionSettingsClient { + return &SubscriptionSettingsClient{client: client} +} + +// GetSettings calls SubscriptionSettings_getSettings. +func (sc *SubscriptionSettingsClient) GetSettings(ctx context.Context, options ...RequestOption) (SubscriptionSettingsGetSettingsRes, error) { + return sc.client.SubscriptionSettingsGetSettings(ctx, options...) +} + +// UpdateSettings calls SubscriptionSettings_updateSettings. +func (sc *SubscriptionSettingsClient) UpdateSettings(ctx context.Context, request *UpdateSubscriptionSettingsRequest, options ...RequestOption) (SubscriptionSettingsUpdateSettingsRes, error) { + return sc.client.SubscriptionSettingsUpdateSettings(ctx, request, options...) +} + +// SubscriptionTemplateClient provides SubscriptionTemplate operations. +type SubscriptionTemplateClient struct { + client *Client +} + +// NewSubscriptionTemplateClient creates a new SubscriptionTemplateClient. +func NewSubscriptionTemplateClient(client *Client) *SubscriptionTemplateClient { + return &SubscriptionTemplateClient{client: client} +} + +// CreateTemplate calls SubscriptionTemplate_createTemplate. +func (sc *SubscriptionTemplateClient) CreateTemplate(ctx context.Context, request *CreateSubscriptionTemplateRequest, options ...RequestOption) (SubscriptionTemplateCreateTemplateRes, error) { + return sc.client.SubscriptionTemplateCreateTemplate(ctx, request, options...) +} + +// DeleteTemplate calls SubscriptionTemplate_deleteTemplate. +func (sc *SubscriptionTemplateClient) DeleteTemplate(ctx context.Context, uuid string, options ...RequestOption) (SubscriptionTemplateDeleteTemplateRes, error) { + return sc.client.SubscriptionTemplateDeleteTemplate(ctx, SubscriptionTemplateDeleteTemplateParams{ + UUID: uuid, + }, options...) +} + +// GetAllTemplates calls SubscriptionTemplate_getAllTemplates. +func (sc *SubscriptionTemplateClient) GetAllTemplates(ctx context.Context, options ...RequestOption) (SubscriptionTemplateGetAllTemplatesRes, error) { + return sc.client.SubscriptionTemplateGetAllTemplates(ctx, options...) +} + +// GetTemplateByUuid calls SubscriptionTemplate_getTemplateByUuid. +func (sc *SubscriptionTemplateClient) GetTemplateByUuid(ctx context.Context, uuid string, options ...RequestOption) (SubscriptionTemplateGetTemplateByUuidRes, error) { + return sc.client.SubscriptionTemplateGetTemplateByUuid(ctx, SubscriptionTemplateGetTemplateByUuidParams{ + UUID: uuid, + }, options...) +} + +// ReorderSubscriptionTemplates calls SubscriptionTemplate_reorderSubscriptionTemplates. +func (sc *SubscriptionTemplateClient) ReorderSubscriptionTemplates(ctx context.Context, request *ReorderRequest, options ...RequestOption) (SubscriptionTemplateReorderSubscriptionTemplatesRes, error) { + return sc.client.SubscriptionTemplateReorderSubscriptionTemplates(ctx, request, options...) +} + +// UpdateTemplate calls SubscriptionTemplate_updateTemplate. +func (sc *SubscriptionTemplateClient) UpdateTemplate(ctx context.Context, request *UpdateTemplateRequest, options ...RequestOption) (SubscriptionTemplateUpdateTemplateRes, error) { + return sc.client.SubscriptionTemplateUpdateTemplate(ctx, request, options...) +} + +// SubscriptionsClient provides Subscriptions operations. +type SubscriptionsClient struct { + client *Client +} + +// NewSubscriptionsClient creates a new SubscriptionsClient. +func NewSubscriptionsClient(client *Client) *SubscriptionsClient { + return &SubscriptionsClient{client: client} +} + +// GetAllSubscriptions calls Subscriptions_getAllSubscriptions. +func (sc *SubscriptionsClient) GetAllSubscriptions(ctx context.Context, size int, start int, options ...RequestOption) (SubscriptionsGetAllSubscriptionsRes, error) { + return sc.client.SubscriptionsGetAllSubscriptions(ctx, SubscriptionsGetAllSubscriptionsParams{ + Size: NewOptInt(size), + Start: NewOptInt(start), + }, options...) +} + +// GetConnectionKeysByUuid calls Subscriptions_getConnectionKeysByUuid. +func (sc *SubscriptionsClient) GetConnectionKeysByUuid(ctx context.Context, uuid string, options ...RequestOption) (SubscriptionsGetConnectionKeysByUuidRes, error) { + return sc.client.SubscriptionsGetConnectionKeysByUuid(ctx, SubscriptionsGetConnectionKeysByUuidParams{ + UUID: uuid, + }, options...) +} + +// GetRawSubscriptionByShortUuid calls Subscriptions_getRawSubscriptionByShortUuid. +func (sc *SubscriptionsClient) GetRawSubscriptionByShortUuid(ctx context.Context, withdisabledhosts bool, shortuuid string, options ...RequestOption) (SubscriptionsGetRawSubscriptionByShortUuidRes, error) { + return sc.client.SubscriptionsGetRawSubscriptionByShortUuid(ctx, SubscriptionsGetRawSubscriptionByShortUuidParams{ + WithDisabledHosts: NewOptBool(withdisabledhosts), + ShortUuid: shortuuid, + }, options...) +} + +// GetSubpageConfigByShortUuid calls Subscriptions_getSubpageConfigByShortUuid. +func (sc *SubscriptionsClient) GetSubpageConfigByShortUuid(ctx context.Context, request *GetSubpageConfigByShortUuidRequestBody, shortuuid string, options ...RequestOption) (SubscriptionsGetSubpageConfigByShortUuidRes, error) { + return sc.client.SubscriptionsGetSubpageConfigByShortUuid(ctx, request, SubscriptionsGetSubpageConfigByShortUuidParams{ + ShortUuid: shortuuid, + }, options...) +} + +// GetSubscriptionByShortUuidProtected calls Subscriptions_getSubscriptionByShortUuidProtected. +func (sc *SubscriptionsClient) GetSubscriptionByShortUuidProtected(ctx context.Context, shortuuid string, options ...RequestOption) (SubscriptionsGetSubscriptionByShortUuidProtectedRes, error) { + return sc.client.SubscriptionsGetSubscriptionByShortUuidProtected(ctx, SubscriptionsGetSubscriptionByShortUuidProtectedParams{ + ShortUuid: shortuuid, + }, options...) +} + +// GetSubscriptionByUsername calls Subscriptions_getSubscriptionByUsername. +func (sc *SubscriptionsClient) GetSubscriptionByUsername(ctx context.Context, username string, options ...RequestOption) (SubscriptionsGetSubscriptionByUsernameRes, error) { + return sc.client.SubscriptionsGetSubscriptionByUsername(ctx, SubscriptionsGetSubscriptionByUsernameParams{ + Username: username, + }, options...) +} + +// GetSubscriptionByUuid calls Subscriptions_getSubscriptionByUuid. +func (sc *SubscriptionsClient) GetSubscriptionByUuid(ctx context.Context, uuid string, options ...RequestOption) (SubscriptionsGetSubscriptionByUuidRes, error) { + return sc.client.SubscriptionsGetSubscriptionByUuid(ctx, SubscriptionsGetSubscriptionByUuidParams{ + UUID: uuid, + }, options...) +} + +// SystemClient provides System operations. +type SystemClient struct { + client *Client +} + +// NewSystemClient creates a new SystemClient. +func NewSystemClient(client *Client) *SystemClient { + return &SystemClient{client: client} +} + +// DebugSrrMatcher calls System_debugSrrMatcher. +func (sc *SystemClient) DebugSrrMatcher(ctx context.Context, request *DebugSrrMatcherRequest, options ...RequestOption) (SystemDebugSrrMatcherRes, error) { + return sc.client.SystemDebugSrrMatcher(ctx, request, options...) +} + +// EncryptHappCryptoLink calls System_encryptHappCryptoLink. +func (sc *SystemClient) EncryptHappCryptoLink(ctx context.Context, request *EncryptHappCryptoLinkRequest, options ...RequestOption) (SystemEncryptHappCryptoLinkRes, error) { + return sc.client.SystemEncryptHappCryptoLink(ctx, request, options...) +} + +// GetBandwidthStats calls System_getBandwidthStats. +func (sc *SystemClient) GetBandwidthStats(ctx context.Context, options ...RequestOption) (SystemGetBandwidthStatsRes, error) { + return sc.client.SystemGetBandwidthStats(ctx, options...) +} + +// GetMetadata calls System_getMetadata. +func (sc *SystemClient) GetMetadata(ctx context.Context, options ...RequestOption) (SystemGetMetadataRes, error) { + return sc.client.SystemGetMetadata(ctx, options...) +} + +// GetNodesMetrics calls System_getNodesMetrics. +func (sc *SystemClient) GetNodesMetrics(ctx context.Context, options ...RequestOption) (SystemGetNodesMetricsRes, error) { + return sc.client.SystemGetNodesMetrics(ctx, options...) +} + +// GetNodesStatistics calls System_getNodesStatistics. +func (sc *SystemClient) GetNodesStatistics(ctx context.Context, options ...RequestOption) (SystemGetNodesStatisticsRes, error) { + return sc.client.SystemGetNodesStatistics(ctx, options...) +} + +// GetRecap calls System_getRecap. +func (sc *SystemClient) GetRecap(ctx context.Context, options ...RequestOption) (SystemGetRecapRes, error) { + return sc.client.SystemGetRecap(ctx, options...) +} + +// GetRemnawaveHealth calls System_getRemnawaveHealth. +func (sc *SystemClient) GetRemnawaveHealth(ctx context.Context, options ...RequestOption) (SystemGetRemnawaveHealthRes, error) { + return sc.client.SystemGetRemnawaveHealth(ctx, options...) +} + +// GetStats calls System_getStats. +func (sc *SystemClient) GetStats(ctx context.Context, options ...RequestOption) (SystemGetStatsRes, error) { + return sc.client.SystemGetStats(ctx, options...) +} + +// GetX25519Keypairs calls System_getX25519Keypairs. +func (sc *SystemClient) GetX25519Keypairs(ctx context.Context, options ...RequestOption) (SystemGetX25519KeypairsRes, error) { + return sc.client.SystemGetX25519Keypairs(ctx, options...) +} + +// TorrentBlockerReportsClient provides TorrentBlockerReports operations. +type TorrentBlockerReportsClient struct { + client *Client +} + +// NewTorrentBlockerReportsClient creates a new TorrentBlockerReportsClient. +func NewTorrentBlockerReportsClient(client *Client) *TorrentBlockerReportsClient { + return &TorrentBlockerReportsClient{client: client} +} + +// GetTorrentBlockerReports calls TorrentBlockerReports_getTorrentBlockerReports. +func (sc *TorrentBlockerReportsClient) GetTorrentBlockerReports(ctx context.Context, size int, start int, options ...RequestOption) (TorrentBlockerReportsGetTorrentBlockerReportsRes, error) { + return sc.client.TorrentBlockerReportsGetTorrentBlockerReports(ctx, TorrentBlockerReportsGetTorrentBlockerReportsParams{ + Size: NewOptInt(size), + Start: NewOptInt(start), + }, options...) +} + +// GetTorrentBlockerReportsStats calls TorrentBlockerReports_getTorrentBlockerReportsStats. +func (sc *TorrentBlockerReportsClient) GetTorrentBlockerReportsStats(ctx context.Context, options ...RequestOption) (TorrentBlockerReportsGetTorrentBlockerReportsStatsRes, error) { + return sc.client.TorrentBlockerReportsGetTorrentBlockerReportsStats(ctx, options...) +} + +// TruncateTorrentBlockerReports calls TorrentBlockerReports_truncateTorrentBlockerReports. +func (sc *TorrentBlockerReportsClient) TruncateTorrentBlockerReports(ctx context.Context, options ...RequestOption) (TorrentBlockerReportsTruncateTorrentBlockerReportsRes, error) { + return sc.client.TorrentBlockerReportsTruncateTorrentBlockerReports(ctx, options...) +} + +// UserSubscriptionRequestHistoryClient provides UserSubscriptionRequestHistory operations. +type UserSubscriptionRequestHistoryClient struct { + client *Client +} + +// NewUserSubscriptionRequestHistoryClient creates a new UserSubscriptionRequestHistoryClient. +func NewUserSubscriptionRequestHistoryClient(client *Client) *UserSubscriptionRequestHistoryClient { + return &UserSubscriptionRequestHistoryClient{client: client} +} + +// GetSubscriptionRequestHistory calls UserSubscriptionRequestHistory_getSubscriptionRequestHistory. +func (sc *UserSubscriptionRequestHistoryClient) GetSubscriptionRequestHistory(ctx context.Context, size int, start int, options ...RequestOption) (UserSubscriptionRequestHistoryGetSubscriptionRequestHistoryRes, error) { + return sc.client.UserSubscriptionRequestHistoryGetSubscriptionRequestHistory(ctx, UserSubscriptionRequestHistoryGetSubscriptionRequestHistoryParams{ + Size: NewOptInt(size), + Start: NewOptInt(start), + }, options...) +} + +// GetSubscriptionRequestHistoryStats calls UserSubscriptionRequestHistory_getSubscriptionRequestHistoryStats. +func (sc *UserSubscriptionRequestHistoryClient) GetSubscriptionRequestHistoryStats(ctx context.Context, options ...RequestOption) (UserSubscriptionRequestHistoryGetSubscriptionRequestHistoryStatsRes, error) { + return sc.client.UserSubscriptionRequestHistoryGetSubscriptionRequestHistoryStats(ctx, options...) +} + +// UsersClient provides Users operations. +type UsersClient struct { + client *Client +} + +// NewUsersClient creates a new UsersClient. +func NewUsersClient(client *Client) *UsersClient { + return &UsersClient{client: client} +} + +// CreateUser calls Users_createUser. +func (sc *UsersClient) CreateUser(ctx context.Context, request *CreateUserRequest, options ...RequestOption) (UsersCreateUserRes, error) { + return sc.client.UsersCreateUser(ctx, request, options...) +} + +// DeleteUser calls Users_deleteUser. +func (sc *UsersClient) DeleteUser(ctx context.Context, uuid string, options ...RequestOption) (UsersDeleteUserRes, error) { + return sc.client.UsersDeleteUser(ctx, UsersDeleteUserParams{ + UUID: uuid, + }, options...) +} + +// DisableUser calls Users_disableUser. +func (sc *UsersClient) DisableUser(ctx context.Context, uuid string, options ...RequestOption) (UsersDisableUserRes, error) { + return sc.client.UsersDisableUser(ctx, UsersDisableUserParams{ + UUID: uuid, + }, options...) +} + +// EnableUser calls Users_enableUser. +func (sc *UsersClient) EnableUser(ctx context.Context, uuid string, options ...RequestOption) (UsersEnableUserRes, error) { + return sc.client.UsersEnableUser(ctx, UsersEnableUserParams{ + UUID: uuid, + }, options...) +} + +// GetAllTags calls Users_getAllTags. +func (sc *UsersClient) GetAllTags(ctx context.Context, options ...RequestOption) (UsersGetAllTagsRes, error) { + return sc.client.UsersGetAllTags(ctx, options...) +} + +// GetAllUsers calls Users_getAllUsers. +func (sc *UsersClient) GetAllUsers(ctx context.Context, size int, start int, options ...RequestOption) (UsersGetAllUsersRes, error) { + return sc.client.UsersGetAllUsers(ctx, UsersGetAllUsersParams{ + Size: NewOptInt(size), + Start: NewOptInt(start), + }, options...) +} + +// GetUserAccessibleNodes calls Users_getUserAccessibleNodes. +func (sc *UsersClient) GetUserAccessibleNodes(ctx context.Context, uuid string, options ...RequestOption) (UsersGetUserAccessibleNodesRes, error) { + return sc.client.UsersGetUserAccessibleNodes(ctx, UsersGetUserAccessibleNodesParams{ + UUID: uuid, + }, options...) +} + +// GetUserById calls Users_getUserById. +func (sc *UsersClient) GetUserById(ctx context.Context, id string, options ...RequestOption) (UsersGetUserByIdRes, error) { + return sc.client.UsersGetUserById(ctx, UsersGetUserByIdParams{ + ID: id, + }, options...) +} + +// GetUserByShortUuid calls Users_getUserByShortUuid. +func (sc *UsersClient) GetUserByShortUuid(ctx context.Context, shortuuid string, options ...RequestOption) (UsersGetUserByShortUuidRes, error) { + return sc.client.UsersGetUserByShortUuid(ctx, UsersGetUserByShortUuidParams{ + ShortUuid: shortuuid, + }, options...) +} + +// GetUserByTelegramId calls Users_getUserByTelegramId. +func (sc *UsersClient) GetUserByTelegramId(ctx context.Context, telegramid string, options ...RequestOption) (UsersGetUserByTelegramIdRes, error) { + return sc.client.UsersGetUserByTelegramId(ctx, UsersGetUserByTelegramIdParams{ + TelegramId: telegramid, + }, options...) +} + +// GetUserByUsername calls Users_getUserByUsername. +func (sc *UsersClient) GetUserByUsername(ctx context.Context, username string, options ...RequestOption) (UsersGetUserByUsernameRes, error) { + return sc.client.UsersGetUserByUsername(ctx, UsersGetUserByUsernameParams{ + Username: username, + }, options...) +} + +// GetUserByUuid calls Users_getUserByUuid. +func (sc *UsersClient) GetUserByUuid(ctx context.Context, uuid string, options ...RequestOption) (UsersGetUserByUuidRes, error) { + return sc.client.UsersGetUserByUuid(ctx, UsersGetUserByUuidParams{ + UUID: uuid, + }, options...) +} + +// GetUserSubscriptionRequestHistory calls Users_getUserSubscriptionRequestHistory. +func (sc *UsersClient) GetUserSubscriptionRequestHistory(ctx context.Context, uuid string, options ...RequestOption) (UsersGetUserSubscriptionRequestHistoryRes, error) { + return sc.client.UsersGetUserSubscriptionRequestHistory(ctx, UsersGetUserSubscriptionRequestHistoryParams{ + UUID: uuid, + }, options...) +} + +// GetUsersByEmail calls Users_getUsersByEmail. +func (sc *UsersClient) GetUsersByEmail(ctx context.Context, email string, options ...RequestOption) (UsersGetUsersByEmailRes, error) { + return sc.client.UsersGetUsersByEmail(ctx, UsersGetUsersByEmailParams{ + Email: email, + }, options...) +} + +// GetUsersByTag calls Users_getUsersByTag. +func (sc *UsersClient) GetUsersByTag(ctx context.Context, tag string, options ...RequestOption) (UsersGetUsersByTagRes, error) { + return sc.client.UsersGetUsersByTag(ctx, UsersGetUsersByTagParams{ + Tag: tag, + }, options...) +} + +// ResetUserTraffic calls Users_resetUserTraffic. +func (sc *UsersClient) ResetUserTraffic(ctx context.Context, uuid string, options ...RequestOption) (UsersResetUserTrafficRes, error) { + return sc.client.UsersResetUserTraffic(ctx, UsersResetUserTrafficParams{ + UUID: uuid, + }, options...) +} + +// ResolveUser calls Users_resolveUser. +func (sc *UsersClient) ResolveUser(ctx context.Context, request *ResolveUserRequestBody, options ...RequestOption) (UsersResolveUserRes, error) { + return sc.client.UsersResolveUser(ctx, request, options...) +} + +// RevokeUserSubscription calls Users_revokeUserSubscription. +func (sc *UsersClient) RevokeUserSubscription(ctx context.Context, request *RevokeUserSubscriptionBody, uuid string, options ...RequestOption) (UsersRevokeUserSubscriptionRes, error) { + return sc.client.UsersRevokeUserSubscription(ctx, request, UsersRevokeUserSubscriptionParams{ + UUID: uuid, + }, options...) +} + +// UpdateUser calls Users_updateUser. +func (sc *UsersClient) UpdateUser(ctx context.Context, request *UpdateUserRequest, options ...RequestOption) (UsersUpdateUserRes, error) { + return sc.client.UsersUpdateUser(ctx, request, options...) +} + +// UsersBulkActionsClient provides UsersBulkActions operations. +type UsersBulkActionsClient struct { + client *Client +} + +// NewUsersBulkActionsClient creates a new UsersBulkActionsClient. +func NewUsersBulkActionsClient(client *Client) *UsersBulkActionsClient { + return &UsersBulkActionsClient{client: client} +} + +// BulkAllExtendExpirationDate calls UsersBulkActions_bulkAllExtendExpirationDate. +func (sc *UsersBulkActionsClient) BulkAllExtendExpirationDate(ctx context.Context, request *BulkAllExtendExpirationDateRequest, options ...RequestOption) (UsersBulkActionsBulkAllExtendExpirationDateRes, error) { + return sc.client.UsersBulkActionsBulkAllExtendExpirationDate(ctx, request, options...) +} + +// BulkAllResetUserTraffic calls UsersBulkActions_bulkAllResetUserTraffic. +func (sc *UsersBulkActionsClient) BulkAllResetUserTraffic(ctx context.Context, options ...RequestOption) (UsersBulkActionsBulkAllResetUserTrafficRes, error) { + return sc.client.UsersBulkActionsBulkAllResetUserTraffic(ctx, options...) +} + +// BulkDeleteUsers calls UsersBulkActions_bulkDeleteUsers. +func (sc *UsersBulkActionsClient) BulkDeleteUsers(ctx context.Context, request *BulkUuidsRequest, options ...RequestOption) (UsersBulkActionsBulkDeleteUsersRes, error) { + return sc.client.UsersBulkActionsBulkDeleteUsers(ctx, request, options...) +} + +// BulkDeleteUsersByStatus calls UsersBulkActions_bulkDeleteUsersByStatus. +func (sc *UsersBulkActionsClient) BulkDeleteUsersByStatus(ctx context.Context, request *BulkDeleteUsersByStatusRequest, options ...RequestOption) (UsersBulkActionsBulkDeleteUsersByStatusRes, error) { + return sc.client.UsersBulkActionsBulkDeleteUsersByStatus(ctx, request, options...) +} + +// BulkExtendExpirationDate calls UsersBulkActions_bulkExtendExpirationDate. +func (sc *UsersBulkActionsClient) BulkExtendExpirationDate(ctx context.Context, request *BulkExtendExpirationDateRequest, options ...RequestOption) (UsersBulkActionsBulkExtendExpirationDateRes, error) { + return sc.client.UsersBulkActionsBulkExtendExpirationDate(ctx, request, options...) +} + +// BulkResetUserTraffic calls UsersBulkActions_bulkResetUserTraffic. +func (sc *UsersBulkActionsClient) BulkResetUserTraffic(ctx context.Context, request *BulkUuidsRequest, options ...RequestOption) (UsersBulkActionsBulkResetUserTrafficRes, error) { + return sc.client.UsersBulkActionsBulkResetUserTraffic(ctx, request, options...) +} + +// BulkRevokeUsersSubscription calls UsersBulkActions_bulkRevokeUsersSubscription. +func (sc *UsersBulkActionsClient) BulkRevokeUsersSubscription(ctx context.Context, request *BulkUuidsRequest, options ...RequestOption) (UsersBulkActionsBulkRevokeUsersSubscriptionRes, error) { + return sc.client.UsersBulkActionsBulkRevokeUsersSubscription(ctx, request, options...) +} + +// BulkUpdateAllUsers calls UsersBulkActions_bulkUpdateAllUsers. +func (sc *UsersBulkActionsClient) BulkUpdateAllUsers(ctx context.Context, request *BulkAllUpdateUsersRequest, options ...RequestOption) (UsersBulkActionsBulkUpdateAllUsersRes, error) { + return sc.client.UsersBulkActionsBulkUpdateAllUsers(ctx, request, options...) +} + +// BulkUpdateUsers calls UsersBulkActions_bulkUpdateUsers. +func (sc *UsersBulkActionsClient) BulkUpdateUsers(ctx context.Context, request *BulkUpdateUsersRequest, options ...RequestOption) (UsersBulkActionsBulkUpdateUsersRes, error) { + return sc.client.UsersBulkActionsBulkUpdateUsers(ctx, request, options...) +} + +// BulkUpdateUsersInternalSquads calls UsersBulkActions_bulkUpdateUsersInternalSquads. +func (sc *UsersBulkActionsClient) BulkUpdateUsersInternalSquads(ctx context.Context, request *BulkUpdateUsersSquadsRequest, options ...RequestOption) (UsersBulkActionsBulkUpdateUsersInternalSquadsRes, error) { + return sc.client.UsersBulkActionsBulkUpdateUsersInternalSquads(ctx, request, options...) +} + diff --git a/api/oas_cfg_gen.go b/api/oas_cfg_gen.go new file mode 100644 index 0000000..8de306e --- /dev/null +++ b/api/oas_cfg_gen.go @@ -0,0 +1,181 @@ +// Code generated by ogen, DO NOT EDIT. + +package api + +import ( + "context" + "net/http" + + ht "github.com/ogen-go/ogen/http" + "github.com/ogen-go/ogen/ogenregex" + "github.com/ogen-go/ogen/otelogen" + "go.opentelemetry.io/otel" + "go.opentelemetry.io/otel/attribute" + "go.opentelemetry.io/otel/metric" + "go.opentelemetry.io/otel/trace" +) + +var regexMap = map[string]ogenregex.Regexp{ + "^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{24,}$": ogenregex.MustCompile("^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{24,}$"), + "^[!#$%&'*+\\-.0-9A-Z^_`a-z|~]+$": ogenregex.MustCompile("^[!#$%&'*+\\-.0-9A-Z^_`a-z|~]+$"), + "^[A-Z0-9_:]+$": ogenregex.MustCompile("^[A-Z0-9_:]+$"), + "^[A-Z0-9_]+$": ogenregex.MustCompile("^[A-Z0-9_]+$"), + "^[A-Za-z0-9_\\s-]+$": ogenregex.MustCompile("^[A-Za-z0-9_\\s-]+$"), + "^[a-zA-Z0-9_-]+$": ogenregex.MustCompile("^[a-zA-Z0-9_-]+$"), +} +var ( + // Allocate option closure once. + clientSpanKind = trace.WithSpanKind(trace.SpanKindClient) +) + +type ( + optionFunc[C any] func(*C) + otelOptionFunc func(*otelConfig) +) + +type otelConfig struct { + TracerProvider trace.TracerProvider + Tracer trace.Tracer + MeterProvider metric.MeterProvider + Meter metric.Meter + Attributes []attribute.KeyValue +} + +func (cfg *otelConfig) initOTEL() { + if cfg.TracerProvider == nil { + cfg.TracerProvider = otel.GetTracerProvider() + } + if cfg.MeterProvider == nil { + cfg.MeterProvider = otel.GetMeterProvider() + } + cfg.Tracer = cfg.TracerProvider.Tracer(otelogen.Name, + trace.WithInstrumentationVersion(otelogen.SemVersion()), + ) + cfg.Meter = cfg.MeterProvider.Meter(otelogen.Name, + metric.WithInstrumentationVersion(otelogen.SemVersion()), + ) +} + +type clientConfig struct { + otelConfig + // A list of callbacks for modifying requests which are generated before sending over + // the network. + RequestEditors []RequestEditor + // A list of callbacks for modifying response. + ResponseEditors []ResponseEditor + Client ht.Client +} + +// ClientOption is client config option. +type ClientOption interface { + applyClient(*clientConfig) +} + +var _ ClientOption = (optionFunc[clientConfig])(nil) + +func (o optionFunc[C]) applyClient(c *C) { + o(c) +} + +var _ ClientOption = (otelOptionFunc)(nil) + +func (o otelOptionFunc) applyClient(c *clientConfig) { + o(&c.otelConfig) +} + +func newClientConfig(opts ...ClientOption) clientConfig { + cfg := clientConfig{ + Client: http.DefaultClient, + } + for _, opt := range opts { + opt.applyClient(&cfg) + } + cfg.initOTEL() + return cfg +} + +type baseClient struct { + cfg clientConfig + requests metric.Int64Counter + errors metric.Int64Counter + duration metric.Float64Histogram +} + +func (cfg clientConfig) baseClient() (c baseClient, err error) { + c = baseClient{cfg: cfg} + if c.requests, err = otelogen.ClientRequestCountCounter(c.cfg.Meter); err != nil { + return c, err + } + if c.errors, err = otelogen.ClientErrorsCountCounter(c.cfg.Meter); err != nil { + return c, err + } + if c.duration, err = otelogen.ClientDurationHistogram(c.cfg.Meter); err != nil { + return c, err + } + return c, nil +} + +// Option is config option. +type Option interface { + ClientOption +} + +// WithTracerProvider specifies a tracer provider to use for creating a tracer. +// +// If none is specified, the global provider is used. +func WithTracerProvider(provider trace.TracerProvider) Option { + return otelOptionFunc(func(cfg *otelConfig) { + if provider != nil { + cfg.TracerProvider = provider + } + }) +} + +// WithMeterProvider specifies a meter provider to use for creating a meter. +// +// If none is specified, the otel.GetMeterProvider() is used. +func WithMeterProvider(provider metric.MeterProvider) Option { + return otelOptionFunc(func(cfg *otelConfig) { + if provider != nil { + cfg.MeterProvider = provider + } + }) +} + +// WithAttributes specifies default otel attributes. +func WithAttributes(attributes ...attribute.KeyValue) Option { + return otelOptionFunc(func(cfg *otelConfig) { + cfg.Attributes = attributes + }) +} + +// WithClient specifies http client to use. +func WithClient(client ht.Client) ClientOption { + return optionFunc[clientConfig](func(cfg *clientConfig) { + if client != nil { + cfg.Client = client + } + }) +} + +// RequestEditor is the function signature for the RequestEditor callback function +type RequestEditor func(ctx context.Context, req *http.Request) error + +// ResponseEditor is the function signature for the ResponseEditor callback function +type ResponseEditor func(ctx context.Context, resp *http.Response) error + +// WithRequestEditor allows setting up a callback function, which will be +// called right before sending the request. This can be used to mutate the request. +func WithRequestEditor(fn RequestEditor) ClientOption { + return optionFunc[clientConfig](func(cfg *clientConfig) { + cfg.RequestEditors = append(cfg.RequestEditors, fn) + }) +} + +// WithResponseEditor allows setting up a callback function, which will be +// called right after receiving the response. This can be used to mutate the response. +func WithResponseEditor(fn ResponseEditor) ClientOption { + return optionFunc[clientConfig](func(cfg *clientConfig) { + cfg.ResponseEditors = append(cfg.ResponseEditors, fn) + }) +} diff --git a/api/oas_client_gen.go b/api/oas_client_gen.go new file mode 100644 index 0000000..c9e107c --- /dev/null +++ b/api/oas_client_gen.go @@ -0,0 +1,27821 @@ +// Code generated by ogen, DO NOT EDIT. + +package api + +import ( + "context" + "net/http" + "net/url" + "strings" + "time" + + "github.com/go-faster/errors" + "github.com/ogen-go/ogen/conv" + ht "github.com/ogen-go/ogen/http" + "github.com/ogen-go/ogen/ogenerrors" + "github.com/ogen-go/ogen/otelogen" + "github.com/ogen-go/ogen/uri" + "go.opentelemetry.io/otel/attribute" + "go.opentelemetry.io/otel/codes" + "go.opentelemetry.io/otel/metric" + semconv "go.opentelemetry.io/otel/semconv/v1.37.0" + "go.opentelemetry.io/otel/trace" +) + +type requestConfig struct { + Client ht.Client + ServerURL *url.URL + EditRequest func(req *http.Request) error + EditResponse func(resp *http.Response) error +} + +func (cfg *requestConfig) setDefaults(c baseClient) { + if cfg.Client == nil { + cfg.Client = c.cfg.Client + } +} + +func (cfg *requestConfig) onRequest(req *http.Request) error { + if fn := cfg.EditRequest; fn != nil { + return fn(req) + } + return nil +} + +func (cfg *requestConfig) onResponse(resp *http.Response) error { + if fn := cfg.EditResponse; fn != nil { + return fn(resp) + } + return nil +} + +// RequestOption defines options for request. +type RequestOption func(cfg *requestConfig) + +// WithRequestClient sets client for request. +func WithRequestClient(client ht.Client) RequestOption { + return func(cfg *requestConfig) { + cfg.Client = client + } +} + +// WithServerURL sets client for request. +func WithServerURL(u *url.URL) RequestOption { + return func(cfg *requestConfig) { + cfg.ServerURL = u + } +} + +// WithEditRequest sets function to edit request. +func WithEditRequest(fn func(req *http.Request) error) RequestOption { + return func(cfg *requestConfig) { + cfg.EditRequest = fn + } +} + +// WithEditResponse sets function to edit response. +func WithEditResponse(fn func(resp *http.Response) error) RequestOption { + return func(cfg *requestConfig) { + cfg.EditResponse = fn + } +} + +func trimTrailingSlashes(u *url.URL) { + u.Path = strings.TrimRight(u.Path, "/") + u.RawPath = strings.TrimRight(u.RawPath, "/") +} + +// Invoker invokes operations described by OpenAPI v3 specification. +type Invoker interface { + // ApiTokensCreate invokes ApiTokens_create operation. + // + // This endpoint is forbidden to use via "API-key". It can only be used with an admin JWT-token. + // + // POST /api/tokens + ApiTokensCreate(ctx context.Context, request *CreateApiTokenRequest, options ...RequestOption) (ApiTokensCreateRes, error) + // ApiTokensDelete invokes ApiTokens_delete operation. + // + // This endpoint is forbidden to use via "API-key". It can be used only with an admin JWT-token. + // + // DELETE /api/tokens/{uuid} + ApiTokensDelete(ctx context.Context, params ApiTokensDeleteParams, options ...RequestOption) (ApiTokensDeleteRes, error) + // ApiTokensFindAll invokes ApiTokens_findAll operation. + // + // This endpoint is forbidden to use via "API-key". It can only be used with admin JWT-token. + // + // GET /api/tokens + ApiTokensFindAll(ctx context.Context, options ...RequestOption) (ApiTokensFindAllRes, error) + // AuthGetStatus invokes Auth_getStatus operation. + // + // Get the status of the authentication. + // + // GET /api/auth/status + AuthGetStatus(ctx context.Context, options ...RequestOption) (AuthGetStatusRes, error) + // AuthLogin invokes Auth_login operation. + // + // Login as superadmin. + // + // POST /api/auth/login + AuthLogin(ctx context.Context, request *LoginRequest, options ...RequestOption) (AuthLoginRes, error) + // AuthOauth2Authorize invokes Auth_oauth2Authorize operation. + // + // Initiate OAuth2 authorization. + // + // POST /api/auth/oauth2/authorize + AuthOauth2Authorize(ctx context.Context, request *OAuth2AuthorizeRequest, options ...RequestOption) (AuthOauth2AuthorizeRes, error) + // AuthOauth2Callback invokes Auth_oauth2Callback operation. + // + // Callback from OAuth2. + // + // POST /api/auth/oauth2/callback + AuthOauth2Callback(ctx context.Context, request *OAuth2CallbackRequest, options ...RequestOption) (AuthOauth2CallbackRes, error) + // AuthPasskeyAuthenticationOptions invokes Auth_passkeyAuthenticationOptions operation. + // + // Get the authentication options for passkey. + // + // GET /api/auth/passkey/authentication/options + AuthPasskeyAuthenticationOptions(ctx context.Context, options ...RequestOption) (AuthPasskeyAuthenticationOptionsRes, error) + // AuthPasskeyAuthenticationVerify invokes Auth_passkeyAuthenticationVerify operation. + // + // Verify the authentication for passkey. + // + // POST /api/auth/passkey/authentication/verify + AuthPasskeyAuthenticationVerify(ctx context.Context, request *PasskeyOptions, options ...RequestOption) (AuthPasskeyAuthenticationVerifyRes, error) + // AuthRegister invokes Auth_register operation. + // + // Register as superadmin. + // + // POST /api/auth/register + AuthRegister(ctx context.Context, request *RegisterRequest, options ...RequestOption) (AuthRegisterRes, error) + // BandwidthStatsNodesGetNodeUserUsage invokes BandwidthStatsNodes_getNodeUserUsage operation. + // + // Get Node User Usage by Range and Node UUID (Legacy). + // + // GET /api/bandwidth-stats/nodes/{uuid}/users/legacy + BandwidthStatsNodesGetNodeUserUsage(ctx context.Context, params BandwidthStatsNodesGetNodeUserUsageParams, options ...RequestOption) (BandwidthStatsNodesGetNodeUserUsageRes, error) + // BandwidthStatsNodesGetStatsNodeUsersUsage invokes BandwidthStatsNodes_getStatsNodeUsersUsage operation. + // + // Get Node Users Usage by Node UUID. + // + // GET /api/bandwidth-stats/nodes/{uuid}/users + BandwidthStatsNodesGetStatsNodeUsersUsage(ctx context.Context, params BandwidthStatsNodesGetStatsNodeUsersUsageParams, options ...RequestOption) (BandwidthStatsNodesGetStatsNodeUsersUsageRes, error) + // BandwidthStatsUsersGetStatsNodesUsage invokes BandwidthStatsUsers_getStatsNodesUsage operation. + // + // Get User Usage by Range. + // + // GET /api/bandwidth-stats/users/{uuid} + BandwidthStatsUsersGetStatsNodesUsage(ctx context.Context, params BandwidthStatsUsersGetStatsNodesUsageParams, options ...RequestOption) (BandwidthStatsUsersGetStatsNodesUsageRes, error) + // BandwidthStatsUsersGetUserUsageByRange invokes BandwidthStatsUsers_getUserUsageByRange operation. + // + // Get User Usage by Range (Legacy). + // + // GET /api/bandwidth-stats/users/{uuid}/legacy + BandwidthStatsUsersGetUserUsageByRange(ctx context.Context, params BandwidthStatsUsersGetUserUsageByRangeParams, options ...RequestOption) (BandwidthStatsUsersGetUserUsageByRangeRes, error) + // ConfigProfileCreateConfigProfile invokes ConfigProfile_createConfigProfile operation. + // + // Create config profile. + // + // POST /api/config-profiles + ConfigProfileCreateConfigProfile(ctx context.Context, request *CreateConfigProfileRequest, options ...RequestOption) (ConfigProfileCreateConfigProfileRes, error) + // ConfigProfileDeleteConfigProfileByUuid invokes ConfigProfile_deleteConfigProfileByUuid operation. + // + // Delete config profile. + // + // DELETE /api/config-profiles/{uuid} + ConfigProfileDeleteConfigProfileByUuid(ctx context.Context, params ConfigProfileDeleteConfigProfileByUuidParams, options ...RequestOption) (ConfigProfileDeleteConfigProfileByUuidRes, error) + // ConfigProfileGetAllInbounds invokes ConfigProfile_getAllInbounds operation. + // + // Get all inbounds from all config profiles. + // + // GET /api/config-profiles/inbounds + ConfigProfileGetAllInbounds(ctx context.Context, options ...RequestOption) (ConfigProfileGetAllInboundsRes, error) + // ConfigProfileGetComputedConfigProfileByUuid invokes ConfigProfile_getComputedConfigProfileByUuid operation. + // + // Get computed config profile by uuid. + // + // GET /api/config-profiles/{uuid}/computed-config + ConfigProfileGetComputedConfigProfileByUuid(ctx context.Context, params ConfigProfileGetComputedConfigProfileByUuidParams, options ...RequestOption) (ConfigProfileGetComputedConfigProfileByUuidRes, error) + // ConfigProfileGetConfigProfileByUuid invokes ConfigProfile_getConfigProfileByUuid operation. + // + // Get config profile by uuid. + // + // GET /api/config-profiles/{uuid} + ConfigProfileGetConfigProfileByUuid(ctx context.Context, params ConfigProfileGetConfigProfileByUuidParams, options ...RequestOption) (ConfigProfileGetConfigProfileByUuidRes, error) + // ConfigProfileGetConfigProfiles invokes ConfigProfile_getConfigProfiles operation. + // + // Get config profiles. + // + // GET /api/config-profiles + ConfigProfileGetConfigProfiles(ctx context.Context, options ...RequestOption) (ConfigProfileGetConfigProfilesRes, error) + // ConfigProfileGetInboundsByProfileUuid invokes ConfigProfile_getInboundsByProfileUuid operation. + // + // Get inbounds by profile uuid. + // + // GET /api/config-profiles/{uuid}/inbounds + ConfigProfileGetInboundsByProfileUuid(ctx context.Context, params ConfigProfileGetInboundsByProfileUuidParams, options ...RequestOption) (ConfigProfileGetInboundsByProfileUuidRes, error) + // ConfigProfileReorderConfigProfiles invokes ConfigProfile_reorderConfigProfiles operation. + // + // Reorder config profiles. + // + // POST /api/config-profiles/actions/reorder + ConfigProfileReorderConfigProfiles(ctx context.Context, request *ReorderRequest, options ...RequestOption) (ConfigProfileReorderConfigProfilesRes, error) + // ConfigProfileUpdateConfigProfile invokes ConfigProfile_updateConfigProfile operation. + // + // Update Core Config in specific config profile. + // + // PATCH /api/config-profiles + ConfigProfileUpdateConfigProfile(ctx context.Context, request *UpdateConfigProfileRequest, options ...RequestOption) (ConfigProfileUpdateConfigProfileRes, error) + // ExternalSquadAddUsersToExternalSquad invokes ExternalSquad_addUsersToExternalSquad operation. + // + // Add all users to external squad. + // + // POST /api/external-squads/{uuid}/bulk-actions/add-users + ExternalSquadAddUsersToExternalSquad(ctx context.Context, params ExternalSquadAddUsersToExternalSquadParams, options ...RequestOption) (ExternalSquadAddUsersToExternalSquadRes, error) + // ExternalSquadCreateExternalSquad invokes ExternalSquad_createExternalSquad operation. + // + // Create external squad. + // + // POST /api/external-squads + ExternalSquadCreateExternalSquad(ctx context.Context, request *CreateExternalSquadRequest, options ...RequestOption) (ExternalSquadCreateExternalSquadRes, error) + // ExternalSquadDeleteExternalSquad invokes ExternalSquad_deleteExternalSquad operation. + // + // Delete external squad. + // + // DELETE /api/external-squads/{uuid} + ExternalSquadDeleteExternalSquad(ctx context.Context, params ExternalSquadDeleteExternalSquadParams, options ...RequestOption) (ExternalSquadDeleteExternalSquadRes, error) + // ExternalSquadGetExternalSquadByUuid invokes ExternalSquad_getExternalSquadByUuid operation. + // + // Get external squad by uuid. + // + // GET /api/external-squads/{uuid} + ExternalSquadGetExternalSquadByUuid(ctx context.Context, params ExternalSquadGetExternalSquadByUuidParams, options ...RequestOption) (ExternalSquadGetExternalSquadByUuidRes, error) + // ExternalSquadGetExternalSquads invokes ExternalSquad_getExternalSquads operation. + // + // Get all external squads. + // + // GET /api/external-squads + ExternalSquadGetExternalSquads(ctx context.Context, options ...RequestOption) (ExternalSquadGetExternalSquadsRes, error) + // ExternalSquadRemoveUsersFromExternalSquad invokes ExternalSquad_removeUsersFromExternalSquad operation. + // + // Delete users from external squad. + // + // DELETE /api/external-squads/{uuid}/bulk-actions/remove-users + ExternalSquadRemoveUsersFromExternalSquad(ctx context.Context, params ExternalSquadRemoveUsersFromExternalSquadParams, options ...RequestOption) (ExternalSquadRemoveUsersFromExternalSquadRes, error) + // ExternalSquadReorderExternalSquads invokes ExternalSquad_reorderExternalSquads operation. + // + // Reorder external squads. + // + // POST /api/external-squads/actions/reorder + ExternalSquadReorderExternalSquads(ctx context.Context, request *ReorderRequest, options ...RequestOption) (ExternalSquadReorderExternalSquadsRes, error) + // ExternalSquadUpdateExternalSquad invokes ExternalSquad_updateExternalSquad operation. + // + // Update external squad. + // + // PATCH /api/external-squads + ExternalSquadUpdateExternalSquad(ctx context.Context, request *UpdateExternalSquadRequest, options ...RequestOption) (ExternalSquadUpdateExternalSquadRes, error) + // HostsBulkActionsDeleteHosts invokes HostsBulkActions_deleteHosts operation. + // + // Delete hosts by UUIDs. + // + // POST /api/hosts/bulk/delete + HostsBulkActionsDeleteHosts(ctx context.Context, request *BulkUuidsRequest2, options ...RequestOption) (HostsBulkActionsDeleteHostsRes, error) + // HostsBulkActionsDisableHosts invokes HostsBulkActions_disableHosts operation. + // + // Disable hosts by UUIDs. + // + // POST /api/hosts/bulk/disable + HostsBulkActionsDisableHosts(ctx context.Context, request *BulkUuidsRequest2, options ...RequestOption) (HostsBulkActionsDisableHostsRes, error) + // HostsBulkActionsEnableHosts invokes HostsBulkActions_enableHosts operation. + // + // Enable hosts by UUIDs. + // + // POST /api/hosts/bulk/enable + HostsBulkActionsEnableHosts(ctx context.Context, request *BulkUuidsRequest2, options ...RequestOption) (HostsBulkActionsEnableHostsRes, error) + // HostsBulkActionsSetInboundToHosts invokes HostsBulkActions_setInboundToHosts operation. + // + // Set inbound to hosts by UUIDs. + // + // POST /api/hosts/bulk/set-inbound + HostsBulkActionsSetInboundToHosts(ctx context.Context, request *SetInboundToManyHostsRequest, options ...RequestOption) (HostsBulkActionsSetInboundToHostsRes, error) + // HostsBulkActionsSetPortToHosts invokes HostsBulkActions_setPortToHosts operation. + // + // Set port to hosts by UUIDs. + // + // POST /api/hosts/bulk/set-port + HostsBulkActionsSetPortToHosts(ctx context.Context, request *SetPortToManyHostsRequest, options ...RequestOption) (HostsBulkActionsSetPortToHostsRes, error) + // HostsCreateHost invokes Hosts_createHost operation. + // + // Create a new host. + // + // POST /api/hosts + HostsCreateHost(ctx context.Context, request *CreateHostRequest, options ...RequestOption) (HostsCreateHostRes, error) + // HostsDeleteHost invokes Hosts_deleteHost operation. + // + // Delete a host by UUID. + // + // DELETE /api/hosts/{uuid} + HostsDeleteHost(ctx context.Context, params HostsDeleteHostParams, options ...RequestOption) (HostsDeleteHostRes, error) + // HostsGetAllHostTags invokes Hosts_getAllHostTags operation. + // + // Get all existing host tags. + // + // GET /api/hosts/tags + HostsGetAllHostTags(ctx context.Context, options ...RequestOption) (HostsGetAllHostTagsRes, error) + // HostsGetAllHosts invokes Hosts_getAllHosts operation. + // + // Get all hosts. + // + // GET /api/hosts + HostsGetAllHosts(ctx context.Context, options ...RequestOption) (HostsGetAllHostsRes, error) + // HostsGetOneHost invokes Hosts_getOneHost operation. + // + // Get a host by UUID. + // + // GET /api/hosts/{uuid} + HostsGetOneHost(ctx context.Context, params HostsGetOneHostParams, options ...RequestOption) (HostsGetOneHostRes, error) + // HostsReorderHosts invokes Hosts_reorderHosts operation. + // + // Reorder hosts. + // + // POST /api/hosts/actions/reorder + HostsReorderHosts(ctx context.Context, request *ReorderHostRequest, options ...RequestOption) (HostsReorderHostsRes, error) + // HostsUpdateHost invokes Hosts_updateHost operation. + // + // Update a host. + // + // PATCH /api/hosts + HostsUpdateHost(ctx context.Context, request *UpdateHostRequest, options ...RequestOption) (HostsUpdateHostRes, error) + // HwidUserDevicesCreateUserHwidDevice invokes HwidUserDevices_createUserHwidDevice operation. + // + // Create a user HWID device. + // + // POST /api/hwid/devices + HwidUserDevicesCreateUserHwidDevice(ctx context.Context, request *CreateUserHwidDeviceRequest, options ...RequestOption) (HwidUserDevicesCreateUserHwidDeviceRes, error) + // HwidUserDevicesDeleteAllUserHwidDevices invokes HwidUserDevices_deleteAllUserHwidDevices operation. + // + // Delete all user HWID devices. + // + // POST /api/hwid/devices/delete-all + HwidUserDevicesDeleteAllUserHwidDevices(ctx context.Context, request *DeleteAllUserHwidDevicesRequest, options ...RequestOption) (HwidUserDevicesDeleteAllUserHwidDevicesRes, error) + // HwidUserDevicesDeleteUserHwidDevice invokes HwidUserDevices_deleteUserHwidDevice operation. + // + // Delete a user HWID device. + // + // POST /api/hwid/devices/delete + HwidUserDevicesDeleteUserHwidDevice(ctx context.Context, request *DeleteUserHwidDeviceRequest, options ...RequestOption) (HwidUserDevicesDeleteUserHwidDeviceRes, error) + // HwidUserDevicesGetAllUsers invokes HwidUserDevices_getAllUsers operation. + // + // Get all HWID devices. + // + // GET /api/hwid/devices + HwidUserDevicesGetAllUsers(ctx context.Context, params HwidUserDevicesGetAllUsersParams, options ...RequestOption) (HwidUserDevicesGetAllUsersRes, error) + // HwidUserDevicesGetHwidDevicesStats invokes HwidUserDevices_getHwidDevicesStats operation. + // + // Get HWID devices stats. + // + // GET /api/hwid/devices/stats + HwidUserDevicesGetHwidDevicesStats(ctx context.Context, options ...RequestOption) (HwidUserDevicesGetHwidDevicesStatsRes, error) + // HwidUserDevicesGetTopUsersByHwidDevices invokes HwidUserDevices_getTopUsersByHwidDevices operation. + // + // Get top users by HWID devices. + // + // GET /api/hwid/devices/top-users + HwidUserDevicesGetTopUsersByHwidDevices(ctx context.Context, params HwidUserDevicesGetTopUsersByHwidDevicesParams, options ...RequestOption) (HwidUserDevicesGetTopUsersByHwidDevicesRes, error) + // HwidUserDevicesGetUserHwidDevices invokes HwidUserDevices_getUserHwidDevices operation. + // + // Get user HWID devices. + // + // GET /api/hwid/devices/{userUuid} + HwidUserDevicesGetUserHwidDevices(ctx context.Context, params HwidUserDevicesGetUserHwidDevicesParams, options ...RequestOption) (HwidUserDevicesGetUserHwidDevicesRes, error) + // InfraBillingCreateInfraBillingHistoryRecord invokes InfraBilling_createInfraBillingHistoryRecord operation. + // + // Create infra billing history. + // + // POST /api/infra-billing/history + InfraBillingCreateInfraBillingHistoryRecord(ctx context.Context, request *CreateInfraBillingHistoryRecordRequest, options ...RequestOption) (InfraBillingCreateInfraBillingHistoryRecordRes, error) + // InfraBillingCreateInfraBillingNode invokes InfraBilling_createInfraBillingNode operation. + // + // Create infra billing node. + // + // POST /api/infra-billing/nodes + InfraBillingCreateInfraBillingNode(ctx context.Context, request *CreateInfraBillingNodeRequest, options ...RequestOption) (InfraBillingCreateInfraBillingNodeRes, error) + // InfraBillingCreateInfraProvider invokes InfraBilling_createInfraProvider operation. + // + // Create infra provider. + // + // POST /api/infra-billing/providers + InfraBillingCreateInfraProvider(ctx context.Context, request *CreateInfraProviderRequest, options ...RequestOption) (InfraBillingCreateInfraProviderRes, error) + // InfraBillingDeleteInfraBillingHistoryRecordByUuid invokes InfraBilling_deleteInfraBillingHistoryRecordByUuid operation. + // + // Delete infra billing history. + // + // DELETE /api/infra-billing/history/{uuid} + InfraBillingDeleteInfraBillingHistoryRecordByUuid(ctx context.Context, params InfraBillingDeleteInfraBillingHistoryRecordByUuidParams, options ...RequestOption) (InfraBillingDeleteInfraBillingHistoryRecordByUuidRes, error) + // InfraBillingDeleteInfraBillingNodeByUuid invokes InfraBilling_deleteInfraBillingNodeByUuid operation. + // + // Delete infra billing node. + // + // DELETE /api/infra-billing/nodes/{uuid} + InfraBillingDeleteInfraBillingNodeByUuid(ctx context.Context, params InfraBillingDeleteInfraBillingNodeByUuidParams, options ...RequestOption) (InfraBillingDeleteInfraBillingNodeByUuidRes, error) + // InfraBillingDeleteInfraProviderByUuid invokes InfraBilling_deleteInfraProviderByUuid operation. + // + // Delete infra provider by uuid. + // + // DELETE /api/infra-billing/providers/{uuid} + InfraBillingDeleteInfraProviderByUuid(ctx context.Context, params InfraBillingDeleteInfraProviderByUuidParams, options ...RequestOption) (InfraBillingDeleteInfraProviderByUuidRes, error) + // InfraBillingGetBillingNodes invokes InfraBilling_getBillingNodes operation. + // + // Get infra billing nodes. + // + // GET /api/infra-billing/nodes + InfraBillingGetBillingNodes(ctx context.Context, options ...RequestOption) (InfraBillingGetBillingNodesRes, error) + // InfraBillingGetInfraBillingHistoryRecords invokes InfraBilling_getInfraBillingHistoryRecords operation. + // + // Get infra billing history. + // + // GET /api/infra-billing/history + InfraBillingGetInfraBillingHistoryRecords(ctx context.Context, options ...RequestOption) (InfraBillingGetInfraBillingHistoryRecordsRes, error) + // InfraBillingGetInfraProviderByUuid invokes InfraBilling_getInfraProviderByUuid operation. + // + // Get infra provider by uuid. + // + // GET /api/infra-billing/providers/{uuid} + InfraBillingGetInfraProviderByUuid(ctx context.Context, params InfraBillingGetInfraProviderByUuidParams, options ...RequestOption) (InfraBillingGetInfraProviderByUuidRes, error) + // InfraBillingGetInfraProviders invokes InfraBilling_getInfraProviders operation. + // + // Get all infra providers. + // + // GET /api/infra-billing/providers + InfraBillingGetInfraProviders(ctx context.Context, options ...RequestOption) (InfraBillingGetInfraProvidersRes, error) + // InfraBillingUpdateInfraBillingNode invokes InfraBilling_updateInfraBillingNode operation. + // + // Update infra billing nodes. + // + // PATCH /api/infra-billing/nodes + InfraBillingUpdateInfraBillingNode(ctx context.Context, request *UpdateInfraBillingNodeRequest, options ...RequestOption) (InfraBillingUpdateInfraBillingNodeRes, error) + // InfraBillingUpdateInfraProvider invokes InfraBilling_updateInfraProvider operation. + // + // Update infra provider. + // + // PATCH /api/infra-billing/providers + InfraBillingUpdateInfraProvider(ctx context.Context, request *UpdateInfraProviderRequest, options ...RequestOption) (InfraBillingUpdateInfraProviderRes, error) + // InternalSquadAddUsersToInternalSquad invokes InternalSquad_addUsersToInternalSquad operation. + // + // Add all users to internal squad. + // + // POST /api/internal-squads/{uuid}/bulk-actions/add-users + InternalSquadAddUsersToInternalSquad(ctx context.Context, params InternalSquadAddUsersToInternalSquadParams, options ...RequestOption) (InternalSquadAddUsersToInternalSquadRes, error) + // InternalSquadCreateInternalSquad invokes InternalSquad_createInternalSquad operation. + // + // Create internal squad. + // + // POST /api/internal-squads + InternalSquadCreateInternalSquad(ctx context.Context, request *CreateInternalSquadRequest, options ...RequestOption) (InternalSquadCreateInternalSquadRes, error) + // InternalSquadDeleteInternalSquad invokes InternalSquad_deleteInternalSquad operation. + // + // Delete internal squad. + // + // DELETE /api/internal-squads/{uuid} + InternalSquadDeleteInternalSquad(ctx context.Context, params InternalSquadDeleteInternalSquadParams, options ...RequestOption) (InternalSquadDeleteInternalSquadRes, error) + // InternalSquadGetInternalSquadAccessibleNodes invokes InternalSquad_getInternalSquadAccessibleNodes operation. + // + // Get internal squad accessible nodes. + // + // GET /api/internal-squads/{uuid}/accessible-nodes + InternalSquadGetInternalSquadAccessibleNodes(ctx context.Context, params InternalSquadGetInternalSquadAccessibleNodesParams, options ...RequestOption) (InternalSquadGetInternalSquadAccessibleNodesRes, error) + // InternalSquadGetInternalSquadByUuid invokes InternalSquad_getInternalSquadByUuid operation. + // + // Get internal squad by uuid. + // + // GET /api/internal-squads/{uuid} + InternalSquadGetInternalSquadByUuid(ctx context.Context, params InternalSquadGetInternalSquadByUuidParams, options ...RequestOption) (InternalSquadGetInternalSquadByUuidRes, error) + // InternalSquadGetInternalSquads invokes InternalSquad_getInternalSquads operation. + // + // Get all internal squads. + // + // GET /api/internal-squads + InternalSquadGetInternalSquads(ctx context.Context, options ...RequestOption) (InternalSquadGetInternalSquadsRes, error) + // InternalSquadRemoveUsersFromInternalSquad invokes InternalSquad_removeUsersFromInternalSquad operation. + // + // Delete users from internal squad. + // + // DELETE /api/internal-squads/{uuid}/bulk-actions/remove-users + InternalSquadRemoveUsersFromInternalSquad(ctx context.Context, params InternalSquadRemoveUsersFromInternalSquadParams, options ...RequestOption) (InternalSquadRemoveUsersFromInternalSquadRes, error) + // InternalSquadReorderInternalSquads invokes InternalSquad_reorderInternalSquads operation. + // + // Reorder internal squads. + // + // POST /api/internal-squads/actions/reorder + InternalSquadReorderInternalSquads(ctx context.Context, request *ReorderRequest, options ...RequestOption) (InternalSquadReorderInternalSquadsRes, error) + // InternalSquadUpdateInternalSquad invokes InternalSquad_updateInternalSquad operation. + // + // Update internal squad. + // + // PATCH /api/internal-squads + InternalSquadUpdateInternalSquad(ctx context.Context, request *UpdateInternalSquadRequest, options ...RequestOption) (InternalSquadUpdateInternalSquadRes, error) + // IpControlDropConnections invokes IpControl_dropConnections operation. + // + // Drop Connections for Users or IPs. + // + // POST /api/ip-control/drop-connections + IpControlDropConnections(ctx context.Context, request *DropConnectionsRequest, options ...RequestOption) (IpControlDropConnectionsRes, error) + // IpControlFetchUserIps invokes IpControl_fetchUserIps operation. + // + // Request IP List for User. + // + // POST /api/ip-control/fetch-ips/{uuid} + IpControlFetchUserIps(ctx context.Context, params IpControlFetchUserIpsParams, options ...RequestOption) (IpControlFetchUserIpsRes, error) + // IpControlFetchUsersIps invokes IpControl_fetchUsersIps operation. + // + // Request Users IPs List for Node. + // + // POST /api/ip-control/fetch-users-ips/{nodeUuid} + IpControlFetchUsersIps(ctx context.Context, params IpControlFetchUsersIpsParams, options ...RequestOption) (IpControlFetchUsersIpsRes, error) + // IpControlGetFetchIpsResult invokes IpControl_getFetchIpsResult operation. + // + // Get IP List Result by Job ID. + // + // GET /api/ip-control/fetch-ips/result/{jobId} + IpControlGetFetchIpsResult(ctx context.Context, params IpControlGetFetchIpsResultParams, options ...RequestOption) (IpControlGetFetchIpsResultRes, error) + // IpControlGetFetchUsersIpsResult invokes IpControl_getFetchUsersIpsResult operation. + // + // Get Users IPs List Result by Job ID. + // + // GET /api/ip-control/fetch-users-ips/result/{jobId} + IpControlGetFetchUsersIpsResult(ctx context.Context, params IpControlGetFetchUsersIpsResultParams, options ...RequestOption) (IpControlGetFetchUsersIpsResultRes, error) + // KeygenGenerateKey invokes Keygen_generateKey operation. + // + // Get SECRET_KEY for Remnawave Node. + // + // GET /api/keygen + KeygenGenerateKey(ctx context.Context, options ...RequestOption) (KeygenGenerateKeyRes, error) + // MetadataGetNodeMetadata invokes Metadata_getNodeMetadata operation. + // + // Get node metadata. + // + // GET /api/metadata/node/{uuid} + MetadataGetNodeMetadata(ctx context.Context, params MetadataGetNodeMetadataParams, options ...RequestOption) (MetadataGetNodeMetadataRes, error) + // MetadataGetUserMetadata invokes Metadata_getUserMetadata operation. + // + // Get user metadata. + // + // GET /api/metadata/user/{uuid} + MetadataGetUserMetadata(ctx context.Context, params MetadataGetUserMetadataParams, options ...RequestOption) (MetadataGetUserMetadataRes, error) + // MetadataUpsertNodeMetadata invokes Metadata_upsertNodeMetadata operation. + // + // Update or create Node Metadata. + // + // PUT /api/metadata/node/{uuid} + MetadataUpsertNodeMetadata(ctx context.Context, request *UpsertUserMetadataRequestBodyRequest, params MetadataUpsertNodeMetadataParams, options ...RequestOption) (MetadataUpsertNodeMetadataRes, error) + // MetadataUpsertUserMetadata invokes Metadata_upsertUserMetadata operation. + // + // Update or create User Metadata. + // + // PUT /api/metadata/user/{uuid} + MetadataUpsertUserMetadata(ctx context.Context, request *UpsertUserMetadataRequestBodyRequest, params MetadataUpsertUserMetadataParams, options ...RequestOption) (MetadataUpsertUserMetadataRes, error) + // NodePluginCloneNodePlugin invokes NodePlugin_cloneNodePlugin operation. + // + // Clone Node Plugin. + // + // POST /api/node-plugins/actions/clone + NodePluginCloneNodePlugin(ctx context.Context, request *CloneNodePluginRequestRequest, options ...RequestOption) (NodePluginCloneNodePluginRes, error) + // NodePluginCreateConfig invokes NodePlugin_createConfig operation. + // + // Create Node Plugin. + // + // POST /api/node-plugins + NodePluginCreateConfig(ctx context.Context, request *CreateNodePluginRequest, options ...RequestOption) (NodePluginCreateConfigRes, error) + // NodePluginDeleteConfig invokes NodePlugin_deleteConfig operation. + // + // Delete Node Plugin. + // + // DELETE /api/node-plugins/{uuid} + NodePluginDeleteConfig(ctx context.Context, params NodePluginDeleteConfigParams, options ...RequestOption) (NodePluginDeleteConfigRes, error) + // NodePluginGetAllConfigs invokes NodePlugin_getAllConfigs operation. + // + // Get all Node Plugins. + // + // GET /api/node-plugins + NodePluginGetAllConfigs(ctx context.Context, options ...RequestOption) (NodePluginGetAllConfigsRes, error) + // NodePluginGetConfigByUuid invokes NodePlugin_getConfigByUuid operation. + // + // Get Node Plugin by uuid. + // + // GET /api/node-plugins/{uuid} + NodePluginGetConfigByUuid(ctx context.Context, params NodePluginGetConfigByUuidParams, options ...RequestOption) (NodePluginGetConfigByUuidRes, error) + // NodePluginPluginExecutor invokes NodePlugin_pluginExecutor operation. + // + // Execute command on node plugins. + // + // POST /api/node-plugins/executor + NodePluginPluginExecutor(ctx context.Context, request *PluginExecutorRequest, options ...RequestOption) (NodePluginPluginExecutorRes, error) + // NodePluginReorderNodePlugins invokes NodePlugin_reorderNodePlugins operation. + // + // Reorder Node Plugins. + // + // POST /api/node-plugins/actions/reorder + NodePluginReorderNodePlugins(ctx context.Context, request *ReorderRequest, options ...RequestOption) (NodePluginReorderNodePluginsRes, error) + // NodePluginUpdateConfig invokes NodePlugin_updateConfig operation. + // + // Update Node Plugin. + // + // PATCH /api/node-plugins + NodePluginUpdateConfig(ctx context.Context, request *UpdateNodePluginRequest, options ...RequestOption) (NodePluginUpdateConfigRes, error) + // NodesBulkNodesActions invokes Nodes_bulkNodesActions operation. + // + // Perform actions for many nodes. + // + // POST /api/nodes/bulk-actions + NodesBulkNodesActions(ctx context.Context, request *BulkNodesActionsRequest, options ...RequestOption) (NodesBulkNodesActionsRes, error) + // NodesBulkNodesUpdate invokes Nodes_bulkNodesUpdate operation. + // + // Update many nodes. + // + // POST /api/nodes/bulk-actions/update + NodesBulkNodesUpdate(ctx context.Context, request *BulkNodesUpdateRequest, options ...RequestOption) (NodesBulkNodesUpdateRes, error) + // NodesCreateNode invokes Nodes_createNode operation. + // + // Create a new node. + // + // POST /api/nodes + NodesCreateNode(ctx context.Context, request *CreateNodeRequest, options ...RequestOption) (NodesCreateNodeRes, error) + // NodesDeleteNode invokes Nodes_deleteNode operation. + // + // Delete a node. + // + // DELETE /api/nodes/{uuid} + NodesDeleteNode(ctx context.Context, params NodesDeleteNodeParams, options ...RequestOption) (NodesDeleteNodeRes, error) + // NodesDisableNode invokes Nodes_disableNode operation. + // + // Disable a node. + // + // POST /api/nodes/{uuid}/actions/disable + NodesDisableNode(ctx context.Context, params NodesDisableNodeParams, options ...RequestOption) (NodesDisableNodeRes, error) + // NodesEnableNode invokes Nodes_enableNode operation. + // + // Enable a node. + // + // POST /api/nodes/{uuid}/actions/enable + NodesEnableNode(ctx context.Context, params NodesEnableNodeParams, options ...RequestOption) (NodesEnableNodeRes, error) + // NodesGetAllNodes invokes Nodes_getAllNodes operation. + // + // Get all nodes. + // + // GET /api/nodes + NodesGetAllNodes(ctx context.Context, options ...RequestOption) (NodesGetAllNodesRes, error) + // NodesGetAllNodesTags invokes Nodes_getAllNodesTags operation. + // + // Get all existing nodes tags. + // + // GET /api/nodes/tags + NodesGetAllNodesTags(ctx context.Context, options ...RequestOption) (NodesGetAllNodesTagsRes, error) + // NodesGetOneNode invokes Nodes_getOneNode operation. + // + // Get node by UUID. + // + // GET /api/nodes/{uuid} + NodesGetOneNode(ctx context.Context, params NodesGetOneNodeParams, options ...RequestOption) (NodesGetOneNodeRes, error) + // NodesProfileModification invokes Nodes_profileModification operation. + // + // Modify Inbounds & Profile for many nodes. + // + // POST /api/nodes/bulk-actions/profile-modification + NodesProfileModification(ctx context.Context, request *ProfileModificationRequest, options ...RequestOption) (NodesProfileModificationRes, error) + // NodesReorderNodes invokes Nodes_reorderNodes operation. + // + // Reorder nodes. + // + // POST /api/nodes/actions/reorder + NodesReorderNodes(ctx context.Context, request *ReorderNodeRequest, options ...RequestOption) (NodesReorderNodesRes, error) + // NodesResetNodeTraffic invokes Nodes_resetNodeTraffic operation. + // + // Reset Node Traffic. + // + // POST /api/nodes/{uuid}/actions/reset-traffic + NodesResetNodeTraffic(ctx context.Context, params NodesResetNodeTrafficParams, options ...RequestOption) (NodesResetNodeTrafficRes, error) + // NodesRestartAllNodes invokes Nodes_restartAllNodes operation. + // + // Restart all nodes. + // + // POST /api/nodes/actions/restart-all + NodesRestartAllNodes(ctx context.Context, request *RestartAllNodesRequestBody, options ...RequestOption) (NodesRestartAllNodesRes, error) + // NodesRestartNode invokes Nodes_restartNode operation. + // + // Restart node. + // + // POST /api/nodes/{uuid}/actions/restart + NodesRestartNode(ctx context.Context, params NodesRestartNodeParams, options ...RequestOption) (NodesRestartNodeRes, error) + // NodesUpdateNode invokes Nodes_updateNode operation. + // + // Update node. + // + // PATCH /api/nodes + NodesUpdateNode(ctx context.Context, request *UpdateNodeRequest, options ...RequestOption) (NodesUpdateNodeRes, error) + // NodesUsageHistoryGetStatsNodesUsage invokes NodesUsageHistory_getStatsNodesUsage operation. + // + // Get Nodes Usage by Range. + // + // GET /api/bandwidth-stats/nodes + NodesUsageHistoryGetStatsNodesUsage(ctx context.Context, params NodesUsageHistoryGetStatsNodesUsageParams, options ...RequestOption) (NodesUsageHistoryGetStatsNodesUsageRes, error) + // PasskeyDeletePasskey invokes Passkey_deletePasskey operation. + // + // Delete a passkey by ID. + // + // DELETE /api/passkeys + PasskeyDeletePasskey(ctx context.Context, request *DeletePasskeyRequest, options ...RequestOption) (PasskeyDeletePasskeyRes, error) + // PasskeyGetActivePasskeys invokes Passkey_getActivePasskeys operation. + // + // Get all passkeys. + // + // GET /api/passkeys + PasskeyGetActivePasskeys(ctx context.Context, options ...RequestOption) (PasskeyGetActivePasskeysRes, error) + // PasskeyPasskeyRegistrationOptions invokes Passkey_passkeyRegistrationOptions operation. + // + // Get registration options for passkey. + // + // GET /api/passkeys/registration/options + PasskeyPasskeyRegistrationOptions(ctx context.Context, options ...RequestOption) (PasskeyPasskeyRegistrationOptionsRes, error) + // PasskeyPasskeyRegistrationVerify invokes Passkey_passkeyRegistrationVerify operation. + // + // Verify registration for passkey. + // + // POST /api/passkeys/registration/verify + PasskeyPasskeyRegistrationVerify(ctx context.Context, request *PasskeyOptions, options ...RequestOption) (PasskeyPasskeyRegistrationVerifyRes, error) + // PasskeyUpdatePasskey invokes Passkey_updatePasskey operation. + // + // Update passkey. + // + // PATCH /api/passkeys + PasskeyUpdatePasskey(ctx context.Context, request *UpdatePasskeyRequest, options ...RequestOption) (PasskeyUpdatePasskeyRes, error) + // RemnawaveSettingsGetSettings invokes RemnawaveSettings_getSettings operation. + // + // Get Remnawave settings. + // + // GET /api/remnawave-settings + RemnawaveSettingsGetSettings(ctx context.Context, options ...RequestOption) (RemnawaveSettingsGetSettingsRes, error) + // RemnawaveSettingsUpdateSettings invokes RemnawaveSettings_updateSettings operation. + // + // Update Remnawave settings. + // + // PATCH /api/remnawave-settings + RemnawaveSettingsUpdateSettings(ctx context.Context, request *UpdateRemnawaveSettingsRequest, options ...RequestOption) (RemnawaveSettingsUpdateSettingsRes, error) + // SnippetsCreateSnippet invokes Snippets_createSnippet operation. + // + // Create snippet. + // + // POST /api/snippets + SnippetsCreateSnippet(ctx context.Context, request *SnippetRequest, options ...RequestOption) (SnippetsCreateSnippetRes, error) + // SnippetsDeleteSnippetByName invokes Snippets_deleteSnippetByName operation. + // + // Delete snippet. + // + // DELETE /api/snippets + SnippetsDeleteSnippetByName(ctx context.Context, request *DeleteSnippetRequest, options ...RequestOption) (SnippetsDeleteSnippetByNameRes, error) + // SnippetsGetSnippets invokes Snippets_getSnippets operation. + // + // Get snippets. + // + // GET /api/snippets + SnippetsGetSnippets(ctx context.Context, options ...RequestOption) (SnippetsGetSnippetsRes, error) + // SnippetsUpdateSnippet invokes Snippets_updateSnippet operation. + // + // Update snippet. + // + // PATCH /api/snippets + SnippetsUpdateSnippet(ctx context.Context, request *SnippetRequest, options ...RequestOption) (SnippetsUpdateSnippetRes, error) + // SubscriptionGetSubscription invokes Subscription_getSubscription operation. + // + // GET /api/sub/{shortUuid} + SubscriptionGetSubscription(ctx context.Context, params SubscriptionGetSubscriptionParams, options ...RequestOption) (SubscriptionGetSubscriptionOK, error) + // SubscriptionGetSubscriptionByClientType invokes Subscription_getSubscriptionByClientType operation. + // + // GET /api/sub/{shortUuid}/{clientType} + SubscriptionGetSubscriptionByClientType(ctx context.Context, params SubscriptionGetSubscriptionByClientTypeParams, options ...RequestOption) (SubscriptionGetSubscriptionByClientTypeOK, error) + // SubscriptionGetSubscriptionInfoByShortUuid invokes Subscription_getSubscriptionInfoByShortUuid operation. + // + // Get Subscription Info by Short UUID. + // + // GET /api/sub/{shortUuid}/info + SubscriptionGetSubscriptionInfoByShortUuid(ctx context.Context, params SubscriptionGetSubscriptionInfoByShortUuidParams, options ...RequestOption) (SubscriptionGetSubscriptionInfoByShortUuidRes, error) + // SubscriptionPageConfigCloneSubscriptionPageConfig invokes SubscriptionPageConfig_cloneSubscriptionPageConfig operation. + // + // Clone subscription page config. + // + // POST /api/subscription-page-configs/actions/clone + SubscriptionPageConfigCloneSubscriptionPageConfig(ctx context.Context, request *CloneNodePluginRequestRequest, options ...RequestOption) (SubscriptionPageConfigCloneSubscriptionPageConfigRes, error) + // SubscriptionPageConfigCreateConfig invokes SubscriptionPageConfig_createConfig operation. + // + // Create subscription page config. + // + // POST /api/subscription-page-configs + SubscriptionPageConfigCreateConfig(ctx context.Context, request *CreateSubscriptionPageConfigRequest, options ...RequestOption) (SubscriptionPageConfigCreateConfigRes, error) + // SubscriptionPageConfigDeleteConfig invokes SubscriptionPageConfig_deleteConfig operation. + // + // Delete subscription page config. + // + // DELETE /api/subscription-page-configs/{uuid} + SubscriptionPageConfigDeleteConfig(ctx context.Context, params SubscriptionPageConfigDeleteConfigParams, options ...RequestOption) (SubscriptionPageConfigDeleteConfigRes, error) + // SubscriptionPageConfigGetAllConfigs invokes SubscriptionPageConfig_getAllConfigs operation. + // + // Get all subscription page configs. + // + // GET /api/subscription-page-configs + SubscriptionPageConfigGetAllConfigs(ctx context.Context, options ...RequestOption) (SubscriptionPageConfigGetAllConfigsRes, error) + // SubscriptionPageConfigGetConfigByUuid invokes SubscriptionPageConfig_getConfigByUuid operation. + // + // Get subscription page config by uuid. + // + // GET /api/subscription-page-configs/{uuid} + SubscriptionPageConfigGetConfigByUuid(ctx context.Context, params SubscriptionPageConfigGetConfigByUuidParams, options ...RequestOption) (SubscriptionPageConfigGetConfigByUuidRes, error) + // SubscriptionPageConfigReorderSubscriptionPageConfigs invokes SubscriptionPageConfig_reorderSubscriptionPageConfigs operation. + // + // Reorder subscription page configs. + // + // POST /api/subscription-page-configs/actions/reorder + SubscriptionPageConfigReorderSubscriptionPageConfigs(ctx context.Context, request *ReorderRequest, options ...RequestOption) (SubscriptionPageConfigReorderSubscriptionPageConfigsRes, error) + // SubscriptionPageConfigUpdateConfig invokes SubscriptionPageConfig_updateConfig operation. + // + // Update subscription page config. + // + // PATCH /api/subscription-page-configs + SubscriptionPageConfigUpdateConfig(ctx context.Context, request *UpdateSubscriptionPageConfigRequest, options ...RequestOption) (SubscriptionPageConfigUpdateConfigRes, error) + // SubscriptionSettingsGetSettings invokes SubscriptionSettings_getSettings operation. + // + // Get subscription settings. + // + // GET /api/subscription-settings + SubscriptionSettingsGetSettings(ctx context.Context, options ...RequestOption) (SubscriptionSettingsGetSettingsRes, error) + // SubscriptionSettingsUpdateSettings invokes SubscriptionSettings_updateSettings operation. + // + // Update subscription settings. + // + // PATCH /api/subscription-settings + SubscriptionSettingsUpdateSettings(ctx context.Context, request *UpdateSubscriptionSettingsRequest, options ...RequestOption) (SubscriptionSettingsUpdateSettingsRes, error) + // SubscriptionTemplateCreateTemplate invokes SubscriptionTemplate_createTemplate operation. + // + // Create subscription template. + // + // POST /api/subscription-templates + SubscriptionTemplateCreateTemplate(ctx context.Context, request *CreateSubscriptionTemplateRequest, options ...RequestOption) (SubscriptionTemplateCreateTemplateRes, error) + // SubscriptionTemplateDeleteTemplate invokes SubscriptionTemplate_deleteTemplate operation. + // + // Delete subscription template. + // + // DELETE /api/subscription-templates/{uuid} + SubscriptionTemplateDeleteTemplate(ctx context.Context, params SubscriptionTemplateDeleteTemplateParams, options ...RequestOption) (SubscriptionTemplateDeleteTemplateRes, error) + // SubscriptionTemplateGetAllTemplates invokes SubscriptionTemplate_getAllTemplates operation. + // + // Get all subscription templates (wihout content). + // + // GET /api/subscription-templates + SubscriptionTemplateGetAllTemplates(ctx context.Context, options ...RequestOption) (SubscriptionTemplateGetAllTemplatesRes, error) + // SubscriptionTemplateGetTemplateByUuid invokes SubscriptionTemplate_getTemplateByUuid operation. + // + // Get subscription template by uuid. + // + // GET /api/subscription-templates/{uuid} + SubscriptionTemplateGetTemplateByUuid(ctx context.Context, params SubscriptionTemplateGetTemplateByUuidParams, options ...RequestOption) (SubscriptionTemplateGetTemplateByUuidRes, error) + // SubscriptionTemplateReorderSubscriptionTemplates invokes SubscriptionTemplate_reorderSubscriptionTemplates operation. + // + // Reorder subscription templates. + // + // POST /api/subscription-templates/actions/reorder + SubscriptionTemplateReorderSubscriptionTemplates(ctx context.Context, request *ReorderRequest, options ...RequestOption) (SubscriptionTemplateReorderSubscriptionTemplatesRes, error) + // SubscriptionTemplateUpdateTemplate invokes SubscriptionTemplate_updateTemplate operation. + // + // Update subscription template. + // + // PATCH /api/subscription-templates + SubscriptionTemplateUpdateTemplate(ctx context.Context, request *UpdateTemplateRequest, options ...RequestOption) (SubscriptionTemplateUpdateTemplateRes, error) + // SubscriptionsGetAllSubscriptions invokes Subscriptions_getAllSubscriptions operation. + // + // Get all subscriptions. + // + // GET /api/subscriptions + SubscriptionsGetAllSubscriptions(ctx context.Context, params SubscriptionsGetAllSubscriptionsParams, options ...RequestOption) (SubscriptionsGetAllSubscriptionsRes, error) + // SubscriptionsGetConnectionKeysByUuid invokes Subscriptions_getConnectionKeysByUuid operation. + // + // Get connection keys (base64 format) by uuid. + // + // GET /api/subscriptions/connection-keys/{uuid} + SubscriptionsGetConnectionKeysByUuid(ctx context.Context, params SubscriptionsGetConnectionKeysByUuidParams, options ...RequestOption) (SubscriptionsGetConnectionKeysByUuidRes, error) + // SubscriptionsGetRawSubscriptionByShortUuid invokes Subscriptions_getRawSubscriptionByShortUuid operation. + // + // Get Raw Subscription by Short UUID. + // + // GET /api/subscriptions/by-short-uuid/{shortUuid}/raw + SubscriptionsGetRawSubscriptionByShortUuid(ctx context.Context, params SubscriptionsGetRawSubscriptionByShortUuidParams, options ...RequestOption) (SubscriptionsGetRawSubscriptionByShortUuidRes, error) + // SubscriptionsGetSubpageConfigByShortUuid invokes Subscriptions_getSubpageConfigByShortUuid operation. + // + // Get Subpage Config by Short UUID. + // + // GET /api/subscriptions/subpage-config/{shortUuid} + SubscriptionsGetSubpageConfigByShortUuid(ctx context.Context, request *GetSubpageConfigByShortUuidRequestBody, params SubscriptionsGetSubpageConfigByShortUuidParams, options ...RequestOption) (SubscriptionsGetSubpageConfigByShortUuidRes, error) + // SubscriptionsGetSubscriptionByShortUuidProtected invokes Subscriptions_getSubscriptionByShortUuidProtected operation. + // + // Get subscription by short uuid (protected route). + // + // GET /api/subscriptions/by-short-uuid/{shortUuid} + SubscriptionsGetSubscriptionByShortUuidProtected(ctx context.Context, params SubscriptionsGetSubscriptionByShortUuidProtectedParams, options ...RequestOption) (SubscriptionsGetSubscriptionByShortUuidProtectedRes, error) + // SubscriptionsGetSubscriptionByUsername invokes Subscriptions_getSubscriptionByUsername operation. + // + // Get subscription by username. + // + // GET /api/subscriptions/by-username/{username} + SubscriptionsGetSubscriptionByUsername(ctx context.Context, params SubscriptionsGetSubscriptionByUsernameParams, options ...RequestOption) (SubscriptionsGetSubscriptionByUsernameRes, error) + // SubscriptionsGetSubscriptionByUuid invokes Subscriptions_getSubscriptionByUuid operation. + // + // Get subscription by uuid. + // + // GET /api/subscriptions/by-uuid/{uuid} + SubscriptionsGetSubscriptionByUuid(ctx context.Context, params SubscriptionsGetSubscriptionByUuidParams, options ...RequestOption) (SubscriptionsGetSubscriptionByUuidRes, error) + // SystemDebugSrrMatcher invokes System_debugSrrMatcher operation. + // + // Test SRR Matcher. + // + // POST /api/system/testers/srr-matcher + SystemDebugSrrMatcher(ctx context.Context, request *DebugSrrMatcherRequest, options ...RequestOption) (SystemDebugSrrMatcherRes, error) + // SystemEncryptHappCryptoLink invokes System_encryptHappCryptoLink operation. + // + // Encrypt Happ Crypto Link. + // + // POST /api/system/tools/happ/encrypt + SystemEncryptHappCryptoLink(ctx context.Context, request *EncryptHappCryptoLinkRequest, options ...RequestOption) (SystemEncryptHappCryptoLinkRes, error) + // SystemGetBandwidthStats invokes System_getBandwidthStats operation. + // + // Get Bandwidth Stats. + // + // GET /api/system/stats/bandwidth + SystemGetBandwidthStats(ctx context.Context, options ...RequestOption) (SystemGetBandwidthStatsRes, error) + // SystemGetMetadata invokes System_getMetadata operation. + // + // Get Remnawave Information. + // + // GET /api/system/metadata + SystemGetMetadata(ctx context.Context, options ...RequestOption) (SystemGetMetadataRes, error) + // SystemGetNodesMetrics invokes System_getNodesMetrics operation. + // + // Get Nodes Metrics. + // + // GET /api/system/nodes/metrics + SystemGetNodesMetrics(ctx context.Context, options ...RequestOption) (SystemGetNodesMetricsRes, error) + // SystemGetNodesStatistics invokes System_getNodesStatistics operation. + // + // Get Nodes Statistics. + // + // GET /api/system/stats/nodes + SystemGetNodesStatistics(ctx context.Context, options ...RequestOption) (SystemGetNodesStatisticsRes, error) + // SystemGetRecap invokes System_getRecap operation. + // + // Get Recap. + // + // GET /api/system/stats/recap + SystemGetRecap(ctx context.Context, options ...RequestOption) (SystemGetRecapRes, error) + // SystemGetRemnawaveHealth invokes System_getRemnawaveHealth operation. + // + // Get Remnawave Health. + // + // GET /api/system/health + SystemGetRemnawaveHealth(ctx context.Context, options ...RequestOption) (SystemGetRemnawaveHealthRes, error) + // SystemGetStats invokes System_getStats operation. + // + // Get Stats. + // + // GET /api/system/stats + SystemGetStats(ctx context.Context, options ...RequestOption) (SystemGetStatsRes, error) + // SystemGetX25519Keypairs invokes System_getX25519Keypairs operation. + // + // Generate 30 X25519 keypairs. + // + // GET /api/system/tools/x25519/generate + SystemGetX25519Keypairs(ctx context.Context, options ...RequestOption) (SystemGetX25519KeypairsRes, error) + // TorrentBlockerReportsGetTorrentBlockerReports invokes TorrentBlockerReports_getTorrentBlockerReports operation. + // + // Get Torrent Blocker Reports. + // + // GET /api/node-plugins/torrent-blocker + TorrentBlockerReportsGetTorrentBlockerReports(ctx context.Context, params TorrentBlockerReportsGetTorrentBlockerReportsParams, options ...RequestOption) (TorrentBlockerReportsGetTorrentBlockerReportsRes, error) + // TorrentBlockerReportsGetTorrentBlockerReportsStats invokes TorrentBlockerReports_getTorrentBlockerReportsStats operation. + // + // Get Torrent Blocker Reports Stats. + // + // GET /api/node-plugins/torrent-blocker/stats + TorrentBlockerReportsGetTorrentBlockerReportsStats(ctx context.Context, options ...RequestOption) (TorrentBlockerReportsGetTorrentBlockerReportsStatsRes, error) + // TorrentBlockerReportsTruncateTorrentBlockerReports invokes TorrentBlockerReports_truncateTorrentBlockerReports operation. + // + // Truncate Torrent Blocker Reports. + // + // DELETE /api/node-plugins/torrent-blocker/truncate + TorrentBlockerReportsTruncateTorrentBlockerReports(ctx context.Context, options ...RequestOption) (TorrentBlockerReportsTruncateTorrentBlockerReportsRes, error) + // UserSubscriptionRequestHistoryGetSubscriptionRequestHistory invokes UserSubscriptionRequestHistory_getSubscriptionRequestHistory operation. + // + // Get all subscription request history. + // + // GET /api/subscription-request-history + UserSubscriptionRequestHistoryGetSubscriptionRequestHistory(ctx context.Context, params UserSubscriptionRequestHistoryGetSubscriptionRequestHistoryParams, options ...RequestOption) (UserSubscriptionRequestHistoryGetSubscriptionRequestHistoryRes, error) + // UserSubscriptionRequestHistoryGetSubscriptionRequestHistoryStats invokes UserSubscriptionRequestHistory_getSubscriptionRequestHistoryStats operation. + // + // Get subscription request history stats. + // + // GET /api/subscription-request-history/stats + UserSubscriptionRequestHistoryGetSubscriptionRequestHistoryStats(ctx context.Context, options ...RequestOption) (UserSubscriptionRequestHistoryGetSubscriptionRequestHistoryStatsRes, error) + // UsersBulkActionsBulkAllExtendExpirationDate invokes UsersBulkActions_bulkAllExtendExpirationDate operation. + // + // Bulk extend all users expiration date. + // + // POST /api/users/bulk/all/extend-expiration-date + UsersBulkActionsBulkAllExtendExpirationDate(ctx context.Context, request *BulkAllExtendExpirationDateRequest, options ...RequestOption) (UsersBulkActionsBulkAllExtendExpirationDateRes, error) + // UsersBulkActionsBulkAllResetUserTraffic invokes UsersBulkActions_bulkAllResetUserTraffic operation. + // + // Bulk reset all users traffic. + // + // POST /api/users/bulk/all/reset-traffic + UsersBulkActionsBulkAllResetUserTraffic(ctx context.Context, options ...RequestOption) (UsersBulkActionsBulkAllResetUserTrafficRes, error) + // UsersBulkActionsBulkDeleteUsers invokes UsersBulkActions_bulkDeleteUsers operation. + // + // Bulk delete users by UUIDs. + // + // POST /api/users/bulk/delete + UsersBulkActionsBulkDeleteUsers(ctx context.Context, request *BulkUuidsRequest, options ...RequestOption) (UsersBulkActionsBulkDeleteUsersRes, error) + // UsersBulkActionsBulkDeleteUsersByStatus invokes UsersBulkActions_bulkDeleteUsersByStatus operation. + // + // Bulk delete users by status. + // + // POST /api/users/bulk/delete-by-status + UsersBulkActionsBulkDeleteUsersByStatus(ctx context.Context, request *BulkDeleteUsersByStatusRequest, options ...RequestOption) (UsersBulkActionsBulkDeleteUsersByStatusRes, error) + // UsersBulkActionsBulkExtendExpirationDate invokes UsersBulkActions_bulkExtendExpirationDate operation. + // + // Bulk extend all users expiration date. + // + // POST /api/users/bulk/extend-expiration-date + UsersBulkActionsBulkExtendExpirationDate(ctx context.Context, request *BulkExtendExpirationDateRequest, options ...RequestOption) (UsersBulkActionsBulkExtendExpirationDateRes, error) + // UsersBulkActionsBulkResetUserTraffic invokes UsersBulkActions_bulkResetUserTraffic operation. + // + // Bulk reset traffic users by UUIDs. + // + // POST /api/users/bulk/reset-traffic + UsersBulkActionsBulkResetUserTraffic(ctx context.Context, request *BulkUuidsRequest, options ...RequestOption) (UsersBulkActionsBulkResetUserTrafficRes, error) + // UsersBulkActionsBulkRevokeUsersSubscription invokes UsersBulkActions_bulkRevokeUsersSubscription operation. + // + // Revoke users subscription by User UUIDs. + // + // POST /api/users/bulk/revoke-subscription + UsersBulkActionsBulkRevokeUsersSubscription(ctx context.Context, request *BulkUuidsRequest, options ...RequestOption) (UsersBulkActionsBulkRevokeUsersSubscriptionRes, error) + // UsersBulkActionsBulkUpdateAllUsers invokes UsersBulkActions_bulkUpdateAllUsers operation. + // + // Bulk update all users. + // + // POST /api/users/bulk/all/update + UsersBulkActionsBulkUpdateAllUsers(ctx context.Context, request *BulkAllUpdateUsersRequest, options ...RequestOption) (UsersBulkActionsBulkUpdateAllUsersRes, error) + // UsersBulkActionsBulkUpdateUsers invokes UsersBulkActions_bulkUpdateUsers operation. + // + // Bulk update users by UUIDs. + // + // POST /api/users/bulk/update + UsersBulkActionsBulkUpdateUsers(ctx context.Context, request *BulkUpdateUsersRequest, options ...RequestOption) (UsersBulkActionsBulkUpdateUsersRes, error) + // UsersBulkActionsBulkUpdateUsersInternalSquads invokes UsersBulkActions_bulkUpdateUsersInternalSquads operation. + // + // Bulk update users internal squads by UUIDs. + // + // POST /api/users/bulk/update-squads + UsersBulkActionsBulkUpdateUsersInternalSquads(ctx context.Context, request *BulkUpdateUsersSquadsRequest, options ...RequestOption) (UsersBulkActionsBulkUpdateUsersInternalSquadsRes, error) + // UsersCreateUser invokes Users_createUser operation. + // + // Create a new user. + // + // POST /api/users + UsersCreateUser(ctx context.Context, request *CreateUserRequest, options ...RequestOption) (UsersCreateUserRes, error) + // UsersDeleteUser invokes Users_deleteUser operation. + // + // Delete user. + // + // DELETE /api/users/{uuid} + UsersDeleteUser(ctx context.Context, params UsersDeleteUserParams, options ...RequestOption) (UsersDeleteUserRes, error) + // UsersDisableUser invokes Users_disableUser operation. + // + // Disable user. + // + // POST /api/users/{uuid}/actions/disable + UsersDisableUser(ctx context.Context, params UsersDisableUserParams, options ...RequestOption) (UsersDisableUserRes, error) + // UsersEnableUser invokes Users_enableUser operation. + // + // Enable user. + // + // POST /api/users/{uuid}/actions/enable + UsersEnableUser(ctx context.Context, params UsersEnableUserParams, options ...RequestOption) (UsersEnableUserRes, error) + // UsersGetAllTags invokes Users_getAllTags operation. + // + // Get all existing user tags. + // + // GET /api/users/tags + UsersGetAllTags(ctx context.Context, options ...RequestOption) (UsersGetAllTagsRes, error) + // UsersGetAllUsers invokes Users_getAllUsers operation. + // + // Get all users. + // + // GET /api/users + UsersGetAllUsers(ctx context.Context, params UsersGetAllUsersParams, options ...RequestOption) (UsersGetAllUsersRes, error) + // UsersGetUserAccessibleNodes invokes Users_getUserAccessibleNodes operation. + // + // Get user accessible nodes. + // + // GET /api/users/{uuid}/accessible-nodes + UsersGetUserAccessibleNodes(ctx context.Context, params UsersGetUserAccessibleNodesParams, options ...RequestOption) (UsersGetUserAccessibleNodesRes, error) + // UsersGetUserById invokes Users_getUserById operation. + // + // Get user by ID. + // + // GET /api/users/by-id/{id} + UsersGetUserById(ctx context.Context, params UsersGetUserByIdParams, options ...RequestOption) (UsersGetUserByIdRes, error) + // UsersGetUserByShortUuid invokes Users_getUserByShortUuid operation. + // + // Get user by Short UUID. + // + // GET /api/users/by-short-uuid/{shortUuid} + UsersGetUserByShortUuid(ctx context.Context, params UsersGetUserByShortUuidParams, options ...RequestOption) (UsersGetUserByShortUuidRes, error) + // UsersGetUserByTelegramId invokes Users_getUserByTelegramId operation. + // + // Get users by telegram ID. + // + // GET /api/users/by-telegram-id/{telegramId} + UsersGetUserByTelegramId(ctx context.Context, params UsersGetUserByTelegramIdParams, options ...RequestOption) (UsersGetUserByTelegramIdRes, error) + // UsersGetUserByUsername invokes Users_getUserByUsername operation. + // + // Get user by username. + // + // GET /api/users/by-username/{username} + UsersGetUserByUsername(ctx context.Context, params UsersGetUserByUsernameParams, options ...RequestOption) (UsersGetUserByUsernameRes, error) + // UsersGetUserByUuid invokes Users_getUserByUuid operation. + // + // Get user by UUID. + // + // GET /api/users/{uuid} + UsersGetUserByUuid(ctx context.Context, params UsersGetUserByUuidParams, options ...RequestOption) (UsersGetUserByUuidRes, error) + // UsersGetUserSubscriptionRequestHistory invokes Users_getUserSubscriptionRequestHistory operation. + // + // Get user subscription request history, recent 24 records. + // + // GET /api/users/{uuid}/subscription-request-history + UsersGetUserSubscriptionRequestHistory(ctx context.Context, params UsersGetUserSubscriptionRequestHistoryParams, options ...RequestOption) (UsersGetUserSubscriptionRequestHistoryRes, error) + // UsersGetUsersByEmail invokes Users_getUsersByEmail operation. + // + // Get users by email. + // + // GET /api/users/by-email/{email} + UsersGetUsersByEmail(ctx context.Context, params UsersGetUsersByEmailParams, options ...RequestOption) (UsersGetUsersByEmailRes, error) + // UsersGetUsersByTag invokes Users_getUsersByTag operation. + // + // Get users by tag. + // + // GET /api/users/by-tag/{tag} + UsersGetUsersByTag(ctx context.Context, params UsersGetUsersByTagParams, options ...RequestOption) (UsersGetUsersByTagRes, error) + // UsersResetUserTraffic invokes Users_resetUserTraffic operation. + // + // Reset user traffic. + // + // POST /api/users/{uuid}/actions/reset-traffic + UsersResetUserTraffic(ctx context.Context, params UsersResetUserTrafficParams, options ...RequestOption) (UsersResetUserTrafficRes, error) + // UsersResolveUser invokes Users_resolveUser operation. + // + // Resolve a user. + // + // POST /api/users/resolve + UsersResolveUser(ctx context.Context, request *ResolveUserRequestBody, options ...RequestOption) (UsersResolveUserRes, error) + // UsersRevokeUserSubscription invokes Users_revokeUserSubscription operation. + // + // Revoke user subscription. + // + // POST /api/users/{uuid}/actions/revoke + UsersRevokeUserSubscription(ctx context.Context, request *RevokeUserSubscriptionBody, params UsersRevokeUserSubscriptionParams, options ...RequestOption) (UsersRevokeUserSubscriptionRes, error) + // UsersUpdateUser invokes Users_updateUser operation. + // + // Update a user by UUID or username. + // + // PATCH /api/users + UsersUpdateUser(ctx context.Context, request *UpdateUserRequest, options ...RequestOption) (UsersUpdateUserRes, error) +} + +// Client implements OAS client. +type Client struct { + serverURL *url.URL + sec SecuritySource + baseClient +} + +// NewClient initializes new Client defined by OAS. +func NewClient(serverURL string, sec SecuritySource, opts ...ClientOption) (*Client, error) { + u, err := url.Parse(serverURL) + if err != nil { + return nil, err + } + trimTrailingSlashes(u) + + c, err := newClientConfig(opts...).baseClient() + if err != nil { + return nil, err + } + return &Client{ + serverURL: u, + sec: sec, + baseClient: c, + }, nil +} +func (c *Client) onRequest(ctx context.Context, req *http.Request) error { + for _, fn := range c.cfg.RequestEditors { + if err := fn(ctx, req); err != nil { + return err + } + } + return nil +} + +func (c *Client) onResponse(ctx context.Context, resp *http.Response) error { + for _, fn := range c.cfg.ResponseEditors { + if err := fn(ctx, resp); err != nil { + return err + } + } + return nil +} + +// ApiTokensCreate invokes ApiTokens_create operation. +// +// This endpoint is forbidden to use via "API-key". It can only be used with an admin JWT-token. +// +// POST /api/tokens +func (c *Client) ApiTokensCreate(ctx context.Context, request *CreateApiTokenRequest, options ...RequestOption) (ApiTokensCreateRes, error) { + res, err := c.sendApiTokensCreate(ctx, request, options...) + return res, err +} + +func (c *Client) sendApiTokensCreate(ctx context.Context, request *CreateApiTokenRequest, requestOptions ...RequestOption) (res ApiTokensCreateRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("ApiTokens_create"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/tokens"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, ApiTokensCreateOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/tokens" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeApiTokensCreateRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, ApiTokensCreateOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeApiTokensCreateResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// ApiTokensDelete invokes ApiTokens_delete operation. +// +// This endpoint is forbidden to use via "API-key". It can be used only with an admin JWT-token. +// +// DELETE /api/tokens/{uuid} +func (c *Client) ApiTokensDelete(ctx context.Context, params ApiTokensDeleteParams, options ...RequestOption) (ApiTokensDeleteRes, error) { + res, err := c.sendApiTokensDelete(ctx, params, options...) + return res, err +} + +func (c *Client) sendApiTokensDelete(ctx context.Context, params ApiTokensDeleteParams, requestOptions ...RequestOption) (res ApiTokensDeleteRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("ApiTokens_delete"), + semconv.HTTPRequestMethodKey.String("DELETE"), + semconv.URLTemplateKey.String("/api/tokens/{uuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, ApiTokensDeleteOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/tokens/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "DELETE", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, ApiTokensDeleteOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeApiTokensDeleteResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// ApiTokensFindAll invokes ApiTokens_findAll operation. +// +// This endpoint is forbidden to use via "API-key". It can only be used with admin JWT-token. +// +// GET /api/tokens +func (c *Client) ApiTokensFindAll(ctx context.Context, options ...RequestOption) (ApiTokensFindAllRes, error) { + res, err := c.sendApiTokensFindAll(ctx, options...) + return res, err +} + +func (c *Client) sendApiTokensFindAll(ctx context.Context, requestOptions ...RequestOption) (res ApiTokensFindAllRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("ApiTokens_findAll"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/tokens"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, ApiTokensFindAllOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/tokens" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, ApiTokensFindAllOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeApiTokensFindAllResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// AuthGetStatus invokes Auth_getStatus operation. +// +// Get the status of the authentication. +// +// GET /api/auth/status +func (c *Client) AuthGetStatus(ctx context.Context, options ...RequestOption) (AuthGetStatusRes, error) { + res, err := c.sendAuthGetStatus(ctx, options...) + return res, err +} + +func (c *Client) sendAuthGetStatus(ctx context.Context, requestOptions ...RequestOption) (res AuthGetStatusRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Auth_getStatus"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/auth/status"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, AuthGetStatusOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/auth/status" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeAuthGetStatusResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// AuthLogin invokes Auth_login operation. +// +// Login as superadmin. +// +// POST /api/auth/login +func (c *Client) AuthLogin(ctx context.Context, request *LoginRequest, options ...RequestOption) (AuthLoginRes, error) { + res, err := c.sendAuthLogin(ctx, request, options...) + return res, err +} + +func (c *Client) sendAuthLogin(ctx context.Context, request *LoginRequest, requestOptions ...RequestOption) (res AuthLoginRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Auth_login"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/auth/login"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, AuthLoginOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/auth/login" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeAuthLoginRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeAuthLoginResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// AuthOauth2Authorize invokes Auth_oauth2Authorize operation. +// +// Initiate OAuth2 authorization. +// +// POST /api/auth/oauth2/authorize +func (c *Client) AuthOauth2Authorize(ctx context.Context, request *OAuth2AuthorizeRequest, options ...RequestOption) (AuthOauth2AuthorizeRes, error) { + res, err := c.sendAuthOauth2Authorize(ctx, request, options...) + return res, err +} + +func (c *Client) sendAuthOauth2Authorize(ctx context.Context, request *OAuth2AuthorizeRequest, requestOptions ...RequestOption) (res AuthOauth2AuthorizeRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Auth_oauth2Authorize"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/auth/oauth2/authorize"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, AuthOauth2AuthorizeOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/auth/oauth2/authorize" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeAuthOauth2AuthorizeRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeAuthOauth2AuthorizeResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// AuthOauth2Callback invokes Auth_oauth2Callback operation. +// +// Callback from OAuth2. +// +// POST /api/auth/oauth2/callback +func (c *Client) AuthOauth2Callback(ctx context.Context, request *OAuth2CallbackRequest, options ...RequestOption) (AuthOauth2CallbackRes, error) { + res, err := c.sendAuthOauth2Callback(ctx, request, options...) + return res, err +} + +func (c *Client) sendAuthOauth2Callback(ctx context.Context, request *OAuth2CallbackRequest, requestOptions ...RequestOption) (res AuthOauth2CallbackRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Auth_oauth2Callback"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/auth/oauth2/callback"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, AuthOauth2CallbackOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/auth/oauth2/callback" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeAuthOauth2CallbackRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeAuthOauth2CallbackResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// AuthPasskeyAuthenticationOptions invokes Auth_passkeyAuthenticationOptions operation. +// +// Get the authentication options for passkey. +// +// GET /api/auth/passkey/authentication/options +func (c *Client) AuthPasskeyAuthenticationOptions(ctx context.Context, options ...RequestOption) (AuthPasskeyAuthenticationOptionsRes, error) { + res, err := c.sendAuthPasskeyAuthenticationOptions(ctx, options...) + return res, err +} + +func (c *Client) sendAuthPasskeyAuthenticationOptions(ctx context.Context, requestOptions ...RequestOption) (res AuthPasskeyAuthenticationOptionsRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Auth_passkeyAuthenticationOptions"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/auth/passkey/authentication/options"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, AuthPasskeyAuthenticationOptionsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/auth/passkey/authentication/options" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeAuthPasskeyAuthenticationOptionsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// AuthPasskeyAuthenticationVerify invokes Auth_passkeyAuthenticationVerify operation. +// +// Verify the authentication for passkey. +// +// POST /api/auth/passkey/authentication/verify +func (c *Client) AuthPasskeyAuthenticationVerify(ctx context.Context, request *PasskeyOptions, options ...RequestOption) (AuthPasskeyAuthenticationVerifyRes, error) { + res, err := c.sendAuthPasskeyAuthenticationVerify(ctx, request, options...) + return res, err +} + +func (c *Client) sendAuthPasskeyAuthenticationVerify(ctx context.Context, request *PasskeyOptions, requestOptions ...RequestOption) (res AuthPasskeyAuthenticationVerifyRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Auth_passkeyAuthenticationVerify"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/auth/passkey/authentication/verify"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, AuthPasskeyAuthenticationVerifyOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/auth/passkey/authentication/verify" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeAuthPasskeyAuthenticationVerifyRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeAuthPasskeyAuthenticationVerifyResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// AuthRegister invokes Auth_register operation. +// +// Register as superadmin. +// +// POST /api/auth/register +func (c *Client) AuthRegister(ctx context.Context, request *RegisterRequest, options ...RequestOption) (AuthRegisterRes, error) { + res, err := c.sendAuthRegister(ctx, request, options...) + return res, err +} + +func (c *Client) sendAuthRegister(ctx context.Context, request *RegisterRequest, requestOptions ...RequestOption) (res AuthRegisterRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Auth_register"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/auth/register"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, AuthRegisterOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/auth/register" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeAuthRegisterRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeAuthRegisterResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// BandwidthStatsNodesGetNodeUserUsage invokes BandwidthStatsNodes_getNodeUserUsage operation. +// +// Get Node User Usage by Range and Node UUID (Legacy). +// +// GET /api/bandwidth-stats/nodes/{uuid}/users/legacy +func (c *Client) BandwidthStatsNodesGetNodeUserUsage(ctx context.Context, params BandwidthStatsNodesGetNodeUserUsageParams, options ...RequestOption) (BandwidthStatsNodesGetNodeUserUsageRes, error) { + res, err := c.sendBandwidthStatsNodesGetNodeUserUsage(ctx, params, options...) + return res, err +} + +func (c *Client) sendBandwidthStatsNodesGetNodeUserUsage(ctx context.Context, params BandwidthStatsNodesGetNodeUserUsageParams, requestOptions ...RequestOption) (res BandwidthStatsNodesGetNodeUserUsageRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("BandwidthStatsNodes_getNodeUserUsage"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/bandwidth-stats/nodes/{uuid}/users/legacy"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, BandwidthStatsNodesGetNodeUserUsageOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [3]string + pathParts[0] = "/api/bandwidth-stats/nodes/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + pathParts[2] = "/users/legacy" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeQueryParams" + q := uri.NewQueryEncoder() + { + // Encode "start" parameter. + cfg := uri.QueryParameterEncodingConfig{ + Name: "start", + Style: uri.QueryStyleForm, + Explode: true, + } + + if err := q.EncodeParam(cfg, func(e uri.Encoder) error { + return e.EncodeValue(conv.DateTimeToString(params.Start)) + }); err != nil { + return res, errors.Wrap(err, "encode query") + } + } + { + // Encode "end" parameter. + cfg := uri.QueryParameterEncodingConfig{ + Name: "end", + Style: uri.QueryStyleForm, + Explode: true, + } + + if err := q.EncodeParam(cfg, func(e uri.Encoder) error { + return e.EncodeValue(conv.DateTimeToString(params.End)) + }); err != nil { + return res, errors.Wrap(err, "encode query") + } + } + u.RawQuery = q.Values().Encode() + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, BandwidthStatsNodesGetNodeUserUsageOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeBandwidthStatsNodesGetNodeUserUsageResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// BandwidthStatsNodesGetStatsNodeUsersUsage invokes BandwidthStatsNodes_getStatsNodeUsersUsage operation. +// +// Get Node Users Usage by Node UUID. +// +// GET /api/bandwidth-stats/nodes/{uuid}/users +func (c *Client) BandwidthStatsNodesGetStatsNodeUsersUsage(ctx context.Context, params BandwidthStatsNodesGetStatsNodeUsersUsageParams, options ...RequestOption) (BandwidthStatsNodesGetStatsNodeUsersUsageRes, error) { + res, err := c.sendBandwidthStatsNodesGetStatsNodeUsersUsage(ctx, params, options...) + return res, err +} + +func (c *Client) sendBandwidthStatsNodesGetStatsNodeUsersUsage(ctx context.Context, params BandwidthStatsNodesGetStatsNodeUsersUsageParams, requestOptions ...RequestOption) (res BandwidthStatsNodesGetStatsNodeUsersUsageRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("BandwidthStatsNodes_getStatsNodeUsersUsage"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/bandwidth-stats/nodes/{uuid}/users"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, BandwidthStatsNodesGetStatsNodeUsersUsageOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [3]string + pathParts[0] = "/api/bandwidth-stats/nodes/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + pathParts[2] = "/users" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeQueryParams" + q := uri.NewQueryEncoder() + { + // Encode "topUsersLimit" parameter. + cfg := uri.QueryParameterEncodingConfig{ + Name: "topUsersLimit", + Style: uri.QueryStyleForm, + Explode: true, + } + + if err := q.EncodeParam(cfg, func(e uri.Encoder) error { + return e.EncodeValue(conv.IntToString(params.TopUsersLimit)) + }); err != nil { + return res, errors.Wrap(err, "encode query") + } + } + { + // Encode "start" parameter. + cfg := uri.QueryParameterEncodingConfig{ + Name: "start", + Style: uri.QueryStyleForm, + Explode: true, + } + + if err := q.EncodeParam(cfg, func(e uri.Encoder) error { + return e.EncodeValue(conv.DateToString(params.Start)) + }); err != nil { + return res, errors.Wrap(err, "encode query") + } + } + { + // Encode "end" parameter. + cfg := uri.QueryParameterEncodingConfig{ + Name: "end", + Style: uri.QueryStyleForm, + Explode: true, + } + + if err := q.EncodeParam(cfg, func(e uri.Encoder) error { + return e.EncodeValue(conv.DateToString(params.End)) + }); err != nil { + return res, errors.Wrap(err, "encode query") + } + } + u.RawQuery = q.Values().Encode() + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, BandwidthStatsNodesGetStatsNodeUsersUsageOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeBandwidthStatsNodesGetStatsNodeUsersUsageResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// BandwidthStatsUsersGetStatsNodesUsage invokes BandwidthStatsUsers_getStatsNodesUsage operation. +// +// Get User Usage by Range. +// +// GET /api/bandwidth-stats/users/{uuid} +func (c *Client) BandwidthStatsUsersGetStatsNodesUsage(ctx context.Context, params BandwidthStatsUsersGetStatsNodesUsageParams, options ...RequestOption) (BandwidthStatsUsersGetStatsNodesUsageRes, error) { + res, err := c.sendBandwidthStatsUsersGetStatsNodesUsage(ctx, params, options...) + return res, err +} + +func (c *Client) sendBandwidthStatsUsersGetStatsNodesUsage(ctx context.Context, params BandwidthStatsUsersGetStatsNodesUsageParams, requestOptions ...RequestOption) (res BandwidthStatsUsersGetStatsNodesUsageRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("BandwidthStatsUsers_getStatsNodesUsage"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/bandwidth-stats/users/{uuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, BandwidthStatsUsersGetStatsNodesUsageOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/bandwidth-stats/users/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeQueryParams" + q := uri.NewQueryEncoder() + { + // Encode "topNodesLimit" parameter. + cfg := uri.QueryParameterEncodingConfig{ + Name: "topNodesLimit", + Style: uri.QueryStyleForm, + Explode: true, + } + + if err := q.EncodeParam(cfg, func(e uri.Encoder) error { + return e.EncodeValue(conv.IntToString(params.TopNodesLimit)) + }); err != nil { + return res, errors.Wrap(err, "encode query") + } + } + { + // Encode "start" parameter. + cfg := uri.QueryParameterEncodingConfig{ + Name: "start", + Style: uri.QueryStyleForm, + Explode: true, + } + + if err := q.EncodeParam(cfg, func(e uri.Encoder) error { + return e.EncodeValue(conv.DateToString(params.Start)) + }); err != nil { + return res, errors.Wrap(err, "encode query") + } + } + { + // Encode "end" parameter. + cfg := uri.QueryParameterEncodingConfig{ + Name: "end", + Style: uri.QueryStyleForm, + Explode: true, + } + + if err := q.EncodeParam(cfg, func(e uri.Encoder) error { + return e.EncodeValue(conv.DateToString(params.End)) + }); err != nil { + return res, errors.Wrap(err, "encode query") + } + } + u.RawQuery = q.Values().Encode() + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, BandwidthStatsUsersGetStatsNodesUsageOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeBandwidthStatsUsersGetStatsNodesUsageResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// BandwidthStatsUsersGetUserUsageByRange invokes BandwidthStatsUsers_getUserUsageByRange operation. +// +// Get User Usage by Range (Legacy). +// +// GET /api/bandwidth-stats/users/{uuid}/legacy +func (c *Client) BandwidthStatsUsersGetUserUsageByRange(ctx context.Context, params BandwidthStatsUsersGetUserUsageByRangeParams, options ...RequestOption) (BandwidthStatsUsersGetUserUsageByRangeRes, error) { + res, err := c.sendBandwidthStatsUsersGetUserUsageByRange(ctx, params, options...) + return res, err +} + +func (c *Client) sendBandwidthStatsUsersGetUserUsageByRange(ctx context.Context, params BandwidthStatsUsersGetUserUsageByRangeParams, requestOptions ...RequestOption) (res BandwidthStatsUsersGetUserUsageByRangeRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("BandwidthStatsUsers_getUserUsageByRange"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/bandwidth-stats/users/{uuid}/legacy"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, BandwidthStatsUsersGetUserUsageByRangeOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [3]string + pathParts[0] = "/api/bandwidth-stats/users/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + pathParts[2] = "/legacy" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeQueryParams" + q := uri.NewQueryEncoder() + { + // Encode "start" parameter. + cfg := uri.QueryParameterEncodingConfig{ + Name: "start", + Style: uri.QueryStyleForm, + Explode: true, + } + + if err := q.EncodeParam(cfg, func(e uri.Encoder) error { + return e.EncodeValue(conv.DateTimeToString(params.Start)) + }); err != nil { + return res, errors.Wrap(err, "encode query") + } + } + { + // Encode "end" parameter. + cfg := uri.QueryParameterEncodingConfig{ + Name: "end", + Style: uri.QueryStyleForm, + Explode: true, + } + + if err := q.EncodeParam(cfg, func(e uri.Encoder) error { + return e.EncodeValue(conv.DateTimeToString(params.End)) + }); err != nil { + return res, errors.Wrap(err, "encode query") + } + } + u.RawQuery = q.Values().Encode() + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, BandwidthStatsUsersGetUserUsageByRangeOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeBandwidthStatsUsersGetUserUsageByRangeResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// ConfigProfileCreateConfigProfile invokes ConfigProfile_createConfigProfile operation. +// +// Create config profile. +// +// POST /api/config-profiles +func (c *Client) ConfigProfileCreateConfigProfile(ctx context.Context, request *CreateConfigProfileRequest, options ...RequestOption) (ConfigProfileCreateConfigProfileRes, error) { + res, err := c.sendConfigProfileCreateConfigProfile(ctx, request, options...) + return res, err +} + +func (c *Client) sendConfigProfileCreateConfigProfile(ctx context.Context, request *CreateConfigProfileRequest, requestOptions ...RequestOption) (res ConfigProfileCreateConfigProfileRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("ConfigProfile_createConfigProfile"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/config-profiles"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, ConfigProfileCreateConfigProfileOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/config-profiles" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeConfigProfileCreateConfigProfileRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, ConfigProfileCreateConfigProfileOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeConfigProfileCreateConfigProfileResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// ConfigProfileDeleteConfigProfileByUuid invokes ConfigProfile_deleteConfigProfileByUuid operation. +// +// Delete config profile. +// +// DELETE /api/config-profiles/{uuid} +func (c *Client) ConfigProfileDeleteConfigProfileByUuid(ctx context.Context, params ConfigProfileDeleteConfigProfileByUuidParams, options ...RequestOption) (ConfigProfileDeleteConfigProfileByUuidRes, error) { + res, err := c.sendConfigProfileDeleteConfigProfileByUuid(ctx, params, options...) + return res, err +} + +func (c *Client) sendConfigProfileDeleteConfigProfileByUuid(ctx context.Context, params ConfigProfileDeleteConfigProfileByUuidParams, requestOptions ...RequestOption) (res ConfigProfileDeleteConfigProfileByUuidRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("ConfigProfile_deleteConfigProfileByUuid"), + semconv.HTTPRequestMethodKey.String("DELETE"), + semconv.URLTemplateKey.String("/api/config-profiles/{uuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, ConfigProfileDeleteConfigProfileByUuidOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/config-profiles/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "DELETE", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, ConfigProfileDeleteConfigProfileByUuidOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeConfigProfileDeleteConfigProfileByUuidResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// ConfigProfileGetAllInbounds invokes ConfigProfile_getAllInbounds operation. +// +// Get all inbounds from all config profiles. +// +// GET /api/config-profiles/inbounds +func (c *Client) ConfigProfileGetAllInbounds(ctx context.Context, options ...RequestOption) (ConfigProfileGetAllInboundsRes, error) { + res, err := c.sendConfigProfileGetAllInbounds(ctx, options...) + return res, err +} + +func (c *Client) sendConfigProfileGetAllInbounds(ctx context.Context, requestOptions ...RequestOption) (res ConfigProfileGetAllInboundsRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("ConfigProfile_getAllInbounds"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/config-profiles/inbounds"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, ConfigProfileGetAllInboundsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/config-profiles/inbounds" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, ConfigProfileGetAllInboundsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeConfigProfileGetAllInboundsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// ConfigProfileGetComputedConfigProfileByUuid invokes ConfigProfile_getComputedConfigProfileByUuid operation. +// +// Get computed config profile by uuid. +// +// GET /api/config-profiles/{uuid}/computed-config +func (c *Client) ConfigProfileGetComputedConfigProfileByUuid(ctx context.Context, params ConfigProfileGetComputedConfigProfileByUuidParams, options ...RequestOption) (ConfigProfileGetComputedConfigProfileByUuidRes, error) { + res, err := c.sendConfigProfileGetComputedConfigProfileByUuid(ctx, params, options...) + return res, err +} + +func (c *Client) sendConfigProfileGetComputedConfigProfileByUuid(ctx context.Context, params ConfigProfileGetComputedConfigProfileByUuidParams, requestOptions ...RequestOption) (res ConfigProfileGetComputedConfigProfileByUuidRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("ConfigProfile_getComputedConfigProfileByUuid"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/config-profiles/{uuid}/computed-config"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, ConfigProfileGetComputedConfigProfileByUuidOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [3]string + pathParts[0] = "/api/config-profiles/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + pathParts[2] = "/computed-config" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, ConfigProfileGetComputedConfigProfileByUuidOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeConfigProfileGetComputedConfigProfileByUuidResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// ConfigProfileGetConfigProfileByUuid invokes ConfigProfile_getConfigProfileByUuid operation. +// +// Get config profile by uuid. +// +// GET /api/config-profiles/{uuid} +func (c *Client) ConfigProfileGetConfigProfileByUuid(ctx context.Context, params ConfigProfileGetConfigProfileByUuidParams, options ...RequestOption) (ConfigProfileGetConfigProfileByUuidRes, error) { + res, err := c.sendConfigProfileGetConfigProfileByUuid(ctx, params, options...) + return res, err +} + +func (c *Client) sendConfigProfileGetConfigProfileByUuid(ctx context.Context, params ConfigProfileGetConfigProfileByUuidParams, requestOptions ...RequestOption) (res ConfigProfileGetConfigProfileByUuidRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("ConfigProfile_getConfigProfileByUuid"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/config-profiles/{uuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, ConfigProfileGetConfigProfileByUuidOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/config-profiles/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, ConfigProfileGetConfigProfileByUuidOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeConfigProfileGetConfigProfileByUuidResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// ConfigProfileGetConfigProfiles invokes ConfigProfile_getConfigProfiles operation. +// +// Get config profiles. +// +// GET /api/config-profiles +func (c *Client) ConfigProfileGetConfigProfiles(ctx context.Context, options ...RequestOption) (ConfigProfileGetConfigProfilesRes, error) { + res, err := c.sendConfigProfileGetConfigProfiles(ctx, options...) + return res, err +} + +func (c *Client) sendConfigProfileGetConfigProfiles(ctx context.Context, requestOptions ...RequestOption) (res ConfigProfileGetConfigProfilesRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("ConfigProfile_getConfigProfiles"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/config-profiles"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, ConfigProfileGetConfigProfilesOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/config-profiles" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, ConfigProfileGetConfigProfilesOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeConfigProfileGetConfigProfilesResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// ConfigProfileGetInboundsByProfileUuid invokes ConfigProfile_getInboundsByProfileUuid operation. +// +// Get inbounds by profile uuid. +// +// GET /api/config-profiles/{uuid}/inbounds +func (c *Client) ConfigProfileGetInboundsByProfileUuid(ctx context.Context, params ConfigProfileGetInboundsByProfileUuidParams, options ...RequestOption) (ConfigProfileGetInboundsByProfileUuidRes, error) { + res, err := c.sendConfigProfileGetInboundsByProfileUuid(ctx, params, options...) + return res, err +} + +func (c *Client) sendConfigProfileGetInboundsByProfileUuid(ctx context.Context, params ConfigProfileGetInboundsByProfileUuidParams, requestOptions ...RequestOption) (res ConfigProfileGetInboundsByProfileUuidRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("ConfigProfile_getInboundsByProfileUuid"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/config-profiles/{uuid}/inbounds"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, ConfigProfileGetInboundsByProfileUuidOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [3]string + pathParts[0] = "/api/config-profiles/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + pathParts[2] = "/inbounds" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, ConfigProfileGetInboundsByProfileUuidOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeConfigProfileGetInboundsByProfileUuidResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// ConfigProfileReorderConfigProfiles invokes ConfigProfile_reorderConfigProfiles operation. +// +// Reorder config profiles. +// +// POST /api/config-profiles/actions/reorder +func (c *Client) ConfigProfileReorderConfigProfiles(ctx context.Context, request *ReorderRequest, options ...RequestOption) (ConfigProfileReorderConfigProfilesRes, error) { + res, err := c.sendConfigProfileReorderConfigProfiles(ctx, request, options...) + return res, err +} + +func (c *Client) sendConfigProfileReorderConfigProfiles(ctx context.Context, request *ReorderRequest, requestOptions ...RequestOption) (res ConfigProfileReorderConfigProfilesRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("ConfigProfile_reorderConfigProfiles"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/config-profiles/actions/reorder"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, ConfigProfileReorderConfigProfilesOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/config-profiles/actions/reorder" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeConfigProfileReorderConfigProfilesRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, ConfigProfileReorderConfigProfilesOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeConfigProfileReorderConfigProfilesResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// ConfigProfileUpdateConfigProfile invokes ConfigProfile_updateConfigProfile operation. +// +// Update Core Config in specific config profile. +// +// PATCH /api/config-profiles +func (c *Client) ConfigProfileUpdateConfigProfile(ctx context.Context, request *UpdateConfigProfileRequest, options ...RequestOption) (ConfigProfileUpdateConfigProfileRes, error) { + res, err := c.sendConfigProfileUpdateConfigProfile(ctx, request, options...) + return res, err +} + +func (c *Client) sendConfigProfileUpdateConfigProfile(ctx context.Context, request *UpdateConfigProfileRequest, requestOptions ...RequestOption) (res ConfigProfileUpdateConfigProfileRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("ConfigProfile_updateConfigProfile"), + semconv.HTTPRequestMethodKey.String("PATCH"), + semconv.URLTemplateKey.String("/api/config-profiles"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, ConfigProfileUpdateConfigProfileOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/config-profiles" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "PATCH", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeConfigProfileUpdateConfigProfileRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, ConfigProfileUpdateConfigProfileOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeConfigProfileUpdateConfigProfileResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// ExternalSquadAddUsersToExternalSquad invokes ExternalSquad_addUsersToExternalSquad operation. +// +// Add all users to external squad. +// +// POST /api/external-squads/{uuid}/bulk-actions/add-users +func (c *Client) ExternalSquadAddUsersToExternalSquad(ctx context.Context, params ExternalSquadAddUsersToExternalSquadParams, options ...RequestOption) (ExternalSquadAddUsersToExternalSquadRes, error) { + res, err := c.sendExternalSquadAddUsersToExternalSquad(ctx, params, options...) + return res, err +} + +func (c *Client) sendExternalSquadAddUsersToExternalSquad(ctx context.Context, params ExternalSquadAddUsersToExternalSquadParams, requestOptions ...RequestOption) (res ExternalSquadAddUsersToExternalSquadRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("ExternalSquad_addUsersToExternalSquad"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/external-squads/{uuid}/bulk-actions/add-users"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, ExternalSquadAddUsersToExternalSquadOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [3]string + pathParts[0] = "/api/external-squads/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + pathParts[2] = "/bulk-actions/add-users" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, ExternalSquadAddUsersToExternalSquadOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeExternalSquadAddUsersToExternalSquadResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// ExternalSquadCreateExternalSquad invokes ExternalSquad_createExternalSquad operation. +// +// Create external squad. +// +// POST /api/external-squads +func (c *Client) ExternalSquadCreateExternalSquad(ctx context.Context, request *CreateExternalSquadRequest, options ...RequestOption) (ExternalSquadCreateExternalSquadRes, error) { + res, err := c.sendExternalSquadCreateExternalSquad(ctx, request, options...) + return res, err +} + +func (c *Client) sendExternalSquadCreateExternalSquad(ctx context.Context, request *CreateExternalSquadRequest, requestOptions ...RequestOption) (res ExternalSquadCreateExternalSquadRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("ExternalSquad_createExternalSquad"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/external-squads"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, ExternalSquadCreateExternalSquadOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/external-squads" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeExternalSquadCreateExternalSquadRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, ExternalSquadCreateExternalSquadOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeExternalSquadCreateExternalSquadResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// ExternalSquadDeleteExternalSquad invokes ExternalSquad_deleteExternalSquad operation. +// +// Delete external squad. +// +// DELETE /api/external-squads/{uuid} +func (c *Client) ExternalSquadDeleteExternalSquad(ctx context.Context, params ExternalSquadDeleteExternalSquadParams, options ...RequestOption) (ExternalSquadDeleteExternalSquadRes, error) { + res, err := c.sendExternalSquadDeleteExternalSquad(ctx, params, options...) + return res, err +} + +func (c *Client) sendExternalSquadDeleteExternalSquad(ctx context.Context, params ExternalSquadDeleteExternalSquadParams, requestOptions ...RequestOption) (res ExternalSquadDeleteExternalSquadRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("ExternalSquad_deleteExternalSquad"), + semconv.HTTPRequestMethodKey.String("DELETE"), + semconv.URLTemplateKey.String("/api/external-squads/{uuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, ExternalSquadDeleteExternalSquadOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/external-squads/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "DELETE", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, ExternalSquadDeleteExternalSquadOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeExternalSquadDeleteExternalSquadResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// ExternalSquadGetExternalSquadByUuid invokes ExternalSquad_getExternalSquadByUuid operation. +// +// Get external squad by uuid. +// +// GET /api/external-squads/{uuid} +func (c *Client) ExternalSquadGetExternalSquadByUuid(ctx context.Context, params ExternalSquadGetExternalSquadByUuidParams, options ...RequestOption) (ExternalSquadGetExternalSquadByUuidRes, error) { + res, err := c.sendExternalSquadGetExternalSquadByUuid(ctx, params, options...) + return res, err +} + +func (c *Client) sendExternalSquadGetExternalSquadByUuid(ctx context.Context, params ExternalSquadGetExternalSquadByUuidParams, requestOptions ...RequestOption) (res ExternalSquadGetExternalSquadByUuidRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("ExternalSquad_getExternalSquadByUuid"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/external-squads/{uuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, ExternalSquadGetExternalSquadByUuidOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/external-squads/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, ExternalSquadGetExternalSquadByUuidOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeExternalSquadGetExternalSquadByUuidResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// ExternalSquadGetExternalSquads invokes ExternalSquad_getExternalSquads operation. +// +// Get all external squads. +// +// GET /api/external-squads +func (c *Client) ExternalSquadGetExternalSquads(ctx context.Context, options ...RequestOption) (ExternalSquadGetExternalSquadsRes, error) { + res, err := c.sendExternalSquadGetExternalSquads(ctx, options...) + return res, err +} + +func (c *Client) sendExternalSquadGetExternalSquads(ctx context.Context, requestOptions ...RequestOption) (res ExternalSquadGetExternalSquadsRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("ExternalSquad_getExternalSquads"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/external-squads"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, ExternalSquadGetExternalSquadsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/external-squads" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, ExternalSquadGetExternalSquadsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeExternalSquadGetExternalSquadsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// ExternalSquadRemoveUsersFromExternalSquad invokes ExternalSquad_removeUsersFromExternalSquad operation. +// +// Delete users from external squad. +// +// DELETE /api/external-squads/{uuid}/bulk-actions/remove-users +func (c *Client) ExternalSquadRemoveUsersFromExternalSquad(ctx context.Context, params ExternalSquadRemoveUsersFromExternalSquadParams, options ...RequestOption) (ExternalSquadRemoveUsersFromExternalSquadRes, error) { + res, err := c.sendExternalSquadRemoveUsersFromExternalSquad(ctx, params, options...) + return res, err +} + +func (c *Client) sendExternalSquadRemoveUsersFromExternalSquad(ctx context.Context, params ExternalSquadRemoveUsersFromExternalSquadParams, requestOptions ...RequestOption) (res ExternalSquadRemoveUsersFromExternalSquadRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("ExternalSquad_removeUsersFromExternalSquad"), + semconv.HTTPRequestMethodKey.String("DELETE"), + semconv.URLTemplateKey.String("/api/external-squads/{uuid}/bulk-actions/remove-users"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, ExternalSquadRemoveUsersFromExternalSquadOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [3]string + pathParts[0] = "/api/external-squads/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + pathParts[2] = "/bulk-actions/remove-users" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "DELETE", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, ExternalSquadRemoveUsersFromExternalSquadOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeExternalSquadRemoveUsersFromExternalSquadResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// ExternalSquadReorderExternalSquads invokes ExternalSquad_reorderExternalSquads operation. +// +// Reorder external squads. +// +// POST /api/external-squads/actions/reorder +func (c *Client) ExternalSquadReorderExternalSquads(ctx context.Context, request *ReorderRequest, options ...RequestOption) (ExternalSquadReorderExternalSquadsRes, error) { + res, err := c.sendExternalSquadReorderExternalSquads(ctx, request, options...) + return res, err +} + +func (c *Client) sendExternalSquadReorderExternalSquads(ctx context.Context, request *ReorderRequest, requestOptions ...RequestOption) (res ExternalSquadReorderExternalSquadsRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("ExternalSquad_reorderExternalSquads"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/external-squads/actions/reorder"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, ExternalSquadReorderExternalSquadsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/external-squads/actions/reorder" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeExternalSquadReorderExternalSquadsRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, ExternalSquadReorderExternalSquadsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeExternalSquadReorderExternalSquadsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// ExternalSquadUpdateExternalSquad invokes ExternalSquad_updateExternalSquad operation. +// +// Update external squad. +// +// PATCH /api/external-squads +func (c *Client) ExternalSquadUpdateExternalSquad(ctx context.Context, request *UpdateExternalSquadRequest, options ...RequestOption) (ExternalSquadUpdateExternalSquadRes, error) { + res, err := c.sendExternalSquadUpdateExternalSquad(ctx, request, options...) + return res, err +} + +func (c *Client) sendExternalSquadUpdateExternalSquad(ctx context.Context, request *UpdateExternalSquadRequest, requestOptions ...RequestOption) (res ExternalSquadUpdateExternalSquadRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("ExternalSquad_updateExternalSquad"), + semconv.HTTPRequestMethodKey.String("PATCH"), + semconv.URLTemplateKey.String("/api/external-squads"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, ExternalSquadUpdateExternalSquadOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/external-squads" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "PATCH", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeExternalSquadUpdateExternalSquadRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, ExternalSquadUpdateExternalSquadOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeExternalSquadUpdateExternalSquadResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// HostsBulkActionsDeleteHosts invokes HostsBulkActions_deleteHosts operation. +// +// Delete hosts by UUIDs. +// +// POST /api/hosts/bulk/delete +func (c *Client) HostsBulkActionsDeleteHosts(ctx context.Context, request *BulkUuidsRequest2, options ...RequestOption) (HostsBulkActionsDeleteHostsRes, error) { + res, err := c.sendHostsBulkActionsDeleteHosts(ctx, request, options...) + return res, err +} + +func (c *Client) sendHostsBulkActionsDeleteHosts(ctx context.Context, request *BulkUuidsRequest2, requestOptions ...RequestOption) (res HostsBulkActionsDeleteHostsRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("HostsBulkActions_deleteHosts"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/hosts/bulk/delete"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, HostsBulkActionsDeleteHostsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/hosts/bulk/delete" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeHostsBulkActionsDeleteHostsRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, HostsBulkActionsDeleteHostsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeHostsBulkActionsDeleteHostsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// HostsBulkActionsDisableHosts invokes HostsBulkActions_disableHosts operation. +// +// Disable hosts by UUIDs. +// +// POST /api/hosts/bulk/disable +func (c *Client) HostsBulkActionsDisableHosts(ctx context.Context, request *BulkUuidsRequest2, options ...RequestOption) (HostsBulkActionsDisableHostsRes, error) { + res, err := c.sendHostsBulkActionsDisableHosts(ctx, request, options...) + return res, err +} + +func (c *Client) sendHostsBulkActionsDisableHosts(ctx context.Context, request *BulkUuidsRequest2, requestOptions ...RequestOption) (res HostsBulkActionsDisableHostsRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("HostsBulkActions_disableHosts"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/hosts/bulk/disable"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, HostsBulkActionsDisableHostsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/hosts/bulk/disable" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeHostsBulkActionsDisableHostsRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, HostsBulkActionsDisableHostsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeHostsBulkActionsDisableHostsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// HostsBulkActionsEnableHosts invokes HostsBulkActions_enableHosts operation. +// +// Enable hosts by UUIDs. +// +// POST /api/hosts/bulk/enable +func (c *Client) HostsBulkActionsEnableHosts(ctx context.Context, request *BulkUuidsRequest2, options ...RequestOption) (HostsBulkActionsEnableHostsRes, error) { + res, err := c.sendHostsBulkActionsEnableHosts(ctx, request, options...) + return res, err +} + +func (c *Client) sendHostsBulkActionsEnableHosts(ctx context.Context, request *BulkUuidsRequest2, requestOptions ...RequestOption) (res HostsBulkActionsEnableHostsRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("HostsBulkActions_enableHosts"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/hosts/bulk/enable"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, HostsBulkActionsEnableHostsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/hosts/bulk/enable" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeHostsBulkActionsEnableHostsRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, HostsBulkActionsEnableHostsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeHostsBulkActionsEnableHostsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// HostsBulkActionsSetInboundToHosts invokes HostsBulkActions_setInboundToHosts operation. +// +// Set inbound to hosts by UUIDs. +// +// POST /api/hosts/bulk/set-inbound +func (c *Client) HostsBulkActionsSetInboundToHosts(ctx context.Context, request *SetInboundToManyHostsRequest, options ...RequestOption) (HostsBulkActionsSetInboundToHostsRes, error) { + res, err := c.sendHostsBulkActionsSetInboundToHosts(ctx, request, options...) + return res, err +} + +func (c *Client) sendHostsBulkActionsSetInboundToHosts(ctx context.Context, request *SetInboundToManyHostsRequest, requestOptions ...RequestOption) (res HostsBulkActionsSetInboundToHostsRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("HostsBulkActions_setInboundToHosts"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/hosts/bulk/set-inbound"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, HostsBulkActionsSetInboundToHostsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/hosts/bulk/set-inbound" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeHostsBulkActionsSetInboundToHostsRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, HostsBulkActionsSetInboundToHostsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeHostsBulkActionsSetInboundToHostsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// HostsBulkActionsSetPortToHosts invokes HostsBulkActions_setPortToHosts operation. +// +// Set port to hosts by UUIDs. +// +// POST /api/hosts/bulk/set-port +func (c *Client) HostsBulkActionsSetPortToHosts(ctx context.Context, request *SetPortToManyHostsRequest, options ...RequestOption) (HostsBulkActionsSetPortToHostsRes, error) { + res, err := c.sendHostsBulkActionsSetPortToHosts(ctx, request, options...) + return res, err +} + +func (c *Client) sendHostsBulkActionsSetPortToHosts(ctx context.Context, request *SetPortToManyHostsRequest, requestOptions ...RequestOption) (res HostsBulkActionsSetPortToHostsRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("HostsBulkActions_setPortToHosts"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/hosts/bulk/set-port"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, HostsBulkActionsSetPortToHostsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/hosts/bulk/set-port" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeHostsBulkActionsSetPortToHostsRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, HostsBulkActionsSetPortToHostsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeHostsBulkActionsSetPortToHostsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// HostsCreateHost invokes Hosts_createHost operation. +// +// Create a new host. +// +// POST /api/hosts +func (c *Client) HostsCreateHost(ctx context.Context, request *CreateHostRequest, options ...RequestOption) (HostsCreateHostRes, error) { + res, err := c.sendHostsCreateHost(ctx, request, options...) + return res, err +} + +func (c *Client) sendHostsCreateHost(ctx context.Context, request *CreateHostRequest, requestOptions ...RequestOption) (res HostsCreateHostRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Hosts_createHost"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/hosts"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, HostsCreateHostOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/hosts" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeHostsCreateHostRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, HostsCreateHostOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeHostsCreateHostResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// HostsDeleteHost invokes Hosts_deleteHost operation. +// +// Delete a host by UUID. +// +// DELETE /api/hosts/{uuid} +func (c *Client) HostsDeleteHost(ctx context.Context, params HostsDeleteHostParams, options ...RequestOption) (HostsDeleteHostRes, error) { + res, err := c.sendHostsDeleteHost(ctx, params, options...) + return res, err +} + +func (c *Client) sendHostsDeleteHost(ctx context.Context, params HostsDeleteHostParams, requestOptions ...RequestOption) (res HostsDeleteHostRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Hosts_deleteHost"), + semconv.HTTPRequestMethodKey.String("DELETE"), + semconv.URLTemplateKey.String("/api/hosts/{uuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, HostsDeleteHostOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/hosts/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "DELETE", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, HostsDeleteHostOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeHostsDeleteHostResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// HostsGetAllHostTags invokes Hosts_getAllHostTags operation. +// +// Get all existing host tags. +// +// GET /api/hosts/tags +func (c *Client) HostsGetAllHostTags(ctx context.Context, options ...RequestOption) (HostsGetAllHostTagsRes, error) { + res, err := c.sendHostsGetAllHostTags(ctx, options...) + return res, err +} + +func (c *Client) sendHostsGetAllHostTags(ctx context.Context, requestOptions ...RequestOption) (res HostsGetAllHostTagsRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Hosts_getAllHostTags"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/hosts/tags"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, HostsGetAllHostTagsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/hosts/tags" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, HostsGetAllHostTagsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeHostsGetAllHostTagsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// HostsGetAllHosts invokes Hosts_getAllHosts operation. +// +// Get all hosts. +// +// GET /api/hosts +func (c *Client) HostsGetAllHosts(ctx context.Context, options ...RequestOption) (HostsGetAllHostsRes, error) { + res, err := c.sendHostsGetAllHosts(ctx, options...) + return res, err +} + +func (c *Client) sendHostsGetAllHosts(ctx context.Context, requestOptions ...RequestOption) (res HostsGetAllHostsRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Hosts_getAllHosts"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/hosts"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, HostsGetAllHostsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/hosts" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, HostsGetAllHostsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeHostsGetAllHostsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// HostsGetOneHost invokes Hosts_getOneHost operation. +// +// Get a host by UUID. +// +// GET /api/hosts/{uuid} +func (c *Client) HostsGetOneHost(ctx context.Context, params HostsGetOneHostParams, options ...RequestOption) (HostsGetOneHostRes, error) { + res, err := c.sendHostsGetOneHost(ctx, params, options...) + return res, err +} + +func (c *Client) sendHostsGetOneHost(ctx context.Context, params HostsGetOneHostParams, requestOptions ...RequestOption) (res HostsGetOneHostRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Hosts_getOneHost"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/hosts/{uuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, HostsGetOneHostOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/hosts/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, HostsGetOneHostOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeHostsGetOneHostResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// HostsReorderHosts invokes Hosts_reorderHosts operation. +// +// Reorder hosts. +// +// POST /api/hosts/actions/reorder +func (c *Client) HostsReorderHosts(ctx context.Context, request *ReorderHostRequest, options ...RequestOption) (HostsReorderHostsRes, error) { + res, err := c.sendHostsReorderHosts(ctx, request, options...) + return res, err +} + +func (c *Client) sendHostsReorderHosts(ctx context.Context, request *ReorderHostRequest, requestOptions ...RequestOption) (res HostsReorderHostsRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Hosts_reorderHosts"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/hosts/actions/reorder"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, HostsReorderHostsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/hosts/actions/reorder" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeHostsReorderHostsRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, HostsReorderHostsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeHostsReorderHostsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// HostsUpdateHost invokes Hosts_updateHost operation. +// +// Update a host. +// +// PATCH /api/hosts +func (c *Client) HostsUpdateHost(ctx context.Context, request *UpdateHostRequest, options ...RequestOption) (HostsUpdateHostRes, error) { + res, err := c.sendHostsUpdateHost(ctx, request, options...) + return res, err +} + +func (c *Client) sendHostsUpdateHost(ctx context.Context, request *UpdateHostRequest, requestOptions ...RequestOption) (res HostsUpdateHostRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Hosts_updateHost"), + semconv.HTTPRequestMethodKey.String("PATCH"), + semconv.URLTemplateKey.String("/api/hosts"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, HostsUpdateHostOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/hosts" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "PATCH", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeHostsUpdateHostRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, HostsUpdateHostOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeHostsUpdateHostResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// HwidUserDevicesCreateUserHwidDevice invokes HwidUserDevices_createUserHwidDevice operation. +// +// Create a user HWID device. +// +// POST /api/hwid/devices +func (c *Client) HwidUserDevicesCreateUserHwidDevice(ctx context.Context, request *CreateUserHwidDeviceRequest, options ...RequestOption) (HwidUserDevicesCreateUserHwidDeviceRes, error) { + res, err := c.sendHwidUserDevicesCreateUserHwidDevice(ctx, request, options...) + return res, err +} + +func (c *Client) sendHwidUserDevicesCreateUserHwidDevice(ctx context.Context, request *CreateUserHwidDeviceRequest, requestOptions ...RequestOption) (res HwidUserDevicesCreateUserHwidDeviceRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("HwidUserDevices_createUserHwidDevice"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/hwid/devices"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, HwidUserDevicesCreateUserHwidDeviceOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/hwid/devices" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeHwidUserDevicesCreateUserHwidDeviceRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, HwidUserDevicesCreateUserHwidDeviceOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeHwidUserDevicesCreateUserHwidDeviceResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// HwidUserDevicesDeleteAllUserHwidDevices invokes HwidUserDevices_deleteAllUserHwidDevices operation. +// +// Delete all user HWID devices. +// +// POST /api/hwid/devices/delete-all +func (c *Client) HwidUserDevicesDeleteAllUserHwidDevices(ctx context.Context, request *DeleteAllUserHwidDevicesRequest, options ...RequestOption) (HwidUserDevicesDeleteAllUserHwidDevicesRes, error) { + res, err := c.sendHwidUserDevicesDeleteAllUserHwidDevices(ctx, request, options...) + return res, err +} + +func (c *Client) sendHwidUserDevicesDeleteAllUserHwidDevices(ctx context.Context, request *DeleteAllUserHwidDevicesRequest, requestOptions ...RequestOption) (res HwidUserDevicesDeleteAllUserHwidDevicesRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("HwidUserDevices_deleteAllUserHwidDevices"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/hwid/devices/delete-all"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, HwidUserDevicesDeleteAllUserHwidDevicesOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/hwid/devices/delete-all" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeHwidUserDevicesDeleteAllUserHwidDevicesRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, HwidUserDevicesDeleteAllUserHwidDevicesOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeHwidUserDevicesDeleteAllUserHwidDevicesResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// HwidUserDevicesDeleteUserHwidDevice invokes HwidUserDevices_deleteUserHwidDevice operation. +// +// Delete a user HWID device. +// +// POST /api/hwid/devices/delete +func (c *Client) HwidUserDevicesDeleteUserHwidDevice(ctx context.Context, request *DeleteUserHwidDeviceRequest, options ...RequestOption) (HwidUserDevicesDeleteUserHwidDeviceRes, error) { + res, err := c.sendHwidUserDevicesDeleteUserHwidDevice(ctx, request, options...) + return res, err +} + +func (c *Client) sendHwidUserDevicesDeleteUserHwidDevice(ctx context.Context, request *DeleteUserHwidDeviceRequest, requestOptions ...RequestOption) (res HwidUserDevicesDeleteUserHwidDeviceRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("HwidUserDevices_deleteUserHwidDevice"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/hwid/devices/delete"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, HwidUserDevicesDeleteUserHwidDeviceOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/hwid/devices/delete" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeHwidUserDevicesDeleteUserHwidDeviceRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, HwidUserDevicesDeleteUserHwidDeviceOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeHwidUserDevicesDeleteUserHwidDeviceResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// HwidUserDevicesGetAllUsers invokes HwidUserDevices_getAllUsers operation. +// +// Get all HWID devices. +// +// GET /api/hwid/devices +func (c *Client) HwidUserDevicesGetAllUsers(ctx context.Context, params HwidUserDevicesGetAllUsersParams, options ...RequestOption) (HwidUserDevicesGetAllUsersRes, error) { + res, err := c.sendHwidUserDevicesGetAllUsers(ctx, params, options...) + return res, err +} + +func (c *Client) sendHwidUserDevicesGetAllUsers(ctx context.Context, params HwidUserDevicesGetAllUsersParams, requestOptions ...RequestOption) (res HwidUserDevicesGetAllUsersRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("HwidUserDevices_getAllUsers"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/hwid/devices"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, HwidUserDevicesGetAllUsersOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/hwid/devices" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeQueryParams" + q := uri.NewQueryEncoder() + { + // Encode "size" parameter. + cfg := uri.QueryParameterEncodingConfig{ + Name: "size", + Style: uri.QueryStyleForm, + Explode: true, + } + + if err := q.EncodeParam(cfg, func(e uri.Encoder) error { + if val, ok := params.Size.Get(); ok { + return e.EncodeValue(conv.IntToString(val)) + } + return nil + }); err != nil { + return res, errors.Wrap(err, "encode query") + } + } + { + // Encode "start" parameter. + cfg := uri.QueryParameterEncodingConfig{ + Name: "start", + Style: uri.QueryStyleForm, + Explode: true, + } + + if err := q.EncodeParam(cfg, func(e uri.Encoder) error { + if val, ok := params.Start.Get(); ok { + return e.EncodeValue(conv.IntToString(val)) + } + return nil + }); err != nil { + return res, errors.Wrap(err, "encode query") + } + } + u.RawQuery = q.Values().Encode() + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, HwidUserDevicesGetAllUsersOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeHwidUserDevicesGetAllUsersResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// HwidUserDevicesGetHwidDevicesStats invokes HwidUserDevices_getHwidDevicesStats operation. +// +// Get HWID devices stats. +// +// GET /api/hwid/devices/stats +func (c *Client) HwidUserDevicesGetHwidDevicesStats(ctx context.Context, options ...RequestOption) (HwidUserDevicesGetHwidDevicesStatsRes, error) { + res, err := c.sendHwidUserDevicesGetHwidDevicesStats(ctx, options...) + return res, err +} + +func (c *Client) sendHwidUserDevicesGetHwidDevicesStats(ctx context.Context, requestOptions ...RequestOption) (res HwidUserDevicesGetHwidDevicesStatsRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("HwidUserDevices_getHwidDevicesStats"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/hwid/devices/stats"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, HwidUserDevicesGetHwidDevicesStatsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/hwid/devices/stats" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, HwidUserDevicesGetHwidDevicesStatsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeHwidUserDevicesGetHwidDevicesStatsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// HwidUserDevicesGetTopUsersByHwidDevices invokes HwidUserDevices_getTopUsersByHwidDevices operation. +// +// Get top users by HWID devices. +// +// GET /api/hwid/devices/top-users +func (c *Client) HwidUserDevicesGetTopUsersByHwidDevices(ctx context.Context, params HwidUserDevicesGetTopUsersByHwidDevicesParams, options ...RequestOption) (HwidUserDevicesGetTopUsersByHwidDevicesRes, error) { + res, err := c.sendHwidUserDevicesGetTopUsersByHwidDevices(ctx, params, options...) + return res, err +} + +func (c *Client) sendHwidUserDevicesGetTopUsersByHwidDevices(ctx context.Context, params HwidUserDevicesGetTopUsersByHwidDevicesParams, requestOptions ...RequestOption) (res HwidUserDevicesGetTopUsersByHwidDevicesRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("HwidUserDevices_getTopUsersByHwidDevices"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/hwid/devices/top-users"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, HwidUserDevicesGetTopUsersByHwidDevicesOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/hwid/devices/top-users" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeQueryParams" + q := uri.NewQueryEncoder() + { + // Encode "size" parameter. + cfg := uri.QueryParameterEncodingConfig{ + Name: "size", + Style: uri.QueryStyleForm, + Explode: true, + } + + if err := q.EncodeParam(cfg, func(e uri.Encoder) error { + if val, ok := params.Size.Get(); ok { + return e.EncodeValue(conv.IntToString(val)) + } + return nil + }); err != nil { + return res, errors.Wrap(err, "encode query") + } + } + { + // Encode "start" parameter. + cfg := uri.QueryParameterEncodingConfig{ + Name: "start", + Style: uri.QueryStyleForm, + Explode: true, + } + + if err := q.EncodeParam(cfg, func(e uri.Encoder) error { + if val, ok := params.Start.Get(); ok { + return e.EncodeValue(conv.IntToString(val)) + } + return nil + }); err != nil { + return res, errors.Wrap(err, "encode query") + } + } + u.RawQuery = q.Values().Encode() + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, HwidUserDevicesGetTopUsersByHwidDevicesOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeHwidUserDevicesGetTopUsersByHwidDevicesResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// HwidUserDevicesGetUserHwidDevices invokes HwidUserDevices_getUserHwidDevices operation. +// +// Get user HWID devices. +// +// GET /api/hwid/devices/{userUuid} +func (c *Client) HwidUserDevicesGetUserHwidDevices(ctx context.Context, params HwidUserDevicesGetUserHwidDevicesParams, options ...RequestOption) (HwidUserDevicesGetUserHwidDevicesRes, error) { + res, err := c.sendHwidUserDevicesGetUserHwidDevices(ctx, params, options...) + return res, err +} + +func (c *Client) sendHwidUserDevicesGetUserHwidDevices(ctx context.Context, params HwidUserDevicesGetUserHwidDevicesParams, requestOptions ...RequestOption) (res HwidUserDevicesGetUserHwidDevicesRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("HwidUserDevices_getUserHwidDevices"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/hwid/devices/{userUuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, HwidUserDevicesGetUserHwidDevicesOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/hwid/devices/" + { + // Encode "userUuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "userUuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UserUuid)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, HwidUserDevicesGetUserHwidDevicesOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeHwidUserDevicesGetUserHwidDevicesResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// InfraBillingCreateInfraBillingHistoryRecord invokes InfraBilling_createInfraBillingHistoryRecord operation. +// +// Create infra billing history. +// +// POST /api/infra-billing/history +func (c *Client) InfraBillingCreateInfraBillingHistoryRecord(ctx context.Context, request *CreateInfraBillingHistoryRecordRequest, options ...RequestOption) (InfraBillingCreateInfraBillingHistoryRecordRes, error) { + res, err := c.sendInfraBillingCreateInfraBillingHistoryRecord(ctx, request, options...) + return res, err +} + +func (c *Client) sendInfraBillingCreateInfraBillingHistoryRecord(ctx context.Context, request *CreateInfraBillingHistoryRecordRequest, requestOptions ...RequestOption) (res InfraBillingCreateInfraBillingHistoryRecordRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("InfraBilling_createInfraBillingHistoryRecord"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/infra-billing/history"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, InfraBillingCreateInfraBillingHistoryRecordOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/infra-billing/history" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeInfraBillingCreateInfraBillingHistoryRecordRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, InfraBillingCreateInfraBillingHistoryRecordOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeInfraBillingCreateInfraBillingHistoryRecordResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// InfraBillingCreateInfraBillingNode invokes InfraBilling_createInfraBillingNode operation. +// +// Create infra billing node. +// +// POST /api/infra-billing/nodes +func (c *Client) InfraBillingCreateInfraBillingNode(ctx context.Context, request *CreateInfraBillingNodeRequest, options ...RequestOption) (InfraBillingCreateInfraBillingNodeRes, error) { + res, err := c.sendInfraBillingCreateInfraBillingNode(ctx, request, options...) + return res, err +} + +func (c *Client) sendInfraBillingCreateInfraBillingNode(ctx context.Context, request *CreateInfraBillingNodeRequest, requestOptions ...RequestOption) (res InfraBillingCreateInfraBillingNodeRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("InfraBilling_createInfraBillingNode"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/infra-billing/nodes"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, InfraBillingCreateInfraBillingNodeOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/infra-billing/nodes" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeInfraBillingCreateInfraBillingNodeRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, InfraBillingCreateInfraBillingNodeOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeInfraBillingCreateInfraBillingNodeResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// InfraBillingCreateInfraProvider invokes InfraBilling_createInfraProvider operation. +// +// Create infra provider. +// +// POST /api/infra-billing/providers +func (c *Client) InfraBillingCreateInfraProvider(ctx context.Context, request *CreateInfraProviderRequest, options ...RequestOption) (InfraBillingCreateInfraProviderRes, error) { + res, err := c.sendInfraBillingCreateInfraProvider(ctx, request, options...) + return res, err +} + +func (c *Client) sendInfraBillingCreateInfraProvider(ctx context.Context, request *CreateInfraProviderRequest, requestOptions ...RequestOption) (res InfraBillingCreateInfraProviderRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("InfraBilling_createInfraProvider"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/infra-billing/providers"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, InfraBillingCreateInfraProviderOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/infra-billing/providers" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeInfraBillingCreateInfraProviderRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, InfraBillingCreateInfraProviderOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeInfraBillingCreateInfraProviderResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// InfraBillingDeleteInfraBillingHistoryRecordByUuid invokes InfraBilling_deleteInfraBillingHistoryRecordByUuid operation. +// +// Delete infra billing history. +// +// DELETE /api/infra-billing/history/{uuid} +func (c *Client) InfraBillingDeleteInfraBillingHistoryRecordByUuid(ctx context.Context, params InfraBillingDeleteInfraBillingHistoryRecordByUuidParams, options ...RequestOption) (InfraBillingDeleteInfraBillingHistoryRecordByUuidRes, error) { + res, err := c.sendInfraBillingDeleteInfraBillingHistoryRecordByUuid(ctx, params, options...) + return res, err +} + +func (c *Client) sendInfraBillingDeleteInfraBillingHistoryRecordByUuid(ctx context.Context, params InfraBillingDeleteInfraBillingHistoryRecordByUuidParams, requestOptions ...RequestOption) (res InfraBillingDeleteInfraBillingHistoryRecordByUuidRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("InfraBilling_deleteInfraBillingHistoryRecordByUuid"), + semconv.HTTPRequestMethodKey.String("DELETE"), + semconv.URLTemplateKey.String("/api/infra-billing/history/{uuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, InfraBillingDeleteInfraBillingHistoryRecordByUuidOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/infra-billing/history/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "DELETE", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, InfraBillingDeleteInfraBillingHistoryRecordByUuidOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeInfraBillingDeleteInfraBillingHistoryRecordByUuidResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// InfraBillingDeleteInfraBillingNodeByUuid invokes InfraBilling_deleteInfraBillingNodeByUuid operation. +// +// Delete infra billing node. +// +// DELETE /api/infra-billing/nodes/{uuid} +func (c *Client) InfraBillingDeleteInfraBillingNodeByUuid(ctx context.Context, params InfraBillingDeleteInfraBillingNodeByUuidParams, options ...RequestOption) (InfraBillingDeleteInfraBillingNodeByUuidRes, error) { + res, err := c.sendInfraBillingDeleteInfraBillingNodeByUuid(ctx, params, options...) + return res, err +} + +func (c *Client) sendInfraBillingDeleteInfraBillingNodeByUuid(ctx context.Context, params InfraBillingDeleteInfraBillingNodeByUuidParams, requestOptions ...RequestOption) (res InfraBillingDeleteInfraBillingNodeByUuidRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("InfraBilling_deleteInfraBillingNodeByUuid"), + semconv.HTTPRequestMethodKey.String("DELETE"), + semconv.URLTemplateKey.String("/api/infra-billing/nodes/{uuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, InfraBillingDeleteInfraBillingNodeByUuidOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/infra-billing/nodes/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "DELETE", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, InfraBillingDeleteInfraBillingNodeByUuidOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeInfraBillingDeleteInfraBillingNodeByUuidResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// InfraBillingDeleteInfraProviderByUuid invokes InfraBilling_deleteInfraProviderByUuid operation. +// +// Delete infra provider by uuid. +// +// DELETE /api/infra-billing/providers/{uuid} +func (c *Client) InfraBillingDeleteInfraProviderByUuid(ctx context.Context, params InfraBillingDeleteInfraProviderByUuidParams, options ...RequestOption) (InfraBillingDeleteInfraProviderByUuidRes, error) { + res, err := c.sendInfraBillingDeleteInfraProviderByUuid(ctx, params, options...) + return res, err +} + +func (c *Client) sendInfraBillingDeleteInfraProviderByUuid(ctx context.Context, params InfraBillingDeleteInfraProviderByUuidParams, requestOptions ...RequestOption) (res InfraBillingDeleteInfraProviderByUuidRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("InfraBilling_deleteInfraProviderByUuid"), + semconv.HTTPRequestMethodKey.String("DELETE"), + semconv.URLTemplateKey.String("/api/infra-billing/providers/{uuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, InfraBillingDeleteInfraProviderByUuidOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/infra-billing/providers/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "DELETE", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, InfraBillingDeleteInfraProviderByUuidOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeInfraBillingDeleteInfraProviderByUuidResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// InfraBillingGetBillingNodes invokes InfraBilling_getBillingNodes operation. +// +// Get infra billing nodes. +// +// GET /api/infra-billing/nodes +func (c *Client) InfraBillingGetBillingNodes(ctx context.Context, options ...RequestOption) (InfraBillingGetBillingNodesRes, error) { + res, err := c.sendInfraBillingGetBillingNodes(ctx, options...) + return res, err +} + +func (c *Client) sendInfraBillingGetBillingNodes(ctx context.Context, requestOptions ...RequestOption) (res InfraBillingGetBillingNodesRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("InfraBilling_getBillingNodes"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/infra-billing/nodes"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, InfraBillingGetBillingNodesOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/infra-billing/nodes" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, InfraBillingGetBillingNodesOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeInfraBillingGetBillingNodesResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// InfraBillingGetInfraBillingHistoryRecords invokes InfraBilling_getInfraBillingHistoryRecords operation. +// +// Get infra billing history. +// +// GET /api/infra-billing/history +func (c *Client) InfraBillingGetInfraBillingHistoryRecords(ctx context.Context, options ...RequestOption) (InfraBillingGetInfraBillingHistoryRecordsRes, error) { + res, err := c.sendInfraBillingGetInfraBillingHistoryRecords(ctx, options...) + return res, err +} + +func (c *Client) sendInfraBillingGetInfraBillingHistoryRecords(ctx context.Context, requestOptions ...RequestOption) (res InfraBillingGetInfraBillingHistoryRecordsRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("InfraBilling_getInfraBillingHistoryRecords"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/infra-billing/history"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, InfraBillingGetInfraBillingHistoryRecordsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/infra-billing/history" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, InfraBillingGetInfraBillingHistoryRecordsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeInfraBillingGetInfraBillingHistoryRecordsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// InfraBillingGetInfraProviderByUuid invokes InfraBilling_getInfraProviderByUuid operation. +// +// Get infra provider by uuid. +// +// GET /api/infra-billing/providers/{uuid} +func (c *Client) InfraBillingGetInfraProviderByUuid(ctx context.Context, params InfraBillingGetInfraProviderByUuidParams, options ...RequestOption) (InfraBillingGetInfraProviderByUuidRes, error) { + res, err := c.sendInfraBillingGetInfraProviderByUuid(ctx, params, options...) + return res, err +} + +func (c *Client) sendInfraBillingGetInfraProviderByUuid(ctx context.Context, params InfraBillingGetInfraProviderByUuidParams, requestOptions ...RequestOption) (res InfraBillingGetInfraProviderByUuidRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("InfraBilling_getInfraProviderByUuid"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/infra-billing/providers/{uuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, InfraBillingGetInfraProviderByUuidOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/infra-billing/providers/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, InfraBillingGetInfraProviderByUuidOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeInfraBillingGetInfraProviderByUuidResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// InfraBillingGetInfraProviders invokes InfraBilling_getInfraProviders operation. +// +// Get all infra providers. +// +// GET /api/infra-billing/providers +func (c *Client) InfraBillingGetInfraProviders(ctx context.Context, options ...RequestOption) (InfraBillingGetInfraProvidersRes, error) { + res, err := c.sendInfraBillingGetInfraProviders(ctx, options...) + return res, err +} + +func (c *Client) sendInfraBillingGetInfraProviders(ctx context.Context, requestOptions ...RequestOption) (res InfraBillingGetInfraProvidersRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("InfraBilling_getInfraProviders"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/infra-billing/providers"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, InfraBillingGetInfraProvidersOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/infra-billing/providers" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, InfraBillingGetInfraProvidersOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeInfraBillingGetInfraProvidersResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// InfraBillingUpdateInfraBillingNode invokes InfraBilling_updateInfraBillingNode operation. +// +// Update infra billing nodes. +// +// PATCH /api/infra-billing/nodes +func (c *Client) InfraBillingUpdateInfraBillingNode(ctx context.Context, request *UpdateInfraBillingNodeRequest, options ...RequestOption) (InfraBillingUpdateInfraBillingNodeRes, error) { + res, err := c.sendInfraBillingUpdateInfraBillingNode(ctx, request, options...) + return res, err +} + +func (c *Client) sendInfraBillingUpdateInfraBillingNode(ctx context.Context, request *UpdateInfraBillingNodeRequest, requestOptions ...RequestOption) (res InfraBillingUpdateInfraBillingNodeRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("InfraBilling_updateInfraBillingNode"), + semconv.HTTPRequestMethodKey.String("PATCH"), + semconv.URLTemplateKey.String("/api/infra-billing/nodes"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, InfraBillingUpdateInfraBillingNodeOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/infra-billing/nodes" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "PATCH", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeInfraBillingUpdateInfraBillingNodeRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, InfraBillingUpdateInfraBillingNodeOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeInfraBillingUpdateInfraBillingNodeResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// InfraBillingUpdateInfraProvider invokes InfraBilling_updateInfraProvider operation. +// +// Update infra provider. +// +// PATCH /api/infra-billing/providers +func (c *Client) InfraBillingUpdateInfraProvider(ctx context.Context, request *UpdateInfraProviderRequest, options ...RequestOption) (InfraBillingUpdateInfraProviderRes, error) { + res, err := c.sendInfraBillingUpdateInfraProvider(ctx, request, options...) + return res, err +} + +func (c *Client) sendInfraBillingUpdateInfraProvider(ctx context.Context, request *UpdateInfraProviderRequest, requestOptions ...RequestOption) (res InfraBillingUpdateInfraProviderRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("InfraBilling_updateInfraProvider"), + semconv.HTTPRequestMethodKey.String("PATCH"), + semconv.URLTemplateKey.String("/api/infra-billing/providers"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, InfraBillingUpdateInfraProviderOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/infra-billing/providers" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "PATCH", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeInfraBillingUpdateInfraProviderRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, InfraBillingUpdateInfraProviderOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeInfraBillingUpdateInfraProviderResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// InternalSquadAddUsersToInternalSquad invokes InternalSquad_addUsersToInternalSquad operation. +// +// Add all users to internal squad. +// +// POST /api/internal-squads/{uuid}/bulk-actions/add-users +func (c *Client) InternalSquadAddUsersToInternalSquad(ctx context.Context, params InternalSquadAddUsersToInternalSquadParams, options ...RequestOption) (InternalSquadAddUsersToInternalSquadRes, error) { + res, err := c.sendInternalSquadAddUsersToInternalSquad(ctx, params, options...) + return res, err +} + +func (c *Client) sendInternalSquadAddUsersToInternalSquad(ctx context.Context, params InternalSquadAddUsersToInternalSquadParams, requestOptions ...RequestOption) (res InternalSquadAddUsersToInternalSquadRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("InternalSquad_addUsersToInternalSquad"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/internal-squads/{uuid}/bulk-actions/add-users"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, InternalSquadAddUsersToInternalSquadOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [3]string + pathParts[0] = "/api/internal-squads/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + pathParts[2] = "/bulk-actions/add-users" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, InternalSquadAddUsersToInternalSquadOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeInternalSquadAddUsersToInternalSquadResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// InternalSquadCreateInternalSquad invokes InternalSquad_createInternalSquad operation. +// +// Create internal squad. +// +// POST /api/internal-squads +func (c *Client) InternalSquadCreateInternalSquad(ctx context.Context, request *CreateInternalSquadRequest, options ...RequestOption) (InternalSquadCreateInternalSquadRes, error) { + res, err := c.sendInternalSquadCreateInternalSquad(ctx, request, options...) + return res, err +} + +func (c *Client) sendInternalSquadCreateInternalSquad(ctx context.Context, request *CreateInternalSquadRequest, requestOptions ...RequestOption) (res InternalSquadCreateInternalSquadRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("InternalSquad_createInternalSquad"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/internal-squads"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, InternalSquadCreateInternalSquadOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/internal-squads" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeInternalSquadCreateInternalSquadRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, InternalSquadCreateInternalSquadOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeInternalSquadCreateInternalSquadResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// InternalSquadDeleteInternalSquad invokes InternalSquad_deleteInternalSquad operation. +// +// Delete internal squad. +// +// DELETE /api/internal-squads/{uuid} +func (c *Client) InternalSquadDeleteInternalSquad(ctx context.Context, params InternalSquadDeleteInternalSquadParams, options ...RequestOption) (InternalSquadDeleteInternalSquadRes, error) { + res, err := c.sendInternalSquadDeleteInternalSquad(ctx, params, options...) + return res, err +} + +func (c *Client) sendInternalSquadDeleteInternalSquad(ctx context.Context, params InternalSquadDeleteInternalSquadParams, requestOptions ...RequestOption) (res InternalSquadDeleteInternalSquadRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("InternalSquad_deleteInternalSquad"), + semconv.HTTPRequestMethodKey.String("DELETE"), + semconv.URLTemplateKey.String("/api/internal-squads/{uuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, InternalSquadDeleteInternalSquadOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/internal-squads/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "DELETE", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, InternalSquadDeleteInternalSquadOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeInternalSquadDeleteInternalSquadResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// InternalSquadGetInternalSquadAccessibleNodes invokes InternalSquad_getInternalSquadAccessibleNodes operation. +// +// Get internal squad accessible nodes. +// +// GET /api/internal-squads/{uuid}/accessible-nodes +func (c *Client) InternalSquadGetInternalSquadAccessibleNodes(ctx context.Context, params InternalSquadGetInternalSquadAccessibleNodesParams, options ...RequestOption) (InternalSquadGetInternalSquadAccessibleNodesRes, error) { + res, err := c.sendInternalSquadGetInternalSquadAccessibleNodes(ctx, params, options...) + return res, err +} + +func (c *Client) sendInternalSquadGetInternalSquadAccessibleNodes(ctx context.Context, params InternalSquadGetInternalSquadAccessibleNodesParams, requestOptions ...RequestOption) (res InternalSquadGetInternalSquadAccessibleNodesRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("InternalSquad_getInternalSquadAccessibleNodes"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/internal-squads/{uuid}/accessible-nodes"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, InternalSquadGetInternalSquadAccessibleNodesOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [3]string + pathParts[0] = "/api/internal-squads/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + pathParts[2] = "/accessible-nodes" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, InternalSquadGetInternalSquadAccessibleNodesOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeInternalSquadGetInternalSquadAccessibleNodesResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// InternalSquadGetInternalSquadByUuid invokes InternalSquad_getInternalSquadByUuid operation. +// +// Get internal squad by uuid. +// +// GET /api/internal-squads/{uuid} +func (c *Client) InternalSquadGetInternalSquadByUuid(ctx context.Context, params InternalSquadGetInternalSquadByUuidParams, options ...RequestOption) (InternalSquadGetInternalSquadByUuidRes, error) { + res, err := c.sendInternalSquadGetInternalSquadByUuid(ctx, params, options...) + return res, err +} + +func (c *Client) sendInternalSquadGetInternalSquadByUuid(ctx context.Context, params InternalSquadGetInternalSquadByUuidParams, requestOptions ...RequestOption) (res InternalSquadGetInternalSquadByUuidRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("InternalSquad_getInternalSquadByUuid"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/internal-squads/{uuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, InternalSquadGetInternalSquadByUuidOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/internal-squads/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, InternalSquadGetInternalSquadByUuidOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeInternalSquadGetInternalSquadByUuidResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// InternalSquadGetInternalSquads invokes InternalSquad_getInternalSquads operation. +// +// Get all internal squads. +// +// GET /api/internal-squads +func (c *Client) InternalSquadGetInternalSquads(ctx context.Context, options ...RequestOption) (InternalSquadGetInternalSquadsRes, error) { + res, err := c.sendInternalSquadGetInternalSquads(ctx, options...) + return res, err +} + +func (c *Client) sendInternalSquadGetInternalSquads(ctx context.Context, requestOptions ...RequestOption) (res InternalSquadGetInternalSquadsRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("InternalSquad_getInternalSquads"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/internal-squads"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, InternalSquadGetInternalSquadsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/internal-squads" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, InternalSquadGetInternalSquadsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeInternalSquadGetInternalSquadsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// InternalSquadRemoveUsersFromInternalSquad invokes InternalSquad_removeUsersFromInternalSquad operation. +// +// Delete users from internal squad. +// +// DELETE /api/internal-squads/{uuid}/bulk-actions/remove-users +func (c *Client) InternalSquadRemoveUsersFromInternalSquad(ctx context.Context, params InternalSquadRemoveUsersFromInternalSquadParams, options ...RequestOption) (InternalSquadRemoveUsersFromInternalSquadRes, error) { + res, err := c.sendInternalSquadRemoveUsersFromInternalSquad(ctx, params, options...) + return res, err +} + +func (c *Client) sendInternalSquadRemoveUsersFromInternalSquad(ctx context.Context, params InternalSquadRemoveUsersFromInternalSquadParams, requestOptions ...RequestOption) (res InternalSquadRemoveUsersFromInternalSquadRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("InternalSquad_removeUsersFromInternalSquad"), + semconv.HTTPRequestMethodKey.String("DELETE"), + semconv.URLTemplateKey.String("/api/internal-squads/{uuid}/bulk-actions/remove-users"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, InternalSquadRemoveUsersFromInternalSquadOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [3]string + pathParts[0] = "/api/internal-squads/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + pathParts[2] = "/bulk-actions/remove-users" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "DELETE", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, InternalSquadRemoveUsersFromInternalSquadOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeInternalSquadRemoveUsersFromInternalSquadResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// InternalSquadReorderInternalSquads invokes InternalSquad_reorderInternalSquads operation. +// +// Reorder internal squads. +// +// POST /api/internal-squads/actions/reorder +func (c *Client) InternalSquadReorderInternalSquads(ctx context.Context, request *ReorderRequest, options ...RequestOption) (InternalSquadReorderInternalSquadsRes, error) { + res, err := c.sendInternalSquadReorderInternalSquads(ctx, request, options...) + return res, err +} + +func (c *Client) sendInternalSquadReorderInternalSquads(ctx context.Context, request *ReorderRequest, requestOptions ...RequestOption) (res InternalSquadReorderInternalSquadsRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("InternalSquad_reorderInternalSquads"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/internal-squads/actions/reorder"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, InternalSquadReorderInternalSquadsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/internal-squads/actions/reorder" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeInternalSquadReorderInternalSquadsRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, InternalSquadReorderInternalSquadsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeInternalSquadReorderInternalSquadsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// InternalSquadUpdateInternalSquad invokes InternalSquad_updateInternalSquad operation. +// +// Update internal squad. +// +// PATCH /api/internal-squads +func (c *Client) InternalSquadUpdateInternalSquad(ctx context.Context, request *UpdateInternalSquadRequest, options ...RequestOption) (InternalSquadUpdateInternalSquadRes, error) { + res, err := c.sendInternalSquadUpdateInternalSquad(ctx, request, options...) + return res, err +} + +func (c *Client) sendInternalSquadUpdateInternalSquad(ctx context.Context, request *UpdateInternalSquadRequest, requestOptions ...RequestOption) (res InternalSquadUpdateInternalSquadRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("InternalSquad_updateInternalSquad"), + semconv.HTTPRequestMethodKey.String("PATCH"), + semconv.URLTemplateKey.String("/api/internal-squads"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, InternalSquadUpdateInternalSquadOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/internal-squads" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "PATCH", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeInternalSquadUpdateInternalSquadRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, InternalSquadUpdateInternalSquadOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeInternalSquadUpdateInternalSquadResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// IpControlDropConnections invokes IpControl_dropConnections operation. +// +// Drop Connections for Users or IPs. +// +// POST /api/ip-control/drop-connections +func (c *Client) IpControlDropConnections(ctx context.Context, request *DropConnectionsRequest, options ...RequestOption) (IpControlDropConnectionsRes, error) { + res, err := c.sendIpControlDropConnections(ctx, request, options...) + return res, err +} + +func (c *Client) sendIpControlDropConnections(ctx context.Context, request *DropConnectionsRequest, requestOptions ...RequestOption) (res IpControlDropConnectionsRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("IpControl_dropConnections"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/ip-control/drop-connections"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, IpControlDropConnectionsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/ip-control/drop-connections" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeIpControlDropConnectionsRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, IpControlDropConnectionsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeIpControlDropConnectionsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// IpControlFetchUserIps invokes IpControl_fetchUserIps operation. +// +// Request IP List for User. +// +// POST /api/ip-control/fetch-ips/{uuid} +func (c *Client) IpControlFetchUserIps(ctx context.Context, params IpControlFetchUserIpsParams, options ...RequestOption) (IpControlFetchUserIpsRes, error) { + res, err := c.sendIpControlFetchUserIps(ctx, params, options...) + return res, err +} + +func (c *Client) sendIpControlFetchUserIps(ctx context.Context, params IpControlFetchUserIpsParams, requestOptions ...RequestOption) (res IpControlFetchUserIpsRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("IpControl_fetchUserIps"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/ip-control/fetch-ips/{uuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, IpControlFetchUserIpsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/ip-control/fetch-ips/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, IpControlFetchUserIpsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeIpControlFetchUserIpsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// IpControlFetchUsersIps invokes IpControl_fetchUsersIps operation. +// +// Request Users IPs List for Node. +// +// POST /api/ip-control/fetch-users-ips/{nodeUuid} +func (c *Client) IpControlFetchUsersIps(ctx context.Context, params IpControlFetchUsersIpsParams, options ...RequestOption) (IpControlFetchUsersIpsRes, error) { + res, err := c.sendIpControlFetchUsersIps(ctx, params, options...) + return res, err +} + +func (c *Client) sendIpControlFetchUsersIps(ctx context.Context, params IpControlFetchUsersIpsParams, requestOptions ...RequestOption) (res IpControlFetchUsersIpsRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("IpControl_fetchUsersIps"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/ip-control/fetch-users-ips/{nodeUuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, IpControlFetchUsersIpsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/ip-control/fetch-users-ips/" + { + // Encode "nodeUuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "nodeUuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.NodeUuid)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, IpControlFetchUsersIpsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeIpControlFetchUsersIpsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// IpControlGetFetchIpsResult invokes IpControl_getFetchIpsResult operation. +// +// Get IP List Result by Job ID. +// +// GET /api/ip-control/fetch-ips/result/{jobId} +func (c *Client) IpControlGetFetchIpsResult(ctx context.Context, params IpControlGetFetchIpsResultParams, options ...RequestOption) (IpControlGetFetchIpsResultRes, error) { + res, err := c.sendIpControlGetFetchIpsResult(ctx, params, options...) + return res, err +} + +func (c *Client) sendIpControlGetFetchIpsResult(ctx context.Context, params IpControlGetFetchIpsResultParams, requestOptions ...RequestOption) (res IpControlGetFetchIpsResultRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("IpControl_getFetchIpsResult"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/ip-control/fetch-ips/result/{jobId}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, IpControlGetFetchIpsResultOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/ip-control/fetch-ips/result/" + { + // Encode "jobId" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "jobId", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.JobId)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, IpControlGetFetchIpsResultOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeIpControlGetFetchIpsResultResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// IpControlGetFetchUsersIpsResult invokes IpControl_getFetchUsersIpsResult operation. +// +// Get Users IPs List Result by Job ID. +// +// GET /api/ip-control/fetch-users-ips/result/{jobId} +func (c *Client) IpControlGetFetchUsersIpsResult(ctx context.Context, params IpControlGetFetchUsersIpsResultParams, options ...RequestOption) (IpControlGetFetchUsersIpsResultRes, error) { + res, err := c.sendIpControlGetFetchUsersIpsResult(ctx, params, options...) + return res, err +} + +func (c *Client) sendIpControlGetFetchUsersIpsResult(ctx context.Context, params IpControlGetFetchUsersIpsResultParams, requestOptions ...RequestOption) (res IpControlGetFetchUsersIpsResultRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("IpControl_getFetchUsersIpsResult"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/ip-control/fetch-users-ips/result/{jobId}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, IpControlGetFetchUsersIpsResultOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/ip-control/fetch-users-ips/result/" + { + // Encode "jobId" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "jobId", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.JobId)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, IpControlGetFetchUsersIpsResultOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeIpControlGetFetchUsersIpsResultResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// KeygenGenerateKey invokes Keygen_generateKey operation. +// +// Get SECRET_KEY for Remnawave Node. +// +// GET /api/keygen +func (c *Client) KeygenGenerateKey(ctx context.Context, options ...RequestOption) (KeygenGenerateKeyRes, error) { + res, err := c.sendKeygenGenerateKey(ctx, options...) + return res, err +} + +func (c *Client) sendKeygenGenerateKey(ctx context.Context, requestOptions ...RequestOption) (res KeygenGenerateKeyRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Keygen_generateKey"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/keygen"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, KeygenGenerateKeyOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/keygen" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, KeygenGenerateKeyOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeKeygenGenerateKeyResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// MetadataGetNodeMetadata invokes Metadata_getNodeMetadata operation. +// +// Get node metadata. +// +// GET /api/metadata/node/{uuid} +func (c *Client) MetadataGetNodeMetadata(ctx context.Context, params MetadataGetNodeMetadataParams, options ...RequestOption) (MetadataGetNodeMetadataRes, error) { + res, err := c.sendMetadataGetNodeMetadata(ctx, params, options...) + return res, err +} + +func (c *Client) sendMetadataGetNodeMetadata(ctx context.Context, params MetadataGetNodeMetadataParams, requestOptions ...RequestOption) (res MetadataGetNodeMetadataRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Metadata_getNodeMetadata"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/metadata/node/{uuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, MetadataGetNodeMetadataOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/metadata/node/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, MetadataGetNodeMetadataOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeMetadataGetNodeMetadataResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// MetadataGetUserMetadata invokes Metadata_getUserMetadata operation. +// +// Get user metadata. +// +// GET /api/metadata/user/{uuid} +func (c *Client) MetadataGetUserMetadata(ctx context.Context, params MetadataGetUserMetadataParams, options ...RequestOption) (MetadataGetUserMetadataRes, error) { + res, err := c.sendMetadataGetUserMetadata(ctx, params, options...) + return res, err +} + +func (c *Client) sendMetadataGetUserMetadata(ctx context.Context, params MetadataGetUserMetadataParams, requestOptions ...RequestOption) (res MetadataGetUserMetadataRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Metadata_getUserMetadata"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/metadata/user/{uuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, MetadataGetUserMetadataOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/metadata/user/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, MetadataGetUserMetadataOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeMetadataGetUserMetadataResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// MetadataUpsertNodeMetadata invokes Metadata_upsertNodeMetadata operation. +// +// Update or create Node Metadata. +// +// PUT /api/metadata/node/{uuid} +func (c *Client) MetadataUpsertNodeMetadata(ctx context.Context, request *UpsertUserMetadataRequestBodyRequest, params MetadataUpsertNodeMetadataParams, options ...RequestOption) (MetadataUpsertNodeMetadataRes, error) { + res, err := c.sendMetadataUpsertNodeMetadata(ctx, request, params, options...) + return res, err +} + +func (c *Client) sendMetadataUpsertNodeMetadata(ctx context.Context, request *UpsertUserMetadataRequestBodyRequest, params MetadataUpsertNodeMetadataParams, requestOptions ...RequestOption) (res MetadataUpsertNodeMetadataRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Metadata_upsertNodeMetadata"), + semconv.HTTPRequestMethodKey.String("PUT"), + semconv.URLTemplateKey.String("/api/metadata/node/{uuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, MetadataUpsertNodeMetadataOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/metadata/node/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "PUT", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeMetadataUpsertNodeMetadataRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, MetadataUpsertNodeMetadataOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeMetadataUpsertNodeMetadataResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// MetadataUpsertUserMetadata invokes Metadata_upsertUserMetadata operation. +// +// Update or create User Metadata. +// +// PUT /api/metadata/user/{uuid} +func (c *Client) MetadataUpsertUserMetadata(ctx context.Context, request *UpsertUserMetadataRequestBodyRequest, params MetadataUpsertUserMetadataParams, options ...RequestOption) (MetadataUpsertUserMetadataRes, error) { + res, err := c.sendMetadataUpsertUserMetadata(ctx, request, params, options...) + return res, err +} + +func (c *Client) sendMetadataUpsertUserMetadata(ctx context.Context, request *UpsertUserMetadataRequestBodyRequest, params MetadataUpsertUserMetadataParams, requestOptions ...RequestOption) (res MetadataUpsertUserMetadataRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Metadata_upsertUserMetadata"), + semconv.HTTPRequestMethodKey.String("PUT"), + semconv.URLTemplateKey.String("/api/metadata/user/{uuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, MetadataUpsertUserMetadataOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/metadata/user/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "PUT", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeMetadataUpsertUserMetadataRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, MetadataUpsertUserMetadataOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeMetadataUpsertUserMetadataResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// NodePluginCloneNodePlugin invokes NodePlugin_cloneNodePlugin operation. +// +// Clone Node Plugin. +// +// POST /api/node-plugins/actions/clone +func (c *Client) NodePluginCloneNodePlugin(ctx context.Context, request *CloneNodePluginRequestRequest, options ...RequestOption) (NodePluginCloneNodePluginRes, error) { + res, err := c.sendNodePluginCloneNodePlugin(ctx, request, options...) + return res, err +} + +func (c *Client) sendNodePluginCloneNodePlugin(ctx context.Context, request *CloneNodePluginRequestRequest, requestOptions ...RequestOption) (res NodePluginCloneNodePluginRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("NodePlugin_cloneNodePlugin"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/node-plugins/actions/clone"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, NodePluginCloneNodePluginOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/node-plugins/actions/clone" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeNodePluginCloneNodePluginRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, NodePluginCloneNodePluginOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeNodePluginCloneNodePluginResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// NodePluginCreateConfig invokes NodePlugin_createConfig operation. +// +// Create Node Plugin. +// +// POST /api/node-plugins +func (c *Client) NodePluginCreateConfig(ctx context.Context, request *CreateNodePluginRequest, options ...RequestOption) (NodePluginCreateConfigRes, error) { + res, err := c.sendNodePluginCreateConfig(ctx, request, options...) + return res, err +} + +func (c *Client) sendNodePluginCreateConfig(ctx context.Context, request *CreateNodePluginRequest, requestOptions ...RequestOption) (res NodePluginCreateConfigRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("NodePlugin_createConfig"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/node-plugins"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, NodePluginCreateConfigOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/node-plugins" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeNodePluginCreateConfigRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, NodePluginCreateConfigOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeNodePluginCreateConfigResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// NodePluginDeleteConfig invokes NodePlugin_deleteConfig operation. +// +// Delete Node Plugin. +// +// DELETE /api/node-plugins/{uuid} +func (c *Client) NodePluginDeleteConfig(ctx context.Context, params NodePluginDeleteConfigParams, options ...RequestOption) (NodePluginDeleteConfigRes, error) { + res, err := c.sendNodePluginDeleteConfig(ctx, params, options...) + return res, err +} + +func (c *Client) sendNodePluginDeleteConfig(ctx context.Context, params NodePluginDeleteConfigParams, requestOptions ...RequestOption) (res NodePluginDeleteConfigRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("NodePlugin_deleteConfig"), + semconv.HTTPRequestMethodKey.String("DELETE"), + semconv.URLTemplateKey.String("/api/node-plugins/{uuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, NodePluginDeleteConfigOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/node-plugins/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "DELETE", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, NodePluginDeleteConfigOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeNodePluginDeleteConfigResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// NodePluginGetAllConfigs invokes NodePlugin_getAllConfigs operation. +// +// Get all Node Plugins. +// +// GET /api/node-plugins +func (c *Client) NodePluginGetAllConfigs(ctx context.Context, options ...RequestOption) (NodePluginGetAllConfigsRes, error) { + res, err := c.sendNodePluginGetAllConfigs(ctx, options...) + return res, err +} + +func (c *Client) sendNodePluginGetAllConfigs(ctx context.Context, requestOptions ...RequestOption) (res NodePluginGetAllConfigsRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("NodePlugin_getAllConfigs"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/node-plugins"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, NodePluginGetAllConfigsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/node-plugins" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, NodePluginGetAllConfigsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeNodePluginGetAllConfigsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// NodePluginGetConfigByUuid invokes NodePlugin_getConfigByUuid operation. +// +// Get Node Plugin by uuid. +// +// GET /api/node-plugins/{uuid} +func (c *Client) NodePluginGetConfigByUuid(ctx context.Context, params NodePluginGetConfigByUuidParams, options ...RequestOption) (NodePluginGetConfigByUuidRes, error) { + res, err := c.sendNodePluginGetConfigByUuid(ctx, params, options...) + return res, err +} + +func (c *Client) sendNodePluginGetConfigByUuid(ctx context.Context, params NodePluginGetConfigByUuidParams, requestOptions ...RequestOption) (res NodePluginGetConfigByUuidRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("NodePlugin_getConfigByUuid"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/node-plugins/{uuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, NodePluginGetConfigByUuidOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/node-plugins/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, NodePluginGetConfigByUuidOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeNodePluginGetConfigByUuidResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// NodePluginPluginExecutor invokes NodePlugin_pluginExecutor operation. +// +// Execute command on node plugins. +// +// POST /api/node-plugins/executor +func (c *Client) NodePluginPluginExecutor(ctx context.Context, request *PluginExecutorRequest, options ...RequestOption) (NodePluginPluginExecutorRes, error) { + res, err := c.sendNodePluginPluginExecutor(ctx, request, options...) + return res, err +} + +func (c *Client) sendNodePluginPluginExecutor(ctx context.Context, request *PluginExecutorRequest, requestOptions ...RequestOption) (res NodePluginPluginExecutorRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("NodePlugin_pluginExecutor"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/node-plugins/executor"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, NodePluginPluginExecutorOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/node-plugins/executor" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeNodePluginPluginExecutorRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, NodePluginPluginExecutorOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeNodePluginPluginExecutorResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// NodePluginReorderNodePlugins invokes NodePlugin_reorderNodePlugins operation. +// +// Reorder Node Plugins. +// +// POST /api/node-plugins/actions/reorder +func (c *Client) NodePluginReorderNodePlugins(ctx context.Context, request *ReorderRequest, options ...RequestOption) (NodePluginReorderNodePluginsRes, error) { + res, err := c.sendNodePluginReorderNodePlugins(ctx, request, options...) + return res, err +} + +func (c *Client) sendNodePluginReorderNodePlugins(ctx context.Context, request *ReorderRequest, requestOptions ...RequestOption) (res NodePluginReorderNodePluginsRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("NodePlugin_reorderNodePlugins"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/node-plugins/actions/reorder"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, NodePluginReorderNodePluginsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/node-plugins/actions/reorder" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeNodePluginReorderNodePluginsRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, NodePluginReorderNodePluginsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeNodePluginReorderNodePluginsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// NodePluginUpdateConfig invokes NodePlugin_updateConfig operation. +// +// Update Node Plugin. +// +// PATCH /api/node-plugins +func (c *Client) NodePluginUpdateConfig(ctx context.Context, request *UpdateNodePluginRequest, options ...RequestOption) (NodePluginUpdateConfigRes, error) { + res, err := c.sendNodePluginUpdateConfig(ctx, request, options...) + return res, err +} + +func (c *Client) sendNodePluginUpdateConfig(ctx context.Context, request *UpdateNodePluginRequest, requestOptions ...RequestOption) (res NodePluginUpdateConfigRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("NodePlugin_updateConfig"), + semconv.HTTPRequestMethodKey.String("PATCH"), + semconv.URLTemplateKey.String("/api/node-plugins"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, NodePluginUpdateConfigOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/node-plugins" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "PATCH", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeNodePluginUpdateConfigRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, NodePluginUpdateConfigOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeNodePluginUpdateConfigResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// NodesBulkNodesActions invokes Nodes_bulkNodesActions operation. +// +// Perform actions for many nodes. +// +// POST /api/nodes/bulk-actions +func (c *Client) NodesBulkNodesActions(ctx context.Context, request *BulkNodesActionsRequest, options ...RequestOption) (NodesBulkNodesActionsRes, error) { + res, err := c.sendNodesBulkNodesActions(ctx, request, options...) + return res, err +} + +func (c *Client) sendNodesBulkNodesActions(ctx context.Context, request *BulkNodesActionsRequest, requestOptions ...RequestOption) (res NodesBulkNodesActionsRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Nodes_bulkNodesActions"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/nodes/bulk-actions"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, NodesBulkNodesActionsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/nodes/bulk-actions" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeNodesBulkNodesActionsRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, NodesBulkNodesActionsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeNodesBulkNodesActionsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// NodesBulkNodesUpdate invokes Nodes_bulkNodesUpdate operation. +// +// Update many nodes. +// +// POST /api/nodes/bulk-actions/update +func (c *Client) NodesBulkNodesUpdate(ctx context.Context, request *BulkNodesUpdateRequest, options ...RequestOption) (NodesBulkNodesUpdateRes, error) { + res, err := c.sendNodesBulkNodesUpdate(ctx, request, options...) + return res, err +} + +func (c *Client) sendNodesBulkNodesUpdate(ctx context.Context, request *BulkNodesUpdateRequest, requestOptions ...RequestOption) (res NodesBulkNodesUpdateRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Nodes_bulkNodesUpdate"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/nodes/bulk-actions/update"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, NodesBulkNodesUpdateOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/nodes/bulk-actions/update" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeNodesBulkNodesUpdateRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, NodesBulkNodesUpdateOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeNodesBulkNodesUpdateResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// NodesCreateNode invokes Nodes_createNode operation. +// +// Create a new node. +// +// POST /api/nodes +func (c *Client) NodesCreateNode(ctx context.Context, request *CreateNodeRequest, options ...RequestOption) (NodesCreateNodeRes, error) { + res, err := c.sendNodesCreateNode(ctx, request, options...) + return res, err +} + +func (c *Client) sendNodesCreateNode(ctx context.Context, request *CreateNodeRequest, requestOptions ...RequestOption) (res NodesCreateNodeRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Nodes_createNode"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/nodes"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, NodesCreateNodeOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/nodes" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeNodesCreateNodeRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, NodesCreateNodeOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeNodesCreateNodeResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// NodesDeleteNode invokes Nodes_deleteNode operation. +// +// Delete a node. +// +// DELETE /api/nodes/{uuid} +func (c *Client) NodesDeleteNode(ctx context.Context, params NodesDeleteNodeParams, options ...RequestOption) (NodesDeleteNodeRes, error) { + res, err := c.sendNodesDeleteNode(ctx, params, options...) + return res, err +} + +func (c *Client) sendNodesDeleteNode(ctx context.Context, params NodesDeleteNodeParams, requestOptions ...RequestOption) (res NodesDeleteNodeRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Nodes_deleteNode"), + semconv.HTTPRequestMethodKey.String("DELETE"), + semconv.URLTemplateKey.String("/api/nodes/{uuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, NodesDeleteNodeOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/nodes/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "DELETE", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, NodesDeleteNodeOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeNodesDeleteNodeResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// NodesDisableNode invokes Nodes_disableNode operation. +// +// Disable a node. +// +// POST /api/nodes/{uuid}/actions/disable +func (c *Client) NodesDisableNode(ctx context.Context, params NodesDisableNodeParams, options ...RequestOption) (NodesDisableNodeRes, error) { + res, err := c.sendNodesDisableNode(ctx, params, options...) + return res, err +} + +func (c *Client) sendNodesDisableNode(ctx context.Context, params NodesDisableNodeParams, requestOptions ...RequestOption) (res NodesDisableNodeRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Nodes_disableNode"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/nodes/{uuid}/actions/disable"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, NodesDisableNodeOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [3]string + pathParts[0] = "/api/nodes/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + pathParts[2] = "/actions/disable" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, NodesDisableNodeOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeNodesDisableNodeResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// NodesEnableNode invokes Nodes_enableNode operation. +// +// Enable a node. +// +// POST /api/nodes/{uuid}/actions/enable +func (c *Client) NodesEnableNode(ctx context.Context, params NodesEnableNodeParams, options ...RequestOption) (NodesEnableNodeRes, error) { + res, err := c.sendNodesEnableNode(ctx, params, options...) + return res, err +} + +func (c *Client) sendNodesEnableNode(ctx context.Context, params NodesEnableNodeParams, requestOptions ...RequestOption) (res NodesEnableNodeRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Nodes_enableNode"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/nodes/{uuid}/actions/enable"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, NodesEnableNodeOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [3]string + pathParts[0] = "/api/nodes/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + pathParts[2] = "/actions/enable" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, NodesEnableNodeOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeNodesEnableNodeResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// NodesGetAllNodes invokes Nodes_getAllNodes operation. +// +// Get all nodes. +// +// GET /api/nodes +func (c *Client) NodesGetAllNodes(ctx context.Context, options ...RequestOption) (NodesGetAllNodesRes, error) { + res, err := c.sendNodesGetAllNodes(ctx, options...) + return res, err +} + +func (c *Client) sendNodesGetAllNodes(ctx context.Context, requestOptions ...RequestOption) (res NodesGetAllNodesRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Nodes_getAllNodes"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/nodes"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, NodesGetAllNodesOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/nodes" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, NodesGetAllNodesOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeNodesGetAllNodesResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// NodesGetAllNodesTags invokes Nodes_getAllNodesTags operation. +// +// Get all existing nodes tags. +// +// GET /api/nodes/tags +func (c *Client) NodesGetAllNodesTags(ctx context.Context, options ...RequestOption) (NodesGetAllNodesTagsRes, error) { + res, err := c.sendNodesGetAllNodesTags(ctx, options...) + return res, err +} + +func (c *Client) sendNodesGetAllNodesTags(ctx context.Context, requestOptions ...RequestOption) (res NodesGetAllNodesTagsRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Nodes_getAllNodesTags"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/nodes/tags"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, NodesGetAllNodesTagsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/nodes/tags" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, NodesGetAllNodesTagsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeNodesGetAllNodesTagsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// NodesGetOneNode invokes Nodes_getOneNode operation. +// +// Get node by UUID. +// +// GET /api/nodes/{uuid} +func (c *Client) NodesGetOneNode(ctx context.Context, params NodesGetOneNodeParams, options ...RequestOption) (NodesGetOneNodeRes, error) { + res, err := c.sendNodesGetOneNode(ctx, params, options...) + return res, err +} + +func (c *Client) sendNodesGetOneNode(ctx context.Context, params NodesGetOneNodeParams, requestOptions ...RequestOption) (res NodesGetOneNodeRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Nodes_getOneNode"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/nodes/{uuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, NodesGetOneNodeOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/nodes/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, NodesGetOneNodeOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeNodesGetOneNodeResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// NodesProfileModification invokes Nodes_profileModification operation. +// +// Modify Inbounds & Profile for many nodes. +// +// POST /api/nodes/bulk-actions/profile-modification +func (c *Client) NodesProfileModification(ctx context.Context, request *ProfileModificationRequest, options ...RequestOption) (NodesProfileModificationRes, error) { + res, err := c.sendNodesProfileModification(ctx, request, options...) + return res, err +} + +func (c *Client) sendNodesProfileModification(ctx context.Context, request *ProfileModificationRequest, requestOptions ...RequestOption) (res NodesProfileModificationRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Nodes_profileModification"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/nodes/bulk-actions/profile-modification"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, NodesProfileModificationOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/nodes/bulk-actions/profile-modification" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeNodesProfileModificationRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, NodesProfileModificationOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeNodesProfileModificationResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// NodesReorderNodes invokes Nodes_reorderNodes operation. +// +// Reorder nodes. +// +// POST /api/nodes/actions/reorder +func (c *Client) NodesReorderNodes(ctx context.Context, request *ReorderNodeRequest, options ...RequestOption) (NodesReorderNodesRes, error) { + res, err := c.sendNodesReorderNodes(ctx, request, options...) + return res, err +} + +func (c *Client) sendNodesReorderNodes(ctx context.Context, request *ReorderNodeRequest, requestOptions ...RequestOption) (res NodesReorderNodesRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Nodes_reorderNodes"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/nodes/actions/reorder"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, NodesReorderNodesOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/nodes/actions/reorder" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeNodesReorderNodesRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, NodesReorderNodesOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeNodesReorderNodesResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// NodesResetNodeTraffic invokes Nodes_resetNodeTraffic operation. +// +// Reset Node Traffic. +// +// POST /api/nodes/{uuid}/actions/reset-traffic +func (c *Client) NodesResetNodeTraffic(ctx context.Context, params NodesResetNodeTrafficParams, options ...RequestOption) (NodesResetNodeTrafficRes, error) { + res, err := c.sendNodesResetNodeTraffic(ctx, params, options...) + return res, err +} + +func (c *Client) sendNodesResetNodeTraffic(ctx context.Context, params NodesResetNodeTrafficParams, requestOptions ...RequestOption) (res NodesResetNodeTrafficRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Nodes_resetNodeTraffic"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/nodes/{uuid}/actions/reset-traffic"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, NodesResetNodeTrafficOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [3]string + pathParts[0] = "/api/nodes/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + pathParts[2] = "/actions/reset-traffic" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, NodesResetNodeTrafficOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeNodesResetNodeTrafficResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// NodesRestartAllNodes invokes Nodes_restartAllNodes operation. +// +// Restart all nodes. +// +// POST /api/nodes/actions/restart-all +func (c *Client) NodesRestartAllNodes(ctx context.Context, request *RestartAllNodesRequestBody, options ...RequestOption) (NodesRestartAllNodesRes, error) { + res, err := c.sendNodesRestartAllNodes(ctx, request, options...) + return res, err +} + +func (c *Client) sendNodesRestartAllNodes(ctx context.Context, request *RestartAllNodesRequestBody, requestOptions ...RequestOption) (res NodesRestartAllNodesRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Nodes_restartAllNodes"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/nodes/actions/restart-all"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, NodesRestartAllNodesOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/nodes/actions/restart-all" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeNodesRestartAllNodesRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, NodesRestartAllNodesOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeNodesRestartAllNodesResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// NodesRestartNode invokes Nodes_restartNode operation. +// +// Restart node. +// +// POST /api/nodes/{uuid}/actions/restart +func (c *Client) NodesRestartNode(ctx context.Context, params NodesRestartNodeParams, options ...RequestOption) (NodesRestartNodeRes, error) { + res, err := c.sendNodesRestartNode(ctx, params, options...) + return res, err +} + +func (c *Client) sendNodesRestartNode(ctx context.Context, params NodesRestartNodeParams, requestOptions ...RequestOption) (res NodesRestartNodeRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Nodes_restartNode"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/nodes/{uuid}/actions/restart"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, NodesRestartNodeOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [3]string + pathParts[0] = "/api/nodes/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + pathParts[2] = "/actions/restart" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, NodesRestartNodeOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeNodesRestartNodeResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// NodesUpdateNode invokes Nodes_updateNode operation. +// +// Update node. +// +// PATCH /api/nodes +func (c *Client) NodesUpdateNode(ctx context.Context, request *UpdateNodeRequest, options ...RequestOption) (NodesUpdateNodeRes, error) { + res, err := c.sendNodesUpdateNode(ctx, request, options...) + return res, err +} + +func (c *Client) sendNodesUpdateNode(ctx context.Context, request *UpdateNodeRequest, requestOptions ...RequestOption) (res NodesUpdateNodeRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Nodes_updateNode"), + semconv.HTTPRequestMethodKey.String("PATCH"), + semconv.URLTemplateKey.String("/api/nodes"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, NodesUpdateNodeOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/nodes" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "PATCH", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeNodesUpdateNodeRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, NodesUpdateNodeOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeNodesUpdateNodeResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// NodesUsageHistoryGetStatsNodesUsage invokes NodesUsageHistory_getStatsNodesUsage operation. +// +// Get Nodes Usage by Range. +// +// GET /api/bandwidth-stats/nodes +func (c *Client) NodesUsageHistoryGetStatsNodesUsage(ctx context.Context, params NodesUsageHistoryGetStatsNodesUsageParams, options ...RequestOption) (NodesUsageHistoryGetStatsNodesUsageRes, error) { + res, err := c.sendNodesUsageHistoryGetStatsNodesUsage(ctx, params, options...) + return res, err +} + +func (c *Client) sendNodesUsageHistoryGetStatsNodesUsage(ctx context.Context, params NodesUsageHistoryGetStatsNodesUsageParams, requestOptions ...RequestOption) (res NodesUsageHistoryGetStatsNodesUsageRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("NodesUsageHistory_getStatsNodesUsage"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/bandwidth-stats/nodes"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, NodesUsageHistoryGetStatsNodesUsageOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/bandwidth-stats/nodes" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeQueryParams" + q := uri.NewQueryEncoder() + { + // Encode "topNodesLimit" parameter. + cfg := uri.QueryParameterEncodingConfig{ + Name: "topNodesLimit", + Style: uri.QueryStyleForm, + Explode: true, + } + + if err := q.EncodeParam(cfg, func(e uri.Encoder) error { + return e.EncodeValue(conv.IntToString(params.TopNodesLimit)) + }); err != nil { + return res, errors.Wrap(err, "encode query") + } + } + { + // Encode "start" parameter. + cfg := uri.QueryParameterEncodingConfig{ + Name: "start", + Style: uri.QueryStyleForm, + Explode: true, + } + + if err := q.EncodeParam(cfg, func(e uri.Encoder) error { + return e.EncodeValue(conv.DateToString(params.Start)) + }); err != nil { + return res, errors.Wrap(err, "encode query") + } + } + { + // Encode "end" parameter. + cfg := uri.QueryParameterEncodingConfig{ + Name: "end", + Style: uri.QueryStyleForm, + Explode: true, + } + + if err := q.EncodeParam(cfg, func(e uri.Encoder) error { + return e.EncodeValue(conv.DateToString(params.End)) + }); err != nil { + return res, errors.Wrap(err, "encode query") + } + } + u.RawQuery = q.Values().Encode() + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, NodesUsageHistoryGetStatsNodesUsageOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeNodesUsageHistoryGetStatsNodesUsageResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// PasskeyDeletePasskey invokes Passkey_deletePasskey operation. +// +// Delete a passkey by ID. +// +// DELETE /api/passkeys +func (c *Client) PasskeyDeletePasskey(ctx context.Context, request *DeletePasskeyRequest, options ...RequestOption) (PasskeyDeletePasskeyRes, error) { + res, err := c.sendPasskeyDeletePasskey(ctx, request, options...) + return res, err +} + +func (c *Client) sendPasskeyDeletePasskey(ctx context.Context, request *DeletePasskeyRequest, requestOptions ...RequestOption) (res PasskeyDeletePasskeyRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Passkey_deletePasskey"), + semconv.HTTPRequestMethodKey.String("DELETE"), + semconv.URLTemplateKey.String("/api/passkeys"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, PasskeyDeletePasskeyOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/passkeys" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "DELETE", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodePasskeyDeletePasskeyRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, PasskeyDeletePasskeyOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodePasskeyDeletePasskeyResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// PasskeyGetActivePasskeys invokes Passkey_getActivePasskeys operation. +// +// Get all passkeys. +// +// GET /api/passkeys +func (c *Client) PasskeyGetActivePasskeys(ctx context.Context, options ...RequestOption) (PasskeyGetActivePasskeysRes, error) { + res, err := c.sendPasskeyGetActivePasskeys(ctx, options...) + return res, err +} + +func (c *Client) sendPasskeyGetActivePasskeys(ctx context.Context, requestOptions ...RequestOption) (res PasskeyGetActivePasskeysRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Passkey_getActivePasskeys"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/passkeys"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, PasskeyGetActivePasskeysOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/passkeys" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, PasskeyGetActivePasskeysOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodePasskeyGetActivePasskeysResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// PasskeyPasskeyRegistrationOptions invokes Passkey_passkeyRegistrationOptions operation. +// +// Get registration options for passkey. +// +// GET /api/passkeys/registration/options +func (c *Client) PasskeyPasskeyRegistrationOptions(ctx context.Context, options ...RequestOption) (PasskeyPasskeyRegistrationOptionsRes, error) { + res, err := c.sendPasskeyPasskeyRegistrationOptions(ctx, options...) + return res, err +} + +func (c *Client) sendPasskeyPasskeyRegistrationOptions(ctx context.Context, requestOptions ...RequestOption) (res PasskeyPasskeyRegistrationOptionsRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Passkey_passkeyRegistrationOptions"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/passkeys/registration/options"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, PasskeyPasskeyRegistrationOptionsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/passkeys/registration/options" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, PasskeyPasskeyRegistrationOptionsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodePasskeyPasskeyRegistrationOptionsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// PasskeyPasskeyRegistrationVerify invokes Passkey_passkeyRegistrationVerify operation. +// +// Verify registration for passkey. +// +// POST /api/passkeys/registration/verify +func (c *Client) PasskeyPasskeyRegistrationVerify(ctx context.Context, request *PasskeyOptions, options ...RequestOption) (PasskeyPasskeyRegistrationVerifyRes, error) { + res, err := c.sendPasskeyPasskeyRegistrationVerify(ctx, request, options...) + return res, err +} + +func (c *Client) sendPasskeyPasskeyRegistrationVerify(ctx context.Context, request *PasskeyOptions, requestOptions ...RequestOption) (res PasskeyPasskeyRegistrationVerifyRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Passkey_passkeyRegistrationVerify"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/passkeys/registration/verify"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, PasskeyPasskeyRegistrationVerifyOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/passkeys/registration/verify" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodePasskeyPasskeyRegistrationVerifyRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, PasskeyPasskeyRegistrationVerifyOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodePasskeyPasskeyRegistrationVerifyResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// PasskeyUpdatePasskey invokes Passkey_updatePasskey operation. +// +// Update passkey. +// +// PATCH /api/passkeys +func (c *Client) PasskeyUpdatePasskey(ctx context.Context, request *UpdatePasskeyRequest, options ...RequestOption) (PasskeyUpdatePasskeyRes, error) { + res, err := c.sendPasskeyUpdatePasskey(ctx, request, options...) + return res, err +} + +func (c *Client) sendPasskeyUpdatePasskey(ctx context.Context, request *UpdatePasskeyRequest, requestOptions ...RequestOption) (res PasskeyUpdatePasskeyRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Passkey_updatePasskey"), + semconv.HTTPRequestMethodKey.String("PATCH"), + semconv.URLTemplateKey.String("/api/passkeys"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, PasskeyUpdatePasskeyOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/passkeys" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "PATCH", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodePasskeyUpdatePasskeyRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, PasskeyUpdatePasskeyOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodePasskeyUpdatePasskeyResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// RemnawaveSettingsGetSettings invokes RemnawaveSettings_getSettings operation. +// +// Get Remnawave settings. +// +// GET /api/remnawave-settings +func (c *Client) RemnawaveSettingsGetSettings(ctx context.Context, options ...RequestOption) (RemnawaveSettingsGetSettingsRes, error) { + res, err := c.sendRemnawaveSettingsGetSettings(ctx, options...) + return res, err +} + +func (c *Client) sendRemnawaveSettingsGetSettings(ctx context.Context, requestOptions ...RequestOption) (res RemnawaveSettingsGetSettingsRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("RemnawaveSettings_getSettings"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/remnawave-settings"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, RemnawaveSettingsGetSettingsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/remnawave-settings" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, RemnawaveSettingsGetSettingsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeRemnawaveSettingsGetSettingsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// RemnawaveSettingsUpdateSettings invokes RemnawaveSettings_updateSettings operation. +// +// Update Remnawave settings. +// +// PATCH /api/remnawave-settings +func (c *Client) RemnawaveSettingsUpdateSettings(ctx context.Context, request *UpdateRemnawaveSettingsRequest, options ...RequestOption) (RemnawaveSettingsUpdateSettingsRes, error) { + res, err := c.sendRemnawaveSettingsUpdateSettings(ctx, request, options...) + return res, err +} + +func (c *Client) sendRemnawaveSettingsUpdateSettings(ctx context.Context, request *UpdateRemnawaveSettingsRequest, requestOptions ...RequestOption) (res RemnawaveSettingsUpdateSettingsRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("RemnawaveSettings_updateSettings"), + semconv.HTTPRequestMethodKey.String("PATCH"), + semconv.URLTemplateKey.String("/api/remnawave-settings"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, RemnawaveSettingsUpdateSettingsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/remnawave-settings" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "PATCH", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeRemnawaveSettingsUpdateSettingsRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, RemnawaveSettingsUpdateSettingsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeRemnawaveSettingsUpdateSettingsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SnippetsCreateSnippet invokes Snippets_createSnippet operation. +// +// Create snippet. +// +// POST /api/snippets +func (c *Client) SnippetsCreateSnippet(ctx context.Context, request *SnippetRequest, options ...RequestOption) (SnippetsCreateSnippetRes, error) { + res, err := c.sendSnippetsCreateSnippet(ctx, request, options...) + return res, err +} + +func (c *Client) sendSnippetsCreateSnippet(ctx context.Context, request *SnippetRequest, requestOptions ...RequestOption) (res SnippetsCreateSnippetRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Snippets_createSnippet"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/snippets"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SnippetsCreateSnippetOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/snippets" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeSnippetsCreateSnippetRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SnippetsCreateSnippetOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSnippetsCreateSnippetResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SnippetsDeleteSnippetByName invokes Snippets_deleteSnippetByName operation. +// +// Delete snippet. +// +// DELETE /api/snippets +func (c *Client) SnippetsDeleteSnippetByName(ctx context.Context, request *DeleteSnippetRequest, options ...RequestOption) (SnippetsDeleteSnippetByNameRes, error) { + res, err := c.sendSnippetsDeleteSnippetByName(ctx, request, options...) + return res, err +} + +func (c *Client) sendSnippetsDeleteSnippetByName(ctx context.Context, request *DeleteSnippetRequest, requestOptions ...RequestOption) (res SnippetsDeleteSnippetByNameRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Snippets_deleteSnippetByName"), + semconv.HTTPRequestMethodKey.String("DELETE"), + semconv.URLTemplateKey.String("/api/snippets"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SnippetsDeleteSnippetByNameOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/snippets" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "DELETE", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeSnippetsDeleteSnippetByNameRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SnippetsDeleteSnippetByNameOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSnippetsDeleteSnippetByNameResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SnippetsGetSnippets invokes Snippets_getSnippets operation. +// +// Get snippets. +// +// GET /api/snippets +func (c *Client) SnippetsGetSnippets(ctx context.Context, options ...RequestOption) (SnippetsGetSnippetsRes, error) { + res, err := c.sendSnippetsGetSnippets(ctx, options...) + return res, err +} + +func (c *Client) sendSnippetsGetSnippets(ctx context.Context, requestOptions ...RequestOption) (res SnippetsGetSnippetsRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Snippets_getSnippets"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/snippets"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SnippetsGetSnippetsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/snippets" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SnippetsGetSnippetsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSnippetsGetSnippetsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SnippetsUpdateSnippet invokes Snippets_updateSnippet operation. +// +// Update snippet. +// +// PATCH /api/snippets +func (c *Client) SnippetsUpdateSnippet(ctx context.Context, request *SnippetRequest, options ...RequestOption) (SnippetsUpdateSnippetRes, error) { + res, err := c.sendSnippetsUpdateSnippet(ctx, request, options...) + return res, err +} + +func (c *Client) sendSnippetsUpdateSnippet(ctx context.Context, request *SnippetRequest, requestOptions ...RequestOption) (res SnippetsUpdateSnippetRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Snippets_updateSnippet"), + semconv.HTTPRequestMethodKey.String("PATCH"), + semconv.URLTemplateKey.String("/api/snippets"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SnippetsUpdateSnippetOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/snippets" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "PATCH", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeSnippetsUpdateSnippetRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SnippetsUpdateSnippetOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSnippetsUpdateSnippetResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SubscriptionGetSubscription invokes Subscription_getSubscription operation. +// +// GET /api/sub/{shortUuid} +func (c *Client) SubscriptionGetSubscription(ctx context.Context, params SubscriptionGetSubscriptionParams, options ...RequestOption) (SubscriptionGetSubscriptionOK, error) { + res, err := c.sendSubscriptionGetSubscription(ctx, params, options...) + return res, err +} + +func (c *Client) sendSubscriptionGetSubscription(ctx context.Context, params SubscriptionGetSubscriptionParams, requestOptions ...RequestOption) (res SubscriptionGetSubscriptionOK, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Subscription_getSubscription"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/sub/{shortUuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SubscriptionGetSubscriptionOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/sub/" + { + // Encode "shortUuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "shortUuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.ShortUuid)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSubscriptionGetSubscriptionResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SubscriptionGetSubscriptionByClientType invokes Subscription_getSubscriptionByClientType operation. +// +// GET /api/sub/{shortUuid}/{clientType} +func (c *Client) SubscriptionGetSubscriptionByClientType(ctx context.Context, params SubscriptionGetSubscriptionByClientTypeParams, options ...RequestOption) (SubscriptionGetSubscriptionByClientTypeOK, error) { + res, err := c.sendSubscriptionGetSubscriptionByClientType(ctx, params, options...) + return res, err +} + +func (c *Client) sendSubscriptionGetSubscriptionByClientType(ctx context.Context, params SubscriptionGetSubscriptionByClientTypeParams, requestOptions ...RequestOption) (res SubscriptionGetSubscriptionByClientTypeOK, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Subscription_getSubscriptionByClientType"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/sub/{shortUuid}/{clientType}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SubscriptionGetSubscriptionByClientTypeOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [4]string + pathParts[0] = "/api/sub/" + { + // Encode "shortUuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "shortUuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.ShortUuid)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + pathParts[2] = "/" + { + // Encode "clientType" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "clientType", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(string(params.ClientType))) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[3] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSubscriptionGetSubscriptionByClientTypeResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SubscriptionGetSubscriptionInfoByShortUuid invokes Subscription_getSubscriptionInfoByShortUuid operation. +// +// Get Subscription Info by Short UUID. +// +// GET /api/sub/{shortUuid}/info +func (c *Client) SubscriptionGetSubscriptionInfoByShortUuid(ctx context.Context, params SubscriptionGetSubscriptionInfoByShortUuidParams, options ...RequestOption) (SubscriptionGetSubscriptionInfoByShortUuidRes, error) { + res, err := c.sendSubscriptionGetSubscriptionInfoByShortUuid(ctx, params, options...) + return res, err +} + +func (c *Client) sendSubscriptionGetSubscriptionInfoByShortUuid(ctx context.Context, params SubscriptionGetSubscriptionInfoByShortUuidParams, requestOptions ...RequestOption) (res SubscriptionGetSubscriptionInfoByShortUuidRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Subscription_getSubscriptionInfoByShortUuid"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/sub/{shortUuid}/info"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SubscriptionGetSubscriptionInfoByShortUuidOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [3]string + pathParts[0] = "/api/sub/" + { + // Encode "shortUuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "shortUuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.ShortUuid)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + pathParts[2] = "/info" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSubscriptionGetSubscriptionInfoByShortUuidResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SubscriptionPageConfigCloneSubscriptionPageConfig invokes SubscriptionPageConfig_cloneSubscriptionPageConfig operation. +// +// Clone subscription page config. +// +// POST /api/subscription-page-configs/actions/clone +func (c *Client) SubscriptionPageConfigCloneSubscriptionPageConfig(ctx context.Context, request *CloneNodePluginRequestRequest, options ...RequestOption) (SubscriptionPageConfigCloneSubscriptionPageConfigRes, error) { + res, err := c.sendSubscriptionPageConfigCloneSubscriptionPageConfig(ctx, request, options...) + return res, err +} + +func (c *Client) sendSubscriptionPageConfigCloneSubscriptionPageConfig(ctx context.Context, request *CloneNodePluginRequestRequest, requestOptions ...RequestOption) (res SubscriptionPageConfigCloneSubscriptionPageConfigRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("SubscriptionPageConfig_cloneSubscriptionPageConfig"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/subscription-page-configs/actions/clone"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SubscriptionPageConfigCloneSubscriptionPageConfigOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/subscription-page-configs/actions/clone" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeSubscriptionPageConfigCloneSubscriptionPageConfigRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SubscriptionPageConfigCloneSubscriptionPageConfigOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSubscriptionPageConfigCloneSubscriptionPageConfigResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SubscriptionPageConfigCreateConfig invokes SubscriptionPageConfig_createConfig operation. +// +// Create subscription page config. +// +// POST /api/subscription-page-configs +func (c *Client) SubscriptionPageConfigCreateConfig(ctx context.Context, request *CreateSubscriptionPageConfigRequest, options ...RequestOption) (SubscriptionPageConfigCreateConfigRes, error) { + res, err := c.sendSubscriptionPageConfigCreateConfig(ctx, request, options...) + return res, err +} + +func (c *Client) sendSubscriptionPageConfigCreateConfig(ctx context.Context, request *CreateSubscriptionPageConfigRequest, requestOptions ...RequestOption) (res SubscriptionPageConfigCreateConfigRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("SubscriptionPageConfig_createConfig"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/subscription-page-configs"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SubscriptionPageConfigCreateConfigOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/subscription-page-configs" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeSubscriptionPageConfigCreateConfigRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SubscriptionPageConfigCreateConfigOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSubscriptionPageConfigCreateConfigResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SubscriptionPageConfigDeleteConfig invokes SubscriptionPageConfig_deleteConfig operation. +// +// Delete subscription page config. +// +// DELETE /api/subscription-page-configs/{uuid} +func (c *Client) SubscriptionPageConfigDeleteConfig(ctx context.Context, params SubscriptionPageConfigDeleteConfigParams, options ...RequestOption) (SubscriptionPageConfigDeleteConfigRes, error) { + res, err := c.sendSubscriptionPageConfigDeleteConfig(ctx, params, options...) + return res, err +} + +func (c *Client) sendSubscriptionPageConfigDeleteConfig(ctx context.Context, params SubscriptionPageConfigDeleteConfigParams, requestOptions ...RequestOption) (res SubscriptionPageConfigDeleteConfigRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("SubscriptionPageConfig_deleteConfig"), + semconv.HTTPRequestMethodKey.String("DELETE"), + semconv.URLTemplateKey.String("/api/subscription-page-configs/{uuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SubscriptionPageConfigDeleteConfigOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/subscription-page-configs/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "DELETE", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SubscriptionPageConfigDeleteConfigOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSubscriptionPageConfigDeleteConfigResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SubscriptionPageConfigGetAllConfigs invokes SubscriptionPageConfig_getAllConfigs operation. +// +// Get all subscription page configs. +// +// GET /api/subscription-page-configs +func (c *Client) SubscriptionPageConfigGetAllConfigs(ctx context.Context, options ...RequestOption) (SubscriptionPageConfigGetAllConfigsRes, error) { + res, err := c.sendSubscriptionPageConfigGetAllConfigs(ctx, options...) + return res, err +} + +func (c *Client) sendSubscriptionPageConfigGetAllConfigs(ctx context.Context, requestOptions ...RequestOption) (res SubscriptionPageConfigGetAllConfigsRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("SubscriptionPageConfig_getAllConfigs"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/subscription-page-configs"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SubscriptionPageConfigGetAllConfigsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/subscription-page-configs" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SubscriptionPageConfigGetAllConfigsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSubscriptionPageConfigGetAllConfigsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SubscriptionPageConfigGetConfigByUuid invokes SubscriptionPageConfig_getConfigByUuid operation. +// +// Get subscription page config by uuid. +// +// GET /api/subscription-page-configs/{uuid} +func (c *Client) SubscriptionPageConfigGetConfigByUuid(ctx context.Context, params SubscriptionPageConfigGetConfigByUuidParams, options ...RequestOption) (SubscriptionPageConfigGetConfigByUuidRes, error) { + res, err := c.sendSubscriptionPageConfigGetConfigByUuid(ctx, params, options...) + return res, err +} + +func (c *Client) sendSubscriptionPageConfigGetConfigByUuid(ctx context.Context, params SubscriptionPageConfigGetConfigByUuidParams, requestOptions ...RequestOption) (res SubscriptionPageConfigGetConfigByUuidRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("SubscriptionPageConfig_getConfigByUuid"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/subscription-page-configs/{uuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SubscriptionPageConfigGetConfigByUuidOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/subscription-page-configs/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SubscriptionPageConfigGetConfigByUuidOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSubscriptionPageConfigGetConfigByUuidResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SubscriptionPageConfigReorderSubscriptionPageConfigs invokes SubscriptionPageConfig_reorderSubscriptionPageConfigs operation. +// +// Reorder subscription page configs. +// +// POST /api/subscription-page-configs/actions/reorder +func (c *Client) SubscriptionPageConfigReorderSubscriptionPageConfigs(ctx context.Context, request *ReorderRequest, options ...RequestOption) (SubscriptionPageConfigReorderSubscriptionPageConfigsRes, error) { + res, err := c.sendSubscriptionPageConfigReorderSubscriptionPageConfigs(ctx, request, options...) + return res, err +} + +func (c *Client) sendSubscriptionPageConfigReorderSubscriptionPageConfigs(ctx context.Context, request *ReorderRequest, requestOptions ...RequestOption) (res SubscriptionPageConfigReorderSubscriptionPageConfigsRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("SubscriptionPageConfig_reorderSubscriptionPageConfigs"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/subscription-page-configs/actions/reorder"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SubscriptionPageConfigReorderSubscriptionPageConfigsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/subscription-page-configs/actions/reorder" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeSubscriptionPageConfigReorderSubscriptionPageConfigsRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SubscriptionPageConfigReorderSubscriptionPageConfigsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSubscriptionPageConfigReorderSubscriptionPageConfigsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SubscriptionPageConfigUpdateConfig invokes SubscriptionPageConfig_updateConfig operation. +// +// Update subscription page config. +// +// PATCH /api/subscription-page-configs +func (c *Client) SubscriptionPageConfigUpdateConfig(ctx context.Context, request *UpdateSubscriptionPageConfigRequest, options ...RequestOption) (SubscriptionPageConfigUpdateConfigRes, error) { + res, err := c.sendSubscriptionPageConfigUpdateConfig(ctx, request, options...) + return res, err +} + +func (c *Client) sendSubscriptionPageConfigUpdateConfig(ctx context.Context, request *UpdateSubscriptionPageConfigRequest, requestOptions ...RequestOption) (res SubscriptionPageConfigUpdateConfigRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("SubscriptionPageConfig_updateConfig"), + semconv.HTTPRequestMethodKey.String("PATCH"), + semconv.URLTemplateKey.String("/api/subscription-page-configs"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SubscriptionPageConfigUpdateConfigOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/subscription-page-configs" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "PATCH", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeSubscriptionPageConfigUpdateConfigRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SubscriptionPageConfigUpdateConfigOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSubscriptionPageConfigUpdateConfigResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SubscriptionSettingsGetSettings invokes SubscriptionSettings_getSettings operation. +// +// Get subscription settings. +// +// GET /api/subscription-settings +func (c *Client) SubscriptionSettingsGetSettings(ctx context.Context, options ...RequestOption) (SubscriptionSettingsGetSettingsRes, error) { + res, err := c.sendSubscriptionSettingsGetSettings(ctx, options...) + return res, err +} + +func (c *Client) sendSubscriptionSettingsGetSettings(ctx context.Context, requestOptions ...RequestOption) (res SubscriptionSettingsGetSettingsRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("SubscriptionSettings_getSettings"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/subscription-settings"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SubscriptionSettingsGetSettingsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/subscription-settings" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SubscriptionSettingsGetSettingsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSubscriptionSettingsGetSettingsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SubscriptionSettingsUpdateSettings invokes SubscriptionSettings_updateSettings operation. +// +// Update subscription settings. +// +// PATCH /api/subscription-settings +func (c *Client) SubscriptionSettingsUpdateSettings(ctx context.Context, request *UpdateSubscriptionSettingsRequest, options ...RequestOption) (SubscriptionSettingsUpdateSettingsRes, error) { + res, err := c.sendSubscriptionSettingsUpdateSettings(ctx, request, options...) + return res, err +} + +func (c *Client) sendSubscriptionSettingsUpdateSettings(ctx context.Context, request *UpdateSubscriptionSettingsRequest, requestOptions ...RequestOption) (res SubscriptionSettingsUpdateSettingsRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("SubscriptionSettings_updateSettings"), + semconv.HTTPRequestMethodKey.String("PATCH"), + semconv.URLTemplateKey.String("/api/subscription-settings"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SubscriptionSettingsUpdateSettingsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/subscription-settings" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "PATCH", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeSubscriptionSettingsUpdateSettingsRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SubscriptionSettingsUpdateSettingsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSubscriptionSettingsUpdateSettingsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SubscriptionTemplateCreateTemplate invokes SubscriptionTemplate_createTemplate operation. +// +// Create subscription template. +// +// POST /api/subscription-templates +func (c *Client) SubscriptionTemplateCreateTemplate(ctx context.Context, request *CreateSubscriptionTemplateRequest, options ...RequestOption) (SubscriptionTemplateCreateTemplateRes, error) { + res, err := c.sendSubscriptionTemplateCreateTemplate(ctx, request, options...) + return res, err +} + +func (c *Client) sendSubscriptionTemplateCreateTemplate(ctx context.Context, request *CreateSubscriptionTemplateRequest, requestOptions ...RequestOption) (res SubscriptionTemplateCreateTemplateRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("SubscriptionTemplate_createTemplate"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/subscription-templates"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SubscriptionTemplateCreateTemplateOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/subscription-templates" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeSubscriptionTemplateCreateTemplateRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SubscriptionTemplateCreateTemplateOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSubscriptionTemplateCreateTemplateResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SubscriptionTemplateDeleteTemplate invokes SubscriptionTemplate_deleteTemplate operation. +// +// Delete subscription template. +// +// DELETE /api/subscription-templates/{uuid} +func (c *Client) SubscriptionTemplateDeleteTemplate(ctx context.Context, params SubscriptionTemplateDeleteTemplateParams, options ...RequestOption) (SubscriptionTemplateDeleteTemplateRes, error) { + res, err := c.sendSubscriptionTemplateDeleteTemplate(ctx, params, options...) + return res, err +} + +func (c *Client) sendSubscriptionTemplateDeleteTemplate(ctx context.Context, params SubscriptionTemplateDeleteTemplateParams, requestOptions ...RequestOption) (res SubscriptionTemplateDeleteTemplateRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("SubscriptionTemplate_deleteTemplate"), + semconv.HTTPRequestMethodKey.String("DELETE"), + semconv.URLTemplateKey.String("/api/subscription-templates/{uuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SubscriptionTemplateDeleteTemplateOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/subscription-templates/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "DELETE", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SubscriptionTemplateDeleteTemplateOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSubscriptionTemplateDeleteTemplateResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SubscriptionTemplateGetAllTemplates invokes SubscriptionTemplate_getAllTemplates operation. +// +// Get all subscription templates (wihout content). +// +// GET /api/subscription-templates +func (c *Client) SubscriptionTemplateGetAllTemplates(ctx context.Context, options ...RequestOption) (SubscriptionTemplateGetAllTemplatesRes, error) { + res, err := c.sendSubscriptionTemplateGetAllTemplates(ctx, options...) + return res, err +} + +func (c *Client) sendSubscriptionTemplateGetAllTemplates(ctx context.Context, requestOptions ...RequestOption) (res SubscriptionTemplateGetAllTemplatesRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("SubscriptionTemplate_getAllTemplates"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/subscription-templates"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SubscriptionTemplateGetAllTemplatesOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/subscription-templates" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SubscriptionTemplateGetAllTemplatesOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSubscriptionTemplateGetAllTemplatesResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SubscriptionTemplateGetTemplateByUuid invokes SubscriptionTemplate_getTemplateByUuid operation. +// +// Get subscription template by uuid. +// +// GET /api/subscription-templates/{uuid} +func (c *Client) SubscriptionTemplateGetTemplateByUuid(ctx context.Context, params SubscriptionTemplateGetTemplateByUuidParams, options ...RequestOption) (SubscriptionTemplateGetTemplateByUuidRes, error) { + res, err := c.sendSubscriptionTemplateGetTemplateByUuid(ctx, params, options...) + return res, err +} + +func (c *Client) sendSubscriptionTemplateGetTemplateByUuid(ctx context.Context, params SubscriptionTemplateGetTemplateByUuidParams, requestOptions ...RequestOption) (res SubscriptionTemplateGetTemplateByUuidRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("SubscriptionTemplate_getTemplateByUuid"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/subscription-templates/{uuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SubscriptionTemplateGetTemplateByUuidOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/subscription-templates/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SubscriptionTemplateGetTemplateByUuidOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSubscriptionTemplateGetTemplateByUuidResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SubscriptionTemplateReorderSubscriptionTemplates invokes SubscriptionTemplate_reorderSubscriptionTemplates operation. +// +// Reorder subscription templates. +// +// POST /api/subscription-templates/actions/reorder +func (c *Client) SubscriptionTemplateReorderSubscriptionTemplates(ctx context.Context, request *ReorderRequest, options ...RequestOption) (SubscriptionTemplateReorderSubscriptionTemplatesRes, error) { + res, err := c.sendSubscriptionTemplateReorderSubscriptionTemplates(ctx, request, options...) + return res, err +} + +func (c *Client) sendSubscriptionTemplateReorderSubscriptionTemplates(ctx context.Context, request *ReorderRequest, requestOptions ...RequestOption) (res SubscriptionTemplateReorderSubscriptionTemplatesRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("SubscriptionTemplate_reorderSubscriptionTemplates"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/subscription-templates/actions/reorder"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SubscriptionTemplateReorderSubscriptionTemplatesOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/subscription-templates/actions/reorder" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeSubscriptionTemplateReorderSubscriptionTemplatesRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SubscriptionTemplateReorderSubscriptionTemplatesOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSubscriptionTemplateReorderSubscriptionTemplatesResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SubscriptionTemplateUpdateTemplate invokes SubscriptionTemplate_updateTemplate operation. +// +// Update subscription template. +// +// PATCH /api/subscription-templates +func (c *Client) SubscriptionTemplateUpdateTemplate(ctx context.Context, request *UpdateTemplateRequest, options ...RequestOption) (SubscriptionTemplateUpdateTemplateRes, error) { + res, err := c.sendSubscriptionTemplateUpdateTemplate(ctx, request, options...) + return res, err +} + +func (c *Client) sendSubscriptionTemplateUpdateTemplate(ctx context.Context, request *UpdateTemplateRequest, requestOptions ...RequestOption) (res SubscriptionTemplateUpdateTemplateRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("SubscriptionTemplate_updateTemplate"), + semconv.HTTPRequestMethodKey.String("PATCH"), + semconv.URLTemplateKey.String("/api/subscription-templates"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SubscriptionTemplateUpdateTemplateOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/subscription-templates" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "PATCH", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeSubscriptionTemplateUpdateTemplateRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SubscriptionTemplateUpdateTemplateOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSubscriptionTemplateUpdateTemplateResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SubscriptionsGetAllSubscriptions invokes Subscriptions_getAllSubscriptions operation. +// +// Get all subscriptions. +// +// GET /api/subscriptions +func (c *Client) SubscriptionsGetAllSubscriptions(ctx context.Context, params SubscriptionsGetAllSubscriptionsParams, options ...RequestOption) (SubscriptionsGetAllSubscriptionsRes, error) { + res, err := c.sendSubscriptionsGetAllSubscriptions(ctx, params, options...) + return res, err +} + +func (c *Client) sendSubscriptionsGetAllSubscriptions(ctx context.Context, params SubscriptionsGetAllSubscriptionsParams, requestOptions ...RequestOption) (res SubscriptionsGetAllSubscriptionsRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Subscriptions_getAllSubscriptions"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/subscriptions"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SubscriptionsGetAllSubscriptionsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/subscriptions" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeQueryParams" + q := uri.NewQueryEncoder() + { + // Encode "size" parameter. + cfg := uri.QueryParameterEncodingConfig{ + Name: "size", + Style: uri.QueryStyleForm, + Explode: true, + } + + if err := q.EncodeParam(cfg, func(e uri.Encoder) error { + if val, ok := params.Size.Get(); ok { + return e.EncodeValue(conv.IntToString(val)) + } + return nil + }); err != nil { + return res, errors.Wrap(err, "encode query") + } + } + { + // Encode "start" parameter. + cfg := uri.QueryParameterEncodingConfig{ + Name: "start", + Style: uri.QueryStyleForm, + Explode: true, + } + + if err := q.EncodeParam(cfg, func(e uri.Encoder) error { + if val, ok := params.Start.Get(); ok { + return e.EncodeValue(conv.IntToString(val)) + } + return nil + }); err != nil { + return res, errors.Wrap(err, "encode query") + } + } + u.RawQuery = q.Values().Encode() + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SubscriptionsGetAllSubscriptionsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSubscriptionsGetAllSubscriptionsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SubscriptionsGetConnectionKeysByUuid invokes Subscriptions_getConnectionKeysByUuid operation. +// +// Get connection keys (base64 format) by uuid. +// +// GET /api/subscriptions/connection-keys/{uuid} +func (c *Client) SubscriptionsGetConnectionKeysByUuid(ctx context.Context, params SubscriptionsGetConnectionKeysByUuidParams, options ...RequestOption) (SubscriptionsGetConnectionKeysByUuidRes, error) { + res, err := c.sendSubscriptionsGetConnectionKeysByUuid(ctx, params, options...) + return res, err +} + +func (c *Client) sendSubscriptionsGetConnectionKeysByUuid(ctx context.Context, params SubscriptionsGetConnectionKeysByUuidParams, requestOptions ...RequestOption) (res SubscriptionsGetConnectionKeysByUuidRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Subscriptions_getConnectionKeysByUuid"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/subscriptions/connection-keys/{uuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SubscriptionsGetConnectionKeysByUuidOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/subscriptions/connection-keys/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SubscriptionsGetConnectionKeysByUuidOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSubscriptionsGetConnectionKeysByUuidResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SubscriptionsGetRawSubscriptionByShortUuid invokes Subscriptions_getRawSubscriptionByShortUuid operation. +// +// Get Raw Subscription by Short UUID. +// +// GET /api/subscriptions/by-short-uuid/{shortUuid}/raw +func (c *Client) SubscriptionsGetRawSubscriptionByShortUuid(ctx context.Context, params SubscriptionsGetRawSubscriptionByShortUuidParams, options ...RequestOption) (SubscriptionsGetRawSubscriptionByShortUuidRes, error) { + res, err := c.sendSubscriptionsGetRawSubscriptionByShortUuid(ctx, params, options...) + return res, err +} + +func (c *Client) sendSubscriptionsGetRawSubscriptionByShortUuid(ctx context.Context, params SubscriptionsGetRawSubscriptionByShortUuidParams, requestOptions ...RequestOption) (res SubscriptionsGetRawSubscriptionByShortUuidRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Subscriptions_getRawSubscriptionByShortUuid"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/subscriptions/by-short-uuid/{shortUuid}/raw"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SubscriptionsGetRawSubscriptionByShortUuidOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [3]string + pathParts[0] = "/api/subscriptions/by-short-uuid/" + { + // Encode "shortUuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "shortUuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.ShortUuid)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + pathParts[2] = "/raw" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeQueryParams" + q := uri.NewQueryEncoder() + { + // Encode "withDisabledHosts" parameter. + cfg := uri.QueryParameterEncodingConfig{ + Name: "withDisabledHosts", + Style: uri.QueryStyleForm, + Explode: true, + } + + if err := q.EncodeParam(cfg, func(e uri.Encoder) error { + if val, ok := params.WithDisabledHosts.Get(); ok { + return e.EncodeValue(conv.BoolToString(val)) + } + return nil + }); err != nil { + return res, errors.Wrap(err, "encode query") + } + } + u.RawQuery = q.Values().Encode() + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SubscriptionsGetRawSubscriptionByShortUuidOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSubscriptionsGetRawSubscriptionByShortUuidResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SubscriptionsGetSubpageConfigByShortUuid invokes Subscriptions_getSubpageConfigByShortUuid operation. +// +// Get Subpage Config by Short UUID. +// +// GET /api/subscriptions/subpage-config/{shortUuid} +func (c *Client) SubscriptionsGetSubpageConfigByShortUuid(ctx context.Context, request *GetSubpageConfigByShortUuidRequestBody, params SubscriptionsGetSubpageConfigByShortUuidParams, options ...RequestOption) (SubscriptionsGetSubpageConfigByShortUuidRes, error) { + res, err := c.sendSubscriptionsGetSubpageConfigByShortUuid(ctx, request, params, options...) + return res, err +} + +func (c *Client) sendSubscriptionsGetSubpageConfigByShortUuid(ctx context.Context, request *GetSubpageConfigByShortUuidRequestBody, params SubscriptionsGetSubpageConfigByShortUuidParams, requestOptions ...RequestOption) (res SubscriptionsGetSubpageConfigByShortUuidRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Subscriptions_getSubpageConfigByShortUuid"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/subscriptions/subpage-config/{shortUuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SubscriptionsGetSubpageConfigByShortUuidOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/subscriptions/subpage-config/" + { + // Encode "shortUuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "shortUuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.ShortUuid)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeSubscriptionsGetSubpageConfigByShortUuidRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SubscriptionsGetSubpageConfigByShortUuidOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSubscriptionsGetSubpageConfigByShortUuidResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SubscriptionsGetSubscriptionByShortUuidProtected invokes Subscriptions_getSubscriptionByShortUuidProtected operation. +// +// Get subscription by short uuid (protected route). +// +// GET /api/subscriptions/by-short-uuid/{shortUuid} +func (c *Client) SubscriptionsGetSubscriptionByShortUuidProtected(ctx context.Context, params SubscriptionsGetSubscriptionByShortUuidProtectedParams, options ...RequestOption) (SubscriptionsGetSubscriptionByShortUuidProtectedRes, error) { + res, err := c.sendSubscriptionsGetSubscriptionByShortUuidProtected(ctx, params, options...) + return res, err +} + +func (c *Client) sendSubscriptionsGetSubscriptionByShortUuidProtected(ctx context.Context, params SubscriptionsGetSubscriptionByShortUuidProtectedParams, requestOptions ...RequestOption) (res SubscriptionsGetSubscriptionByShortUuidProtectedRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Subscriptions_getSubscriptionByShortUuidProtected"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/subscriptions/by-short-uuid/{shortUuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SubscriptionsGetSubscriptionByShortUuidProtectedOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/subscriptions/by-short-uuid/" + { + // Encode "shortUuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "shortUuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.ShortUuid)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SubscriptionsGetSubscriptionByShortUuidProtectedOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSubscriptionsGetSubscriptionByShortUuidProtectedResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SubscriptionsGetSubscriptionByUsername invokes Subscriptions_getSubscriptionByUsername operation. +// +// Get subscription by username. +// +// GET /api/subscriptions/by-username/{username} +func (c *Client) SubscriptionsGetSubscriptionByUsername(ctx context.Context, params SubscriptionsGetSubscriptionByUsernameParams, options ...RequestOption) (SubscriptionsGetSubscriptionByUsernameRes, error) { + res, err := c.sendSubscriptionsGetSubscriptionByUsername(ctx, params, options...) + return res, err +} + +func (c *Client) sendSubscriptionsGetSubscriptionByUsername(ctx context.Context, params SubscriptionsGetSubscriptionByUsernameParams, requestOptions ...RequestOption) (res SubscriptionsGetSubscriptionByUsernameRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Subscriptions_getSubscriptionByUsername"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/subscriptions/by-username/{username}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SubscriptionsGetSubscriptionByUsernameOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/subscriptions/by-username/" + { + // Encode "username" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "username", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.Username)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SubscriptionsGetSubscriptionByUsernameOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSubscriptionsGetSubscriptionByUsernameResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SubscriptionsGetSubscriptionByUuid invokes Subscriptions_getSubscriptionByUuid operation. +// +// Get subscription by uuid. +// +// GET /api/subscriptions/by-uuid/{uuid} +func (c *Client) SubscriptionsGetSubscriptionByUuid(ctx context.Context, params SubscriptionsGetSubscriptionByUuidParams, options ...RequestOption) (SubscriptionsGetSubscriptionByUuidRes, error) { + res, err := c.sendSubscriptionsGetSubscriptionByUuid(ctx, params, options...) + return res, err +} + +func (c *Client) sendSubscriptionsGetSubscriptionByUuid(ctx context.Context, params SubscriptionsGetSubscriptionByUuidParams, requestOptions ...RequestOption) (res SubscriptionsGetSubscriptionByUuidRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Subscriptions_getSubscriptionByUuid"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/subscriptions/by-uuid/{uuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SubscriptionsGetSubscriptionByUuidOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/subscriptions/by-uuid/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SubscriptionsGetSubscriptionByUuidOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSubscriptionsGetSubscriptionByUuidResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SystemDebugSrrMatcher invokes System_debugSrrMatcher operation. +// +// Test SRR Matcher. +// +// POST /api/system/testers/srr-matcher +func (c *Client) SystemDebugSrrMatcher(ctx context.Context, request *DebugSrrMatcherRequest, options ...RequestOption) (SystemDebugSrrMatcherRes, error) { + res, err := c.sendSystemDebugSrrMatcher(ctx, request, options...) + return res, err +} + +func (c *Client) sendSystemDebugSrrMatcher(ctx context.Context, request *DebugSrrMatcherRequest, requestOptions ...RequestOption) (res SystemDebugSrrMatcherRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("System_debugSrrMatcher"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/system/testers/srr-matcher"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SystemDebugSrrMatcherOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/system/testers/srr-matcher" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeSystemDebugSrrMatcherRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SystemDebugSrrMatcherOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSystemDebugSrrMatcherResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SystemEncryptHappCryptoLink invokes System_encryptHappCryptoLink operation. +// +// Encrypt Happ Crypto Link. +// +// POST /api/system/tools/happ/encrypt +func (c *Client) SystemEncryptHappCryptoLink(ctx context.Context, request *EncryptHappCryptoLinkRequest, options ...RequestOption) (SystemEncryptHappCryptoLinkRes, error) { + res, err := c.sendSystemEncryptHappCryptoLink(ctx, request, options...) + return res, err +} + +func (c *Client) sendSystemEncryptHappCryptoLink(ctx context.Context, request *EncryptHappCryptoLinkRequest, requestOptions ...RequestOption) (res SystemEncryptHappCryptoLinkRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("System_encryptHappCryptoLink"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/system/tools/happ/encrypt"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SystemEncryptHappCryptoLinkOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/system/tools/happ/encrypt" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeSystemEncryptHappCryptoLinkRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SystemEncryptHappCryptoLinkOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSystemEncryptHappCryptoLinkResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SystemGetBandwidthStats invokes System_getBandwidthStats operation. +// +// Get Bandwidth Stats. +// +// GET /api/system/stats/bandwidth +func (c *Client) SystemGetBandwidthStats(ctx context.Context, options ...RequestOption) (SystemGetBandwidthStatsRes, error) { + res, err := c.sendSystemGetBandwidthStats(ctx, options...) + return res, err +} + +func (c *Client) sendSystemGetBandwidthStats(ctx context.Context, requestOptions ...RequestOption) (res SystemGetBandwidthStatsRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("System_getBandwidthStats"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/system/stats/bandwidth"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SystemGetBandwidthStatsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/system/stats/bandwidth" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SystemGetBandwidthStatsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSystemGetBandwidthStatsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SystemGetMetadata invokes System_getMetadata operation. +// +// Get Remnawave Information. +// +// GET /api/system/metadata +func (c *Client) SystemGetMetadata(ctx context.Context, options ...RequestOption) (SystemGetMetadataRes, error) { + res, err := c.sendSystemGetMetadata(ctx, options...) + return res, err +} + +func (c *Client) sendSystemGetMetadata(ctx context.Context, requestOptions ...RequestOption) (res SystemGetMetadataRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("System_getMetadata"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/system/metadata"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SystemGetMetadataOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/system/metadata" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SystemGetMetadataOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSystemGetMetadataResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SystemGetNodesMetrics invokes System_getNodesMetrics operation. +// +// Get Nodes Metrics. +// +// GET /api/system/nodes/metrics +func (c *Client) SystemGetNodesMetrics(ctx context.Context, options ...RequestOption) (SystemGetNodesMetricsRes, error) { + res, err := c.sendSystemGetNodesMetrics(ctx, options...) + return res, err +} + +func (c *Client) sendSystemGetNodesMetrics(ctx context.Context, requestOptions ...RequestOption) (res SystemGetNodesMetricsRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("System_getNodesMetrics"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/system/nodes/metrics"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SystemGetNodesMetricsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/system/nodes/metrics" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SystemGetNodesMetricsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSystemGetNodesMetricsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SystemGetNodesStatistics invokes System_getNodesStatistics operation. +// +// Get Nodes Statistics. +// +// GET /api/system/stats/nodes +func (c *Client) SystemGetNodesStatistics(ctx context.Context, options ...RequestOption) (SystemGetNodesStatisticsRes, error) { + res, err := c.sendSystemGetNodesStatistics(ctx, options...) + return res, err +} + +func (c *Client) sendSystemGetNodesStatistics(ctx context.Context, requestOptions ...RequestOption) (res SystemGetNodesStatisticsRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("System_getNodesStatistics"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/system/stats/nodes"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SystemGetNodesStatisticsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/system/stats/nodes" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SystemGetNodesStatisticsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSystemGetNodesStatisticsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SystemGetRecap invokes System_getRecap operation. +// +// Get Recap. +// +// GET /api/system/stats/recap +func (c *Client) SystemGetRecap(ctx context.Context, options ...RequestOption) (SystemGetRecapRes, error) { + res, err := c.sendSystemGetRecap(ctx, options...) + return res, err +} + +func (c *Client) sendSystemGetRecap(ctx context.Context, requestOptions ...RequestOption) (res SystemGetRecapRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("System_getRecap"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/system/stats/recap"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SystemGetRecapOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/system/stats/recap" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SystemGetRecapOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSystemGetRecapResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SystemGetRemnawaveHealth invokes System_getRemnawaveHealth operation. +// +// Get Remnawave Health. +// +// GET /api/system/health +func (c *Client) SystemGetRemnawaveHealth(ctx context.Context, options ...RequestOption) (SystemGetRemnawaveHealthRes, error) { + res, err := c.sendSystemGetRemnawaveHealth(ctx, options...) + return res, err +} + +func (c *Client) sendSystemGetRemnawaveHealth(ctx context.Context, requestOptions ...RequestOption) (res SystemGetRemnawaveHealthRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("System_getRemnawaveHealth"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/system/health"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SystemGetRemnawaveHealthOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/system/health" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SystemGetRemnawaveHealthOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSystemGetRemnawaveHealthResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SystemGetStats invokes System_getStats operation. +// +// Get Stats. +// +// GET /api/system/stats +func (c *Client) SystemGetStats(ctx context.Context, options ...RequestOption) (SystemGetStatsRes, error) { + res, err := c.sendSystemGetStats(ctx, options...) + return res, err +} + +func (c *Client) sendSystemGetStats(ctx context.Context, requestOptions ...RequestOption) (res SystemGetStatsRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("System_getStats"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/system/stats"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SystemGetStatsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/system/stats" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SystemGetStatsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSystemGetStatsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// SystemGetX25519Keypairs invokes System_getX25519Keypairs operation. +// +// Generate 30 X25519 keypairs. +// +// GET /api/system/tools/x25519/generate +func (c *Client) SystemGetX25519Keypairs(ctx context.Context, options ...RequestOption) (SystemGetX25519KeypairsRes, error) { + res, err := c.sendSystemGetX25519Keypairs(ctx, options...) + return res, err +} + +func (c *Client) sendSystemGetX25519Keypairs(ctx context.Context, requestOptions ...RequestOption) (res SystemGetX25519KeypairsRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("System_getX25519Keypairs"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/system/tools/x25519/generate"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, SystemGetX25519KeypairsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/system/tools/x25519/generate" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, SystemGetX25519KeypairsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeSystemGetX25519KeypairsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// TorrentBlockerReportsGetTorrentBlockerReports invokes TorrentBlockerReports_getTorrentBlockerReports operation. +// +// Get Torrent Blocker Reports. +// +// GET /api/node-plugins/torrent-blocker +func (c *Client) TorrentBlockerReportsGetTorrentBlockerReports(ctx context.Context, params TorrentBlockerReportsGetTorrentBlockerReportsParams, options ...RequestOption) (TorrentBlockerReportsGetTorrentBlockerReportsRes, error) { + res, err := c.sendTorrentBlockerReportsGetTorrentBlockerReports(ctx, params, options...) + return res, err +} + +func (c *Client) sendTorrentBlockerReportsGetTorrentBlockerReports(ctx context.Context, params TorrentBlockerReportsGetTorrentBlockerReportsParams, requestOptions ...RequestOption) (res TorrentBlockerReportsGetTorrentBlockerReportsRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("TorrentBlockerReports_getTorrentBlockerReports"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/node-plugins/torrent-blocker"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, TorrentBlockerReportsGetTorrentBlockerReportsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/node-plugins/torrent-blocker" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeQueryParams" + q := uri.NewQueryEncoder() + { + // Encode "size" parameter. + cfg := uri.QueryParameterEncodingConfig{ + Name: "size", + Style: uri.QueryStyleForm, + Explode: true, + } + + if err := q.EncodeParam(cfg, func(e uri.Encoder) error { + if val, ok := params.Size.Get(); ok { + return e.EncodeValue(conv.IntToString(val)) + } + return nil + }); err != nil { + return res, errors.Wrap(err, "encode query") + } + } + { + // Encode "start" parameter. + cfg := uri.QueryParameterEncodingConfig{ + Name: "start", + Style: uri.QueryStyleForm, + Explode: true, + } + + if err := q.EncodeParam(cfg, func(e uri.Encoder) error { + if val, ok := params.Start.Get(); ok { + return e.EncodeValue(conv.IntToString(val)) + } + return nil + }); err != nil { + return res, errors.Wrap(err, "encode query") + } + } + u.RawQuery = q.Values().Encode() + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, TorrentBlockerReportsGetTorrentBlockerReportsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeTorrentBlockerReportsGetTorrentBlockerReportsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// TorrentBlockerReportsGetTorrentBlockerReportsStats invokes TorrentBlockerReports_getTorrentBlockerReportsStats operation. +// +// Get Torrent Blocker Reports Stats. +// +// GET /api/node-plugins/torrent-blocker/stats +func (c *Client) TorrentBlockerReportsGetTorrentBlockerReportsStats(ctx context.Context, options ...RequestOption) (TorrentBlockerReportsGetTorrentBlockerReportsStatsRes, error) { + res, err := c.sendTorrentBlockerReportsGetTorrentBlockerReportsStats(ctx, options...) + return res, err +} + +func (c *Client) sendTorrentBlockerReportsGetTorrentBlockerReportsStats(ctx context.Context, requestOptions ...RequestOption) (res TorrentBlockerReportsGetTorrentBlockerReportsStatsRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("TorrentBlockerReports_getTorrentBlockerReportsStats"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/node-plugins/torrent-blocker/stats"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, TorrentBlockerReportsGetTorrentBlockerReportsStatsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/node-plugins/torrent-blocker/stats" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, TorrentBlockerReportsGetTorrentBlockerReportsStatsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeTorrentBlockerReportsGetTorrentBlockerReportsStatsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// TorrentBlockerReportsTruncateTorrentBlockerReports invokes TorrentBlockerReports_truncateTorrentBlockerReports operation. +// +// Truncate Torrent Blocker Reports. +// +// DELETE /api/node-plugins/torrent-blocker/truncate +func (c *Client) TorrentBlockerReportsTruncateTorrentBlockerReports(ctx context.Context, options ...RequestOption) (TorrentBlockerReportsTruncateTorrentBlockerReportsRes, error) { + res, err := c.sendTorrentBlockerReportsTruncateTorrentBlockerReports(ctx, options...) + return res, err +} + +func (c *Client) sendTorrentBlockerReportsTruncateTorrentBlockerReports(ctx context.Context, requestOptions ...RequestOption) (res TorrentBlockerReportsTruncateTorrentBlockerReportsRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("TorrentBlockerReports_truncateTorrentBlockerReports"), + semconv.HTTPRequestMethodKey.String("DELETE"), + semconv.URLTemplateKey.String("/api/node-plugins/torrent-blocker/truncate"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, TorrentBlockerReportsTruncateTorrentBlockerReportsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/node-plugins/torrent-blocker/truncate" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "DELETE", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, TorrentBlockerReportsTruncateTorrentBlockerReportsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeTorrentBlockerReportsTruncateTorrentBlockerReportsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// UserSubscriptionRequestHistoryGetSubscriptionRequestHistory invokes UserSubscriptionRequestHistory_getSubscriptionRequestHistory operation. +// +// Get all subscription request history. +// +// GET /api/subscription-request-history +func (c *Client) UserSubscriptionRequestHistoryGetSubscriptionRequestHistory(ctx context.Context, params UserSubscriptionRequestHistoryGetSubscriptionRequestHistoryParams, options ...RequestOption) (UserSubscriptionRequestHistoryGetSubscriptionRequestHistoryRes, error) { + res, err := c.sendUserSubscriptionRequestHistoryGetSubscriptionRequestHistory(ctx, params, options...) + return res, err +} + +func (c *Client) sendUserSubscriptionRequestHistoryGetSubscriptionRequestHistory(ctx context.Context, params UserSubscriptionRequestHistoryGetSubscriptionRequestHistoryParams, requestOptions ...RequestOption) (res UserSubscriptionRequestHistoryGetSubscriptionRequestHistoryRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("UserSubscriptionRequestHistory_getSubscriptionRequestHistory"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/subscription-request-history"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, UserSubscriptionRequestHistoryGetSubscriptionRequestHistoryOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/subscription-request-history" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeQueryParams" + q := uri.NewQueryEncoder() + { + // Encode "size" parameter. + cfg := uri.QueryParameterEncodingConfig{ + Name: "size", + Style: uri.QueryStyleForm, + Explode: true, + } + + if err := q.EncodeParam(cfg, func(e uri.Encoder) error { + if val, ok := params.Size.Get(); ok { + return e.EncodeValue(conv.IntToString(val)) + } + return nil + }); err != nil { + return res, errors.Wrap(err, "encode query") + } + } + { + // Encode "start" parameter. + cfg := uri.QueryParameterEncodingConfig{ + Name: "start", + Style: uri.QueryStyleForm, + Explode: true, + } + + if err := q.EncodeParam(cfg, func(e uri.Encoder) error { + if val, ok := params.Start.Get(); ok { + return e.EncodeValue(conv.IntToString(val)) + } + return nil + }); err != nil { + return res, errors.Wrap(err, "encode query") + } + } + u.RawQuery = q.Values().Encode() + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, UserSubscriptionRequestHistoryGetSubscriptionRequestHistoryOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeUserSubscriptionRequestHistoryGetSubscriptionRequestHistoryResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// UserSubscriptionRequestHistoryGetSubscriptionRequestHistoryStats invokes UserSubscriptionRequestHistory_getSubscriptionRequestHistoryStats operation. +// +// Get subscription request history stats. +// +// GET /api/subscription-request-history/stats +func (c *Client) UserSubscriptionRequestHistoryGetSubscriptionRequestHistoryStats(ctx context.Context, options ...RequestOption) (UserSubscriptionRequestHistoryGetSubscriptionRequestHistoryStatsRes, error) { + res, err := c.sendUserSubscriptionRequestHistoryGetSubscriptionRequestHistoryStats(ctx, options...) + return res, err +} + +func (c *Client) sendUserSubscriptionRequestHistoryGetSubscriptionRequestHistoryStats(ctx context.Context, requestOptions ...RequestOption) (res UserSubscriptionRequestHistoryGetSubscriptionRequestHistoryStatsRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("UserSubscriptionRequestHistory_getSubscriptionRequestHistoryStats"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/subscription-request-history/stats"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, UserSubscriptionRequestHistoryGetSubscriptionRequestHistoryStatsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/subscription-request-history/stats" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, UserSubscriptionRequestHistoryGetSubscriptionRequestHistoryStatsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeUserSubscriptionRequestHistoryGetSubscriptionRequestHistoryStatsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// UsersBulkActionsBulkAllExtendExpirationDate invokes UsersBulkActions_bulkAllExtendExpirationDate operation. +// +// Bulk extend all users expiration date. +// +// POST /api/users/bulk/all/extend-expiration-date +func (c *Client) UsersBulkActionsBulkAllExtendExpirationDate(ctx context.Context, request *BulkAllExtendExpirationDateRequest, options ...RequestOption) (UsersBulkActionsBulkAllExtendExpirationDateRes, error) { + res, err := c.sendUsersBulkActionsBulkAllExtendExpirationDate(ctx, request, options...) + return res, err +} + +func (c *Client) sendUsersBulkActionsBulkAllExtendExpirationDate(ctx context.Context, request *BulkAllExtendExpirationDateRequest, requestOptions ...RequestOption) (res UsersBulkActionsBulkAllExtendExpirationDateRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("UsersBulkActions_bulkAllExtendExpirationDate"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/users/bulk/all/extend-expiration-date"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, UsersBulkActionsBulkAllExtendExpirationDateOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/users/bulk/all/extend-expiration-date" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeUsersBulkActionsBulkAllExtendExpirationDateRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, UsersBulkActionsBulkAllExtendExpirationDateOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeUsersBulkActionsBulkAllExtendExpirationDateResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// UsersBulkActionsBulkAllResetUserTraffic invokes UsersBulkActions_bulkAllResetUserTraffic operation. +// +// Bulk reset all users traffic. +// +// POST /api/users/bulk/all/reset-traffic +func (c *Client) UsersBulkActionsBulkAllResetUserTraffic(ctx context.Context, options ...RequestOption) (UsersBulkActionsBulkAllResetUserTrafficRes, error) { + res, err := c.sendUsersBulkActionsBulkAllResetUserTraffic(ctx, options...) + return res, err +} + +func (c *Client) sendUsersBulkActionsBulkAllResetUserTraffic(ctx context.Context, requestOptions ...RequestOption) (res UsersBulkActionsBulkAllResetUserTrafficRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("UsersBulkActions_bulkAllResetUserTraffic"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/users/bulk/all/reset-traffic"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, UsersBulkActionsBulkAllResetUserTrafficOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/users/bulk/all/reset-traffic" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, UsersBulkActionsBulkAllResetUserTrafficOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeUsersBulkActionsBulkAllResetUserTrafficResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// UsersBulkActionsBulkDeleteUsers invokes UsersBulkActions_bulkDeleteUsers operation. +// +// Bulk delete users by UUIDs. +// +// POST /api/users/bulk/delete +func (c *Client) UsersBulkActionsBulkDeleteUsers(ctx context.Context, request *BulkUuidsRequest, options ...RequestOption) (UsersBulkActionsBulkDeleteUsersRes, error) { + res, err := c.sendUsersBulkActionsBulkDeleteUsers(ctx, request, options...) + return res, err +} + +func (c *Client) sendUsersBulkActionsBulkDeleteUsers(ctx context.Context, request *BulkUuidsRequest, requestOptions ...RequestOption) (res UsersBulkActionsBulkDeleteUsersRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("UsersBulkActions_bulkDeleteUsers"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/users/bulk/delete"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, UsersBulkActionsBulkDeleteUsersOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/users/bulk/delete" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeUsersBulkActionsBulkDeleteUsersRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, UsersBulkActionsBulkDeleteUsersOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeUsersBulkActionsBulkDeleteUsersResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// UsersBulkActionsBulkDeleteUsersByStatus invokes UsersBulkActions_bulkDeleteUsersByStatus operation. +// +// Bulk delete users by status. +// +// POST /api/users/bulk/delete-by-status +func (c *Client) UsersBulkActionsBulkDeleteUsersByStatus(ctx context.Context, request *BulkDeleteUsersByStatusRequest, options ...RequestOption) (UsersBulkActionsBulkDeleteUsersByStatusRes, error) { + res, err := c.sendUsersBulkActionsBulkDeleteUsersByStatus(ctx, request, options...) + return res, err +} + +func (c *Client) sendUsersBulkActionsBulkDeleteUsersByStatus(ctx context.Context, request *BulkDeleteUsersByStatusRequest, requestOptions ...RequestOption) (res UsersBulkActionsBulkDeleteUsersByStatusRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("UsersBulkActions_bulkDeleteUsersByStatus"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/users/bulk/delete-by-status"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, UsersBulkActionsBulkDeleteUsersByStatusOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/users/bulk/delete-by-status" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeUsersBulkActionsBulkDeleteUsersByStatusRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, UsersBulkActionsBulkDeleteUsersByStatusOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeUsersBulkActionsBulkDeleteUsersByStatusResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// UsersBulkActionsBulkExtendExpirationDate invokes UsersBulkActions_bulkExtendExpirationDate operation. +// +// Bulk extend all users expiration date. +// +// POST /api/users/bulk/extend-expiration-date +func (c *Client) UsersBulkActionsBulkExtendExpirationDate(ctx context.Context, request *BulkExtendExpirationDateRequest, options ...RequestOption) (UsersBulkActionsBulkExtendExpirationDateRes, error) { + res, err := c.sendUsersBulkActionsBulkExtendExpirationDate(ctx, request, options...) + return res, err +} + +func (c *Client) sendUsersBulkActionsBulkExtendExpirationDate(ctx context.Context, request *BulkExtendExpirationDateRequest, requestOptions ...RequestOption) (res UsersBulkActionsBulkExtendExpirationDateRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("UsersBulkActions_bulkExtendExpirationDate"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/users/bulk/extend-expiration-date"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, UsersBulkActionsBulkExtendExpirationDateOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/users/bulk/extend-expiration-date" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeUsersBulkActionsBulkExtendExpirationDateRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, UsersBulkActionsBulkExtendExpirationDateOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeUsersBulkActionsBulkExtendExpirationDateResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// UsersBulkActionsBulkResetUserTraffic invokes UsersBulkActions_bulkResetUserTraffic operation. +// +// Bulk reset traffic users by UUIDs. +// +// POST /api/users/bulk/reset-traffic +func (c *Client) UsersBulkActionsBulkResetUserTraffic(ctx context.Context, request *BulkUuidsRequest, options ...RequestOption) (UsersBulkActionsBulkResetUserTrafficRes, error) { + res, err := c.sendUsersBulkActionsBulkResetUserTraffic(ctx, request, options...) + return res, err +} + +func (c *Client) sendUsersBulkActionsBulkResetUserTraffic(ctx context.Context, request *BulkUuidsRequest, requestOptions ...RequestOption) (res UsersBulkActionsBulkResetUserTrafficRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("UsersBulkActions_bulkResetUserTraffic"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/users/bulk/reset-traffic"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, UsersBulkActionsBulkResetUserTrafficOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/users/bulk/reset-traffic" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeUsersBulkActionsBulkResetUserTrafficRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, UsersBulkActionsBulkResetUserTrafficOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeUsersBulkActionsBulkResetUserTrafficResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// UsersBulkActionsBulkRevokeUsersSubscription invokes UsersBulkActions_bulkRevokeUsersSubscription operation. +// +// Revoke users subscription by User UUIDs. +// +// POST /api/users/bulk/revoke-subscription +func (c *Client) UsersBulkActionsBulkRevokeUsersSubscription(ctx context.Context, request *BulkUuidsRequest, options ...RequestOption) (UsersBulkActionsBulkRevokeUsersSubscriptionRes, error) { + res, err := c.sendUsersBulkActionsBulkRevokeUsersSubscription(ctx, request, options...) + return res, err +} + +func (c *Client) sendUsersBulkActionsBulkRevokeUsersSubscription(ctx context.Context, request *BulkUuidsRequest, requestOptions ...RequestOption) (res UsersBulkActionsBulkRevokeUsersSubscriptionRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("UsersBulkActions_bulkRevokeUsersSubscription"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/users/bulk/revoke-subscription"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, UsersBulkActionsBulkRevokeUsersSubscriptionOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/users/bulk/revoke-subscription" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeUsersBulkActionsBulkRevokeUsersSubscriptionRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, UsersBulkActionsBulkRevokeUsersSubscriptionOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeUsersBulkActionsBulkRevokeUsersSubscriptionResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// UsersBulkActionsBulkUpdateAllUsers invokes UsersBulkActions_bulkUpdateAllUsers operation. +// +// Bulk update all users. +// +// POST /api/users/bulk/all/update +func (c *Client) UsersBulkActionsBulkUpdateAllUsers(ctx context.Context, request *BulkAllUpdateUsersRequest, options ...RequestOption) (UsersBulkActionsBulkUpdateAllUsersRes, error) { + res, err := c.sendUsersBulkActionsBulkUpdateAllUsers(ctx, request, options...) + return res, err +} + +func (c *Client) sendUsersBulkActionsBulkUpdateAllUsers(ctx context.Context, request *BulkAllUpdateUsersRequest, requestOptions ...RequestOption) (res UsersBulkActionsBulkUpdateAllUsersRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("UsersBulkActions_bulkUpdateAllUsers"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/users/bulk/all/update"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, UsersBulkActionsBulkUpdateAllUsersOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/users/bulk/all/update" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeUsersBulkActionsBulkUpdateAllUsersRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, UsersBulkActionsBulkUpdateAllUsersOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeUsersBulkActionsBulkUpdateAllUsersResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// UsersBulkActionsBulkUpdateUsers invokes UsersBulkActions_bulkUpdateUsers operation. +// +// Bulk update users by UUIDs. +// +// POST /api/users/bulk/update +func (c *Client) UsersBulkActionsBulkUpdateUsers(ctx context.Context, request *BulkUpdateUsersRequest, options ...RequestOption) (UsersBulkActionsBulkUpdateUsersRes, error) { + res, err := c.sendUsersBulkActionsBulkUpdateUsers(ctx, request, options...) + return res, err +} + +func (c *Client) sendUsersBulkActionsBulkUpdateUsers(ctx context.Context, request *BulkUpdateUsersRequest, requestOptions ...RequestOption) (res UsersBulkActionsBulkUpdateUsersRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("UsersBulkActions_bulkUpdateUsers"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/users/bulk/update"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, UsersBulkActionsBulkUpdateUsersOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/users/bulk/update" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeUsersBulkActionsBulkUpdateUsersRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, UsersBulkActionsBulkUpdateUsersOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeUsersBulkActionsBulkUpdateUsersResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// UsersBulkActionsBulkUpdateUsersInternalSquads invokes UsersBulkActions_bulkUpdateUsersInternalSquads operation. +// +// Bulk update users internal squads by UUIDs. +// +// POST /api/users/bulk/update-squads +func (c *Client) UsersBulkActionsBulkUpdateUsersInternalSquads(ctx context.Context, request *BulkUpdateUsersSquadsRequest, options ...RequestOption) (UsersBulkActionsBulkUpdateUsersInternalSquadsRes, error) { + res, err := c.sendUsersBulkActionsBulkUpdateUsersInternalSquads(ctx, request, options...) + return res, err +} + +func (c *Client) sendUsersBulkActionsBulkUpdateUsersInternalSquads(ctx context.Context, request *BulkUpdateUsersSquadsRequest, requestOptions ...RequestOption) (res UsersBulkActionsBulkUpdateUsersInternalSquadsRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("UsersBulkActions_bulkUpdateUsersInternalSquads"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/users/bulk/update-squads"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, UsersBulkActionsBulkUpdateUsersInternalSquadsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/users/bulk/update-squads" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeUsersBulkActionsBulkUpdateUsersInternalSquadsRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, UsersBulkActionsBulkUpdateUsersInternalSquadsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeUsersBulkActionsBulkUpdateUsersInternalSquadsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// UsersCreateUser invokes Users_createUser operation. +// +// Create a new user. +// +// POST /api/users +func (c *Client) UsersCreateUser(ctx context.Context, request *CreateUserRequest, options ...RequestOption) (UsersCreateUserRes, error) { + res, err := c.sendUsersCreateUser(ctx, request, options...) + return res, err +} + +func (c *Client) sendUsersCreateUser(ctx context.Context, request *CreateUserRequest, requestOptions ...RequestOption) (res UsersCreateUserRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Users_createUser"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/users"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, UsersCreateUserOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/users" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeUsersCreateUserRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, UsersCreateUserOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeUsersCreateUserResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// UsersDeleteUser invokes Users_deleteUser operation. +// +// Delete user. +// +// DELETE /api/users/{uuid} +func (c *Client) UsersDeleteUser(ctx context.Context, params UsersDeleteUserParams, options ...RequestOption) (UsersDeleteUserRes, error) { + res, err := c.sendUsersDeleteUser(ctx, params, options...) + return res, err +} + +func (c *Client) sendUsersDeleteUser(ctx context.Context, params UsersDeleteUserParams, requestOptions ...RequestOption) (res UsersDeleteUserRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Users_deleteUser"), + semconv.HTTPRequestMethodKey.String("DELETE"), + semconv.URLTemplateKey.String("/api/users/{uuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, UsersDeleteUserOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/users/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "DELETE", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, UsersDeleteUserOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeUsersDeleteUserResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// UsersDisableUser invokes Users_disableUser operation. +// +// Disable user. +// +// POST /api/users/{uuid}/actions/disable +func (c *Client) UsersDisableUser(ctx context.Context, params UsersDisableUserParams, options ...RequestOption) (UsersDisableUserRes, error) { + res, err := c.sendUsersDisableUser(ctx, params, options...) + return res, err +} + +func (c *Client) sendUsersDisableUser(ctx context.Context, params UsersDisableUserParams, requestOptions ...RequestOption) (res UsersDisableUserRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Users_disableUser"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/users/{uuid}/actions/disable"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, UsersDisableUserOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [3]string + pathParts[0] = "/api/users/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + pathParts[2] = "/actions/disable" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, UsersDisableUserOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeUsersDisableUserResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// UsersEnableUser invokes Users_enableUser operation. +// +// Enable user. +// +// POST /api/users/{uuid}/actions/enable +func (c *Client) UsersEnableUser(ctx context.Context, params UsersEnableUserParams, options ...RequestOption) (UsersEnableUserRes, error) { + res, err := c.sendUsersEnableUser(ctx, params, options...) + return res, err +} + +func (c *Client) sendUsersEnableUser(ctx context.Context, params UsersEnableUserParams, requestOptions ...RequestOption) (res UsersEnableUserRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Users_enableUser"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/users/{uuid}/actions/enable"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, UsersEnableUserOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [3]string + pathParts[0] = "/api/users/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + pathParts[2] = "/actions/enable" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, UsersEnableUserOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeUsersEnableUserResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// UsersGetAllTags invokes Users_getAllTags operation. +// +// Get all existing user tags. +// +// GET /api/users/tags +func (c *Client) UsersGetAllTags(ctx context.Context, options ...RequestOption) (UsersGetAllTagsRes, error) { + res, err := c.sendUsersGetAllTags(ctx, options...) + return res, err +} + +func (c *Client) sendUsersGetAllTags(ctx context.Context, requestOptions ...RequestOption) (res UsersGetAllTagsRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Users_getAllTags"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/users/tags"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, UsersGetAllTagsOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/users/tags" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, UsersGetAllTagsOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeUsersGetAllTagsResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// UsersGetAllUsers invokes Users_getAllUsers operation. +// +// Get all users. +// +// GET /api/users +func (c *Client) UsersGetAllUsers(ctx context.Context, params UsersGetAllUsersParams, options ...RequestOption) (UsersGetAllUsersRes, error) { + res, err := c.sendUsersGetAllUsers(ctx, params, options...) + return res, err +} + +func (c *Client) sendUsersGetAllUsers(ctx context.Context, params UsersGetAllUsersParams, requestOptions ...RequestOption) (res UsersGetAllUsersRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Users_getAllUsers"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/users"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, UsersGetAllUsersOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/users" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeQueryParams" + q := uri.NewQueryEncoder() + { + // Encode "size" parameter. + cfg := uri.QueryParameterEncodingConfig{ + Name: "size", + Style: uri.QueryStyleForm, + Explode: true, + } + + if err := q.EncodeParam(cfg, func(e uri.Encoder) error { + if val, ok := params.Size.Get(); ok { + return e.EncodeValue(conv.IntToString(val)) + } + return nil + }); err != nil { + return res, errors.Wrap(err, "encode query") + } + } + { + // Encode "start" parameter. + cfg := uri.QueryParameterEncodingConfig{ + Name: "start", + Style: uri.QueryStyleForm, + Explode: true, + } + + if err := q.EncodeParam(cfg, func(e uri.Encoder) error { + if val, ok := params.Start.Get(); ok { + return e.EncodeValue(conv.IntToString(val)) + } + return nil + }); err != nil { + return res, errors.Wrap(err, "encode query") + } + } + u.RawQuery = q.Values().Encode() + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, UsersGetAllUsersOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeUsersGetAllUsersResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// UsersGetUserAccessibleNodes invokes Users_getUserAccessibleNodes operation. +// +// Get user accessible nodes. +// +// GET /api/users/{uuid}/accessible-nodes +func (c *Client) UsersGetUserAccessibleNodes(ctx context.Context, params UsersGetUserAccessibleNodesParams, options ...RequestOption) (UsersGetUserAccessibleNodesRes, error) { + res, err := c.sendUsersGetUserAccessibleNodes(ctx, params, options...) + return res, err +} + +func (c *Client) sendUsersGetUserAccessibleNodes(ctx context.Context, params UsersGetUserAccessibleNodesParams, requestOptions ...RequestOption) (res UsersGetUserAccessibleNodesRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Users_getUserAccessibleNodes"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/users/{uuid}/accessible-nodes"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, UsersGetUserAccessibleNodesOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [3]string + pathParts[0] = "/api/users/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + pathParts[2] = "/accessible-nodes" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, UsersGetUserAccessibleNodesOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeUsersGetUserAccessibleNodesResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// UsersGetUserById invokes Users_getUserById operation. +// +// Get user by ID. +// +// GET /api/users/by-id/{id} +func (c *Client) UsersGetUserById(ctx context.Context, params UsersGetUserByIdParams, options ...RequestOption) (UsersGetUserByIdRes, error) { + res, err := c.sendUsersGetUserById(ctx, params, options...) + return res, err +} + +func (c *Client) sendUsersGetUserById(ctx context.Context, params UsersGetUserByIdParams, requestOptions ...RequestOption) (res UsersGetUserByIdRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Users_getUserById"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/users/by-id/{id}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, UsersGetUserByIdOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/users/by-id/" + { + // Encode "id" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "id", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.ID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, UsersGetUserByIdOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeUsersGetUserByIdResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// UsersGetUserByShortUuid invokes Users_getUserByShortUuid operation. +// +// Get user by Short UUID. +// +// GET /api/users/by-short-uuid/{shortUuid} +func (c *Client) UsersGetUserByShortUuid(ctx context.Context, params UsersGetUserByShortUuidParams, options ...RequestOption) (UsersGetUserByShortUuidRes, error) { + res, err := c.sendUsersGetUserByShortUuid(ctx, params, options...) + return res, err +} + +func (c *Client) sendUsersGetUserByShortUuid(ctx context.Context, params UsersGetUserByShortUuidParams, requestOptions ...RequestOption) (res UsersGetUserByShortUuidRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Users_getUserByShortUuid"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/users/by-short-uuid/{shortUuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, UsersGetUserByShortUuidOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/users/by-short-uuid/" + { + // Encode "shortUuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "shortUuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.ShortUuid)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, UsersGetUserByShortUuidOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeUsersGetUserByShortUuidResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// UsersGetUserByTelegramId invokes Users_getUserByTelegramId operation. +// +// Get users by telegram ID. +// +// GET /api/users/by-telegram-id/{telegramId} +func (c *Client) UsersGetUserByTelegramId(ctx context.Context, params UsersGetUserByTelegramIdParams, options ...RequestOption) (UsersGetUserByTelegramIdRes, error) { + res, err := c.sendUsersGetUserByTelegramId(ctx, params, options...) + return res, err +} + +func (c *Client) sendUsersGetUserByTelegramId(ctx context.Context, params UsersGetUserByTelegramIdParams, requestOptions ...RequestOption) (res UsersGetUserByTelegramIdRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Users_getUserByTelegramId"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/users/by-telegram-id/{telegramId}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, UsersGetUserByTelegramIdOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/users/by-telegram-id/" + { + // Encode "telegramId" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "telegramId", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.TelegramId)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, UsersGetUserByTelegramIdOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeUsersGetUserByTelegramIdResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// UsersGetUserByUsername invokes Users_getUserByUsername operation. +// +// Get user by username. +// +// GET /api/users/by-username/{username} +func (c *Client) UsersGetUserByUsername(ctx context.Context, params UsersGetUserByUsernameParams, options ...RequestOption) (UsersGetUserByUsernameRes, error) { + res, err := c.sendUsersGetUserByUsername(ctx, params, options...) + return res, err +} + +func (c *Client) sendUsersGetUserByUsername(ctx context.Context, params UsersGetUserByUsernameParams, requestOptions ...RequestOption) (res UsersGetUserByUsernameRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Users_getUserByUsername"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/users/by-username/{username}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, UsersGetUserByUsernameOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/users/by-username/" + { + // Encode "username" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "username", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.Username)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, UsersGetUserByUsernameOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeUsersGetUserByUsernameResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// UsersGetUserByUuid invokes Users_getUserByUuid operation. +// +// Get user by UUID. +// +// GET /api/users/{uuid} +func (c *Client) UsersGetUserByUuid(ctx context.Context, params UsersGetUserByUuidParams, options ...RequestOption) (UsersGetUserByUuidRes, error) { + res, err := c.sendUsersGetUserByUuid(ctx, params, options...) + return res, err +} + +func (c *Client) sendUsersGetUserByUuid(ctx context.Context, params UsersGetUserByUuidParams, requestOptions ...RequestOption) (res UsersGetUserByUuidRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Users_getUserByUuid"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/users/{uuid}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, UsersGetUserByUuidOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/users/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, UsersGetUserByUuidOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeUsersGetUserByUuidResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// UsersGetUserSubscriptionRequestHistory invokes Users_getUserSubscriptionRequestHistory operation. +// +// Get user subscription request history, recent 24 records. +// +// GET /api/users/{uuid}/subscription-request-history +func (c *Client) UsersGetUserSubscriptionRequestHistory(ctx context.Context, params UsersGetUserSubscriptionRequestHistoryParams, options ...RequestOption) (UsersGetUserSubscriptionRequestHistoryRes, error) { + res, err := c.sendUsersGetUserSubscriptionRequestHistory(ctx, params, options...) + return res, err +} + +func (c *Client) sendUsersGetUserSubscriptionRequestHistory(ctx context.Context, params UsersGetUserSubscriptionRequestHistoryParams, requestOptions ...RequestOption) (res UsersGetUserSubscriptionRequestHistoryRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Users_getUserSubscriptionRequestHistory"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/users/{uuid}/subscription-request-history"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, UsersGetUserSubscriptionRequestHistoryOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [3]string + pathParts[0] = "/api/users/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + pathParts[2] = "/subscription-request-history" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, UsersGetUserSubscriptionRequestHistoryOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeUsersGetUserSubscriptionRequestHistoryResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// UsersGetUsersByEmail invokes Users_getUsersByEmail operation. +// +// Get users by email. +// +// GET /api/users/by-email/{email} +func (c *Client) UsersGetUsersByEmail(ctx context.Context, params UsersGetUsersByEmailParams, options ...RequestOption) (UsersGetUsersByEmailRes, error) { + res, err := c.sendUsersGetUsersByEmail(ctx, params, options...) + return res, err +} + +func (c *Client) sendUsersGetUsersByEmail(ctx context.Context, params UsersGetUsersByEmailParams, requestOptions ...RequestOption) (res UsersGetUsersByEmailRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Users_getUsersByEmail"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/users/by-email/{email}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, UsersGetUsersByEmailOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/users/by-email/" + { + // Encode "email" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "email", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.Email)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, UsersGetUsersByEmailOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeUsersGetUsersByEmailResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// UsersGetUsersByTag invokes Users_getUsersByTag operation. +// +// Get users by tag. +// +// GET /api/users/by-tag/{tag} +func (c *Client) UsersGetUsersByTag(ctx context.Context, params UsersGetUsersByTagParams, options ...RequestOption) (UsersGetUsersByTagRes, error) { + res, err := c.sendUsersGetUsersByTag(ctx, params, options...) + return res, err +} + +func (c *Client) sendUsersGetUsersByTag(ctx context.Context, params UsersGetUsersByTagParams, requestOptions ...RequestOption) (res UsersGetUsersByTagRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Users_getUsersByTag"), + semconv.HTTPRequestMethodKey.String("GET"), + semconv.URLTemplateKey.String("/api/users/by-tag/{tag}"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, UsersGetUsersByTagOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [2]string + pathParts[0] = "/api/users/by-tag/" + { + // Encode "tag" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "tag", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.Tag)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "GET", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, UsersGetUsersByTagOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeUsersGetUsersByTagResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// UsersResetUserTraffic invokes Users_resetUserTraffic operation. +// +// Reset user traffic. +// +// POST /api/users/{uuid}/actions/reset-traffic +func (c *Client) UsersResetUserTraffic(ctx context.Context, params UsersResetUserTrafficParams, options ...RequestOption) (UsersResetUserTrafficRes, error) { + res, err := c.sendUsersResetUserTraffic(ctx, params, options...) + return res, err +} + +func (c *Client) sendUsersResetUserTraffic(ctx context.Context, params UsersResetUserTrafficParams, requestOptions ...RequestOption) (res UsersResetUserTrafficRes, err error) { + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Users_resetUserTraffic"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/users/{uuid}/actions/reset-traffic"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, UsersResetUserTrafficOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [3]string + pathParts[0] = "/api/users/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + pathParts[2] = "/actions/reset-traffic" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, UsersResetUserTrafficOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeUsersResetUserTrafficResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// UsersResolveUser invokes Users_resolveUser operation. +// +// Resolve a user. +// +// POST /api/users/resolve +func (c *Client) UsersResolveUser(ctx context.Context, request *ResolveUserRequestBody, options ...RequestOption) (UsersResolveUserRes, error) { + res, err := c.sendUsersResolveUser(ctx, request, options...) + return res, err +} + +func (c *Client) sendUsersResolveUser(ctx context.Context, request *ResolveUserRequestBody, requestOptions ...RequestOption) (res UsersResolveUserRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Users_resolveUser"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/users/resolve"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, UsersResolveUserOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/users/resolve" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeUsersResolveUserRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, UsersResolveUserOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeUsersResolveUserResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// UsersRevokeUserSubscription invokes Users_revokeUserSubscription operation. +// +// Revoke user subscription. +// +// POST /api/users/{uuid}/actions/revoke +func (c *Client) UsersRevokeUserSubscription(ctx context.Context, request *RevokeUserSubscriptionBody, params UsersRevokeUserSubscriptionParams, options ...RequestOption) (UsersRevokeUserSubscriptionRes, error) { + res, err := c.sendUsersRevokeUserSubscription(ctx, request, params, options...) + return res, err +} + +func (c *Client) sendUsersRevokeUserSubscription(ctx context.Context, request *RevokeUserSubscriptionBody, params UsersRevokeUserSubscriptionParams, requestOptions ...RequestOption) (res UsersRevokeUserSubscriptionRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Users_revokeUserSubscription"), + semconv.HTTPRequestMethodKey.String("POST"), + semconv.URLTemplateKey.String("/api/users/{uuid}/actions/revoke"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, UsersRevokeUserSubscriptionOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [3]string + pathParts[0] = "/api/users/" + { + // Encode "uuid" parameter. + e := uri.NewPathEncoder(uri.PathEncoderConfig{ + Param: "uuid", + Style: uri.PathStyleSimple, + Explode: false, + }) + if err := func() error { + return e.EncodeValue(conv.StringToString(params.UUID)) + }(); err != nil { + return res, errors.Wrap(err, "encode path") + } + encoded, err := e.Result() + if err != nil { + return res, errors.Wrap(err, "encode path") + } + pathParts[1] = encoded + } + pathParts[2] = "/actions/revoke" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "POST", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeUsersRevokeUserSubscriptionRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, UsersRevokeUserSubscriptionOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeUsersRevokeUserSubscriptionResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} + +// UsersUpdateUser invokes Users_updateUser operation. +// +// Update a user by UUID or username. +// +// PATCH /api/users +func (c *Client) UsersUpdateUser(ctx context.Context, request *UpdateUserRequest, options ...RequestOption) (UsersUpdateUserRes, error) { + res, err := c.sendUsersUpdateUser(ctx, request, options...) + return res, err +} + +func (c *Client) sendUsersUpdateUser(ctx context.Context, request *UpdateUserRequest, requestOptions ...RequestOption) (res UsersUpdateUserRes, err error) { + // Validate request before sending. + if err := func() error { + if err := request.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + otelAttrs := []attribute.KeyValue{ + otelogen.OperationID("Users_updateUser"), + semconv.HTTPRequestMethodKey.String("PATCH"), + semconv.URLTemplateKey.String("/api/users"), + } + otelAttrs = append(otelAttrs, c.cfg.Attributes...) + + // Run stopwatch. + startTime := time.Now() + defer func() { + // Use floating point division here for higher precision (instead of Millisecond method). + elapsedDuration := time.Since(startTime) + c.duration.Record(ctx, float64(elapsedDuration)/float64(time.Millisecond), metric.WithAttributes(otelAttrs...)) + }() + + // Increment request counter. + c.requests.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + + // Start a span for this request. + ctx, span := c.cfg.Tracer.Start(ctx, UsersUpdateUserOperation, + trace.WithAttributes(otelAttrs...), + clientSpanKind, + ) + // Track stage for error reporting. + var stage string + defer func() { + if err != nil { + span.RecordError(err) + span.SetStatus(codes.Error, stage) + c.errors.Add(ctx, 1, metric.WithAttributes(otelAttrs...)) + } + span.End() + }() + + var reqCfg requestConfig + reqCfg.setDefaults(c.baseClient) + for _, o := range requestOptions { + o(&reqCfg) + } + + stage = "BuildURL" + u := c.serverURL + if override := reqCfg.ServerURL; override != nil { + u = override + } + u = uri.Clone(u) + var pathParts [1]string + pathParts[0] = "/api/users" + uri.AddPathParts(u, pathParts[:]...) + + stage = "EncodeRequest" + r, err := ht.NewRequest(ctx, "PATCH", u) + if err != nil { + return res, errors.Wrap(err, "create request") + } + if err := encodeUsersUpdateUserRequest(request, r); err != nil { + return res, errors.Wrap(err, "encode request") + } + + { + type bitset = [1]uint8 + var satisfied bitset + { + stage = "Security:Authorization" + switch err := c.securityAuthorization(ctx, UsersUpdateUserOperation, r); { + case err == nil: // if NO error + satisfied[0] |= 1 << 0 + case errors.Is(err, ogenerrors.ErrSkipClientSecurity): + // Skip this security. + default: + return res, errors.Wrap(err, "security \"Authorization\"") + } + } + + if ok := func() bool { + nextRequirement: + for _, requirement := range []bitset{ + {0b00000001}, + } { + for i, mask := range requirement { + if satisfied[i]&mask != mask { + continue nextRequirement + } + } + return true + } + return false + }(); !ok { + return res, ogenerrors.ErrSecurityRequirementIsNotSatisfied + } + } + + if err := c.onRequest(ctx, r); err != nil { + return res, errors.Wrap(err, "client edit request") + } + + if err := reqCfg.onRequest(r); err != nil { + return res, errors.Wrap(err, "edit request") + } + + stage = "SendRequest" + resp, err := reqCfg.Client.Do(r) + if err != nil { + return res, errors.Wrap(err, "do request") + } + defer resp.Body.Close() + + if err := c.onResponse(ctx, resp); err != nil { + return res, errors.Wrap(err, "client edit response") + } + + if err := reqCfg.onResponse(resp); err != nil { + return res, errors.Wrap(err, "edit response") + } + + stage = "DecodeResponse" + result, err := decodeUsersUpdateUserResponse(resp) + if err != nil { + return res, errors.Wrap(err, "decode response") + } + + return result, nil +} diff --git a/api/oas_defaults_gen.go b/api/oas_defaults_gen.go new file mode 100644 index 0000000..a1aacd8 --- /dev/null +++ b/api/oas_defaults_gen.go @@ -0,0 +1,151 @@ +// Code generated by ogen, DO NOT EDIT. + +package api + +// setDefaults set default value of fields. +func (s *BulkAllUpdateUsersRequest) setDefaults() { + { + val := BulkAllUpdateUsersRequestStatus("ACTIVE") + s.Status.SetTo(val) + } +} + +// setDefaults set default value of fields. +func (s *BulkDeleteUsersByStatusRequest) setDefaults() { + { + val := BulkDeleteUsersByStatusRequestStatus("ACTIVE") + s.Status.SetTo(val) + } +} + +// setDefaults set default value of fields. +func (s *BulkUpdateUsersRequestFields) setDefaults() { + { + val := BulkUpdateUsersRequestFieldsStatus("ACTIVE") + s.Status.SetTo(val) + } +} + +// setDefaults set default value of fields. +func (s *CreateHostRequest) setDefaults() { + { + val := bool(false) + s.IsDisabled.SetTo(val) + } + { + val := CreateHostRequestSecurityLayer("DEFAULT") + s.SecurityLayer.SetTo(val) + } + { + val := bool(false) + s.IsHidden.SetTo(val) + } + { + val := bool(false) + s.OverrideSniFromAddress.SetTo(val) + } + { + val := bool(false) + s.KeepSniBlank.SetTo(val) + } + { + val := bool(false) + s.AllowInsecure.SetTo(val) + } + { + val := bool(false) + s.ShuffleHost.SetTo(val) + } + { + val := bool(false) + s.MihomoX25519.SetTo(val) + } +} + +// setDefaults set default value of fields. +func (s *CreateNodeRequest) setDefaults() { + { + val := bool(false) + s.IsTrafficTrackingActive.SetTo(val) + } + { + val := string("XX") + s.CountryCode.SetTo(val) + } +} + +// setDefaults set default value of fields. +func (s *CreateUserRequest) setDefaults() { + { + val := CreateUserRequestStatus("ACTIVE") + s.Status.SetTo(val) + } + { + val := CreateUserRequestTrafficLimitStrategy("NO_RESET") + s.TrafficLimitStrategy.SetTo(val) + } +} + +// setDefaults set default value of fields. +func (s *HostItem) setDefaults() { + { + val := bool(false) + s.IsDisabled.SetTo(val) + } + { + val := HostItemSecurityLayer("DEFAULT") + s.SecurityLayer.SetTo(val) + } + { + val := bool(false) + s.IsHidden.SetTo(val) + } + { + val := bool(false) + s.OverrideSniFromAddress.SetTo(val) + } + { + val := bool(false) + s.KeepSniBlank.SetTo(val) + } + { + val := bool(false) + s.AllowInsecure.SetTo(val) + } +} + +// setDefaults set default value of fields. +func (s *RevokeUserSubscriptionBody) setDefaults() { + { + val := bool(false) + s.RevokeOnlyPasswords.SetTo(val) + } +} + +// setDefaults set default value of fields. +func (s *UpdateUserRequest) setDefaults() { + { + val := UpdateUserRequestTrafficLimitStrategy("NO_RESET") + s.TrafficLimitStrategy.SetTo(val) + } +} + +// setDefaults set default value of fields. +func (s *UserItemInfo) setDefaults() { + { + val := UserItemInfoStatus("ACTIVE") + s.Status.SetTo(val) + } + { + val := int(0) + s.TrafficLimitBytes.SetTo(val) + } + { + val := UserItemInfoTrafficLimitStrategy("NO_RESET") + s.TrafficLimitStrategy.SetTo(val) + } + { + val := int(0) + s.LastTriggeredThreshold.SetTo(val) + } +} diff --git a/api/oas_faker_gen.go b/api/oas_faker_gen.go new file mode 100644 index 0000000..7a7fac2 --- /dev/null +++ b/api/oas_faker_gen.go @@ -0,0 +1,9245 @@ +// Code generated by ogen, DO NOT EDIT. + +package api + +import ( + "fmt" + "net/url" + "time" + + "github.com/go-faster/jx" + "github.com/google/uuid" +) + +// SetFake set fake values. +func (s *ActionReportItem) SetFake() { + { + { + s.Blocked = true + } + } + { + { + s.IP = "string" + } + } + { + { + s.BlockDuration = float64(0) + } + } + { + { + s.WillUnblockAt = time.Now() + } + } + { + { + s.UserId = "string" + } + } + { + { + s.ProcessedAt = time.Now() + } + } +} + +// SetFake set fake values. +func (s *ActiveInternalSquad) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.Name = "string" + } + } +} + +// SetFake set fake values. +func (s *AllHwidDevices) SetFake() { + { + { + s.Devices = nil + for i := 0; i < 0; i++ { + var elem Device + { + elem.SetFake() + } + s.Devices = append(s.Devices, elem) + } + } + } + { + { + s.Total = float64(0) + } + } +} + +// SetFake set fake values. +func (s *BadRequestError) SetFake() { + { + { + s.Message = "string" + } + } + { + { + s.StatusCode = float64(0) + } + } + { + { + s.Errors = nil + for i := 0; i < 0; i++ { + var elem ValidationError + { + elem.SetFake() + } + s.Errors = append(s.Errors, elem) + } + } + } +} + +// SetFake set fake values. +func (s *BandwidthLastTwoDays) SetFake() { + { + { + s.Current = "string" + } + } + { + { + s.Previous = "string" + } + } + { + { + s.Difference = "string" + } + } +} + +// SetFake set fake values. +func (s *BillingHistoryItem) SetFake() { + { + { + s.TotalAmount = float64(0) + } + } + { + { + s.TotalBills = float64(0) + } + } +} + +// SetFake set fake values. +func (s *BillingHistoryResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *BillingHistoryResponseResponse) SetFake() { + { + { + s.Records = nil + for i := 0; i < 0; i++ { + var elem BillingHistoryResponseResponseRecordsItem + { + elem.SetFake() + } + s.Records = append(s.Records, elem) + } + } + } + { + { + s.Total = float64(0) + } + } +} + +// SetFake set fake values. +func (s *BillingHistoryResponseResponseRecordsItem) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.ProviderUuid = uuid.New() + } + } + { + { + s.Amount = float64(0) + } + } + { + { + s.BilledAt = time.Now() + } + } + { + { + s.Provider.SetFake() + } + } +} + +// SetFake set fake values. +func (s *BillingHistoryResponseResponseRecordsItemProvider) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.Name = "string" + } + } + { + { + s.FaviconLink.SetFake() + } + } +} + +// SetFake set fake values. +func (s *BillingNode) SetFake() { + { + { + s.NodeUuid = uuid.New() + } + } + { + { + s.Name = "string" + } + } + { + { + s.CountryCode = "string" + } + } +} + +// SetFake set fake values. +func (s *BillingNodesResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *BillingNodesResponseResponse) SetFake() { + { + { + s.TotalBillingNodes = float64(0) + } + } + { + { + s.BillingNodes = nil + for i := 0; i < 0; i++ { + var elem BillingNodesResponseResponseBillingNodesItem + { + elem.SetFake() + } + s.BillingNodes = append(s.BillingNodes, elem) + } + } + } + { + { + s.AvailableBillingNodes = nil + for i := 0; i < 0; i++ { + var elem Node + { + elem.SetFake() + } + s.AvailableBillingNodes = append(s.AvailableBillingNodes, elem) + } + } + } + { + { + s.TotalAvailableBillingNodes = float64(0) + } + } + { + { + s.Stats.SetFake() + } + } +} + +// SetFake set fake values. +func (s *BillingNodesResponseResponseBillingNodesItem) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.NodeUuid = uuid.New() + } + } + { + { + s.ProviderUuid = uuid.New() + } + } + { + { + s.Provider.SetFake() + } + } + { + { + s.Node.SetFake() + } + } + { + { + s.NextBillingAt = time.Now() + } + } + { + { + s.CreatedAt = time.Now() + } + } + { + { + s.UpdatedAt = time.Now() + } + } +} + +// SetFake set fake values. +func (s *BillingNodesResponseResponseBillingNodesItemProvider) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.Name = "string" + } + } + { + { + s.LoginUrl.SetFake() + } + } + { + { + s.FaviconLink.SetFake() + } + } +} + +// SetFake set fake values. +func (s *BillingNodesResponseResponseStats) SetFake() { + { + { + s.UpcomingNodesCount = float64(0) + } + } + { + { + s.CurrentMonthPayments = float64(0) + } + } + { + { + s.TotalSpent = float64(0) + } + } +} + +// SetFake set fake values. +func (s *BrandingSettings) SetFake() { + { + { + s.Title.SetFake() + } + } + { + { + s.LogoUrl.SetFake() + } + } +} + +// SetFake set fake values. +func (s *BulkActionResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *BulkActionResponseResponse) SetFake() { + { + { + s.AffectedRows = float64(0) + } + } +} + +// SetFake set fake values. +func (s *BulkAllExtendExpirationDateRequest) SetFake() { + { + { + s.ExtendDays = int(0) + } + } +} + +// SetFake set fake values. +func (s *BulkAllUpdateUsersRequest) SetFake() { + { + { + s.Status.SetFake() + } + } + { + { + s.TrafficLimitBytes.SetFake() + } + } + { + { + s.TrafficLimitStrategy.SetFake() + } + } + { + { + s.ExpireAt.SetFake() + } + } + { + { + s.Description.SetFake() + } + } + { + { + s.TelegramId.SetFake() + } + } + { + { + s.Email.SetFake() + } + } + { + { + s.Tag.SetFake() + } + } + { + { + s.HwidDeviceLimit.SetFake() + } + } +} + +// SetFake set fake values. +func (s *BulkAllUpdateUsersRequestStatus) SetFake() { + *s = BulkAllUpdateUsersRequestStatusACTIVE +} + +// SetFake set fake values. +func (s *BulkAllUpdateUsersRequestTrafficLimitStrategy) SetFake() { + *s = BulkAllUpdateUsersRequestTrafficLimitStrategyNORESET +} + +// SetFake set fake values. +func (s *BulkDeleteUsersByStatusRequest) SetFake() { + { + { + s.Status.SetFake() + } + } +} + +// SetFake set fake values. +func (s *BulkDeleteUsersByStatusRequestStatus) SetFake() { + *s = BulkDeleteUsersByStatusRequestStatusACTIVE +} + +// SetFake set fake values. +func (s *BulkExtendExpirationDateRequest) SetFake() { + { + { + s.Uuids = nil + for i := 0; i < 1; i++ { + var elem uuid.UUID + { + elem = uuid.New() + } + s.Uuids = append(s.Uuids, elem) + } + } + } + { + { + s.ExtendDays = int(0) + } + } +} + +// SetFake set fake values. +func (s *BulkNodesActionsRequest) SetFake() { + { + { + s.Uuids = nil + for i := 0; i < 1; i++ { + var elem uuid.UUID + { + elem = uuid.New() + } + s.Uuids = append(s.Uuids, elem) + } + } + } + { + { + s.Action.SetFake() + } + } +} + +// SetFake set fake values. +func (s *BulkNodesActionsRequestAction) SetFake() { + *s = BulkNodesActionsRequestActionENABLE +} + +// SetFake set fake values. +func (s *BulkNodesUpdateRequest) SetFake() { + { + { + s.Uuids = nil + for i := 0; i < 1; i++ { + var elem uuid.UUID + { + elem = uuid.New() + } + s.Uuids = append(s.Uuids, elem) + } + } + } + { + { + s.Fields.SetFake() + } + } +} + +// SetFake set fake values. +func (s *BulkNodesUpdateRequestFields) SetFake() { + { + { + s.CountryCode.SetFake() + } + } + { + { + s.ConsumptionMultiplier.SetFake() + } + } + { + { + s.ProviderUuid.SetFake() + } + } + { + { + s.Tags = nil + for i := 0; i < 0; i++ { + var elem string + { + elem = "string" + } + s.Tags = append(s.Tags, elem) + } + } + } + { + { + s.ActivePluginUuid.SetFake() + } + } +} + +// SetFake set fake values. +func (s *BulkUpdateUsersRequest) SetFake() { + { + { + s.Uuids = nil + for i := 0; i < 1; i++ { + var elem uuid.UUID + { + elem = uuid.New() + } + s.Uuids = append(s.Uuids, elem) + } + } + } + { + { + s.Fields.SetFake() + } + } +} + +// SetFake set fake values. +func (s *BulkUpdateUsersRequestFields) SetFake() { + { + { + s.Status.SetFake() + } + } + { + { + s.TrafficLimitBytes.SetFake() + } + } + { + { + s.TrafficLimitStrategy.SetFake() + } + } + { + { + s.ExpireAt.SetFake() + } + } + { + { + s.Description.SetFake() + } + } + { + { + s.TelegramId.SetFake() + } + } + { + { + s.Email.SetFake() + } + } + { + { + s.Tag.SetFake() + } + } + { + { + s.HwidDeviceLimit.SetFake() + } + } + { + { + s.ExternalSquadUuid.SetFake() + } + } +} + +// SetFake set fake values. +func (s *BulkUpdateUsersRequestFieldsStatus) SetFake() { + *s = BulkUpdateUsersRequestFieldsStatusACTIVE +} + +// SetFake set fake values. +func (s *BulkUpdateUsersRequestFieldsTrafficLimitStrategy) SetFake() { + *s = BulkUpdateUsersRequestFieldsTrafficLimitStrategyNORESET +} + +// SetFake set fake values. +func (s *BulkUpdateUsersSquadsRequest) SetFake() { + { + { + s.Uuids = nil + for i := 0; i < 1; i++ { + var elem uuid.UUID + { + elem = uuid.New() + } + s.Uuids = append(s.Uuids, elem) + } + } + } + { + { + s.ActiveInternalSquads = nil + for i := 0; i < 0; i++ { + var elem uuid.UUID + { + elem = uuid.New() + } + s.ActiveInternalSquads = append(s.ActiveInternalSquads, elem) + } + } + } +} + +// SetFake set fake values. +func (s *BulkUuidsRequest) SetFake() { + { + { + s.Uuids = nil + for i := 0; i < 1; i++ { + var elem uuid.UUID + { + elem = uuid.New() + } + s.Uuids = append(s.Uuids, elem) + } + } + } +} + +// SetFake set fake values. +func (s *BulkUuidsRequest2) SetFake() { + { + { + s.Uuids = nil + for i := 0; i < 0; i++ { + var elem uuid.UUID + { + elem = uuid.New() + } + s.Uuids = append(s.Uuids, elem) + } + } + } +} + +// SetFake set fake values. +func (s *ByAppItem) SetFake() { + { + { + s.App = "string" + } + } + { + { + s.Count = float64(0) + } + } +} + +// SetFake set fake values. +func (s *CloneNodePluginRequestRequest) SetFake() { + { + { + s.CloneFromUuid = uuid.New() + } + } +} + +// SetFake set fake values. +func (s *Condition) SetFake() { + { + { + s.HeaderName = "string" + } + } + { + { + s.Operator.SetFake() + } + } + { + { + s.Value = "string" + } + } + { + { + s.CaseSensitive = true + } + } +} + +// SetFake set fake values. +func (s *ConditionOperator) SetFake() { + *s = ConditionOperatorEQUALS +} + +// SetFake set fake values. +func (s *Config) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.ViewPosition = int(0) + } + } + { + { + s.Name = "string" + } + } + { + { + s.Config = []byte("null") + } + } +} + +// SetFake set fake values. +func (s *ConfigProfile) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.ViewPosition = int(0) + } + } + { + { + s.Name = "string" + } + } + { + { + s.Config = []byte("null") + } + } + { + { + s.Inbounds = nil + for i := 0; i < 0; i++ { + var elem Inbound + { + elem.SetFake() + } + s.Inbounds = append(s.Inbounds, elem) + } + } + } + { + { + s.Nodes = nil + for i := 0; i < 0; i++ { + var elem Node + { + elem.SetFake() + } + s.Nodes = append(s.Nodes, elem) + } + } + } + { + { + s.CreatedAt = time.Now() + } + } + { + { + s.UpdatedAt = time.Now() + } + } +} + +// SetFake set fake values. +func (s *ConfigProfileItem) SetFake() { + { + { + s.ActiveConfigProfileUuid.SetFake() + } + } + { + { + s.ActiveInbounds = nil + for i := 0; i < 0; i++ { + var elem Inbound + { + elem.SetFake() + } + s.ActiveInbounds = append(s.ActiveInbounds, elem) + } + } + } +} + +// SetFake set fake values. +func (s *ConfigProfileRef) SetFake() { + { + { + s.ActiveConfigProfileUuid = uuid.New() + } + } + { + { + s.ActiveInbounds = nil + for i := 0; i < 0; i++ { + var elem uuid.UUID + { + elem = uuid.New() + } + s.ActiveInbounds = append(s.ActiveInbounds, elem) + } + } + } +} + +// SetFake set fake values. +func (s *ConfigProfileResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *ConfigProfilesResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *ConfigProfilesResponseResponse) SetFake() { + { + { + s.Total = float64(0) + } + } + { + { + s.ConfigProfiles = nil + for i := 0; i < 0; i++ { + var elem ConfigProfile + { + elem.SetFake() + } + s.ConfigProfiles = append(s.ConfigProfiles, elem) + } + } + } +} + +// SetFake set fake values. +func (s *CreateApiTokenRequest) SetFake() { + { + { + s.TokenName = "string" + } + } +} + +// SetFake set fake values. +func (s *CreateApiTokenResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *CreateApiTokenResponseResponse) SetFake() { + { + { + s.Token = "string" + } + } + { + { + s.UUID = "string" + } + } +} + +// SetFake set fake values. +func (s *CreateConfigProfileRequest) SetFake() { + { + { + s.Name = "string" + } + } + { + { + s.Config.SetFake() + } + } +} + +// SetFake set fake values. +func (s *CreateConfigProfileRequestConfig) SetFake() { +} + +// SetFake set fake values. +func (s *CreateExternalSquadRequest) SetFake() { + { + { + s.Name = "string" + } + } +} + +// SetFake set fake values. +func (s *CreateHostRequest) SetFake() { + { + { + s.Inbound.SetFake() + } + } + { + { + s.Remark = "string" + } + } + { + { + s.Address = "string" + } + } + { + { + s.Port = int(0) + } + } + { + { + s.Path.SetFake() + } + } + { + { + s.Sni.SetFake() + } + } + { + { + s.Host.SetFake() + } + } + { + { + s.Alpn.SetFake() + } + } + { + { + s.Fingerprint.SetFake() + } + } + { + { + s.IsDisabled.SetFake() + } + } + { + { + s.SecurityLayer.SetFake() + } + } + { + { + s.XHttpExtraParams = []byte("null") + } + } + { + { + s.MuxParams = []byte("null") + } + } + { + { + s.SockoptParams = []byte("null") + } + } + { + { + s.FinalMask = []byte("null") + } + } + { + { + s.ServerDescription.SetFake() + } + } + { + { + s.Tag.SetFake() + } + } + { + { + s.IsHidden.SetFake() + } + } + { + { + s.OverrideSniFromAddress.SetFake() + } + } + { + { + s.KeepSniBlank.SetFake() + } + } + { + { + s.AllowInsecure.SetFake() + } + } + { + { + s.VlessRouteId.SetFake() + } + } + { + { + s.ShuffleHost.SetFake() + } + } + { + { + s.MihomoX25519.SetFake() + } + } + { + { + s.Nodes = nil + for i := 0; i < 0; i++ { + var elem uuid.UUID + { + elem = uuid.New() + } + s.Nodes = append(s.Nodes, elem) + } + } + } + { + { + s.XrayJsonTemplateUuid.SetFake() + } + } + { + { + s.ExcludedInternalSquads = nil + for i := 0; i < 0; i++ { + var elem uuid.UUID + { + elem = uuid.New() + } + s.ExcludedInternalSquads = append(s.ExcludedInternalSquads, elem) + } + } + } + { + { + s.ExcludeFromSubscriptionTypes = nil + for i := 0; i < 0; i++ { + var elem CreateHostRequestExcludeFromSubscriptionTypesItem + { + elem.SetFake() + } + s.ExcludeFromSubscriptionTypes = append(s.ExcludeFromSubscriptionTypes, elem) + } + } + } +} + +// SetFake set fake values. +func (s *CreateHostRequestAlpn) SetFake() { + *s = CreateHostRequestAlpnH3 +} + +// SetFake set fake values. +func (s *CreateHostRequestExcludeFromSubscriptionTypesItem) SetFake() { + *s = CreateHostRequestExcludeFromSubscriptionTypesItemXRAYJSON +} + +// SetFake set fake values. +func (s *CreateHostRequestFingerprint) SetFake() { + *s = CreateHostRequestFingerprintChrome +} + +// SetFake set fake values. +func (s *CreateHostRequestSecurityLayer) SetFake() { + *s = CreateHostRequestSecurityLayerDEFAULT +} + +// SetFake set fake values. +func (s *CreateInfraBillingHistoryRecordRequest) SetFake() { + { + { + s.ProviderUuid = uuid.New() + } + } + { + { + s.Amount = float64(0) + } + } + { + { + s.BilledAt = time.Now() + } + } +} + +// SetFake set fake values. +func (s *CreateInfraBillingNodeRequest) SetFake() { + { + { + s.ProviderUuid = uuid.New() + } + } + { + { + s.NodeUuid = uuid.New() + } + } + { + { + s.NextBillingAt.SetFake() + } + } +} + +// SetFake set fake values. +func (s *CreateInfraProviderRequest) SetFake() { + { + { + s.Name = "string" + } + } + { + { + s.FaviconLink.SetFake() + } + } + { + { + s.LoginUrl.SetFake() + } + } +} + +// SetFake set fake values. +func (s *CreateInternalSquadRequest) SetFake() { + { + { + s.Name = "string" + } + } + { + { + s.Inbounds = nil + for i := 0; i < 0; i++ { + var elem uuid.UUID + { + elem = uuid.New() + } + s.Inbounds = append(s.Inbounds, elem) + } + } + } +} + +// SetFake set fake values. +func (s *CreateNodePluginRequest) SetFake() { + { + { + s.Name = "string" + } + } +} + +// SetFake set fake values. +func (s *CreateNodePluginResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *CreateNodeRequest) SetFake() { + { + { + s.Name = "string" + } + } + { + { + s.Address = "string" + } + } + { + { + s.Port.SetFake() + } + } + { + { + s.IsTrafficTrackingActive.SetFake() + } + } + { + { + s.TrafficLimitBytes.SetFake() + } + } + { + { + s.NotifyPercent.SetFake() + } + } + { + { + s.TrafficResetDay.SetFake() + } + } + { + { + s.CountryCode.SetFake() + } + } + { + { + s.ConsumptionMultiplier.SetFake() + } + } + { + { + s.ConfigProfile.SetFake() + } + } + { + { + s.ProviderUuid.SetFake() + } + } + { + { + s.Tags = nil + for i := 0; i < 0; i++ { + var elem string + { + elem = "string" + } + s.Tags = append(s.Tags, elem) + } + } + } + { + { + s.ActivePluginUuid.SetFake() + } + } +} + +// SetFake set fake values. +func (s *CreateSubscriptionPageConfigRequest) SetFake() { + { + { + s.Name = "string" + } + } +} + +// SetFake set fake values. +func (s *CreateSubscriptionPageConfigResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *CreateSubscriptionTemplateRequest) SetFake() { + { + { + s.Name = "string" + } + } + { + { + s.TemplateType.SetFake() + } + } +} + +// SetFake set fake values. +func (s *CreateSubscriptionTemplateRequestTemplateType) SetFake() { + *s = CreateSubscriptionTemplateRequestTemplateTypeXRAYJSON +} + +// SetFake set fake values. +func (s *CreateUserHwidDeviceRequest) SetFake() { + { + { + s.Hwid = "string" + } + } + { + { + s.UserUuid = uuid.New() + } + } + { + { + s.Platform.SetFake() + } + } + { + { + s.OsVersion.SetFake() + } + } + { + { + s.DeviceModel.SetFake() + } + } + { + { + s.UserAgent.SetFake() + } + } +} + +// SetFake set fake values. +func (s *CreateUserRequest) SetFake() { + { + { + s.Username = "string" + } + } + { + { + s.Status.SetFake() + } + } + { + { + s.ShortUuid.SetFake() + } + } + { + { + s.TrojanPassword.SetFake() + } + } + { + { + s.VlessUuid.SetFake() + } + } + { + { + s.SsPassword.SetFake() + } + } + { + { + s.TrafficLimitBytes.SetFake() + } + } + { + { + s.TrafficLimitStrategy.SetFake() + } + } + { + { + s.ExpireAt = time.Now() + } + } + { + { + s.CreatedAt.SetFake() + } + } + { + { + s.LastTrafficResetAt.SetFake() + } + } + { + { + s.Description.SetFake() + } + } + { + { + s.Tag.SetFake() + } + } + { + { + s.TelegramId.SetFake() + } + } + { + { + s.Email.SetFake() + } + } + { + { + s.HwidDeviceLimit.SetFake() + } + } + { + { + s.ActiveInternalSquads = nil + for i := 0; i < 0; i++ { + var elem uuid.UUID + { + elem = uuid.New() + } + s.ActiveInternalSquads = append(s.ActiveInternalSquads, elem) + } + } + } + { + { + s.UUID.SetFake() + } + } + { + { + s.ExternalSquadUuid.SetFake() + } + } +} + +// SetFake set fake values. +func (s *CreateUserRequestStatus) SetFake() { + *s = CreateUserRequestStatusACTIVE +} + +// SetFake set fake values. +func (s *CreateUserRequestTrafficLimitStrategy) SetFake() { + *s = CreateUserRequestTrafficLimitStrategyNORESET +} + +// SetFake set fake values. +func (s *CustomRemark) SetFake() { + { + { + s.ExpiredUsers = nil + for i := 0; i < 1; i++ { + var elem string + { + elem = "string" + } + s.ExpiredUsers = append(s.ExpiredUsers, elem) + } + } + } + { + { + s.LimitedUsers = nil + for i := 0; i < 1; i++ { + var elem string + { + elem = "string" + } + s.LimitedUsers = append(s.LimitedUsers, elem) + } + } + } + { + { + s.DisabledUsers = nil + for i := 0; i < 1; i++ { + var elem string + { + elem = "string" + } + s.DisabledUsers = append(s.DisabledUsers, elem) + } + } + } + { + { + s.EmptyHosts = nil + for i := 0; i < 1; i++ { + var elem string + { + elem = "string" + } + s.EmptyHosts = append(s.EmptyHosts, elem) + } + } + } + { + { + s.HWIDMaxDevicesExceeded = nil + for i := 0; i < 1; i++ { + var elem string + { + elem = "string" + } + s.HWIDMaxDevicesExceeded = append(s.HWIDMaxDevicesExceeded, elem) + } + } + } + { + { + s.HWIDNotSupported = nil + for i := 0; i < 1; i++ { + var elem string + { + elem = "string" + } + s.HWIDNotSupported = append(s.HWIDNotSupported, elem) + } + } + } +} + +// SetFake set fake values. +func (s *DebugSrrMatcherRequest) SetFake() { + { + { + s.ResponseRules.SetFake() + } + } +} + +// SetFake set fake values. +func (s *DebugSrrMatcherResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *DebugSrrMatcherResponseResponse) SetFake() { + { + { + s.Matched = true + } + } + { + { + s.ResponseType.SetFake() + } + } + { + { + s.MatchedRule.SetFake() + } + } + { + { + s.InputHeaders.SetFake() + } + } + { + { + s.OutputHeaders.SetFake() + } + } +} + +// SetFake set fake values. +func (s *DebugSrrMatcherResponseResponseInputHeaders) SetFake() { + var ( + elem string + m map[string]string = s.init() + ) + for i := 0; i < 0; i++ { + m[fmt.Sprintf("fake%d", i)] = elem + } +} + +// SetFake set fake values. +func (s *DebugSrrMatcherResponseResponseOutputHeaders) SetFake() { + var ( + elem string + m map[string]string = s.init() + ) + for i := 0; i < 0; i++ { + m[fmt.Sprintf("fake%d", i)] = elem + } +} + +// SetFake set fake values. +func (s *DebugSrrMatcherResponseResponseResponseType) SetFake() { + *s = DebugSrrMatcherResponseResponseResponseTypeXRAYJSON +} + +// SetFake set fake values. +func (s *DebugSrrMatcherSettings) SetFake() { + { + { + s.DisableSubscriptionAccessByPath.SetFake() + } + } +} + +// SetFake set fake values. +func (s *DeleteAllUserHwidDevicesRequest) SetFake() { + { + { + s.UserUuid = uuid.New() + } + } +} + +// SetFake set fake values. +func (s *DeleteApiTokenResponse) SetFake() { + { + { + s.Response = true + } + } +} + +// SetFake set fake values. +func (s *DeletePasskeyRequest) SetFake() { + { + { + s.ID = "string" + } + } +} + +// SetFake set fake values. +func (s *DeleteResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *DeleteResponseResponse) SetFake() { + { + { + s.IsDeleted = true + } + } +} + +// SetFake set fake values. +func (s *DeleteSnippetRequest) SetFake() { + { + { + s.Name = "string" + } + } +} + +// SetFake set fake values. +func (s *DeleteUserHwidDeviceRequest) SetFake() { + { + { + s.UserUuid = uuid.New() + } + } + { + { + s.Hwid = "string" + } + } +} + +// SetFake set fake values. +func (s *Device) SetFake() { + { + { + s.Hwid = "string" + } + } + { + { + s.UserUuid = uuid.New() + } + } + { + { + s.Platform.SetFake() + } + } + { + { + s.OsVersion.SetFake() + } + } + { + { + s.DeviceModel.SetFake() + } + } + { + { + s.UserAgent.SetFake() + } + } + { + { + s.CreatedAt = time.Now() + } + } + { + { + s.UpdatedAt = time.Now() + } + } +} + +// SetFake set fake values. +func (s *DropConnectionsRequest) SetFake() { + { + { + s.DropBy.SetFake() + } + } + { + { + s.TargetNodes.SetFake() + } + } +} + +// SetFake set fake values. +func (s *DropConnectionsRequestDropBy) SetFake() { + var variant DropConnectionsRequestDropBy0 + + { + variant.SetFake() + } + s.SetDropConnectionsRequestDropBy0(variant) +} + +// SetFake set fake values. +func (s *DropConnectionsRequestDropBy0) SetFake() { + { + { + s.By.SetFake() + } + } + { + { + s.UserUuids = nil + for i := 0; i < 1; i++ { + var elem uuid.UUID + { + elem = uuid.New() + } + s.UserUuids = append(s.UserUuids, elem) + } + } + } +} + +// SetFake set fake values. +func (s *DropConnectionsRequestDropBy0By) SetFake() { + *s = DropConnectionsRequestDropBy0ByUserUuids +} + +// SetFake set fake values. +func (s *DropConnectionsRequestDropBy1) SetFake() { + { + { + s.By.SetFake() + } + } + { + { + s.IpAddresses = nil + for i := 0; i < 1; i++ { + var elem string + { + elem = "string" + } + s.IpAddresses = append(s.IpAddresses, elem) + } + } + } +} + +// SetFake set fake values. +func (s *DropConnectionsRequestDropBy1By) SetFake() { + *s = DropConnectionsRequestDropBy1ByIpAddresses +} + +// SetFake set fake values. +func (s *DropConnectionsRequestTargetNodes) SetFake() { + var variant DropConnectionsRequestTargetNodes0 + + { + variant.SetFake() + } + s.SetDropConnectionsRequestTargetNodes0(variant) +} + +// SetFake set fake values. +func (s *DropConnectionsRequestTargetNodes0) SetFake() { + { + { + s.Target.SetFake() + } + } +} + +// SetFake set fake values. +func (s *DropConnectionsRequestTargetNodes0Target) SetFake() { + *s = DropConnectionsRequestTargetNodes0TargetAllNodes +} + +// SetFake set fake values. +func (s *DropConnectionsRequestTargetNodes1) SetFake() { + { + { + s.Target.SetFake() + } + } + { + { + s.NodeUuids = nil + for i := 0; i < 1; i++ { + var elem uuid.UUID + { + elem = uuid.New() + } + s.NodeUuids = append(s.NodeUuids, elem) + } + } + } +} + +// SetFake set fake values. +func (s *DropConnectionsRequestTargetNodes1Target) SetFake() { + *s = DropConnectionsRequestTargetNodes1TargetSpecificNodes +} + +// SetFake set fake values. +func (s *EncryptHappCryptoLinkRequest) SetFake() { + { + { + s.LinkToEncrypt = url.URL{Scheme: "https", Host: "github.com", Path: "/ogen-go/ogen"} + } + } +} + +// SetFake set fake values. +func (s *EncryptHappCryptoLinkResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *EncryptHappCryptoLinkResponseResponse) SetFake() { + { + { + s.EncryptedLink = "string" + } + } +} + +// SetFake set fake values. +func (s *EventResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *EventResponseResponse) SetFake() { + { + { + s.EventSent = true + } + } +} + +// SetFake set fake values. +func (s *ExternalSquad) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.ViewPosition = int(0) + } + } + { + { + s.Name = "string" + } + } + { + { + s.Info.SetFake() + } + } + { + { + s.Templates = nil + for i := 0; i < 0; i++ { + var elem TemplateRef + { + elem.SetFake() + } + s.Templates = append(s.Templates, elem) + } + } + } + { + { + s.SubscriptionSettings.SetFake() + } + } + { + { + s.HostOverrides.SetFake() + } + } + { + { + s.ResponseHeaders.SetFake() + } + } + { + { + s.HwidSettings.SetFake() + } + } + { + { + s.CustomRemarks.SetFake() + } + } + { + { + s.SubpageConfigUuid.SetFake() + } + } + { + { + s.CreatedAt = time.Now() + } + } + { + { + s.UpdatedAt = time.Now() + } + } +} + +// SetFake set fake values. +func (s *ExternalSquadResponseHeaders) SetFake() { + var ( + elem string + m map[string]string = s.init() + ) + for i := 0; i < 0; i++ { + m[fmt.Sprintf("fake%d", i)] = elem + } +} + +// SetFake set fake values. +func (s *ExternalSquadResponseResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *ExternalSquadsResponInfoItem) SetFake() { + { + { + s.MembersCount = float64(0) + } + } +} + +// SetFake set fake values. +func (s *ExternalSquadsResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *ExternalSquadsResponseResponse) SetFake() { + { + { + s.Total = float64(0) + } + } + { + { + s.ExternalSquads = nil + for i := 0; i < 0; i++ { + var elem ExternalSquad + { + elem.SetFake() + } + s.ExternalSquads = append(s.ExternalSquads, elem) + } + } + } +} + +// SetFake set fake values. +func (s *FetchIpsResultResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *FetchIpsResultResponseResponse) SetFake() { + { + { + s.IsCompleted = true + } + } + { + { + s.IsFailed = true + } + } + { + { + s.Progress.SetFake() + } + } + { + { + s.Result.SetFake() + } + } +} + +// SetFake set fake values. +func (s *FetchIpsResultResponseResponseProgress) SetFake() { + { + { + s.Total = float64(0) + } + } + { + { + s.Completed = float64(0) + } + } + { + { + s.Percent = float64(0) + } + } +} + +// SetFake set fake values. +func (s *FetchIpsResultResponseResponseResult) SetFake() { + { + { + s.Success = true + } + } + { + { + s.UserUuid = uuid.New() + } + } + { + { + s.UserId = "string" + } + } + { + { + s.Nodes = nil + for i := 0; i < 0; i++ { + var elem FetchIpsResultResponseResponseResultNodesItem + { + elem.SetFake() + } + s.Nodes = append(s.Nodes, elem) + } + } + } +} + +// SetFake set fake values. +func (s *FetchIpsResultResponseResponseResultNodesItem) SetFake() { + { + { + s.NodeUuid = uuid.New() + } + } + { + { + s.NodeName = "string" + } + } + { + { + s.CountryCode = "string" + } + } + { + { + s.Ips = nil + for i := 0; i < 0; i++ { + var elem Ips + { + elem.SetFake() + } + s.Ips = append(s.Ips, elem) + } + } + } +} + +// SetFake set fake values. +func (s *FetchUsersIpsResultResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *FetchUsersIpsResultResponseResponse) SetFake() { + { + { + s.IsCompleted = true + } + } + { + { + s.IsFailed = true + } + } + { + { + s.Result.SetFake() + } + } +} + +// SetFake set fake values. +func (s *FetchUsersIpsResultResponseResponseResult) SetFake() { + { + { + s.Success = true + } + } + { + { + s.NodeUuid = uuid.New() + } + } + { + { + s.Users = nil + for i := 0; i < 0; i++ { + var elem FetchUsersIpsResultResponseResponseResultUsersItem + { + elem.SetFake() + } + s.Users = append(s.Users, elem) + } + } + } +} + +// SetFake set fake values. +func (s *FetchUsersIpsResultResponseResponseResultUsersItem) SetFake() { + { + { + s.UserId = "string" + } + } + { + { + s.Ips = nil + for i := 0; i < 0; i++ { + var elem Ips + { + elem.SetFake() + } + s.Ips = append(s.Ips, elem) + } + } + } +} + +// SetFake set fake values. +func (s *FindAllApiTokensResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *FindAllApiTokensResponseResponse) SetFake() { + { + { + s.ApiKeys = nil + for i := 0; i < 0; i++ { + var elem FindAllApiTokensResponseResponseApiKeysItem + { + elem.SetFake() + } + s.ApiKeys = append(s.ApiKeys, elem) + } + } + } + { + { + s.Docs.SetFake() + } + } +} + +// SetFake set fake values. +func (s *FindAllApiTokensResponseResponseApiKeysItem) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.Token = "string" + } + } + { + { + s.TokenName = "string" + } + } + { + { + s.CreatedAt = time.Now() + } + } + { + { + s.UpdatedAt = time.Now() + } + } +} + +// SetFake set fake values. +func (s *FindAllApiTokensResponseResponseDocs) SetFake() { + { + { + s.IsDocsEnabled = true + } + } + { + { + s.ScalarPath.SetFake() + } + } + { + { + s.SwaggerPath.SetFake() + } + } +} + +// SetFake set fake values. +func (s *ForbiddenError) SetFake() { + { + { + s.Message = "string" + } + } + { + { + s.StatusCode = float64(0) + } + } +} + +// SetFake set fake values. +func (s *GenerateX25519Response) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GenerateX25519ResponseResponse) SetFake() { + { + { + s.Keypairs = nil + for i := 0; i < 0; i++ { + var elem GenerateX25519ResponseResponseKeypairsItem + { + elem.SetFake() + } + s.Keypairs = append(s.Keypairs, elem) + } + } + } +} + +// SetFake set fake values. +func (s *GenerateX25519ResponseResponseKeypairsItem) SetFake() { + { + { + s.PublicKey = "string" + } + } + { + { + s.PrivateKey = "string" + } + } +} + +// SetFake set fake values. +func (s *Generic) SetFake() { + { + { + s.Enabled = true + } + } + { + { + s.ClientId.SetFake() + } + } + { + { + s.ClientSecret.SetFake() + } + } + { + { + s.WithPkce = true + } + } + { + { + s.AuthorizationUrl.SetFake() + } + } + { + { + s.TokenUrl.SetFake() + } + } + { + { + s.FrontendDomain.SetFake() + } + } + { + { + s.AllowedEmails = nil + for i := 0; i < 0; i++ { + var elem string + { + elem = "string" + } + s.AllowedEmails = append(s.AllowedEmails, elem) + } + } + } +} + +// SetFake set fake values. +func (s *GetAllHwidDevicesResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetAllSubscriptionsResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetAllSubscriptionsResponseResponse) SetFake() { + { + { + s.Subscriptions = nil + for i := 0; i < 0; i++ { + var elem Subscription + { + elem.SetFake() + } + s.Subscriptions = append(s.Subscriptions, elem) + } + } + } + { + { + s.Total = float64(0) + } + } +} + +// SetFake set fake values. +func (s *GetAllUsersResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetAllUsersResponseResponse) SetFake() { + { + { + s.Users = nil + for i := 0; i < 0; i++ { + var elem UserItemInfo + { + elem.SetFake() + } + s.Users = append(s.Users, elem) + } + } + } + { + { + s.Total = float64(0) + } + } +} + +// SetFake set fake values. +func (s *GetBandwidthStatsResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetBandwidthStatsResponseResponse) SetFake() { + { + { + s.BandwidthLastTwoDays.SetFake() + } + } + { + { + s.BandwidthLastSevenDays.SetFake() + } + } + { + { + s.BandwidthLast30Days.SetFake() + } + } + { + { + s.BandwidthCalendarMonth.SetFake() + } + } + { + { + s.BandwidthCurrentYear.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetConnectionKeysByUuidResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetConnectionKeysByUuidResponseResponse) SetFake() { + { + { + s.EnabledKeys = nil + for i := 0; i < 0; i++ { + var elem string + { + elem = "string" + } + s.EnabledKeys = append(s.EnabledKeys, elem) + } + } + } + { + { + s.HiddenKeys = nil + for i := 0; i < 0; i++ { + var elem string + { + elem = "string" + } + s.HiddenKeys = append(s.HiddenKeys, elem) + } + } + } + { + { + s.DisabledKeys = nil + for i := 0; i < 0; i++ { + var elem string + { + elem = "string" + } + s.DisabledKeys = append(s.DisabledKeys, elem) + } + } + } +} + +// SetFake set fake values. +func (s *GetHwidDevicesStatsResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetHwidDevicesStatsResponseResponse) SetFake() { + { + { + s.ByPlatform = nil + for i := 0; i < 0; i++ { + var elem GetHwidDevicesStatsResponseResponseByPlatformItem + { + elem.SetFake() + } + s.ByPlatform = append(s.ByPlatform, elem) + } + } + } + { + { + s.ByApp = nil + for i := 0; i < 0; i++ { + var elem ByAppItem + { + elem.SetFake() + } + s.ByApp = append(s.ByApp, elem) + } + } + } + { + { + s.Stats.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetHwidDevicesStatsResponseResponseByPlatformItem) SetFake() { + { + { + s.Platform = "string" + } + } + { + { + s.Count = float64(0) + } + } +} + +// SetFake set fake values. +func (s *GetHwidDevicesStatsResponseResponseStats) SetFake() { + { + { + s.TotalUniqueDevices = float64(0) + } + } + { + { + s.TotalHwidDevices = float64(0) + } + } + { + { + s.AverageHwidDevicesPerUser = float64(0) + } + } +} + +// SetFake set fake values. +func (s *GetInfraProvidersResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetInfraProvidersResponseResponse) SetFake() { + { + { + s.Total = float64(0) + } + } + { + { + s.Providers = nil + for i := 0; i < 0; i++ { + var elem Provider + { + elem.SetFake() + } + s.Providers = append(s.Providers, elem) + } + } + } +} + +// SetFake set fake values. +func (s *GetInternalSquadAccessibleNodesResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetInternalSquadAccessibleNodesResponseResponse) SetFake() { + { + { + s.SquadUuid = uuid.New() + } + } + { + { + s.AccessibleNodes = nil + for i := 0; i < 0; i++ { + var elem GetInternalSquadAccessibleNodesResponseResponseAccessibleNodesItem + { + elem.SetFake() + } + s.AccessibleNodes = append(s.AccessibleNodes, elem) + } + } + } +} + +// SetFake set fake values. +func (s *GetInternalSquadAccessibleNodesResponseResponseAccessibleNodesItem) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.NodeName = "string" + } + } + { + { + s.CountryCode = "string" + } + } + { + { + s.ConfigProfileUuid = uuid.New() + } + } + { + { + s.ConfigProfileName = "string" + } + } + { + { + s.ActiveInbounds = nil + for i := 0; i < 0; i++ { + var elem string + { + elem = "string" + } + s.ActiveInbounds = append(s.ActiveInbounds, elem) + } + } + } +} + +// SetFake set fake values. +func (s *GetLegacyStatsNodesUsersUsageResponse) SetFake() { + { + { + s.Response = nil + for i := 0; i < 0; i++ { + var elem GetLegacyStatsNodesUsersUsageResponseResponseItem + { + elem.SetFake() + } + s.Response = append(s.Response, elem) + } + } + } +} + +// SetFake set fake values. +func (s *GetLegacyStatsNodesUsersUsageResponseResponseItem) SetFake() { + { + { + s.UserUuid = uuid.New() + } + } + { + { + s.Username = "string" + } + } + { + { + s.NodeUuid = uuid.New() + } + } + { + { + s.Total = float64(0) + } + } + { + { + s.Date = "string" + } + } +} + +// SetFake set fake values. +func (s *GetLegacyStatsUserUsageResponse) SetFake() { + { + { + s.Response = nil + for i := 0; i < 0; i++ { + var elem GetLegacyStatsUserUsageResponseResponseItem + { + elem.SetFake() + } + s.Response = append(s.Response, elem) + } + } + } +} + +// SetFake set fake values. +func (s *GetLegacyStatsUserUsageResponseResponseItem) SetFake() { + { + { + s.UserUuid = uuid.New() + } + } + { + { + s.NodeUuid = uuid.New() + } + } + { + { + s.NodeName = "string" + } + } + { + { + s.CountryCode = "string" + } + } + { + { + s.Total = float64(0) + } + } + { + { + s.Date = "string" + } + } +} + +// SetFake set fake values. +func (s *GetMetadataResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetMetadataResponseResponse) SetFake() { + { + { + s.Version = "string" + } + } + { + { + s.Build.SetFake() + } + } + { + { + s.Git.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetMetadataResponseResponseBuild) SetFake() { + { + { + s.Time = "string" + } + } + { + { + s.Number = "string" + } + } +} + +// SetFake set fake values. +func (s *GetMetadataResponseResponseGit) SetFake() { + { + { + s.Backend.SetFake() + } + } + { + { + s.Frontend.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetMetadataResponseResponseGitBackend) SetFake() { + { + { + s.CommitSha = "string" + } + } + { + { + s.Branch = "string" + } + } + { + { + s.CommitUrl = "string" + } + } +} + +// SetFake set fake values. +func (s *GetMetadataResponseResponseGitFrontend) SetFake() { + { + { + s.CommitSha = "string" + } + } + { + { + s.CommitUrl = "string" + } + } +} + +// SetFake set fake values. +func (s *GetNodesMetricsResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetNodesMetricsResponseResponse) SetFake() { + { + { + s.Nodes = nil + for i := 0; i < 0; i++ { + var elem GetNodesMetricsResponseResponseNodesItem + { + elem.SetFake() + } + s.Nodes = append(s.Nodes, elem) + } + } + } +} + +// SetFake set fake values. +func (s *GetNodesMetricsResponseResponseNodesItem) SetFake() { + { + { + s.NodeUuid = "string" + } + } + { + { + s.NodeName = "string" + } + } + { + { + s.CountryEmoji = "string" + } + } + { + { + s.ProviderName = "string" + } + } + { + { + s.UsersOnline = float64(0) + } + } + { + { + s.InboundsStats = nil + for i := 0; i < 0; i++ { + var elem InboundsStat + { + elem.SetFake() + } + s.InboundsStats = append(s.InboundsStats, elem) + } + } + } + { + { + s.OutboundsStats = nil + for i := 0; i < 0; i++ { + var elem InboundsStat + { + elem.SetFake() + } + s.OutboundsStats = append(s.OutboundsStats, elem) + } + } + } +} + +// SetFake set fake values. +func (s *GetNodesStatisticsResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetNodesStatisticsResponseResponse) SetFake() { + { + { + s.LastSevenDays = nil + for i := 0; i < 0; i++ { + var elem GetNodesStatisticsResponseResponseLastSevenDaysItem + { + elem.SetFake() + } + s.LastSevenDays = append(s.LastSevenDays, elem) + } + } + } +} + +// SetFake set fake values. +func (s *GetNodesStatisticsResponseResponseLastSevenDaysItem) SetFake() { + { + { + s.NodeName = "string" + } + } + { + { + s.Date = "string" + } + } + { + { + s.TotalBytes = "string" + } + } +} + +// SetFake set fake values. +func (s *GetPubKeyResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetPubKeyResponseResponse) SetFake() { + { + { + s.PubKey = "string" + } + } +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponse) SetFake() { + { + { + s.User.SetFake() + } + } + { + { + s.ConvertedUserInfo.SetFake() + } + } + { + { + s.Headers.SetFake() + } + } + { + { + s.ResolvedProxyConfigs = nil + for i := 0; i < 0; i++ { + var elem GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem + { + elem.SetFake() + } + s.ResolvedProxyConfigs = append(s.ResolvedProxyConfigs, elem) + } + } + } +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseConvertedUserInfo) SetFake() { + { + { + s.DaysLeft = float64(0) + } + } + { + { + s.TrafficLimit = "string" + } + } + { + { + s.TrafficUsed = "string" + } + } + { + { + s.LifetimeTrafficUsed = "string" + } + } + { + { + s.IsHwidLimited = true + } + } +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseHeaders) SetFake() { + var ( + elem string + m map[string]string = s.init() + ) + for i := 0; i < 0; i++ { + m[fmt.Sprintf("fake%d", i)] = elem + } +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem) SetFake() { + { + { + s.FinalRemark = "string" + } + } + { + { + s.Address = "string" + } + } + { + { + s.Port = int(0) + } + } + { + { + s.Protocol.SetFake() + } + } + { + { + s.ProtocolOptions.SetFake() + } + } + { + { + s.Transport.SetFake() + } + } + { + { + s.TransportOptions.SetFake() + } + } + { + { + s.Security.SetFake() + } + } + { + { + s.SecurityOptions.SetFake() + } + } + { + { + s.StreamOverrides.SetFake() + } + } + { + { + s.Mux = []byte("null") + } + } + { + { + s.ClientOverrides.SetFake() + } + } + { + { + s.Metadata.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemClientOverrides) SetFake() { + { + { + s.ShuffleHost = true + } + } + { + { + s.MihomoX25519 = true + } + } + { + { + s.ServerDescription.SetFake() + } + } + { + { + s.XrayJsonTemplate = []byte("null") + } + } +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.Tag.SetFake() + } + } + { + { + s.ExcludeFromSubscriptionTypes = nil + for i := 0; i < 0; i++ { + var elem GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItem + { + elem.SetFake() + } + s.ExcludeFromSubscriptionTypes = append(s.ExcludeFromSubscriptionTypes, elem) + } + } + } + { + { + s.InboundTag = "string" + } + } + { + { + s.ConfigProfileUuid.SetFake() + } + } + { + { + s.ConfigProfileInboundUuid.SetFake() + } + } + { + { + s.IsDisabled = true + } + } + { + { + s.IsHidden = true + } + } + { + { + s.ViewPosition = int(0) + } + } + { + { + s.Remark = "string" + } + } + { + { + s.VlessRouteId.SetFake() + } + } + { + { + s.RawInbound = []byte("null") + } + } +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItem) SetFake() { + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemXRAYJSON +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocol) SetFake() { + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolVless +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions) SetFake() { + var variant GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0 + + { + variant.SetFake() + } + s.SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0(variant) +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0) SetFake() { + { + { + s.Encryption = "string" + } + } + { + { + s.ID = "string" + } + } + { + { + s.Flow.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0Flow) SetFake() { + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0FlowEmpty +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1) SetFake() { + { + { + s.Password = "string" + } + } +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2) SetFake() { + { + { + s.Method = "string" + } + } + { + { + s.Password = "string" + } + } + { + { + s.Uot = true + } + } + { + { + s.UotVersion = int(0) + } + } +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3) SetFake() { + { + { + s.Version = int(0) + } + } +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurity) SetFake() { + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityTLS +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions) SetFake() { + var variant GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0 + + { + variant.SetFake() + } + s.SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0(variant) +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0) SetFake() { + { + { + s.AllowInsecure = true + } + } + { + { + s.Alpn.SetFake() + } + } + { + { + s.EnableSessionResumption = true + } + } + { + { + s.Fingerprint.SetFake() + } + } + { + { + s.ServerName.SetFake() + } + } + { + { + s.EchConfigList.SetFake() + } + } + { + { + s.EchForceQuery.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1) SetFake() { + { + { + s.Fingerprint = "string" + } + } + { + { + s.PublicKey = "string" + } + } + { + { + s.ShortId.SetFake() + } + } + { + { + s.ServerName = "string" + } + } + { + { + s.SpiderX.SetFake() + } + } + { + { + s.Mldsa65Verify.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemStreamOverrides) SetFake() { + { + { + s.FinalMask = []byte("null") + } + } + { + { + s.Sockopt = []byte("null") + } + } +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransport) SetFake() { + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportTCP +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions) SetFake() { + var variant GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0 + + { + variant.SetFake() + } + s.SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0(variant) +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0) SetFake() { + { + { + s.Header.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header) SetFake() { + var variant GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0 + + { + variant.SetFake() + } + s.SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0(variant) +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0) SetFake() { + { + { + s.Type.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0Type) SetFake() { + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0TypeNone +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1) SetFake() { + { + { + s.Type.SetFake() + } + } + { + { + s.Request.SetFake() + } + } + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request) SetFake() { + { + { + s.Version.SetFake() + } + } + { + { + s.Method.SetFake() + } + } + { + { + s.Path = nil + for i := 0; i < 0; i++ { + var elem string + { + elem = "string" + } + s.Path = append(s.Path, elem) + } + } + } + { + { + s.Headers.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders) SetFake() { + var ( + elem jx.Raw + m map[string]jx.Raw = s.init() + ) + for i := 0; i < 0; i++ { + m[fmt.Sprintf("fake%d", i)] = elem + } +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response) SetFake() { + { + { + s.Version.SetFake() + } + } + { + { + s.Status.SetFake() + } + } + { + { + s.Reason.SetFake() + } + } + { + { + s.Headers.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders) SetFake() { + var ( + elem jx.Raw + m map[string]jx.Raw = s.init() + ) + for i := 0; i < 0; i++ { + m[fmt.Sprintf("fake%d", i)] = elem + } +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Type) SetFake() { + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1TypeHTTP +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1) SetFake() { + { + { + s.Path.SetFake() + } + } + { + { + s.Host.SetFake() + } + } + { + { + s.Mode.SetFake() + } + } + { + { + s.Extra.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra) SetFake() { + var ( + elem jx.Raw + m map[string]jx.Raw = s.init() + ) + for i := 0; i < 0; i++ { + m[fmt.Sprintf("fake%d", i)] = elem + } +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Mode) SetFake() { + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1ModeAuto +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2) SetFake() { + { + { + s.Path.SetFake() + } + } + { + { + s.Host.SetFake() + } + } + { + { + s.Headers.SetFake() + } + } + { + { + s.HeartbeatPeriod.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers) SetFake() { + var ( + elem string + m map[string]string = s.init() + ) + for i := 0; i < 0; i++ { + m[fmt.Sprintf("fake%d", i)] = elem + } +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3) SetFake() { + { + { + s.Path.SetFake() + } + } + { + { + s.Host.SetFake() + } + } + { + { + s.Headers.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers) SetFake() { + var ( + elem string + m map[string]string = s.init() + ) + for i := 0; i < 0; i++ { + m[fmt.Sprintf("fake%d", i)] = elem + } +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4) SetFake() { + { + { + s.Authority.SetFake() + } + } + { + { + s.ServiceName.SetFake() + } + } + { + { + s.MultiMode = true + } + } +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5) SetFake() { + { + { + s.ClientMtu = int(0) + } + } + { + { + s.Tti = int(0) + } + } + { + { + s.Congestion = true + } + } +} + +// SetFake set fake values. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6) SetFake() { + { + { + s.Version = int(0) + } + } + { + { + s.Auth = "string" + } + } +} + +// SetFake set fake values. +func (s *GetRecapResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetRecapResponseResponse) SetFake() { + { + { + s.ThisMonth.SetFake() + } + } + { + { + s.Total.SetFake() + } + } + { + { + s.Version = "string" + } + } + { + { + s.InitDate = time.Now() + } + } +} + +// SetFake set fake values. +func (s *GetRecapResponseResponseThisMonth) SetFake() { + { + { + s.Users = float64(0) + } + } + { + { + s.Traffic = "string" + } + } +} + +// SetFake set fake values. +func (s *GetRecapResponseResponseTotal) SetFake() { + { + { + s.Users = float64(0) + } + } + { + { + s.Nodes = float64(0) + } + } + { + { + s.Traffic = "string" + } + } + { + { + s.NodesRam = "string" + } + } + { + { + s.NodesCpuCores = float64(0) + } + } + { + { + s.DistinctCountries = float64(0) + } + } +} + +// SetFake set fake values. +func (s *GetRemnawaveHealthResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetRemnawaveHealthResponseResponse) SetFake() { + { + { + s.RuntimeMetrics = nil + for i := 0; i < 0; i++ { + var elem GetRemnawaveHealthResponseResponseRuntimeMetricsItem + { + elem.SetFake() + } + s.RuntimeMetrics = append(s.RuntimeMetrics, elem) + } + } + } +} + +// SetFake set fake values. +func (s *GetRemnawaveHealthResponseResponseRuntimeMetricsItem) SetFake() { + { + { + s.Rss = float64(0) + } + } + { + { + s.HeapUsed = float64(0) + } + } + { + { + s.HeapTotal = float64(0) + } + } + { + { + s.External = float64(0) + } + } + { + { + s.ArrayBuffers = float64(0) + } + } + { + { + s.EventLoopDelayMs = float64(0) + } + } + { + { + s.EventLoopP99Ms = float64(0) + } + } + { + { + s.ActiveHandles = float64(0) + } + } + { + { + s.Uptime = float64(0) + } + } + { + { + s.Pid = float64(0) + } + } + { + { + s.Timestamp = float64(0) + } + } + { + { + s.InstanceId = "string" + } + } + { + { + s.InstanceType = "string" + } + } +} + +// SetFake set fake values. +func (s *GetStatsNodeUsersUsageResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetStatsNodeUsersUsageResponseResponse) SetFake() { + { + { + s.Categories = nil + for i := 0; i < 0; i++ { + var elem string + { + elem = "string" + } + s.Categories = append(s.Categories, elem) + } + } + } + { + { + s.SparklineData = nil + for i := 0; i < 0; i++ { + var elem float64 + { + elem = float64(0) + } + s.SparklineData = append(s.SparklineData, elem) + } + } + } + { + { + s.TopUsers = nil + for i := 0; i < 0; i++ { + var elem GetStatsNodeUsersUsageResponseResponseTopUsersItem + { + elem.SetFake() + } + s.TopUsers = append(s.TopUsers, elem) + } + } + } +} + +// SetFake set fake values. +func (s *GetStatsNodeUsersUsageResponseResponseTopUsersItem) SetFake() { + { + { + s.Color = "string" + } + } + { + { + s.Username = "string" + } + } + { + { + s.Total = float64(0) + } + } +} + +// SetFake set fake values. +func (s *GetStatsResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetStatsResponseResponse) SetFake() { + { + { + s.CPU.SetFake() + } + } + { + { + s.Memory.SetFake() + } + } + { + { + s.Uptime = float64(0) + } + } + { + { + s.Timestamp = float64(0) + } + } + { + { + s.Users.SetFake() + } + } + { + { + s.OnlineStats.SetFake() + } + } + { + { + s.Nodes.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetStatsResponseResponseCPU) SetFake() { + { + { + s.Cores = float64(0) + } + } +} + +// SetFake set fake values. +func (s *GetStatsResponseResponseMemory) SetFake() { + { + { + s.Total = float64(0) + } + } + { + { + s.Free = float64(0) + } + } + { + { + s.Used = float64(0) + } + } +} + +// SetFake set fake values. +func (s *GetStatsResponseResponseNodes) SetFake() { + { + { + s.TotalOnline = float64(0) + } + } + { + { + s.TotalBytesLifetime = "string" + } + } +} + +// SetFake set fake values. +func (s *GetStatsResponseResponseOnlineStats) SetFake() { + { + { + s.LastDay = float64(0) + } + } + { + { + s.LastWeek = float64(0) + } + } + { + { + s.NeverOnline = float64(0) + } + } + { + { + s.OnlineNow = float64(0) + } + } +} + +// SetFake set fake values. +func (s *GetStatsResponseResponseUsers) SetFake() { + { + { + s.StatusCounts.SetFake() + } + } + { + { + s.TotalUsers = float64(0) + } + } +} + +// SetFake set fake values. +func (s *GetStatsResponseResponseUsersStatusCounts) SetFake() { + var ( + elem float64 + m map[string]float64 = s.init() + ) + for i := 0; i < 0; i++ { + m[fmt.Sprintf("fake%d", i)] = elem + } +} + +// SetFake set fake values. +func (s *GetStatusResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetStatusResponseResponse) SetFake() { + { + { + s.IsLoginAllowed = true + } + } + { + { + s.IsRegisterAllowed = true + } + } + { + { + s.Authentication.SetFake() + } + } + { + { + s.Branding.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetStatusResponseResponseAuthentication) SetFake() { + { + { + s.Passkey.SetFake() + } + } + { + { + s.OAuth2.SetFake() + } + } + { + { + s.Password.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetStatusResponseResponseAuthenticationOAuth2) SetFake() { + { + { + s.Providers.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetStatusResponseResponseAuthenticationOAuth2Providers) SetFake() { + var ( + elem bool + m map[string]bool = s.init() + ) + for i := 0; i < 0; i++ { + m[fmt.Sprintf("fake%d", i)] = elem + } +} + +// SetFake set fake values. +func (s *GetStatusResponseResponseBranding) SetFake() { + { + { + s.Title.SetFake() + } + } + { + { + s.LogoUrl.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetSubpageConfigByShortUuidRequestBody) SetFake() { + { + { + s.RequestHeaders.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetSubpageConfigByShortUuidRequestBodyRequestHeaders) SetFake() { + var ( + elem string + m map[string]string = s.init() + ) + for i := 0; i < 0; i++ { + m[fmt.Sprintf("fake%d", i)] = elem + } +} + +// SetFake set fake values. +func (s *GetSubpageConfigByShortUuidResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetSubpageConfigByShortUuidResponseResponse) SetFake() { + { + { + s.SubpageConfigUuid.SetFake() + } + } + { + { + s.WebpageAllowed = true + } + } +} + +// SetFake set fake values. +func (s *GetSubscriptionRequestHistoryResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetSubscriptionRequestHistoryStatsResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetSubscriptionRequestHistoryStatsResponseResponse) SetFake() { + { + { + s.ByParsedApp = nil + for i := 0; i < 0; i++ { + var elem ByAppItem + { + elem.SetFake() + } + s.ByParsedApp = append(s.ByParsedApp, elem) + } + } + } + { + { + s.HourlyRequestStats = nil + for i := 0; i < 0; i++ { + var elem GetSubscriptionRequestHistoryStatsResponseResponseHourlyRequestStatsItem + { + elem.SetFake() + } + s.HourlyRequestStats = append(s.HourlyRequestStats, elem) + } + } + } +} + +// SetFake set fake values. +func (s *GetSubscriptionRequestHistoryStatsResponseResponseHourlyRequestStatsItem) SetFake() { + { + { + s.DateTime = time.Now() + } + } + { + { + s.RequestCount = float64(0) + } + } +} + +// SetFake set fake values. +func (s *GetTopUsersByHwidDevicesResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetTopUsersByHwidDevicesResponseResponse) SetFake() { + { + { + s.Users = nil + for i := 0; i < 0; i++ { + var elem GetTopUsersByHwidDevicesResponseResponseUsersItem + { + elem.SetFake() + } + s.Users = append(s.Users, elem) + } + } + } + { + { + s.Total = float64(0) + } + } +} + +// SetFake set fake values. +func (s *GetTopUsersByHwidDevicesResponseResponseUsersItem) SetFake() { + { + { + s.UserUuid = uuid.New() + } + } + { + { + s.ID = float64(0) + } + } + { + { + s.Username = "string" + } + } + { + { + s.DevicesCount = float64(0) + } + } +} + +// SetFake set fake values. +func (s *GetTorrentBlockerReportsStatsResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetTorrentBlockerReportsStatsResponseResponse) SetFake() { + { + { + s.Stats.SetFake() + } + } + { + { + s.TopUsers = nil + for i := 0; i < 0; i++ { + var elem GetTorrentBlockerReportsStatsResponseResponseTopUsersItem + { + elem.SetFake() + } + s.TopUsers = append(s.TopUsers, elem) + } + } + } + { + { + s.TopNodes = nil + for i := 0; i < 0; i++ { + var elem TopNode + { + elem.SetFake() + } + s.TopNodes = append(s.TopNodes, elem) + } + } + } +} + +// SetFake set fake values. +func (s *GetTorrentBlockerReportsStatsResponseResponseStats) SetFake() { + { + { + s.DistinctNodes = float64(0) + } + } + { + { + s.DistinctUsers = float64(0) + } + } + { + { + s.TotalReports = float64(0) + } + } + { + { + s.ReportsLast24Hours = float64(0) + } + } +} + +// SetFake set fake values. +func (s *GetTorrentBlockerReportsStatsResponseResponseTopUsersItem) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.Color = "string" + } + } + { + { + s.Username = "string" + } + } + { + { + s.Total = float64(0) + } + } +} + +// SetFake set fake values. +func (s *GetUserAccessibleNodesResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *GetUserAccessibleNodesResponseResponse) SetFake() { + { + { + s.UserUuid = uuid.New() + } + } + { + { + s.ActiveNodes = nil + for i := 0; i < 0; i++ { + var elem GetUserAccessibleNodesResponseResponseActiveNodesItem + { + elem.SetFake() + } + s.ActiveNodes = append(s.ActiveNodes, elem) + } + } + } +} + +// SetFake set fake values. +func (s *GetUserAccessibleNodesResponseResponseActiveNodesItem) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.NodeName = "string" + } + } + { + { + s.CountryCode = "string" + } + } + { + { + s.ConfigProfileUuid = uuid.New() + } + } + { + { + s.ConfigProfileName = "string" + } + } + { + { + s.ActiveSquads = nil + for i := 0; i < 0; i++ { + var elem GetUserAccessibleNodesResponseResponseActiveNodesItemActiveSquadsItem + { + elem.SetFake() + } + s.ActiveSquads = append(s.ActiveSquads, elem) + } + } + } +} + +// SetFake set fake values. +func (s *GetUserAccessibleNodesResponseResponseActiveNodesItemActiveSquadsItem) SetFake() { + { + { + s.SquadName = "string" + } + } + { + { + s.ActiveInbounds = nil + for i := 0; i < 0; i++ { + var elem string + { + elem = "string" + } + s.ActiveInbounds = append(s.ActiveInbounds, elem) + } + } + } +} + +// SetFake set fake values. +func (s *GetUserSubscriptionRequestHistoryResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *Github) SetFake() { + { + { + s.Enabled = true + } + } + { + { + s.ClientId.SetFake() + } + } + { + { + s.ClientSecret.SetFake() + } + } + { + { + s.AllowedEmails = nil + for i := 0; i < 0; i++ { + var elem string + { + elem = "string" + } + s.AllowedEmails = append(s.AllowedEmails, elem) + } + } + } +} + +// SetFake set fake values. +func (s *Header) SetFake() { + { + { + s.Key = "string" + } + } + { + { + s.Value = "string" + } + } +} + +// SetFake set fake values. +func (s *HostItem) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.ViewPosition = int(0) + } + } + { + { + s.Remark = "string" + } + } + { + { + s.Address = "string" + } + } + { + { + s.Port = int(0) + } + } + { + { + s.Path.SetFake() + } + } + { + { + s.Sni.SetFake() + } + } + { + { + s.Host.SetFake() + } + } + { + { + s.Alpn.SetFake() + } + } + { + { + s.Fingerprint.SetFake() + } + } + { + { + s.IsDisabled.SetFake() + } + } + { + { + s.SecurityLayer.SetFake() + } + } + { + { + s.XHttpExtraParams = []byte("null") + } + } + { + { + s.MuxParams = []byte("null") + } + } + { + { + s.SockoptParams = []byte("null") + } + } + { + { + s.FinalMask = []byte("null") + } + } + { + { + s.Inbound.SetFake() + } + } + { + { + s.ServerDescription.SetFake() + } + } + { + { + s.Tag.SetFake() + } + } + { + { + s.IsHidden.SetFake() + } + } + { + { + s.OverrideSniFromAddress.SetFake() + } + } + { + { + s.KeepSniBlank.SetFake() + } + } + { + { + s.VlessRouteId.SetFake() + } + } + { + { + s.AllowInsecure.SetFake() + } + } + { + { + s.ShuffleHost = true + } + } + { + { + s.MihomoX25519 = true + } + } + { + { + s.Nodes = nil + for i := 0; i < 0; i++ { + var elem uuid.UUID + { + elem = uuid.New() + } + s.Nodes = append(s.Nodes, elem) + } + } + } + { + { + s.XrayJsonTemplateUuid.SetFake() + } + } + { + { + s.ExcludedInternalSquads = nil + for i := 0; i < 0; i++ { + var elem uuid.UUID + { + elem = uuid.New() + } + s.ExcludedInternalSquads = append(s.ExcludedInternalSquads, elem) + } + } + } + { + { + s.ExcludeFromSubscriptionTypes = nil + for i := 0; i < 0; i++ { + var elem HostItemExcludeFromSubscriptionTypesItem + { + elem.SetFake() + } + s.ExcludeFromSubscriptionTypes = append(s.ExcludeFromSubscriptionTypes, elem) + } + } + } +} + +// SetFake set fake values. +func (s *HostItemExcludeFromSubscriptionTypesItem) SetFake() { + *s = HostItemExcludeFromSubscriptionTypesItemXRAYJSON +} + +// SetFake set fake values. +func (s *HostItemSecurityLayer) SetFake() { + *s = HostItemSecurityLayerDEFAULT +} + +// SetFake set fake values. +func (s *HostListResponse) SetFake() { + { + { + s.Response = nil + for i := 0; i < 0; i++ { + var elem HostItem + { + elem.SetFake() + } + s.Response = append(s.Response, elem) + } + } + } +} + +// SetFake set fake values. +func (s *HostOverride) SetFake() { + { + { + s.ServerDescription.SetFake() + } + } + { + { + s.VlessRouteId.SetFake() + } + } +} + +// SetFake set fake values. +func (s *HostResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *HwidDevicesResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *HwidSettings) SetFake() { + { + { + s.Enabled = true + } + } + { + { + s.FallbackDeviceLimit = float64(0) + } + } + { + { + s.MaxDevicesAnnounce.SetFake() + } + } +} + +// SetFake set fake values. +func (s *Inbound) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.ProfileUuid = uuid.New() + } + } + { + { + s.Tag = "string" + } + } + { + { + s.Type = "string" + } + } + { + { + s.Network.SetFake() + } + } + { + { + s.Security.SetFake() + } + } + { + { + s.Port.SetFake() + } + } + { + { + s.RawInbound = []byte("null") + } + } +} + +// SetFake set fake values. +func (s *InboundItem) SetFake() { + { + { + s.ConfigProfileUuid.SetFake() + } + } + { + { + s.ConfigProfileInboundUuid.SetFake() + } + } +} + +// SetFake set fake values. +func (s *InboundRef) SetFake() { + { + { + s.ConfigProfileUuid = uuid.New() + } + } + { + { + s.ConfigProfileInboundUuid = uuid.New() + } + } +} + +// SetFake set fake values. +func (s *InboundsResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *InboundsResponseResponse) SetFake() { + { + { + s.Total = float64(0) + } + } + { + { + s.Inbounds = nil + for i := 0; i < 0; i++ { + var elem InboundsResponseResponseInboundsItem + { + elem.SetFake() + } + s.Inbounds = append(s.Inbounds, elem) + } + } + } +} + +// SetFake set fake values. +func (s *InboundsResponseResponseInboundsItem) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.ProfileUuid = uuid.New() + } + } + { + { + s.Tag = "string" + } + } + { + { + s.Type = "string" + } + } + { + { + s.Network.SetFake() + } + } + { + { + s.Security.SetFake() + } + } + { + { + s.Port.SetFake() + } + } + { + { + s.RawInbound = []byte("null") + } + } + { + { + s.ActiveSquads = nil + for i := 0; i < 0; i++ { + var elem uuid.UUID + { + elem = uuid.New() + } + s.ActiveSquads = append(s.ActiveSquads, elem) + } + } + } +} + +// SetFake set fake values. +func (s *InboundsStat) SetFake() { + { + { + s.Tag = "string" + } + } + { + { + s.Upload = "string" + } + } + { + { + s.Download = "string" + } + } +} + +// SetFake set fake values. +func (s *InfraProviderResponseResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *InterfaceItem) SetFake() { + { + { + s.Interface = "string" + } + } + { + { + s.RxBytesPerSec = float64(0) + } + } + { + { + s.TxBytesPerSec = float64(0) + } + } + { + { + s.RxTotal = float64(0) + } + } + { + { + s.TxTotal = float64(0) + } + } +} + +// SetFake set fake values. +func (s *InternalServerError) SetFake() { + { + { + s.Timestamp.SetFake() + } + } + { + { + s.Path.SetFake() + } + } + { + { + s.Message.SetFake() + } + } + { + { + s.ErrorCode.SetFake() + } + } +} + +// SetFake set fake values. +func (s *InternalSquad) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.ViewPosition = int(0) + } + } + { + { + s.Name = "string" + } + } + { + { + s.Info.SetFake() + } + } + { + { + s.Inbounds = nil + for i := 0; i < 0; i++ { + var elem Inbound + { + elem.SetFake() + } + s.Inbounds = append(s.Inbounds, elem) + } + } + } + { + { + s.CreatedAt = time.Now() + } + } + { + { + s.UpdatedAt = time.Now() + } + } +} + +// SetFake set fake values. +func (s *InternalSquadResponseResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *InternalSquadsResponInfoItem) SetFake() { + { + { + s.MembersCount = float64(0) + } + } + { + { + s.InboundsCount = float64(0) + } + } +} + +// SetFake set fake values. +func (s *InternalSquadsResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *InternalSquadsResponseResponse) SetFake() { + { + { + s.Total = float64(0) + } + } + { + { + s.InternalSquads = nil + for i := 0; i < 0; i++ { + var elem InternalSquad + { + elem.SetFake() + } + s.InternalSquads = append(s.InternalSquads, elem) + } + } + } +} + +// SetFake set fake values. +func (s *Ips) SetFake() { + { + { + s.IP = "string" + } + } + { + { + s.LastSeen = time.Now() + } + } +} + +// SetFake set fake values. +func (s *IpsResponseResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *IpsResponseResponseResponse) SetFake() { + { + { + s.JobId = "string" + } + } +} + +// SetFake set fake values. +func (s *Keycloak) SetFake() { + { + { + s.Enabled = true + } + } + { + { + s.Realm.SetFake() + } + } + { + { + s.ClientId.SetFake() + } + } + { + { + s.ClientSecret.SetFake() + } + } + { + { + s.FrontendDomain.SetFake() + } + } + { + { + s.KeycloakDomain.SetFake() + } + } + { + { + s.AllowedEmails = nil + for i := 0; i < 0; i++ { + var elem string + { + elem = "string" + } + s.AllowedEmails = append(s.AllowedEmails, elem) + } + } + } +} + +// SetFake set fake values. +func (s *LoginRequest) SetFake() { + { + { + s.Username = "string" + } + } + { + { + s.Password = "string" + } + } +} + +// SetFake set fake values. +func (s *NilBrandingSettings) SetFake() { + s.Null = true +} + +// SetFake set fake values. +func (s *NilCustomRemark) SetFake() { + s.Null = true +} + +// SetFake set fake values. +func (s *NilDateTime) SetFake() { + s.Null = true +} + +// SetFake set fake values. +func (s *NilExternalSquadResponseHeaders) SetFake() { + s.Null = true +} + +// SetFake set fake values. +func (s *NilFetchIpsResultResponseResponseResult) SetFake() { + s.Null = true +} + +// SetFake set fake values. +func (s *NilFetchUsersIpsResultResponseResponseResult) SetFake() { + s.Null = true +} + +// SetFake set fake values. +func (s *NilFloat64) SetFake() { + s.Null = true +} + +// SetFake set fake values. +func (s *NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header) SetFake() { + s.Null = true +} + +// SetFake set fake values. +func (s *NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra) SetFake() { + s.Null = true +} + +// SetFake set fake values. +func (s *NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers) SetFake() { + s.Null = true +} + +// SetFake set fake values. +func (s *NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers) SetFake() { + s.Null = true +} + +// SetFake set fake values. +func (s *NilGetStatusResponseResponseAuthentication) SetFake() { + s.Null = true +} + +// SetFake set fake values. +func (s *NilHostOverride) SetFake() { + s.Null = true +} + +// SetFake set fake values. +func (s *NilHwidSettings) SetFake() { + s.Null = true +} + +// SetFake set fake values. +func (s *NilInt) SetFake() { + s.Null = true +} + +// SetFake set fake values. +func (s *NilInterfaceItem) SetFake() { + s.Null = true +} + +// SetFake set fake values. +func (s *NilOauth2Settings) SetFake() { + s.Null = true +} + +// SetFake set fake values. +func (s *NilPasskeySettings) SetFake() { + s.Null = true +} + +// SetFake set fake values. +func (s *NilPasswordSettings) SetFake() { + s.Null = true +} + +// SetFake set fake values. +func (s *NilProviderItem) SetFake() { + s.Null = true +} + +// SetFake set fake values. +func (s *NilString) SetFake() { + s.Null = true +} + +// SetFake set fake values. +func (s *NilSubscriptionSettings) SetFake() { + s.Null = true +} + +// SetFake set fake values. +func (s *NilSubscriptionSettingsResponseResponseCustomResponseHeaders) SetFake() { + s.Null = true +} + +// SetFake set fake values. +func (s *NilSystemItem) SetFake() { + s.Null = true +} + +// SetFake set fake values. +func (s *NilURI) SetFake() { + s.Null = true +} + +// SetFake set fake values. +func (s *NilUUID) SetFake() { + s.Null = true +} + +// SetFake set fake values. +func (s *NilVersion) SetFake() { + s.Null = true +} + +// SetFake set fake values. +func (s *Node) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.Name = "string" + } + } + { + { + s.CountryCode = "string" + } + } +} + +// SetFake set fake values. +func (s *NodePlugin) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.ViewPosition = int(0) + } + } + { + { + s.Name = "string" + } + } + { + { + s.PluginConfig = []byte("null") + } + } +} + +// SetFake set fake values. +func (s *NodePluginResponseResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *NodePluginResponseResponseResponse) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.ViewPosition = int(0) + } + } + { + { + s.Name = "string" + } + } + { + { + s.PluginConfig = []byte("null") + } + } +} + +// SetFake set fake values. +func (s *NodePluginsResponseResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *NodePluginsResponseResponseResponse) SetFake() { + { + { + s.Total = float64(0) + } + } + { + { + s.NodePlugins = nil + for i := 0; i < 0; i++ { + var elem NodePlugin + { + elem.SetFake() + } + s.NodePlugins = append(s.NodePlugins, elem) + } + } + } +} + +// SetFake set fake values. +func (s *NodeResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *NodeResponseDataItem) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.Name = "string" + } + } + { + { + s.Address = "string" + } + } + { + { + s.Port.SetFake() + } + } + { + { + s.IsConnected = true + } + } + { + { + s.IsDisabled = true + } + } + { + { + s.IsConnecting = true + } + } + { + { + s.LastStatusChange.SetFake() + } + } + { + { + s.LastStatusMessage.SetFake() + } + } + { + { + s.IsTrafficTrackingActive = true + } + } + { + { + s.TrafficResetDay.SetFake() + } + } + { + { + s.TrafficLimitBytes.SetFake() + } + } + { + { + s.TrafficUsedBytes.SetFake() + } + } + { + { + s.NotifyPercent.SetFake() + } + } + { + { + s.ViewPosition = int(0) + } + } + { + { + s.CountryCode = "string" + } + } + { + { + s.ConsumptionMultiplier = float64(0) + } + } + { + { + s.Tags = nil + for i := 0; i < 0; i++ { + var elem string + { + elem = "string" + } + s.Tags = append(s.Tags, elem) + } + } + } + { + { + s.CreatedAt = time.Now() + } + } + { + { + s.UpdatedAt = time.Now() + } + } + { + { + s.ConfigProfile.SetFake() + } + } + { + { + s.ProviderUuid.SetFake() + } + } + { + { + s.Provider.SetFake() + } + } + { + { + s.ActivePluginUuid.SetFake() + } + } + { + { + s.System.SetFake() + } + } + { + { + s.Versions.SetFake() + } + } + { + { + s.XrayUptime = float64(0) + } + } + { + { + s.UsersOnline = float64(0) + } + } +} + +// SetFake set fake values. +func (s *NodeResponseInfoItem) SetFake() { + { + { + s.Arch = "string" + } + } + { + { + s.Cpus = int(0) + } + } + { + { + s.CpuModel = "string" + } + } + { + { + s.MemoryTotal = float64(0) + } + } + { + { + s.Hostname = "string" + } + } + { + { + s.Platform = "string" + } + } + { + { + s.Release = "string" + } + } + { + { + s.Type = "string" + } + } + { + { + s.Version = "string" + } + } + { + { + s.NetworkInterfaces = nil + for i := 0; i < 0; i++ { + var elem string + { + elem = "string" + } + s.NetworkInterfaces = append(s.NetworkInterfaces, elem) + } + } + } +} + +// SetFake set fake values. +func (s *NodesResponse) SetFake() { + { + { + s.Response = nil + for i := 0; i < 0; i++ { + var elem NodeResponseDataItem + { + elem.SetFake() + } + s.Response = append(s.Response, elem) + } + } + } +} + +// SetFake set fake values. +func (s *NotFoundError) SetFake() { + { + { + s.Message = "string" + } + } + { + { + s.StatusCode = float64(0) + } + } +} + +// SetFake set fake values. +func (s *OAuth2AuthorizeRequest) SetFake() { + { + { + s.Provider.SetFake() + } + } +} + +// SetFake set fake values. +func (s *OAuth2AuthorizeRequestProvider) SetFake() { + *s = OAuth2AuthorizeRequestProviderTelegram +} + +// SetFake set fake values. +func (s *OAuth2AuthorizeResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *OAuth2AuthorizeResponseResponse) SetFake() { + { + { + s.AuthorizationUrl.SetFake() + } + } +} + +// SetFake set fake values. +func (s *OAuth2CallbackRequest) SetFake() { + { + { + s.Provider.SetFake() + } + } + { + { + s.Code = "string" + } + } + { + { + s.State = "string" + } + } +} + +// SetFake set fake values. +func (s *OAuth2CallbackRequestProvider) SetFake() { + *s = OAuth2CallbackRequestProviderTelegram +} + +// SetFake set fake values. +func (s *Oauth2Settings) SetFake() { + { + { + s.Github.SetFake() + } + } + { + { + s.Pocketid.SetFake() + } + } + { + { + s.Yandex.SetFake() + } + } + { + { + s.Keycloak.SetFake() + } + } + { + { + s.Generic.SetFake() + } + } + { + { + s.Telegram.SetFake() + } + } +} + +// SetFake set fake values. +func (s *OptBool) SetFake() { + var elem bool + { + elem = true + } + s.SetTo(elem) +} + +// SetFake set fake values. +func (s *OptBulkAllUpdateUsersRequestStatus) SetFake() { + var elem BulkAllUpdateUsersRequestStatus + { + elem.SetFake() + } + s.SetTo(elem) +} + +// SetFake set fake values. +func (s *OptBulkAllUpdateUsersRequestTrafficLimitStrategy) SetFake() { + var elem BulkAllUpdateUsersRequestTrafficLimitStrategy + { + elem.SetFake() + } + s.SetTo(elem) +} + +// SetFake set fake values. +func (s *OptBulkDeleteUsersByStatusRequestStatus) SetFake() { + var elem BulkDeleteUsersByStatusRequestStatus + { + elem.SetFake() + } + s.SetTo(elem) +} + +// SetFake set fake values. +func (s *OptBulkUpdateUsersRequestFieldsStatus) SetFake() { + var elem BulkUpdateUsersRequestFieldsStatus + { + elem.SetFake() + } + s.SetTo(elem) +} + +// SetFake set fake values. +func (s *OptBulkUpdateUsersRequestFieldsTrafficLimitStrategy) SetFake() { + var elem BulkUpdateUsersRequestFieldsTrafficLimitStrategy + { + elem.SetFake() + } + s.SetTo(elem) +} + +// SetFake set fake values. +func (s *OptConfigProfileRef) SetFake() { + var elem ConfigProfileRef + { + elem.SetFake() + } + s.SetTo(elem) +} + +// SetFake set fake values. +func (s *OptCreateHostRequestSecurityLayer) SetFake() { + var elem CreateHostRequestSecurityLayer + { + elem.SetFake() + } + s.SetTo(elem) +} + +// SetFake set fake values. +func (s *OptCreateUserRequestStatus) SetFake() { + var elem CreateUserRequestStatus + { + elem.SetFake() + } + s.SetTo(elem) +} + +// SetFake set fake values. +func (s *OptCreateUserRequestTrafficLimitStrategy) SetFake() { + var elem CreateUserRequestTrafficLimitStrategy + { + elem.SetFake() + } + s.SetTo(elem) +} + +// SetFake set fake values. +func (s *OptDateTime) SetFake() { + var elem time.Time + { + elem = time.Now() + } + s.SetTo(elem) +} + +// SetFake set fake values. +func (s *OptDebugSrrMatcherSettings) SetFake() { + var elem DebugSrrMatcherSettings + { + elem.SetFake() + } + s.SetTo(elem) +} + +// SetFake set fake values. +func (s *OptFloat64) SetFake() { + var elem float64 + { + elem = float64(0) + } + s.SetTo(elem) +} + +// SetFake set fake values. +func (s *OptGeneric) SetFake() { + var elem Generic + { + elem.SetFake() + } + s.SetTo(elem) +} + +// SetFake set fake values. +func (s *OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions) SetFake() { + var elem GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions + { + elem.SetFake() + } + s.SetTo(elem) +} + +// SetFake set fake values. +func (s *OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request) SetFake() { + var elem GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request + { + elem.SetFake() + } + s.SetTo(elem) +} + +// SetFake set fake values. +func (s *OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders) SetFake() { + var elem GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders + { + elem.SetFake() + } + s.SetTo(elem) +} + +// SetFake set fake values. +func (s *OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response) SetFake() { + var elem GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response + { + elem.SetFake() + } + s.SetTo(elem) +} + +// SetFake set fake values. +func (s *OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders) SetFake() { + var elem GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders + { + elem.SetFake() + } + s.SetTo(elem) +} + +// SetFake set fake values. +func (s *OptHostItemSecurityLayer) SetFake() { + var elem HostItemSecurityLayer + { + elem.SetFake() + } + s.SetTo(elem) +} + +// SetFake set fake values. +func (s *OptInboundRef) SetFake() { + var elem InboundRef + { + elem.SetFake() + } + s.SetTo(elem) +} + +// SetFake set fake values. +func (s *OptInt) SetFake() { + var elem int + { + elem = int(0) + } + s.SetTo(elem) +} + +// SetFake set fake values. +func (s *OptKeycloak) SetFake() { + var elem Keycloak + { + elem.SetFake() + } + s.SetTo(elem) +} + +// SetFake set fake values. +func (s *OptNilBrandingSettings) SetFake() { + s.Null = true + s.Set = true +} + +// SetFake set fake values. +func (s *OptNilCreateHostRequestAlpn) SetFake() { + s.Null = true + s.Set = true +} + +// SetFake set fake values. +func (s *OptNilCreateHostRequestFingerprint) SetFake() { + s.Null = true + s.Set = true +} + +// SetFake set fake values. +func (s *OptNilCustomRemark) SetFake() { + s.Null = true + s.Set = true +} + +// SetFake set fake values. +func (s *OptNilHostOverride) SetFake() { + s.Null = true + s.Set = true +} + +// SetFake set fake values. +func (s *OptNilHwidSettings) SetFake() { + s.Null = true + s.Set = true +} + +// SetFake set fake values. +func (s *OptNilInt) SetFake() { + s.Null = true + s.Set = true +} + +// SetFake set fake values. +func (s *OptNilOauth2Settings) SetFake() { + s.Null = true + s.Set = true +} + +// SetFake set fake values. +func (s *OptNilPasskeySettings) SetFake() { + s.Null = true + s.Set = true +} + +// SetFake set fake values. +func (s *OptNilPasswordSettings) SetFake() { + s.Null = true + s.Set = true +} + +// SetFake set fake values. +func (s *OptNilString) SetFake() { + s.Null = true + s.Set = true +} + +// SetFake set fake values. +func (s *OptNilSubscriptionSettings) SetFake() { + s.Null = true + s.Set = true +} + +// SetFake set fake values. +func (s *OptNilURI) SetFake() { + s.Null = true + s.Set = true +} + +// SetFake set fake values. +func (s *OptNilUUID) SetFake() { + s.Null = true + s.Set = true +} + +// SetFake set fake values. +func (s *OptNilUpdateExternalSquadRequestResponseHeaders) SetFake() { + s.Null = true + s.Set = true +} + +// SetFake set fake values. +func (s *OptNilUpdateHostRequestAlpn) SetFake() { + s.Null = true + s.Set = true +} + +// SetFake set fake values. +func (s *OptNilUpdateHostRequestFingerprint) SetFake() { + s.Null = true + s.Set = true +} + +// SetFake set fake values. +func (s *OptResponseModification) SetFake() { + var elem ResponseModification + { + elem.SetFake() + } + s.SetTo(elem) +} + +// SetFake set fake values. +func (s *OptResponseRules) SetFake() { + var elem ResponseRules + { + elem.SetFake() + } + s.SetTo(elem) +} + +// SetFake set fake values. +func (s *OptString) SetFake() { + var elem string + { + elem = "string" + } + s.SetTo(elem) +} + +// SetFake set fake values. +func (s *OptTelegram) SetFake() { + var elem Telegram + { + elem.SetFake() + } + s.SetTo(elem) +} + +// SetFake set fake values. +func (s *OptURI) SetFake() { + var elem url.URL + { + elem = url.URL{Scheme: "https", Host: "github.com", Path: "/ogen-go/ogen"} + } + s.SetTo(elem) +} + +// SetFake set fake values. +func (s *OptUUID) SetFake() { + var elem uuid.UUID + { + elem = uuid.New() + } + s.SetTo(elem) +} + +// SetFake set fake values. +func (s *OptUpdateHostRequestSecurityLayer) SetFake() { + var elem UpdateHostRequestSecurityLayer + { + elem.SetFake() + } + s.SetTo(elem) +} + +// SetFake set fake values. +func (s *OptUpdateSubscriptionSettingsRequestCustomResponseHeaders) SetFake() { + var elem UpdateSubscriptionSettingsRequestCustomResponseHeaders + { + elem.SetFake() + } + s.SetTo(elem) +} + +// SetFake set fake values. +func (s *OptUpdateUserRequestStatus) SetFake() { + var elem UpdateUserRequestStatus + { + elem.SetFake() + } + s.SetTo(elem) +} + +// SetFake set fake values. +func (s *OptUpdateUserRequestTrafficLimitStrategy) SetFake() { + var elem UpdateUserRequestTrafficLimitStrategy + { + elem.SetFake() + } + s.SetTo(elem) +} + +// SetFake set fake values. +func (s *OptUserItemInfoStatus) SetFake() { + var elem UserItemInfoStatus + { + elem.SetFake() + } + s.SetTo(elem) +} + +// SetFake set fake values. +func (s *OptUserItemInfoTrafficLimitStrategy) SetFake() { + var elem UserItemInfoTrafficLimitStrategy + { + elem.SetFake() + } + s.SetTo(elem) +} + +// SetFake set fake values. +func (s *PasskeyOptions) SetFake() { + { + { + s.Response = []byte("null") + } + } +} + +// SetFake set fake values. +func (s *PasskeySettings) SetFake() { + { + { + s.Enabled = true + } + } + { + { + s.RpId.SetFake() + } + } + { + { + s.Origin.SetFake() + } + } +} + +// SetFake set fake values. +func (s *PasskeysResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *PasskeysResponseResponse) SetFake() { + { + { + s.Passkeys = nil + for i := 0; i < 0; i++ { + var elem PasskeysResponseResponsePasskeysItem + { + elem.SetFake() + } + s.Passkeys = append(s.Passkeys, elem) + } + } + } +} + +// SetFake set fake values. +func (s *PasskeysResponseResponsePasskeysItem) SetFake() { + { + { + s.ID = "string" + } + } + { + { + s.Name = "string" + } + } + { + { + s.CreatedAt = time.Now() + } + } + { + { + s.LastUsedAt = time.Now() + } + } +} + +// SetFake set fake values. +func (s *PasswordSettings) SetFake() { + { + { + s.Enabled = true + } + } +} + +// SetFake set fake values. +func (s *PluginExecutorRequest) SetFake() { + { + { + s.Command.SetFake() + } + } + { + { + s.TargetNodes.SetFake() + } + } +} + +// SetFake set fake values. +func (s *PluginExecutorRequestCommand) SetFake() { + var variant PluginExecutorRequestCommand0 + + { + variant.SetFake() + } + s.SetPluginExecutorRequestCommand0(variant) +} + +// SetFake set fake values. +func (s *PluginExecutorRequestCommand0) SetFake() { + { + { + s.Command.SetFake() + } + } + { + { + s.Ips = nil + for i := 0; i < 1; i++ { + var elem PluginExecutorRequestCommand0IpsItem + { + elem.SetFake() + } + s.Ips = append(s.Ips, elem) + } + } + } +} + +// SetFake set fake values. +func (s *PluginExecutorRequestCommand0Command) SetFake() { + *s = PluginExecutorRequestCommand0CommandBlockIps +} + +// SetFake set fake values. +func (s *PluginExecutorRequestCommand0IpsItem) SetFake() { + { + { + s.IP = "string" + } + } + { + { + s.Timeout = float64(0) + } + } +} + +// SetFake set fake values. +func (s *PluginExecutorRequestCommand1) SetFake() { + { + { + s.Command.SetFake() + } + } + { + { + s.Ips = nil + for i := 0; i < 1; i++ { + var elem string + { + elem = "string" + } + s.Ips = append(s.Ips, elem) + } + } + } +} + +// SetFake set fake values. +func (s *PluginExecutorRequestCommand1Command) SetFake() { + *s = PluginExecutorRequestCommand1CommandUnblockIps +} + +// SetFake set fake values. +func (s *PluginExecutorRequestCommand2) SetFake() { + { + { + s.Command.SetFake() + } + } +} + +// SetFake set fake values. +func (s *PluginExecutorRequestCommand2Command) SetFake() { + *s = PluginExecutorRequestCommand2CommandRecreateTables +} + +// SetFake set fake values. +func (s *PluginExecutorRequestTargetNodes) SetFake() { + var variant PluginExecutorRequestTargetNodes0 + + { + variant.SetFake() + } + s.SetPluginExecutorRequestTargetNodes0(variant) +} + +// SetFake set fake values. +func (s *PluginExecutorRequestTargetNodes0) SetFake() { + { + { + s.Target.SetFake() + } + } +} + +// SetFake set fake values. +func (s *PluginExecutorRequestTargetNodes0Target) SetFake() { + *s = PluginExecutorRequestTargetNodes0TargetAllNodes +} + +// SetFake set fake values. +func (s *PluginExecutorRequestTargetNodes1) SetFake() { + { + { + s.Target.SetFake() + } + } + { + { + s.NodeUuids = nil + for i := 0; i < 1; i++ { + var elem uuid.UUID + { + elem = uuid.New() + } + s.NodeUuids = append(s.NodeUuids, elem) + } + } + } +} + +// SetFake set fake values. +func (s *PluginExecutorRequestTargetNodes1Target) SetFake() { + *s = PluginExecutorRequestTargetNodes1TargetSpecificNodes +} + +// SetFake set fake values. +func (s *Pocketid) SetFake() { + { + { + s.Enabled = true + } + } + { + { + s.ClientId.SetFake() + } + } + { + { + s.ClientSecret.SetFake() + } + } + { + { + s.PlainDomain.SetFake() + } + } + { + { + s.AllowedEmails = nil + for i := 0; i < 0; i++ { + var elem string + { + elem = "string" + } + s.AllowedEmails = append(s.AllowedEmails, elem) + } + } + } +} + +// SetFake set fake values. +func (s *ProfileModificationRequest) SetFake() { + { + { + s.Uuids = nil + for i := 0; i < 1; i++ { + var elem uuid.UUID + { + elem = uuid.New() + } + s.Uuids = append(s.Uuids, elem) + } + } + } + { + { + s.ConfigProfile.SetFake() + } + } +} + +// SetFake set fake values. +func (s *ProfileModificationRequestConfigProfile) SetFake() { + { + { + s.ActiveConfigProfileUuid = uuid.New() + } + } + { + { + s.ActiveInbounds = nil + for i := 0; i < 1; i++ { + var elem uuid.UUID + { + elem = uuid.New() + } + s.ActiveInbounds = append(s.ActiveInbounds, elem) + } + } + } +} + +// SetFake set fake values. +func (s *Provider) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.Name = "string" + } + } + { + { + s.FaviconLink.SetFake() + } + } + { + { + s.LoginUrl.SetFake() + } + } + { + { + s.CreatedAt = time.Now() + } + } + { + { + s.UpdatedAt = time.Now() + } + } + { + { + s.BillingHistory.SetFake() + } + } + { + { + s.BillingNodes = nil + for i := 0; i < 0; i++ { + var elem BillingNode + { + elem.SetFake() + } + s.BillingNodes = append(s.BillingNodes, elem) + } + } + } +} + +// SetFake set fake values. +func (s *ProviderItem) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.Name = "string" + } + } + { + { + s.FaviconLink.SetFake() + } + } + { + { + s.LoginUrl.SetFake() + } + } + { + { + s.CreatedAt = time.Now() + } + } + { + { + s.UpdatedAt = time.Now() + } + } +} + +// SetFake set fake values. +func (s *Record) SetFake() { + { + { + s.ID = float64(0) + } + } + { + { + s.UserUuid = uuid.New() + } + } + { + { + s.RequestAt = time.Now() + } + } + { + { + s.RequestIp.SetFake() + } + } + { + { + s.UserAgent.SetFake() + } + } +} + +// SetFake set fake values. +func (s *RegisterRequest) SetFake() { + { + { + s.Username = "string" + } + } + { + { + s.Password = "string" + } + } +} + +// SetFake set fake values. +func (s *ReorderHostRequest) SetFake() { + { + { + s.Hosts = nil + for i := 0; i < 0; i++ { + var elem ReorderRequestItem + { + elem.SetFake() + } + s.Hosts = append(s.Hosts, elem) + } + } + } +} + +// SetFake set fake values. +func (s *ReorderHostResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *ReorderHostResponseResponse) SetFake() { + { + { + s.IsUpdated = true + } + } +} + +// SetFake set fake values. +func (s *ReorderNodeRequest) SetFake() { + { + { + s.Nodes = nil + for i := 0; i < 0; i++ { + var elem ReorderRequestItem + { + elem.SetFake() + } + s.Nodes = append(s.Nodes, elem) + } + } + } +} + +// SetFake set fake values. +func (s *ReorderRequest) SetFake() { + { + { + s.Items = nil + for i := 0; i < 0; i++ { + var elem ReorderRequestItem + { + elem.SetFake() + } + s.Items = append(s.Items, elem) + } + } + } +} + +// SetFake set fake values. +func (s *ReorderRequestItem) SetFake() { + { + { + s.ViewPosition = int(0) + } + } + { + { + s.UUID = uuid.New() + } + } +} + +// SetFake set fake values. +func (s *ReportItem) SetFake() { + { + { + s.ActionReport.SetFake() + } + } + { + { + s.XrayReport.SetFake() + } + } +} + +// SetFake set fake values. +func (s *ResolveUserRequestBody) SetFake() { + { + { + s.UUID.SetFake() + } + } + { + { + s.ID.SetFake() + } + } + { + { + s.ShortUuid.SetFake() + } + } + { + { + s.Username.SetFake() + } + } +} + +// SetFake set fake values. +func (s *ResolveUserResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *ResolveUserResponseResponse) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.Username = "string" + } + } + { + { + s.ID = float64(0) + } + } + { + { + s.ShortUuid = "string" + } + } +} + +// SetFake set fake values. +func (s *ResponseModification) SetFake() { + { + { + s.Headers = nil + for i := 0; i < 0; i++ { + var elem Header + { + elem.SetFake() + } + s.Headers = append(s.Headers, elem) + } + } + } + { + { + s.ApplyHeadersToEnd.SetFake() + } + } + { + { + s.SubscriptionTemplate.SetFake() + } + } + { + { + s.IgnoreHostXrayJsonTemplate.SetFake() + } + } + { + { + s.IgnoreServeJsonAtBaseSubscription.SetFake() + } + } + { + { + s.AdditionalExtendedClientsRegex = nil + for i := 0; i < 0; i++ { + var elem string + { + elem = "string" + } + s.AdditionalExtendedClientsRegex = append(s.AdditionalExtendedClientsRegex, elem) + } + } + } +} + +// SetFake set fake values. +func (s *ResponseRules) SetFake() { + { + { + s.Version.SetFake() + } + } + { + { + s.Settings.SetFake() + } + } + { + { + s.Rules = nil + for i := 0; i < 0; i++ { + var elem Rule + { + elem.SetFake() + } + s.Rules = append(s.Rules, elem) + } + } + } +} + +// SetFake set fake values. +func (s *ResponseRulesVersion) SetFake() { + *s = ResponseRulesVersion1 +} + +// SetFake set fake values. +func (s *RestartAllNodesRequestBody) SetFake() { + { + { + s.ForceRestart.SetFake() + } + } +} + +// SetFake set fake values. +func (s *RevokeUserSubscriptionBody) SetFake() { + { + { + s.RevokeOnlyPasswords.SetFake() + } + } + { + { + s.ShortUuid.SetFake() + } + } +} + +// SetFake set fake values. +func (s *Rule) SetFake() { + { + { + s.Name = "string" + } + } + { + { + s.Description.SetFake() + } + } + { + { + s.Enabled = true + } + } + { + { + s.Operator.SetFake() + } + } + { + { + s.Conditions = nil + for i := 0; i < 0; i++ { + var elem Condition + { + elem.SetFake() + } + s.Conditions = append(s.Conditions, elem) + } + } + } + { + { + s.ResponseType.SetFake() + } + } + { + { + s.ResponseModifications.SetFake() + } + } +} + +// SetFake set fake values. +func (s *RuleOperator) SetFake() { + *s = RuleOperatorAND +} + +// SetFake set fake values. +func (s *RuleResponseType) SetFake() { + *s = RuleResponseTypeXRAYJSON +} + +// SetFake set fake values. +func (s *SetInboundToManyHostsRequest) SetFake() { + { + { + s.Uuids = nil + for i := 0; i < 0; i++ { + var elem uuid.UUID + { + elem = uuid.New() + } + s.Uuids = append(s.Uuids, elem) + } + } + } + { + { + s.ConfigProfileUuid = uuid.New() + } + } + { + { + s.ConfigProfileInboundUuid = uuid.New() + } + } +} + +// SetFake set fake values. +func (s *SetPortToManyHostsRequest) SetFake() { + { + { + s.Uuids = nil + for i := 0; i < 0; i++ { + var elem uuid.UUID + { + elem = uuid.New() + } + s.Uuids = append(s.Uuids, elem) + } + } + } + { + { + s.Port = int(0) + } + } +} + +// SetFake set fake values. +func (s *SettingsResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *SettingsResponseResponse) SetFake() { + { + { + s.PasskeySettings.SetFake() + } + } + { + { + s.Oauth2Settings.SetFake() + } + } + { + { + s.PasswordSettings.SetFake() + } + } + { + { + s.BrandingSettings.SetFake() + } + } +} + +// SetFake set fake values. +func (s *SnippetRequest) SetFake() { + { + { + s.Name = "string" + } + } + { + { + s.Snippet = nil + for i := 0; i < 0; i++ { + var elem SnippetRequestSnippetItem + { + elem.SetFake() + } + s.Snippet = append(s.Snippet, elem) + } + } + } +} + +// SetFake set fake values. +func (s *SnippetRequestSnippetItem) SetFake() { +} + +// SetFake set fake values. +func (s *SnippetsResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *SnippetsResponseResponse) SetFake() { + { + { + s.Total = float64(0) + } + } + { + { + s.Snippets = nil + for i := 0; i < 0; i++ { + var elem SnippetsResponseResponseSnippetsItem + { + elem.SetFake() + } + s.Snippets = append(s.Snippets, elem) + } + } + } +} + +// SetFake set fake values. +func (s *SnippetsResponseResponseSnippetsItem) SetFake() { + { + { + s.Name = "string" + } + } + { + { + s.Snippet = []byte("null") + } + } +} + +// SetFake set fake values. +func (s *Stat) SetFake() { + { + { + s.MemoryFree = float64(0) + } + } + { + { + s.MemoryUsed = float64(0) + } + } + { + { + s.Uptime = float64(0) + } + } + { + { + s.LoadAvg = nil + for i := 0; i < 0; i++ { + var elem float64 + { + elem = float64(0) + } + s.LoadAvg = append(s.LoadAvg, elem) + } + } + } + { + { + s.Interface.SetFake() + } + } +} + +// SetFake set fake values. +func (s *StatsUserUsageResponseResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *StatsUserUsageResponseResponseResponse) SetFake() { + { + { + s.Categories = nil + for i := 0; i < 0; i++ { + var elem string + { + elem = "string" + } + s.Categories = append(s.Categories, elem) + } + } + } + { + { + s.SparklineData = nil + for i := 0; i < 0; i++ { + var elem float64 + { + elem = float64(0) + } + s.SparklineData = append(s.SparklineData, elem) + } + } + } + { + { + s.TopNodes = nil + for i := 0; i < 0; i++ { + var elem TopNode + { + elem.SetFake() + } + s.TopNodes = append(s.TopNodes, elem) + } + } + } + { + { + s.Series = nil + for i := 0; i < 0; i++ { + var elem StatsUserUsageResponseResponseResponseSeriesItem + { + elem.SetFake() + } + s.Series = append(s.Series, elem) + } + } + } +} + +// SetFake set fake values. +func (s *StatsUserUsageResponseResponseResponseSeriesItem) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.Name = "string" + } + } + { + { + s.Color = "string" + } + } + { + { + s.CountryCode = "string" + } + } + { + { + s.Total = float64(0) + } + } + { + { + s.Data = nil + for i := 0; i < 0; i++ { + var elem float64 + { + elem = float64(0) + } + s.Data = append(s.Data, elem) + } + } + } +} + +// SetFake set fake values. +func (s *Subscription) SetFake() { + { + { + s.IsFound = true + } + } + { + { + s.User.SetFake() + } + } + { + { + s.Links = nil + for i := 0; i < 0; i++ { + var elem string + { + elem = "string" + } + s.Links = append(s.Links, elem) + } + } + } + { + { + s.SsConfLinks.SetFake() + } + } + { + { + s.SubscriptionUrl = "string" + } + } +} + +// SetFake set fake values. +func (s *SubscriptionPageConfigResponseResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *SubscriptionPageConfigResponseResponseResponse) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.ViewPosition = int(0) + } + } + { + { + s.Name = "string" + } + } + { + { + s.Config = []byte("null") + } + } +} + +// SetFake set fake values. +func (s *SubscriptionPageConfigsResponseResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *SubscriptionPageConfigsResponseResponseResponse) SetFake() { + { + { + s.Total = float64(0) + } + } + { + { + s.Configs = nil + for i := 0; i < 0; i++ { + var elem Config + { + elem.SetFake() + } + s.Configs = append(s.Configs, elem) + } + } + } +} + +// SetFake set fake values. +func (s *SubscriptionResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *SubscriptionSettings) SetFake() { + { + { + s.ProfileTitle.SetFake() + } + } + { + { + s.SupportLink.SetFake() + } + } + { + { + s.ProfileUpdateInterval.SetFake() + } + } + { + { + s.IsProfileWebpageUrlEnabled.SetFake() + } + } + { + { + s.ServeJsonAtBaseSubscription.SetFake() + } + } + { + { + s.IsShowCustomRemarks.SetFake() + } + } + { + { + s.HappAnnounce.SetFake() + } + } + { + { + s.HappRouting.SetFake() + } + } + { + { + s.RandomizeHosts.SetFake() + } + } +} + +// SetFake set fake values. +func (s *SubscriptionSettingsResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *SubscriptionSettingsResponseResponse) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.ProfileTitle = "string" + } + } + { + { + s.SupportLink = "string" + } + } + { + { + s.ProfileUpdateInterval = int(0) + } + } + { + { + s.IsProfileWebpageUrlEnabled = true + } + } + { + { + s.ServeJsonAtBaseSubscription = true + } + } + { + { + s.IsShowCustomRemarks = true + } + } + { + { + s.CustomRemarks.SetFake() + } + } + { + { + s.HappAnnounce.SetFake() + } + } + { + { + s.HappRouting.SetFake() + } + } + { + { + s.CustomResponseHeaders.SetFake() + } + } + { + { + s.RandomizeHosts = true + } + } + { + { + s.ResponseRules.SetFake() + } + } + { + { + s.HwidSettings.SetFake() + } + } + { + { + s.CreatedAt = time.Now() + } + } + { + { + s.UpdatedAt = time.Now() + } + } +} + +// SetFake set fake values. +func (s *SubscriptionSettingsResponseResponseCustomResponseHeaders) SetFake() { + var ( + elem string + m map[string]string = s.init() + ) + for i := 0; i < 0; i++ { + m[fmt.Sprintf("fake%d", i)] = elem + } +} + +// SetFake set fake values. +func (s *SubscriptionSsConfLinks) SetFake() { + var ( + elem string + m map[string]string = s.init() + ) + for i := 0; i < 0; i++ { + m[fmt.Sprintf("fake%d", i)] = elem + } +} + +// SetFake set fake values. +func (s *SystemItem) SetFake() { + { + { + s.Info.SetFake() + } + } + { + { + s.Stats.SetFake() + } + } +} + +// SetFake set fake values. +func (s *TagsResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *TagsResponseResponse) SetFake() { + { + { + s.Tags = nil + for i := 0; i < 0; i++ { + var elem string + { + elem = "string" + } + s.Tags = append(s.Tags, elem) + } + } + } +} + +// SetFake set fake values. +func (s *Telegram) SetFake() { + { + { + s.Enabled = true + } + } + { + { + s.ClientId.SetFake() + } + } + { + { + s.ClientSecret.SetFake() + } + } + { + { + s.AllowedIds = nil + for i := 0; i < 0; i++ { + var elem string + { + elem = "string" + } + s.AllowedIds = append(s.AllowedIds, elem) + } + } + } + { + { + s.FrontendDomain.SetFake() + } + } +} + +// SetFake set fake values. +func (s *Template) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.ViewPosition = int(0) + } + } + { + { + s.Name = "string" + } + } + { + { + s.TemplateType.SetFake() + } + } + { + { + s.TemplateJson = []byte("null") + } + } + { + { + s.EncodedTemplateYaml.SetFake() + } + } +} + +// SetFake set fake values. +func (s *TemplateRef) SetFake() { + { + { + s.TemplateUuid = uuid.New() + } + } + { + { + s.TemplateType.SetFake() + } + } +} + +// SetFake set fake values. +func (s *TemplateRefTemplateType) SetFake() { + *s = TemplateRefTemplateTypeXRAYJSON +} + +// SetFake set fake values. +func (s *TemplateResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *TemplateTemplateType) SetFake() { + *s = TemplateTemplateTypeXRAYJSON +} + +// SetFake set fake values. +func (s *TemplatesResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *TemplatesResponseResponse) SetFake() { + { + { + s.Total = float64(0) + } + } + { + { + s.Templates = nil + for i := 0; i < 0; i++ { + var elem Template + { + elem.SetFake() + } + s.Templates = append(s.Templates, elem) + } + } + } +} + +// SetFake set fake values. +func (s *TokenResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *TokenResponseResponse) SetFake() { + { + { + s.AccessToken = "string" + } + } +} + +// SetFake set fake values. +func (s *TopNode) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.CountryCode = "string" + } + } + { + { + s.Color = "string" + } + } + { + { + s.Name = "string" + } + } + { + { + s.Total = float64(0) + } + } +} + +// SetFake set fake values. +func (s *TorrentBlockerReportsResponseResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *TorrentBlockerReportsResponseResponseResponse) SetFake() { + { + { + s.Records = nil + for i := 0; i < 0; i++ { + var elem TorrentBlockerReportsResponseResponseResponseRecordsItem + { + elem.SetFake() + } + s.Records = append(s.Records, elem) + } + } + } + { + { + s.Total = float64(0) + } + } +} + +// SetFake set fake values. +func (s *TorrentBlockerReportsResponseResponseResponseRecordsItem) SetFake() { + { + { + s.ID = float64(0) + } + } + { + { + s.UserId = float64(0) + } + } + { + { + s.NodeId = float64(0) + } + } + { + { + s.User.SetFake() + } + } + { + { + s.Node.SetFake() + } + } + { + { + s.Report.SetFake() + } + } + { + { + s.CreatedAt = time.Now() + } + } +} + +// SetFake set fake values. +func (s *TorrentBlockerReportsResponseResponseResponseRecordsItemUser) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.Username = "string" + } + } +} + +// SetFake set fake values. +func (s *UnauthorizedError) SetFake() { + { + { + s.Message = "string" + } + } + { + { + s.StatusCode = float64(0) + } + } +} + +// SetFake set fake values. +func (s *UpdateConfigProfileRequest) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.Name.SetFake() + } + } + { + { // Keep pointer nil to prevent infinite recursion. + s.Config = nil + } + } +} + +// SetFake set fake values. +func (s *UpdateConfigProfileRequestConfig) SetFake() { +} + +// SetFake set fake values. +func (s *UpdateExternalSquadRequest) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.Name.SetFake() + } + } + { + { + s.Templates = nil + for i := 0; i < 0; i++ { + var elem TemplateRef + { + elem.SetFake() + } + s.Templates = append(s.Templates, elem) + } + } + } + { + { + s.SubscriptionSettings.SetFake() + } + } + { + { + s.HostOverrides.SetFake() + } + } + { + { + s.ResponseHeaders.SetFake() + } + } + { + { + s.HwidSettings.SetFake() + } + } + { + { + s.CustomRemarks.SetFake() + } + } + { + { + s.SubpageConfigUuid.SetFake() + } + } +} + +// SetFake set fake values. +func (s *UpdateExternalSquadRequestResponseHeaders) SetFake() { + var ( + elem string + m map[string]string = s.init() + ) + for i := 0; i < 0; i++ { + m[fmt.Sprintf("fake%d", i)] = elem + } +} + +// SetFake set fake values. +func (s *UpdateHostRequest) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.Inbound.SetFake() + } + } + { + { + s.Remark.SetFake() + } + } + { + { + s.Address.SetFake() + } + } + { + { + s.Port.SetFake() + } + } + { + { + s.Path.SetFake() + } + } + { + { + s.Sni.SetFake() + } + } + { + { + s.Host.SetFake() + } + } + { + { + s.Alpn.SetFake() + } + } + { + { + s.Fingerprint.SetFake() + } + } + { + { + s.IsDisabled.SetFake() + } + } + { + { + s.SecurityLayer.SetFake() + } + } + { + { + s.XHttpExtraParams = []byte("null") + } + } + { + { + s.MuxParams = []byte("null") + } + } + { + { + s.SockoptParams = []byte("null") + } + } + { + { + s.FinalMask = []byte("null") + } + } + { + { + s.ServerDescription.SetFake() + } + } + { + { + s.Tag.SetFake() + } + } + { + { + s.IsHidden.SetFake() + } + } + { + { + s.OverrideSniFromAddress.SetFake() + } + } + { + { + s.KeepSniBlank.SetFake() + } + } + { + { + s.VlessRouteId.SetFake() + } + } + { + { + s.AllowInsecure.SetFake() + } + } + { + { + s.ShuffleHost.SetFake() + } + } + { + { + s.MihomoX25519.SetFake() + } + } + { + { + s.Nodes = nil + for i := 0; i < 0; i++ { + var elem uuid.UUID + { + elem = uuid.New() + } + s.Nodes = append(s.Nodes, elem) + } + } + } + { + { + s.XrayJsonTemplateUuid.SetFake() + } + } + { + { + s.ExcludedInternalSquads = nil + for i := 0; i < 0; i++ { + var elem uuid.UUID + { + elem = uuid.New() + } + s.ExcludedInternalSquads = append(s.ExcludedInternalSquads, elem) + } + } + } + { + { + s.ExcludeFromSubscriptionTypes = nil + for i := 0; i < 0; i++ { + var elem UpdateHostRequestExcludeFromSubscriptionTypesItem + { + elem.SetFake() + } + s.ExcludeFromSubscriptionTypes = append(s.ExcludeFromSubscriptionTypes, elem) + } + } + } +} + +// SetFake set fake values. +func (s *UpdateHostRequestAlpn) SetFake() { + *s = UpdateHostRequestAlpnH3 +} + +// SetFake set fake values. +func (s *UpdateHostRequestExcludeFromSubscriptionTypesItem) SetFake() { + *s = UpdateHostRequestExcludeFromSubscriptionTypesItemXRAYJSON +} + +// SetFake set fake values. +func (s *UpdateHostRequestFingerprint) SetFake() { + *s = UpdateHostRequestFingerprintChrome +} + +// SetFake set fake values. +func (s *UpdateHostRequestSecurityLayer) SetFake() { + *s = UpdateHostRequestSecurityLayerDEFAULT +} + +// SetFake set fake values. +func (s *UpdateInfraBillingNodeRequest) SetFake() { + { + { + s.Uuids = nil + for i := 0; i < 0; i++ { + var elem uuid.UUID + { + elem = uuid.New() + } + s.Uuids = append(s.Uuids, elem) + } + } + } + { + { + s.NextBillingAt = time.Now() + } + } +} + +// SetFake set fake values. +func (s *UpdateInfraProviderRequest) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.Name.SetFake() + } + } + { + { + s.FaviconLink.SetFake() + } + } + { + { + s.LoginUrl.SetFake() + } + } +} + +// SetFake set fake values. +func (s *UpdateInternalSquadRequest) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.Name.SetFake() + } + } + { + { + s.Inbounds = nil + for i := 0; i < 0; i++ { + var elem uuid.UUID + { + elem = uuid.New() + } + s.Inbounds = append(s.Inbounds, elem) + } + } + } +} + +// SetFake set fake values. +func (s *UpdateNodePluginRequest) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.Name.SetFake() + } + } + { + { + s.PluginConfig = []byte("null") + } + } +} + +// SetFake set fake values. +func (s *UpdateNodeRequest) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.Name.SetFake() + } + } + { + { + s.Address.SetFake() + } + } + { + { + s.Port.SetFake() + } + } + { + { + s.IsTrafficTrackingActive.SetFake() + } + } + { + { + s.TrafficLimitBytes.SetFake() + } + } + { + { + s.NotifyPercent.SetFake() + } + } + { + { + s.TrafficResetDay.SetFake() + } + } + { + { + s.CountryCode.SetFake() + } + } + { + { + s.ConsumptionMultiplier.SetFake() + } + } + { + { + s.ConfigProfile.SetFake() + } + } + { + { + s.ProviderUuid.SetFake() + } + } + { + { + s.Tags = nil + for i := 0; i < 0; i++ { + var elem string + { + elem = "string" + } + s.Tags = append(s.Tags, elem) + } + } + } + { + { + s.ActivePluginUuid.SetFake() + } + } +} + +// SetFake set fake values. +func (s *UpdatePasskeyRequest) SetFake() { + { + { + s.ID = "string" + } + } + { + { + s.Name = "string" + } + } +} + +// SetFake set fake values. +func (s *UpdateRemnawaveSettingsRequest) SetFake() { + { + { + s.PasskeySettings.SetFake() + } + } + { + { + s.Oauth2Settings.SetFake() + } + } + { + { + s.PasswordSettings.SetFake() + } + } + { + { + s.BrandingSettings.SetFake() + } + } +} + +// SetFake set fake values. +func (s *UpdateSubscriptionPageConfigRequest) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.Name.SetFake() + } + } + { + { + s.Config = []byte("null") + } + } +} + +// SetFake set fake values. +func (s *UpdateSubscriptionSettingsRequest) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.ProfileTitle.SetFake() + } + } + { + { + s.SupportLink.SetFake() + } + } + { + { + s.ProfileUpdateInterval.SetFake() + } + } + { + { + s.IsProfileWebpageUrlEnabled.SetFake() + } + } + { + { + s.ServeJsonAtBaseSubscription.SetFake() + } + } + { + { + s.HappAnnounce.SetFake() + } + } + { + { + s.HappRouting.SetFake() + } + } + { + { + s.IsShowCustomRemarks.SetFake() + } + } + { + { + s.CustomRemarks.SetFake() + } + } + { + { + s.CustomResponseHeaders.SetFake() + } + } + { + { + s.RandomizeHosts.SetFake() + } + } + { + { + s.ResponseRules.SetFake() + } + } + { + { + s.HwidSettings.SetFake() + } + } +} + +// SetFake set fake values. +func (s *UpdateSubscriptionSettingsRequestCustomResponseHeaders) SetFake() { + var ( + elem string + m map[string]string = s.init() + ) + for i := 0; i < 0; i++ { + m[fmt.Sprintf("fake%d", i)] = elem + } +} + +// SetFake set fake values. +func (s *UpdateTemplateRequest) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.Name.SetFake() + } + } + { + { // Keep pointer nil to prevent infinite recursion. + s.TemplateJson = nil + } + } + { + { + s.EncodedTemplateYaml.SetFake() + } + } +} + +// SetFake set fake values. +func (s *UpdateTemplateRequestTemplateJson) SetFake() { +} + +// SetFake set fake values. +func (s *UpdateUserRequest) SetFake() { + { + { + s.Username.SetFake() + } + } + { + { + s.UUID.SetFake() + } + } + { + { + s.Status.SetFake() + } + } + { + { + s.TrafficLimitBytes.SetFake() + } + } + { + { + s.TrafficLimitStrategy.SetFake() + } + } + { + { + s.ExpireAt.SetFake() + } + } + { + { + s.Description.SetFake() + } + } + { + { + s.Tag.SetFake() + } + } + { + { + s.TelegramId.SetFake() + } + } + { + { + s.Email.SetFake() + } + } + { + { + s.HwidDeviceLimit.SetFake() + } + } + { + { + s.ActiveInternalSquads = nil + for i := 0; i < 0; i++ { + var elem uuid.UUID + { + elem = uuid.New() + } + s.ActiveInternalSquads = append(s.ActiveInternalSquads, elem) + } + } + } + { + { + s.ExternalSquadUuid.SetFake() + } + } +} + +// SetFake set fake values. +func (s *UpdateUserRequestStatus) SetFake() { + *s = UpdateUserRequestStatusACTIVE +} + +// SetFake set fake values. +func (s *UpdateUserRequestTrafficLimitStrategy) SetFake() { + *s = UpdateUserRequestTrafficLimitStrategyNORESET +} + +// SetFake set fake values. +func (s *UpsertUserMetadataRequestBodyRequest) SetFake() { + { + { + s.Metadata.SetFake() + } + } +} + +// SetFake set fake values. +func (s *UpsertUserMetadataRequestBodyRequestMetadata) SetFake() { +} + +// SetFake set fake values. +func (s *UserItem2) SetFake() { + { + { + s.ShortUuid = "string" + } + } + { + { + s.DaysLeft = float64(0) + } + } + { + { + s.TrafficUsed = "string" + } + } + { + { + s.TrafficLimit = "string" + } + } + { + { + s.LifetimeTrafficUsed = "string" + } + } + { + { + s.TrafficUsedBytes = "string" + } + } + { + { + s.TrafficLimitBytes = "string" + } + } + { + { + s.LifetimeTrafficUsedBytes = "string" + } + } + { + { + s.Username = "string" + } + } + { + { + s.ExpiresAt = time.Now() + } + } + { + { + s.IsActive = true + } + } + { + { + s.UserStatus.SetFake() + } + } + { + { + s.TrafficLimitStrategy.SetFake() + } + } +} + +// SetFake set fake values. +func (s *UserItem2TrafficLimitStrategy) SetFake() { + *s = UserItem2TrafficLimitStrategyNORESET +} + +// SetFake set fake values. +func (s *UserItem2UserStatus) SetFake() { + *s = UserItem2UserStatusACTIVE +} + +// SetFake set fake values. +func (s *UserItemInfo) SetFake() { + { + { + s.UUID = uuid.New() + } + } + { + { + s.ID = float64(0) + } + } + { + { + s.ShortUuid = "string" + } + } + { + { + s.Username = "string" + } + } + { + { + s.Status.SetFake() + } + } + { + { + s.TrafficLimitBytes.SetFake() + } + } + { + { + s.TrafficLimitStrategy.SetFake() + } + } + { + { + s.ExpireAt = time.Now() + } + } + { + { + s.TelegramId.SetFake() + } + } + { + { + s.Email.SetFake() + } + } + { + { + s.Description.SetFake() + } + } + { + { + s.Tag.SetFake() + } + } + { + { + s.HwidDeviceLimit.SetFake() + } + } + { + { + s.ExternalSquadUuid.SetFake() + } + } + { + { + s.TrojanPassword = "string" + } + } + { + { + s.VlessUuid = uuid.New() + } + } + { + { + s.SsPassword = "string" + } + } + { + { + s.LastTriggeredThreshold.SetFake() + } + } + { + { + s.SubRevokedAt.SetFake() + } + } + { + { + s.LastTrafficResetAt.SetFake() + } + } + { + { + s.CreatedAt = time.Now() + } + } + { + { + s.UpdatedAt = time.Now() + } + } + { + { + s.SubscriptionUrl = "string" + } + } + { + { + s.ActiveInternalSquads = nil + for i := 0; i < 0; i++ { + var elem ActiveInternalSquad + { + elem.SetFake() + } + s.ActiveInternalSquads = append(s.ActiveInternalSquads, elem) + } + } + } + { + { + s.UserTraffic.SetFake() + } + } +} + +// SetFake set fake values. +func (s *UserItemInfoStatus) SetFake() { + *s = UserItemInfoStatusACTIVE +} + +// SetFake set fake values. +func (s *UserItemInfoTrafficLimitStrategy) SetFake() { + *s = UserItemInfoTrafficLimitStrategyNORESET +} + +// SetFake set fake values. +func (s *UserMetadataResponseResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *UserMetadataResponseResponseResponse) SetFake() { + { + { + s.Metadata.SetFake() + } + } +} + +// SetFake set fake values. +func (s *UserMetadataResponseResponseResponseMetadata) SetFake() { +} + +// SetFake set fake values. +func (s *UserResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *UserSubscriptionHistory) SetFake() { + { + { + s.Total = float64(0) + } + } + { + { + s.Records = nil + for i := 0; i < 0; i++ { + var elem Record + { + elem.SetFake() + } + s.Records = append(s.Records, elem) + } + } + } +} + +// SetFake set fake values. +func (s *UserTrafficItem) SetFake() { + { + { + s.UsedTrafficBytes = float64(0) + } + } + { + { + s.LifetimeUsedTrafficBytes = float64(0) + } + } + { + { + s.OnlineAt.SetFake() + } + } + { + { + s.FirstConnectedAt.SetFake() + } + } + { + { + s.LastConnectedNodeUuid.SetFake() + } + } +} + +// SetFake set fake values. +func (s *UsersResponse) SetFake() { + { + { + s.Response = nil + for i := 0; i < 0; i++ { + var elem UserItemInfo + { + elem.SetFake() + } + s.Response = append(s.Response, elem) + } + } + } +} + +// SetFake set fake values. +func (s *ValidationError) SetFake() { + { + { + s.Validation = "string" + } + } + { + { + s.Code = "string" + } + } + { + { + s.Message = "string" + } + } + { + { + s.Path = nil + for i := 0; i < 0; i++ { + var elem string + { + elem = "string" + } + s.Path = append(s.Path, elem) + } + } + } +} + +// SetFake set fake values. +func (s *VerifyPasskeyRegistrationResponse) SetFake() { + { + { + s.Response.SetFake() + } + } +} + +// SetFake set fake values. +func (s *VerifyPasskeyRegistrationResponseResponse) SetFake() { + { + { + s.Verified = true + } + } +} + +// SetFake set fake values. +func (s *Version) SetFake() { + { + { + s.Xray = "string" + } + } + { + { + s.Node = "string" + } + } +} + +// SetFake set fake values. +func (s *XrayReportItem) SetFake() { + { + { + s.Email.SetFake() + } + } + { + { + s.Level.SetFake() + } + } + { + { + s.Protocol.SetFake() + } + } + { + { + s.Network = "string" + } + } + { + { + s.Source.SetFake() + } + } + { + { + s.Destination = "string" + } + } + { + { + s.RouteTarget.SetFake() + } + } + { + { + s.OriginalTarget.SetFake() + } + } + { + { + s.InboundTag.SetFake() + } + } + { + { + s.InboundName.SetFake() + } + } + { + { + s.InboundLocal.SetFake() + } + } + { + { + s.OutboundTag.SetFake() + } + } + { + { + s.Ts = float64(0) + } + } +} diff --git a/api/oas_interfaces_gen.go b/api/oas_interfaces_gen.go new file mode 100644 index 0000000..5820b89 --- /dev/null +++ b/api/oas_interfaces_gen.go @@ -0,0 +1,734 @@ +// Code generated by ogen, DO NOT EDIT. +package api + +type ApiTokensCreateRes interface { + apiTokensCreateRes() +} + +type ApiTokensDeleteRes interface { + apiTokensDeleteRes() +} + +type ApiTokensFindAllRes interface { + apiTokensFindAllRes() +} + +type AuthGetStatusRes interface { + authGetStatusRes() +} + +type AuthLoginRes interface { + authLoginRes() +} + +type AuthOauth2AuthorizeRes interface { + authOauth2AuthorizeRes() +} + +type AuthOauth2CallbackRes interface { + authOauth2CallbackRes() +} + +type AuthPasskeyAuthenticationOptionsRes interface { + authPasskeyAuthenticationOptionsRes() +} + +type AuthPasskeyAuthenticationVerifyRes interface { + authPasskeyAuthenticationVerifyRes() +} + +type AuthRegisterRes interface { + authRegisterRes() +} + +type BandwidthStatsNodesGetNodeUserUsageRes interface { + bandwidthStatsNodesGetNodeUserUsageRes() +} + +type BandwidthStatsNodesGetStatsNodeUsersUsageRes interface { + bandwidthStatsNodesGetStatsNodeUsersUsageRes() +} + +type BandwidthStatsUsersGetStatsNodesUsageRes interface { + bandwidthStatsUsersGetStatsNodesUsageRes() +} + +type BandwidthStatsUsersGetUserUsageByRangeRes interface { + bandwidthStatsUsersGetUserUsageByRangeRes() +} + +type ConfigProfileCreateConfigProfileRes interface { + configProfileCreateConfigProfileRes() +} + +type ConfigProfileDeleteConfigProfileByUuidRes interface { + configProfileDeleteConfigProfileByUuidRes() +} + +type ConfigProfileGetAllInboundsRes interface { + configProfileGetAllInboundsRes() +} + +type ConfigProfileGetComputedConfigProfileByUuidRes interface { + configProfileGetComputedConfigProfileByUuidRes() +} + +type ConfigProfileGetConfigProfileByUuidRes interface { + configProfileGetConfigProfileByUuidRes() +} + +type ConfigProfileGetConfigProfilesRes interface { + configProfileGetConfigProfilesRes() +} + +type ConfigProfileGetInboundsByProfileUuidRes interface { + configProfileGetInboundsByProfileUuidRes() +} + +type ConfigProfileReorderConfigProfilesRes interface { + configProfileReorderConfigProfilesRes() +} + +type ConfigProfileUpdateConfigProfileRes interface { + configProfileUpdateConfigProfileRes() +} + +type ExternalSquadAddUsersToExternalSquadRes interface { + externalSquadAddUsersToExternalSquadRes() +} + +type ExternalSquadCreateExternalSquadRes interface { + externalSquadCreateExternalSquadRes() +} + +type ExternalSquadDeleteExternalSquadRes interface { + externalSquadDeleteExternalSquadRes() +} + +type ExternalSquadGetExternalSquadByUuidRes interface { + externalSquadGetExternalSquadByUuidRes() +} + +type ExternalSquadGetExternalSquadsRes interface { + externalSquadGetExternalSquadsRes() +} + +type ExternalSquadRemoveUsersFromExternalSquadRes interface { + externalSquadRemoveUsersFromExternalSquadRes() +} + +type ExternalSquadReorderExternalSquadsRes interface { + externalSquadReorderExternalSquadsRes() +} + +type ExternalSquadUpdateExternalSquadRes interface { + externalSquadUpdateExternalSquadRes() +} + +type HostsBulkActionsDeleteHostsRes interface { + hostsBulkActionsDeleteHostsRes() +} + +type HostsBulkActionsDisableHostsRes interface { + hostsBulkActionsDisableHostsRes() +} + +type HostsBulkActionsEnableHostsRes interface { + hostsBulkActionsEnableHostsRes() +} + +type HostsBulkActionsSetInboundToHostsRes interface { + hostsBulkActionsSetInboundToHostsRes() +} + +type HostsBulkActionsSetPortToHostsRes interface { + hostsBulkActionsSetPortToHostsRes() +} + +type HostsCreateHostRes interface { + hostsCreateHostRes() +} + +type HostsDeleteHostRes interface { + hostsDeleteHostRes() +} + +type HostsGetAllHostTagsRes interface { + hostsGetAllHostTagsRes() +} + +type HostsGetAllHostsRes interface { + hostsGetAllHostsRes() +} + +type HostsGetOneHostRes interface { + hostsGetOneHostRes() +} + +type HostsReorderHostsRes interface { + hostsReorderHostsRes() +} + +type HostsUpdateHostRes interface { + hostsUpdateHostRes() +} + +type HwidUserDevicesCreateUserHwidDeviceRes interface { + hwidUserDevicesCreateUserHwidDeviceRes() +} + +type HwidUserDevicesDeleteAllUserHwidDevicesRes interface { + hwidUserDevicesDeleteAllUserHwidDevicesRes() +} + +type HwidUserDevicesDeleteUserHwidDeviceRes interface { + hwidUserDevicesDeleteUserHwidDeviceRes() +} + +type HwidUserDevicesGetAllUsersRes interface { + hwidUserDevicesGetAllUsersRes() +} + +type HwidUserDevicesGetHwidDevicesStatsRes interface { + hwidUserDevicesGetHwidDevicesStatsRes() +} + +type HwidUserDevicesGetTopUsersByHwidDevicesRes interface { + hwidUserDevicesGetTopUsersByHwidDevicesRes() +} + +type HwidUserDevicesGetUserHwidDevicesRes interface { + hwidUserDevicesGetUserHwidDevicesRes() +} + +type InfraBillingCreateInfraBillingHistoryRecordRes interface { + infraBillingCreateInfraBillingHistoryRecordRes() +} + +type InfraBillingCreateInfraBillingNodeRes interface { + infraBillingCreateInfraBillingNodeRes() +} + +type InfraBillingCreateInfraProviderRes interface { + infraBillingCreateInfraProviderRes() +} + +type InfraBillingDeleteInfraBillingHistoryRecordByUuidRes interface { + infraBillingDeleteInfraBillingHistoryRecordByUuidRes() +} + +type InfraBillingDeleteInfraBillingNodeByUuidRes interface { + infraBillingDeleteInfraBillingNodeByUuidRes() +} + +type InfraBillingDeleteInfraProviderByUuidRes interface { + infraBillingDeleteInfraProviderByUuidRes() +} + +type InfraBillingGetBillingNodesRes interface { + infraBillingGetBillingNodesRes() +} + +type InfraBillingGetInfraBillingHistoryRecordsRes interface { + infraBillingGetInfraBillingHistoryRecordsRes() +} + +type InfraBillingGetInfraProviderByUuidRes interface { + infraBillingGetInfraProviderByUuidRes() +} + +type InfraBillingGetInfraProvidersRes interface { + infraBillingGetInfraProvidersRes() +} + +type InfraBillingUpdateInfraBillingNodeRes interface { + infraBillingUpdateInfraBillingNodeRes() +} + +type InfraBillingUpdateInfraProviderRes interface { + infraBillingUpdateInfraProviderRes() +} + +type InternalSquadAddUsersToInternalSquadRes interface { + internalSquadAddUsersToInternalSquadRes() +} + +type InternalSquadCreateInternalSquadRes interface { + internalSquadCreateInternalSquadRes() +} + +type InternalSquadDeleteInternalSquadRes interface { + internalSquadDeleteInternalSquadRes() +} + +type InternalSquadGetInternalSquadAccessibleNodesRes interface { + internalSquadGetInternalSquadAccessibleNodesRes() +} + +type InternalSquadGetInternalSquadByUuidRes interface { + internalSquadGetInternalSquadByUuidRes() +} + +type InternalSquadGetInternalSquadsRes interface { + internalSquadGetInternalSquadsRes() +} + +type InternalSquadRemoveUsersFromInternalSquadRes interface { + internalSquadRemoveUsersFromInternalSquadRes() +} + +type InternalSquadReorderInternalSquadsRes interface { + internalSquadReorderInternalSquadsRes() +} + +type InternalSquadUpdateInternalSquadRes interface { + internalSquadUpdateInternalSquadRes() +} + +type IpControlDropConnectionsRes interface { + ipControlDropConnectionsRes() +} + +type IpControlFetchUserIpsRes interface { + ipControlFetchUserIpsRes() +} + +type IpControlFetchUsersIpsRes interface { + ipControlFetchUsersIpsRes() +} + +type IpControlGetFetchIpsResultRes interface { + ipControlGetFetchIpsResultRes() +} + +type IpControlGetFetchUsersIpsResultRes interface { + ipControlGetFetchUsersIpsResultRes() +} + +type KeygenGenerateKeyRes interface { + keygenGenerateKeyRes() +} + +type MetadataGetNodeMetadataRes interface { + metadataGetNodeMetadataRes() +} + +type MetadataGetUserMetadataRes interface { + metadataGetUserMetadataRes() +} + +type MetadataUpsertNodeMetadataRes interface { + metadataUpsertNodeMetadataRes() +} + +type MetadataUpsertUserMetadataRes interface { + metadataUpsertUserMetadataRes() +} + +type NodePluginCloneNodePluginRes interface { + nodePluginCloneNodePluginRes() +} + +type NodePluginCreateConfigRes interface { + nodePluginCreateConfigRes() +} + +type NodePluginDeleteConfigRes interface { + nodePluginDeleteConfigRes() +} + +type NodePluginGetAllConfigsRes interface { + nodePluginGetAllConfigsRes() +} + +type NodePluginGetConfigByUuidRes interface { + nodePluginGetConfigByUuidRes() +} + +type NodePluginPluginExecutorRes interface { + nodePluginPluginExecutorRes() +} + +type NodePluginReorderNodePluginsRes interface { + nodePluginReorderNodePluginsRes() +} + +type NodePluginUpdateConfigRes interface { + nodePluginUpdateConfigRes() +} + +type NodesBulkNodesActionsRes interface { + nodesBulkNodesActionsRes() +} + +type NodesBulkNodesUpdateRes interface { + nodesBulkNodesUpdateRes() +} + +type NodesCreateNodeRes interface { + nodesCreateNodeRes() +} + +type NodesDeleteNodeRes interface { + nodesDeleteNodeRes() +} + +type NodesDisableNodeRes interface { + nodesDisableNodeRes() +} + +type NodesEnableNodeRes interface { + nodesEnableNodeRes() +} + +type NodesGetAllNodesRes interface { + nodesGetAllNodesRes() +} + +type NodesGetAllNodesTagsRes interface { + nodesGetAllNodesTagsRes() +} + +type NodesGetOneNodeRes interface { + nodesGetOneNodeRes() +} + +type NodesProfileModificationRes interface { + nodesProfileModificationRes() +} + +type NodesReorderNodesRes interface { + nodesReorderNodesRes() +} + +type NodesResetNodeTrafficRes interface { + nodesResetNodeTrafficRes() +} + +type NodesRestartAllNodesRes interface { + nodesRestartAllNodesRes() +} + +type NodesRestartNodeRes interface { + nodesRestartNodeRes() +} + +type NodesUpdateNodeRes interface { + nodesUpdateNodeRes() +} + +type NodesUsageHistoryGetStatsNodesUsageRes interface { + nodesUsageHistoryGetStatsNodesUsageRes() +} + +type PasskeyDeletePasskeyRes interface { + passkeyDeletePasskeyRes() +} + +type PasskeyGetActivePasskeysRes interface { + passkeyGetActivePasskeysRes() +} + +type PasskeyPasskeyRegistrationOptionsRes interface { + passkeyPasskeyRegistrationOptionsRes() +} + +type PasskeyPasskeyRegistrationVerifyRes interface { + passkeyPasskeyRegistrationVerifyRes() +} + +type PasskeyUpdatePasskeyRes interface { + passkeyUpdatePasskeyRes() +} + +type RemnawaveSettingsGetSettingsRes interface { + remnawaveSettingsGetSettingsRes() +} + +type RemnawaveSettingsUpdateSettingsRes interface { + remnawaveSettingsUpdateSettingsRes() +} + +type SnippetsCreateSnippetRes interface { + snippetsCreateSnippetRes() +} + +type SnippetsDeleteSnippetByNameRes interface { + snippetsDeleteSnippetByNameRes() +} + +type SnippetsGetSnippetsRes interface { + snippetsGetSnippetsRes() +} + +type SnippetsUpdateSnippetRes interface { + snippetsUpdateSnippetRes() +} + +type SubscriptionGetSubscriptionInfoByShortUuidRes interface { + subscriptionGetSubscriptionInfoByShortUuidRes() +} + +type SubscriptionPageConfigCloneSubscriptionPageConfigRes interface { + subscriptionPageConfigCloneSubscriptionPageConfigRes() +} + +type SubscriptionPageConfigCreateConfigRes interface { + subscriptionPageConfigCreateConfigRes() +} + +type SubscriptionPageConfigDeleteConfigRes interface { + subscriptionPageConfigDeleteConfigRes() +} + +type SubscriptionPageConfigGetAllConfigsRes interface { + subscriptionPageConfigGetAllConfigsRes() +} + +type SubscriptionPageConfigGetConfigByUuidRes interface { + subscriptionPageConfigGetConfigByUuidRes() +} + +type SubscriptionPageConfigReorderSubscriptionPageConfigsRes interface { + subscriptionPageConfigReorderSubscriptionPageConfigsRes() +} + +type SubscriptionPageConfigUpdateConfigRes interface { + subscriptionPageConfigUpdateConfigRes() +} + +type SubscriptionSettingsGetSettingsRes interface { + subscriptionSettingsGetSettingsRes() +} + +type SubscriptionSettingsUpdateSettingsRes interface { + subscriptionSettingsUpdateSettingsRes() +} + +type SubscriptionTemplateCreateTemplateRes interface { + subscriptionTemplateCreateTemplateRes() +} + +type SubscriptionTemplateDeleteTemplateRes interface { + subscriptionTemplateDeleteTemplateRes() +} + +type SubscriptionTemplateGetAllTemplatesRes interface { + subscriptionTemplateGetAllTemplatesRes() +} + +type SubscriptionTemplateGetTemplateByUuidRes interface { + subscriptionTemplateGetTemplateByUuidRes() +} + +type SubscriptionTemplateReorderSubscriptionTemplatesRes interface { + subscriptionTemplateReorderSubscriptionTemplatesRes() +} + +type SubscriptionTemplateUpdateTemplateRes interface { + subscriptionTemplateUpdateTemplateRes() +} + +type SubscriptionsGetAllSubscriptionsRes interface { + subscriptionsGetAllSubscriptionsRes() +} + +type SubscriptionsGetConnectionKeysByUuidRes interface { + subscriptionsGetConnectionKeysByUuidRes() +} + +type SubscriptionsGetRawSubscriptionByShortUuidRes interface { + subscriptionsGetRawSubscriptionByShortUuidRes() +} + +type SubscriptionsGetSubpageConfigByShortUuidRes interface { + subscriptionsGetSubpageConfigByShortUuidRes() +} + +type SubscriptionsGetSubscriptionByShortUuidProtectedRes interface { + subscriptionsGetSubscriptionByShortUuidProtectedRes() +} + +type SubscriptionsGetSubscriptionByUsernameRes interface { + subscriptionsGetSubscriptionByUsernameRes() +} + +type SubscriptionsGetSubscriptionByUuidRes interface { + subscriptionsGetSubscriptionByUuidRes() +} + +type SystemDebugSrrMatcherRes interface { + systemDebugSrrMatcherRes() +} + +type SystemEncryptHappCryptoLinkRes interface { + systemEncryptHappCryptoLinkRes() +} + +type SystemGetBandwidthStatsRes interface { + systemGetBandwidthStatsRes() +} + +type SystemGetMetadataRes interface { + systemGetMetadataRes() +} + +type SystemGetNodesMetricsRes interface { + systemGetNodesMetricsRes() +} + +type SystemGetNodesStatisticsRes interface { + systemGetNodesStatisticsRes() +} + +type SystemGetRecapRes interface { + systemGetRecapRes() +} + +type SystemGetRemnawaveHealthRes interface { + systemGetRemnawaveHealthRes() +} + +type SystemGetStatsRes interface { + systemGetStatsRes() +} + +type SystemGetX25519KeypairsRes interface { + systemGetX25519KeypairsRes() +} + +type TorrentBlockerReportsGetTorrentBlockerReportsRes interface { + torrentBlockerReportsGetTorrentBlockerReportsRes() +} + +type TorrentBlockerReportsGetTorrentBlockerReportsStatsRes interface { + torrentBlockerReportsGetTorrentBlockerReportsStatsRes() +} + +type TorrentBlockerReportsTruncateTorrentBlockerReportsRes interface { + torrentBlockerReportsTruncateTorrentBlockerReportsRes() +} + +type UserSubscriptionRequestHistoryGetSubscriptionRequestHistoryRes interface { + userSubscriptionRequestHistoryGetSubscriptionRequestHistoryRes() +} + +type UserSubscriptionRequestHistoryGetSubscriptionRequestHistoryStatsRes interface { + userSubscriptionRequestHistoryGetSubscriptionRequestHistoryStatsRes() +} + +type UsersBulkActionsBulkAllExtendExpirationDateRes interface { + usersBulkActionsBulkAllExtendExpirationDateRes() +} + +type UsersBulkActionsBulkAllResetUserTrafficRes interface { + usersBulkActionsBulkAllResetUserTrafficRes() +} + +type UsersBulkActionsBulkDeleteUsersByStatusRes interface { + usersBulkActionsBulkDeleteUsersByStatusRes() +} + +type UsersBulkActionsBulkDeleteUsersRes interface { + usersBulkActionsBulkDeleteUsersRes() +} + +type UsersBulkActionsBulkExtendExpirationDateRes interface { + usersBulkActionsBulkExtendExpirationDateRes() +} + +type UsersBulkActionsBulkResetUserTrafficRes interface { + usersBulkActionsBulkResetUserTrafficRes() +} + +type UsersBulkActionsBulkRevokeUsersSubscriptionRes interface { + usersBulkActionsBulkRevokeUsersSubscriptionRes() +} + +type UsersBulkActionsBulkUpdateAllUsersRes interface { + usersBulkActionsBulkUpdateAllUsersRes() +} + +type UsersBulkActionsBulkUpdateUsersInternalSquadsRes interface { + usersBulkActionsBulkUpdateUsersInternalSquadsRes() +} + +type UsersBulkActionsBulkUpdateUsersRes interface { + usersBulkActionsBulkUpdateUsersRes() +} + +type UsersCreateUserRes interface { + usersCreateUserRes() +} + +type UsersDeleteUserRes interface { + usersDeleteUserRes() +} + +type UsersDisableUserRes interface { + usersDisableUserRes() +} + +type UsersEnableUserRes interface { + usersEnableUserRes() +} + +type UsersGetAllTagsRes interface { + usersGetAllTagsRes() +} + +type UsersGetAllUsersRes interface { + usersGetAllUsersRes() +} + +type UsersGetUserAccessibleNodesRes interface { + usersGetUserAccessibleNodesRes() +} + +type UsersGetUserByIdRes interface { + usersGetUserByIdRes() +} + +type UsersGetUserByShortUuidRes interface { + usersGetUserByShortUuidRes() +} + +type UsersGetUserByTelegramIdRes interface { + usersGetUserByTelegramIdRes() +} + +type UsersGetUserByUsernameRes interface { + usersGetUserByUsernameRes() +} + +type UsersGetUserByUuidRes interface { + usersGetUserByUuidRes() +} + +type UsersGetUserSubscriptionRequestHistoryRes interface { + usersGetUserSubscriptionRequestHistoryRes() +} + +type UsersGetUsersByEmailRes interface { + usersGetUsersByEmailRes() +} + +type UsersGetUsersByTagRes interface { + usersGetUsersByTagRes() +} + +type UsersResetUserTrafficRes interface { + usersResetUserTrafficRes() +} + +type UsersResolveUserRes interface { + usersResolveUserRes() +} + +type UsersRevokeUserSubscriptionRes interface { + usersRevokeUserSubscriptionRes() +} + +type UsersUpdateUserRes interface { + usersUpdateUserRes() +} diff --git a/api/oas_json_gen.go b/api/oas_json_gen.go new file mode 100644 index 0000000..88f9832 --- /dev/null +++ b/api/oas_json_gen.go @@ -0,0 +1,55870 @@ +// Code generated by ogen, DO NOT EDIT. + +package api + +import ( + "math/bits" + "net/url" + "strconv" + "time" + + "github.com/go-faster/errors" + "github.com/go-faster/jx" + "github.com/google/uuid" + "github.com/ogen-go/ogen/json" + "github.com/ogen-go/ogen/validate" +) + +// Encode implements json.Marshaler. +func (s *ActionReportItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *ActionReportItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("blocked") + e.Bool(s.Blocked) + } + { + e.FieldStart("ip") + e.Str(s.IP) + } + { + e.FieldStart("blockDuration") + e.Float64(s.BlockDuration) + } + { + e.FieldStart("willUnblockAt") + json.EncodeDateTime(e, s.WillUnblockAt) + } + { + e.FieldStart("userId") + e.Str(s.UserId) + } + { + e.FieldStart("processedAt") + json.EncodeDateTime(e, s.ProcessedAt) + } +} + +var jsonFieldsNameOfActionReportItem = [6]string{ + 0: "blocked", + 1: "ip", + 2: "blockDuration", + 3: "willUnblockAt", + 4: "userId", + 5: "processedAt", +} + +// Decode decodes ActionReportItem from json. +func (s *ActionReportItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ActionReportItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "blocked": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Bool() + s.Blocked = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"blocked\"") + } + case "ip": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.IP = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"ip\"") + } + case "blockDuration": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Float64() + s.BlockDuration = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"blockDuration\"") + } + case "willUnblockAt": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.WillUnblockAt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"willUnblockAt\"") + } + case "userId": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + v, err := d.Str() + s.UserId = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"userId\"") + } + case "processedAt": + requiredBitSet[0] |= 1 << 5 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.ProcessedAt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"processedAt\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode ActionReportItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00111111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfActionReportItem) { + name = jsonFieldsNameOfActionReportItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *ActionReportItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ActionReportItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *ActiveInternalSquad) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *ActiveInternalSquad) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + e.FieldStart("name") + e.Str(s.Name) + } +} + +var jsonFieldsNameOfActiveInternalSquad = [2]string{ + 0: "uuid", + 1: "name", +} + +// Decode decodes ActiveInternalSquad from json. +func (s *ActiveInternalSquad) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ActiveInternalSquad to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "name": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode ActiveInternalSquad") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfActiveInternalSquad) { + name = jsonFieldsNameOfActiveInternalSquad[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *ActiveInternalSquad) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ActiveInternalSquad) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *AllHwidDevices) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *AllHwidDevices) encodeFields(e *jx.Encoder) { + { + e.FieldStart("devices") + e.ArrStart() + for _, elem := range s.Devices { + elem.Encode(e) + } + e.ArrEnd() + } + { + e.FieldStart("total") + e.Float64(s.Total) + } +} + +var jsonFieldsNameOfAllHwidDevices = [2]string{ + 0: "devices", + 1: "total", +} + +// Decode decodes AllHwidDevices from json. +func (s *AllHwidDevices) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode AllHwidDevices to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "devices": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.Devices = make([]Device, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem Device + if err := elem.Decode(d); err != nil { + return err + } + s.Devices = append(s.Devices, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"devices\"") + } + case "total": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Float64() + s.Total = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"total\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode AllHwidDevices") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfAllHwidDevices) { + name = jsonFieldsNameOfAllHwidDevices[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *AllHwidDevices) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *AllHwidDevices) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *BadRequestError) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *BadRequestError) encodeFields(e *jx.Encoder) { + { + e.FieldStart("message") + e.Str(s.Message) + } + { + e.FieldStart("statusCode") + e.Float64(s.StatusCode) + } + { + e.FieldStart("errors") + e.ArrStart() + for _, elem := range s.Errors { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfBadRequestError = [3]string{ + 0: "message", + 1: "statusCode", + 2: "errors", +} + +// Decode decodes BadRequestError from json. +func (s *BadRequestError) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode BadRequestError to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "message": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Message = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"message\"") + } + case "statusCode": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Float64() + s.StatusCode = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"statusCode\"") + } + case "errors": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + s.Errors = make([]ValidationError, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem ValidationError + if err := elem.Decode(d); err != nil { + return err + } + s.Errors = append(s.Errors, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"errors\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode BadRequestError") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfBadRequestError) { + name = jsonFieldsNameOfBadRequestError[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *BadRequestError) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *BadRequestError) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *BandwidthLastTwoDays) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *BandwidthLastTwoDays) encodeFields(e *jx.Encoder) { + { + e.FieldStart("current") + e.Str(s.Current) + } + { + e.FieldStart("previous") + e.Str(s.Previous) + } + { + e.FieldStart("difference") + e.Str(s.Difference) + } +} + +var jsonFieldsNameOfBandwidthLastTwoDays = [3]string{ + 0: "current", + 1: "previous", + 2: "difference", +} + +// Decode decodes BandwidthLastTwoDays from json. +func (s *BandwidthLastTwoDays) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode BandwidthLastTwoDays to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "current": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Current = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"current\"") + } + case "previous": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Previous = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"previous\"") + } + case "difference": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.Difference = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"difference\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode BandwidthLastTwoDays") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfBandwidthLastTwoDays) { + name = jsonFieldsNameOfBandwidthLastTwoDays[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *BandwidthLastTwoDays) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *BandwidthLastTwoDays) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *BillingHistoryItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *BillingHistoryItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("totalAmount") + e.Float64(s.TotalAmount) + } + { + e.FieldStart("totalBills") + e.Float64(s.TotalBills) + } +} + +var jsonFieldsNameOfBillingHistoryItem = [2]string{ + 0: "totalAmount", + 1: "totalBills", +} + +// Decode decodes BillingHistoryItem from json. +func (s *BillingHistoryItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode BillingHistoryItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "totalAmount": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Float64() + s.TotalAmount = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"totalAmount\"") + } + case "totalBills": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Float64() + s.TotalBills = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"totalBills\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode BillingHistoryItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfBillingHistoryItem) { + name = jsonFieldsNameOfBillingHistoryItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *BillingHistoryItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *BillingHistoryItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *BillingHistoryResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *BillingHistoryResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfBillingHistoryResponse = [1]string{ + 0: "response", +} + +// Decode decodes BillingHistoryResponse from json. +func (s *BillingHistoryResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode BillingHistoryResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode BillingHistoryResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfBillingHistoryResponse) { + name = jsonFieldsNameOfBillingHistoryResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *BillingHistoryResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *BillingHistoryResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *BillingHistoryResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *BillingHistoryResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("records") + e.ArrStart() + for _, elem := range s.Records { + elem.Encode(e) + } + e.ArrEnd() + } + { + e.FieldStart("total") + e.Float64(s.Total) + } +} + +var jsonFieldsNameOfBillingHistoryResponseResponse = [2]string{ + 0: "records", + 1: "total", +} + +// Decode decodes BillingHistoryResponseResponse from json. +func (s *BillingHistoryResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode BillingHistoryResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "records": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.Records = make([]BillingHistoryResponseResponseRecordsItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem BillingHistoryResponseResponseRecordsItem + if err := elem.Decode(d); err != nil { + return err + } + s.Records = append(s.Records, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"records\"") + } + case "total": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Float64() + s.Total = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"total\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode BillingHistoryResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfBillingHistoryResponseResponse) { + name = jsonFieldsNameOfBillingHistoryResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *BillingHistoryResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *BillingHistoryResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *BillingHistoryResponseResponseRecordsItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *BillingHistoryResponseResponseRecordsItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + e.FieldStart("providerUuid") + json.EncodeUUID(e, s.ProviderUuid) + } + { + e.FieldStart("amount") + e.Float64(s.Amount) + } + { + e.FieldStart("billedAt") + json.EncodeDateTime(e, s.BilledAt) + } + { + e.FieldStart("provider") + s.Provider.Encode(e) + } +} + +var jsonFieldsNameOfBillingHistoryResponseResponseRecordsItem = [5]string{ + 0: "uuid", + 1: "providerUuid", + 2: "amount", + 3: "billedAt", + 4: "provider", +} + +// Decode decodes BillingHistoryResponseResponseRecordsItem from json. +func (s *BillingHistoryResponseResponseRecordsItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode BillingHistoryResponseResponseRecordsItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "providerUuid": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := json.DecodeUUID(d) + s.ProviderUuid = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"providerUuid\"") + } + case "amount": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Float64() + s.Amount = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"amount\"") + } + case "billedAt": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.BilledAt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"billedAt\"") + } + case "provider": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + if err := s.Provider.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"provider\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode BillingHistoryResponseResponseRecordsItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00011111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfBillingHistoryResponseResponseRecordsItem) { + name = jsonFieldsNameOfBillingHistoryResponseResponseRecordsItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *BillingHistoryResponseResponseRecordsItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *BillingHistoryResponseResponseRecordsItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *BillingHistoryResponseResponseRecordsItemProvider) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *BillingHistoryResponseResponseRecordsItemProvider) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + e.FieldStart("name") + e.Str(s.Name) + } + { + e.FieldStart("faviconLink") + s.FaviconLink.Encode(e) + } +} + +var jsonFieldsNameOfBillingHistoryResponseResponseRecordsItemProvider = [3]string{ + 0: "uuid", + 1: "name", + 2: "faviconLink", +} + +// Decode decodes BillingHistoryResponseResponseRecordsItemProvider from json. +func (s *BillingHistoryResponseResponseRecordsItemProvider) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode BillingHistoryResponseResponseRecordsItemProvider to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "name": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "faviconLink": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.FaviconLink.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"faviconLink\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode BillingHistoryResponseResponseRecordsItemProvider") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfBillingHistoryResponseResponseRecordsItemProvider) { + name = jsonFieldsNameOfBillingHistoryResponseResponseRecordsItemProvider[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *BillingHistoryResponseResponseRecordsItemProvider) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *BillingHistoryResponseResponseRecordsItemProvider) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *BillingNode) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *BillingNode) encodeFields(e *jx.Encoder) { + { + e.FieldStart("nodeUuid") + json.EncodeUUID(e, s.NodeUuid) + } + { + e.FieldStart("name") + e.Str(s.Name) + } + { + e.FieldStart("countryCode") + e.Str(s.CountryCode) + } +} + +var jsonFieldsNameOfBillingNode = [3]string{ + 0: "nodeUuid", + 1: "name", + 2: "countryCode", +} + +// Decode decodes BillingNode from json. +func (s *BillingNode) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode BillingNode to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "nodeUuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.NodeUuid = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"nodeUuid\"") + } + case "name": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "countryCode": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.CountryCode = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"countryCode\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode BillingNode") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfBillingNode) { + name = jsonFieldsNameOfBillingNode[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *BillingNode) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *BillingNode) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *BillingNodesResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *BillingNodesResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfBillingNodesResponse = [1]string{ + 0: "response", +} + +// Decode decodes BillingNodesResponse from json. +func (s *BillingNodesResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode BillingNodesResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode BillingNodesResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfBillingNodesResponse) { + name = jsonFieldsNameOfBillingNodesResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *BillingNodesResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *BillingNodesResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *BillingNodesResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *BillingNodesResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("totalBillingNodes") + e.Float64(s.TotalBillingNodes) + } + { + e.FieldStart("billingNodes") + e.ArrStart() + for _, elem := range s.BillingNodes { + elem.Encode(e) + } + e.ArrEnd() + } + { + e.FieldStart("availableBillingNodes") + e.ArrStart() + for _, elem := range s.AvailableBillingNodes { + elem.Encode(e) + } + e.ArrEnd() + } + { + e.FieldStart("totalAvailableBillingNodes") + e.Float64(s.TotalAvailableBillingNodes) + } + { + e.FieldStart("stats") + s.Stats.Encode(e) + } +} + +var jsonFieldsNameOfBillingNodesResponseResponse = [5]string{ + 0: "totalBillingNodes", + 1: "billingNodes", + 2: "availableBillingNodes", + 3: "totalAvailableBillingNodes", + 4: "stats", +} + +// Decode decodes BillingNodesResponseResponse from json. +func (s *BillingNodesResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode BillingNodesResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "totalBillingNodes": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Float64() + s.TotalBillingNodes = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"totalBillingNodes\"") + } + case "billingNodes": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + s.BillingNodes = make([]BillingNodesResponseResponseBillingNodesItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem BillingNodesResponseResponseBillingNodesItem + if err := elem.Decode(d); err != nil { + return err + } + s.BillingNodes = append(s.BillingNodes, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"billingNodes\"") + } + case "availableBillingNodes": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + s.AvailableBillingNodes = make([]Node, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem Node + if err := elem.Decode(d); err != nil { + return err + } + s.AvailableBillingNodes = append(s.AvailableBillingNodes, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"availableBillingNodes\"") + } + case "totalAvailableBillingNodes": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.Float64() + s.TotalAvailableBillingNodes = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"totalAvailableBillingNodes\"") + } + case "stats": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + if err := s.Stats.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"stats\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode BillingNodesResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00011111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfBillingNodesResponseResponse) { + name = jsonFieldsNameOfBillingNodesResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *BillingNodesResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *BillingNodesResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *BillingNodesResponseResponseBillingNodesItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *BillingNodesResponseResponseBillingNodesItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + e.FieldStart("nodeUuid") + json.EncodeUUID(e, s.NodeUuid) + } + { + e.FieldStart("providerUuid") + json.EncodeUUID(e, s.ProviderUuid) + } + { + e.FieldStart("provider") + s.Provider.Encode(e) + } + { + e.FieldStart("node") + s.Node.Encode(e) + } + { + e.FieldStart("nextBillingAt") + json.EncodeDateTime(e, s.NextBillingAt) + } + { + e.FieldStart("createdAt") + json.EncodeDateTime(e, s.CreatedAt) + } + { + e.FieldStart("updatedAt") + json.EncodeDateTime(e, s.UpdatedAt) + } +} + +var jsonFieldsNameOfBillingNodesResponseResponseBillingNodesItem = [8]string{ + 0: "uuid", + 1: "nodeUuid", + 2: "providerUuid", + 3: "provider", + 4: "node", + 5: "nextBillingAt", + 6: "createdAt", + 7: "updatedAt", +} + +// Decode decodes BillingNodesResponseResponseBillingNodesItem from json. +func (s *BillingNodesResponseResponseBillingNodesItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode BillingNodesResponseResponseBillingNodesItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "nodeUuid": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := json.DecodeUUID(d) + s.NodeUuid = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"nodeUuid\"") + } + case "providerUuid": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := json.DecodeUUID(d) + s.ProviderUuid = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"providerUuid\"") + } + case "provider": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + if err := s.Provider.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"provider\"") + } + case "node": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + if err := s.Node.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"node\"") + } + case "nextBillingAt": + requiredBitSet[0] |= 1 << 5 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.NextBillingAt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"nextBillingAt\"") + } + case "createdAt": + requiredBitSet[0] |= 1 << 6 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.CreatedAt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"createdAt\"") + } + case "updatedAt": + requiredBitSet[0] |= 1 << 7 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.UpdatedAt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"updatedAt\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode BillingNodesResponseResponseBillingNodesItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b11111111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfBillingNodesResponseResponseBillingNodesItem) { + name = jsonFieldsNameOfBillingNodesResponseResponseBillingNodesItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *BillingNodesResponseResponseBillingNodesItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *BillingNodesResponseResponseBillingNodesItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *BillingNodesResponseResponseBillingNodesItemProvider) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *BillingNodesResponseResponseBillingNodesItemProvider) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + e.FieldStart("name") + e.Str(s.Name) + } + { + e.FieldStart("loginUrl") + s.LoginUrl.Encode(e) + } + { + e.FieldStart("faviconLink") + s.FaviconLink.Encode(e) + } +} + +var jsonFieldsNameOfBillingNodesResponseResponseBillingNodesItemProvider = [4]string{ + 0: "uuid", + 1: "name", + 2: "loginUrl", + 3: "faviconLink", +} + +// Decode decodes BillingNodesResponseResponseBillingNodesItemProvider from json. +func (s *BillingNodesResponseResponseBillingNodesItemProvider) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode BillingNodesResponseResponseBillingNodesItemProvider to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "name": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "loginUrl": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.LoginUrl.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"loginUrl\"") + } + case "faviconLink": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + if err := s.FaviconLink.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"faviconLink\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode BillingNodesResponseResponseBillingNodesItemProvider") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00001111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfBillingNodesResponseResponseBillingNodesItemProvider) { + name = jsonFieldsNameOfBillingNodesResponseResponseBillingNodesItemProvider[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *BillingNodesResponseResponseBillingNodesItemProvider) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *BillingNodesResponseResponseBillingNodesItemProvider) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *BillingNodesResponseResponseStats) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *BillingNodesResponseResponseStats) encodeFields(e *jx.Encoder) { + { + e.FieldStart("upcomingNodesCount") + e.Float64(s.UpcomingNodesCount) + } + { + e.FieldStart("currentMonthPayments") + e.Float64(s.CurrentMonthPayments) + } + { + e.FieldStart("totalSpent") + e.Float64(s.TotalSpent) + } +} + +var jsonFieldsNameOfBillingNodesResponseResponseStats = [3]string{ + 0: "upcomingNodesCount", + 1: "currentMonthPayments", + 2: "totalSpent", +} + +// Decode decodes BillingNodesResponseResponseStats from json. +func (s *BillingNodesResponseResponseStats) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode BillingNodesResponseResponseStats to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "upcomingNodesCount": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Float64() + s.UpcomingNodesCount = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"upcomingNodesCount\"") + } + case "currentMonthPayments": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Float64() + s.CurrentMonthPayments = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"currentMonthPayments\"") + } + case "totalSpent": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Float64() + s.TotalSpent = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"totalSpent\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode BillingNodesResponseResponseStats") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfBillingNodesResponseResponseStats) { + name = jsonFieldsNameOfBillingNodesResponseResponseStats[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *BillingNodesResponseResponseStats) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *BillingNodesResponseResponseStats) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *BrandingSettings) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *BrandingSettings) encodeFields(e *jx.Encoder) { + { + e.FieldStart("title") + s.Title.Encode(e) + } + { + e.FieldStart("logoUrl") + s.LogoUrl.Encode(e) + } +} + +var jsonFieldsNameOfBrandingSettings = [2]string{ + 0: "title", + 1: "logoUrl", +} + +// Decode decodes BrandingSettings from json. +func (s *BrandingSettings) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode BrandingSettings to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "title": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Title.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"title\"") + } + case "logoUrl": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.LogoUrl.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"logoUrl\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode BrandingSettings") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfBrandingSettings) { + name = jsonFieldsNameOfBrandingSettings[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *BrandingSettings) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *BrandingSettings) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *BulkActionResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *BulkActionResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfBulkActionResponse = [1]string{ + 0: "response", +} + +// Decode decodes BulkActionResponse from json. +func (s *BulkActionResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode BulkActionResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode BulkActionResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfBulkActionResponse) { + name = jsonFieldsNameOfBulkActionResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *BulkActionResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *BulkActionResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *BulkActionResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *BulkActionResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("affectedRows") + e.Float64(s.AffectedRows) + } +} + +var jsonFieldsNameOfBulkActionResponseResponse = [1]string{ + 0: "affectedRows", +} + +// Decode decodes BulkActionResponseResponse from json. +func (s *BulkActionResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode BulkActionResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "affectedRows": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Float64() + s.AffectedRows = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"affectedRows\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode BulkActionResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfBulkActionResponseResponse) { + name = jsonFieldsNameOfBulkActionResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *BulkActionResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *BulkActionResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *BulkAllExtendExpirationDateRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *BulkAllExtendExpirationDateRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("extendDays") + e.Int(s.ExtendDays) + } +} + +var jsonFieldsNameOfBulkAllExtendExpirationDateRequest = [1]string{ + 0: "extendDays", +} + +// Decode decodes BulkAllExtendExpirationDateRequest from json. +func (s *BulkAllExtendExpirationDateRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode BulkAllExtendExpirationDateRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "extendDays": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Int() + s.ExtendDays = int(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"extendDays\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode BulkAllExtendExpirationDateRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfBulkAllExtendExpirationDateRequest) { + name = jsonFieldsNameOfBulkAllExtendExpirationDateRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *BulkAllExtendExpirationDateRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *BulkAllExtendExpirationDateRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *BulkAllUpdateUsersRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *BulkAllUpdateUsersRequest) encodeFields(e *jx.Encoder) { + { + if s.Status.Set { + e.FieldStart("status") + s.Status.Encode(e) + } + } + { + if s.TrafficLimitBytes.Set { + e.FieldStart("trafficLimitBytes") + s.TrafficLimitBytes.Encode(e) + } + } + { + if s.TrafficLimitStrategy.Set { + e.FieldStart("trafficLimitStrategy") + s.TrafficLimitStrategy.Encode(e) + } + } + { + if s.ExpireAt.Set { + e.FieldStart("expireAt") + s.ExpireAt.Encode(e, json.EncodeDateTime) + } + } + { + if s.Description.Set { + e.FieldStart("description") + s.Description.Encode(e) + } + } + { + if s.TelegramId.Set { + e.FieldStart("telegramId") + s.TelegramId.Encode(e) + } + } + { + if s.Email.Set { + e.FieldStart("email") + s.Email.Encode(e) + } + } + { + if s.Tag.Set { + e.FieldStart("tag") + s.Tag.Encode(e) + } + } + { + if s.HwidDeviceLimit.Set { + e.FieldStart("hwidDeviceLimit") + s.HwidDeviceLimit.Encode(e) + } + } +} + +var jsonFieldsNameOfBulkAllUpdateUsersRequest = [9]string{ + 0: "status", + 1: "trafficLimitBytes", + 2: "trafficLimitStrategy", + 3: "expireAt", + 4: "description", + 5: "telegramId", + 6: "email", + 7: "tag", + 8: "hwidDeviceLimit", +} + +// Decode decodes BulkAllUpdateUsersRequest from json. +func (s *BulkAllUpdateUsersRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode BulkAllUpdateUsersRequest to nil") + } + s.setDefaults() + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "status": + if err := func() error { + s.Status.Reset() + if err := s.Status.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"status\"") + } + case "trafficLimitBytes": + if err := func() error { + s.TrafficLimitBytes.Reset() + if err := s.TrafficLimitBytes.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"trafficLimitBytes\"") + } + case "trafficLimitStrategy": + if err := func() error { + s.TrafficLimitStrategy.Reset() + if err := s.TrafficLimitStrategy.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"trafficLimitStrategy\"") + } + case "expireAt": + if err := func() error { + s.ExpireAt.Reset() + if err := s.ExpireAt.Decode(d, json.DecodeDateTime); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"expireAt\"") + } + case "description": + if err := func() error { + s.Description.Reset() + if err := s.Description.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"description\"") + } + case "telegramId": + if err := func() error { + s.TelegramId.Reset() + if err := s.TelegramId.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"telegramId\"") + } + case "email": + if err := func() error { + s.Email.Reset() + if err := s.Email.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"email\"") + } + case "tag": + if err := func() error { + s.Tag.Reset() + if err := s.Tag.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"tag\"") + } + case "hwidDeviceLimit": + if err := func() error { + s.HwidDeviceLimit.Reset() + if err := s.HwidDeviceLimit.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"hwidDeviceLimit\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode BulkAllUpdateUsersRequest") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *BulkAllUpdateUsersRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *BulkAllUpdateUsersRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes BulkAllUpdateUsersRequestStatus as json. +func (s BulkAllUpdateUsersRequestStatus) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes BulkAllUpdateUsersRequestStatus from json. +func (s *BulkAllUpdateUsersRequestStatus) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode BulkAllUpdateUsersRequestStatus to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch BulkAllUpdateUsersRequestStatus(v) { + case BulkAllUpdateUsersRequestStatusACTIVE: + *s = BulkAllUpdateUsersRequestStatusACTIVE + case BulkAllUpdateUsersRequestStatusDISABLED: + *s = BulkAllUpdateUsersRequestStatusDISABLED + case BulkAllUpdateUsersRequestStatusLIMITED: + *s = BulkAllUpdateUsersRequestStatusLIMITED + case BulkAllUpdateUsersRequestStatusEXPIRED: + *s = BulkAllUpdateUsersRequestStatusEXPIRED + default: + *s = BulkAllUpdateUsersRequestStatus(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s BulkAllUpdateUsersRequestStatus) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *BulkAllUpdateUsersRequestStatus) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes BulkAllUpdateUsersRequestTrafficLimitStrategy as json. +func (s BulkAllUpdateUsersRequestTrafficLimitStrategy) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes BulkAllUpdateUsersRequestTrafficLimitStrategy from json. +func (s *BulkAllUpdateUsersRequestTrafficLimitStrategy) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode BulkAllUpdateUsersRequestTrafficLimitStrategy to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch BulkAllUpdateUsersRequestTrafficLimitStrategy(v) { + case BulkAllUpdateUsersRequestTrafficLimitStrategyNORESET: + *s = BulkAllUpdateUsersRequestTrafficLimitStrategyNORESET + case BulkAllUpdateUsersRequestTrafficLimitStrategyDAY: + *s = BulkAllUpdateUsersRequestTrafficLimitStrategyDAY + case BulkAllUpdateUsersRequestTrafficLimitStrategyWEEK: + *s = BulkAllUpdateUsersRequestTrafficLimitStrategyWEEK + case BulkAllUpdateUsersRequestTrafficLimitStrategyMONTH: + *s = BulkAllUpdateUsersRequestTrafficLimitStrategyMONTH + case BulkAllUpdateUsersRequestTrafficLimitStrategyMONTHROLLING: + *s = BulkAllUpdateUsersRequestTrafficLimitStrategyMONTHROLLING + default: + *s = BulkAllUpdateUsersRequestTrafficLimitStrategy(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s BulkAllUpdateUsersRequestTrafficLimitStrategy) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *BulkAllUpdateUsersRequestTrafficLimitStrategy) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *BulkDeleteUsersByStatusRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *BulkDeleteUsersByStatusRequest) encodeFields(e *jx.Encoder) { + { + if s.Status.Set { + e.FieldStart("status") + s.Status.Encode(e) + } + } +} + +var jsonFieldsNameOfBulkDeleteUsersByStatusRequest = [1]string{ + 0: "status", +} + +// Decode decodes BulkDeleteUsersByStatusRequest from json. +func (s *BulkDeleteUsersByStatusRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode BulkDeleteUsersByStatusRequest to nil") + } + s.setDefaults() + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "status": + if err := func() error { + s.Status.Reset() + if err := s.Status.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"status\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode BulkDeleteUsersByStatusRequest") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *BulkDeleteUsersByStatusRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *BulkDeleteUsersByStatusRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes BulkDeleteUsersByStatusRequestStatus as json. +func (s BulkDeleteUsersByStatusRequestStatus) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes BulkDeleteUsersByStatusRequestStatus from json. +func (s *BulkDeleteUsersByStatusRequestStatus) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode BulkDeleteUsersByStatusRequestStatus to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch BulkDeleteUsersByStatusRequestStatus(v) { + case BulkDeleteUsersByStatusRequestStatusACTIVE: + *s = BulkDeleteUsersByStatusRequestStatusACTIVE + case BulkDeleteUsersByStatusRequestStatusDISABLED: + *s = BulkDeleteUsersByStatusRequestStatusDISABLED + case BulkDeleteUsersByStatusRequestStatusLIMITED: + *s = BulkDeleteUsersByStatusRequestStatusLIMITED + case BulkDeleteUsersByStatusRequestStatusEXPIRED: + *s = BulkDeleteUsersByStatusRequestStatusEXPIRED + default: + *s = BulkDeleteUsersByStatusRequestStatus(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s BulkDeleteUsersByStatusRequestStatus) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *BulkDeleteUsersByStatusRequestStatus) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *BulkExtendExpirationDateRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *BulkExtendExpirationDateRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuids") + e.ArrStart() + for _, elem := range s.Uuids { + json.EncodeUUID(e, elem) + } + e.ArrEnd() + } + { + e.FieldStart("extendDays") + e.Int(s.ExtendDays) + } +} + +var jsonFieldsNameOfBulkExtendExpirationDateRequest = [2]string{ + 0: "uuids", + 1: "extendDays", +} + +// Decode decodes BulkExtendExpirationDateRequest from json. +func (s *BulkExtendExpirationDateRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode BulkExtendExpirationDateRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuids": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.Uuids = make([]uuid.UUID, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem uuid.UUID + v, err := json.DecodeUUID(d) + elem = v + if err != nil { + return err + } + s.Uuids = append(s.Uuids, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuids\"") + } + case "extendDays": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Int() + s.ExtendDays = int(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"extendDays\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode BulkExtendExpirationDateRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfBulkExtendExpirationDateRequest) { + name = jsonFieldsNameOfBulkExtendExpirationDateRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *BulkExtendExpirationDateRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *BulkExtendExpirationDateRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *BulkNodesActionsRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *BulkNodesActionsRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuids") + e.ArrStart() + for _, elem := range s.Uuids { + json.EncodeUUID(e, elem) + } + e.ArrEnd() + } + { + e.FieldStart("action") + s.Action.Encode(e) + } +} + +var jsonFieldsNameOfBulkNodesActionsRequest = [2]string{ + 0: "uuids", + 1: "action", +} + +// Decode decodes BulkNodesActionsRequest from json. +func (s *BulkNodesActionsRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode BulkNodesActionsRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuids": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.Uuids = make([]uuid.UUID, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem uuid.UUID + v, err := json.DecodeUUID(d) + elem = v + if err != nil { + return err + } + s.Uuids = append(s.Uuids, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuids\"") + } + case "action": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.Action.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"action\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode BulkNodesActionsRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfBulkNodesActionsRequest) { + name = jsonFieldsNameOfBulkNodesActionsRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *BulkNodesActionsRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *BulkNodesActionsRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes BulkNodesActionsRequestAction as json. +func (s BulkNodesActionsRequestAction) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes BulkNodesActionsRequestAction from json. +func (s *BulkNodesActionsRequestAction) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode BulkNodesActionsRequestAction to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch BulkNodesActionsRequestAction(v) { + case BulkNodesActionsRequestActionENABLE: + *s = BulkNodesActionsRequestActionENABLE + case BulkNodesActionsRequestActionDISABLE: + *s = BulkNodesActionsRequestActionDISABLE + case BulkNodesActionsRequestActionRESTART: + *s = BulkNodesActionsRequestActionRESTART + case BulkNodesActionsRequestActionRESETTRAFFIC: + *s = BulkNodesActionsRequestActionRESETTRAFFIC + default: + *s = BulkNodesActionsRequestAction(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s BulkNodesActionsRequestAction) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *BulkNodesActionsRequestAction) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *BulkNodesUpdateRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *BulkNodesUpdateRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuids") + e.ArrStart() + for _, elem := range s.Uuids { + json.EncodeUUID(e, elem) + } + e.ArrEnd() + } + { + e.FieldStart("fields") + s.Fields.Encode(e) + } +} + +var jsonFieldsNameOfBulkNodesUpdateRequest = [2]string{ + 0: "uuids", + 1: "fields", +} + +// Decode decodes BulkNodesUpdateRequest from json. +func (s *BulkNodesUpdateRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode BulkNodesUpdateRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuids": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.Uuids = make([]uuid.UUID, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem uuid.UUID + v, err := json.DecodeUUID(d) + elem = v + if err != nil { + return err + } + s.Uuids = append(s.Uuids, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuids\"") + } + case "fields": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.Fields.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"fields\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode BulkNodesUpdateRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfBulkNodesUpdateRequest) { + name = jsonFieldsNameOfBulkNodesUpdateRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *BulkNodesUpdateRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *BulkNodesUpdateRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *BulkNodesUpdateRequestFields) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *BulkNodesUpdateRequestFields) encodeFields(e *jx.Encoder) { + { + if s.CountryCode.Set { + e.FieldStart("countryCode") + s.CountryCode.Encode(e) + } + } + { + if s.ConsumptionMultiplier.Set { + e.FieldStart("consumptionMultiplier") + s.ConsumptionMultiplier.Encode(e) + } + } + { + if s.ProviderUuid.Set { + e.FieldStart("providerUuid") + s.ProviderUuid.Encode(e) + } + } + { + if s.Tags != nil { + e.FieldStart("tags") + e.ArrStart() + for _, elem := range s.Tags { + e.Str(elem) + } + e.ArrEnd() + } + } + { + if s.ActivePluginUuid.Set { + e.FieldStart("activePluginUuid") + s.ActivePluginUuid.Encode(e) + } + } +} + +var jsonFieldsNameOfBulkNodesUpdateRequestFields = [5]string{ + 0: "countryCode", + 1: "consumptionMultiplier", + 2: "providerUuid", + 3: "tags", + 4: "activePluginUuid", +} + +// Decode decodes BulkNodesUpdateRequestFields from json. +func (s *BulkNodesUpdateRequestFields) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode BulkNodesUpdateRequestFields to nil") + } + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "countryCode": + if err := func() error { + s.CountryCode.Reset() + if err := s.CountryCode.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"countryCode\"") + } + case "consumptionMultiplier": + if err := func() error { + s.ConsumptionMultiplier.Reset() + if err := s.ConsumptionMultiplier.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"consumptionMultiplier\"") + } + case "providerUuid": + if err := func() error { + s.ProviderUuid.Reset() + if err := s.ProviderUuid.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"providerUuid\"") + } + case "tags": + if err := func() error { + s.Tags = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.Tags = append(s.Tags, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"tags\"") + } + case "activePluginUuid": + if err := func() error { + s.ActivePluginUuid.Reset() + if err := s.ActivePluginUuid.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"activePluginUuid\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode BulkNodesUpdateRequestFields") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *BulkNodesUpdateRequestFields) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *BulkNodesUpdateRequestFields) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *BulkUpdateUsersRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *BulkUpdateUsersRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuids") + e.ArrStart() + for _, elem := range s.Uuids { + json.EncodeUUID(e, elem) + } + e.ArrEnd() + } + { + e.FieldStart("fields") + s.Fields.Encode(e) + } +} + +var jsonFieldsNameOfBulkUpdateUsersRequest = [2]string{ + 0: "uuids", + 1: "fields", +} + +// Decode decodes BulkUpdateUsersRequest from json. +func (s *BulkUpdateUsersRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode BulkUpdateUsersRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuids": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.Uuids = make([]uuid.UUID, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem uuid.UUID + v, err := json.DecodeUUID(d) + elem = v + if err != nil { + return err + } + s.Uuids = append(s.Uuids, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuids\"") + } + case "fields": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.Fields.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"fields\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode BulkUpdateUsersRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfBulkUpdateUsersRequest) { + name = jsonFieldsNameOfBulkUpdateUsersRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *BulkUpdateUsersRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *BulkUpdateUsersRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *BulkUpdateUsersRequestFields) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *BulkUpdateUsersRequestFields) encodeFields(e *jx.Encoder) { + { + if s.Status.Set { + e.FieldStart("status") + s.Status.Encode(e) + } + } + { + if s.TrafficLimitBytes.Set { + e.FieldStart("trafficLimitBytes") + s.TrafficLimitBytes.Encode(e) + } + } + { + if s.TrafficLimitStrategy.Set { + e.FieldStart("trafficLimitStrategy") + s.TrafficLimitStrategy.Encode(e) + } + } + { + if s.ExpireAt.Set { + e.FieldStart("expireAt") + s.ExpireAt.Encode(e, json.EncodeDateTime) + } + } + { + if s.Description.Set { + e.FieldStart("description") + s.Description.Encode(e) + } + } + { + if s.TelegramId.Set { + e.FieldStart("telegramId") + s.TelegramId.Encode(e) + } + } + { + if s.Email.Set { + e.FieldStart("email") + s.Email.Encode(e) + } + } + { + if s.Tag.Set { + e.FieldStart("tag") + s.Tag.Encode(e) + } + } + { + if s.HwidDeviceLimit.Set { + e.FieldStart("hwidDeviceLimit") + s.HwidDeviceLimit.Encode(e) + } + } + { + if s.ExternalSquadUuid.Set { + e.FieldStart("externalSquadUuid") + s.ExternalSquadUuid.Encode(e) + } + } +} + +var jsonFieldsNameOfBulkUpdateUsersRequestFields = [10]string{ + 0: "status", + 1: "trafficLimitBytes", + 2: "trafficLimitStrategy", + 3: "expireAt", + 4: "description", + 5: "telegramId", + 6: "email", + 7: "tag", + 8: "hwidDeviceLimit", + 9: "externalSquadUuid", +} + +// Decode decodes BulkUpdateUsersRequestFields from json. +func (s *BulkUpdateUsersRequestFields) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode BulkUpdateUsersRequestFields to nil") + } + s.setDefaults() + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "status": + if err := func() error { + s.Status.Reset() + if err := s.Status.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"status\"") + } + case "trafficLimitBytes": + if err := func() error { + s.TrafficLimitBytes.Reset() + if err := s.TrafficLimitBytes.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"trafficLimitBytes\"") + } + case "trafficLimitStrategy": + if err := func() error { + s.TrafficLimitStrategy.Reset() + if err := s.TrafficLimitStrategy.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"trafficLimitStrategy\"") + } + case "expireAt": + if err := func() error { + s.ExpireAt.Reset() + if err := s.ExpireAt.Decode(d, json.DecodeDateTime); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"expireAt\"") + } + case "description": + if err := func() error { + s.Description.Reset() + if err := s.Description.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"description\"") + } + case "telegramId": + if err := func() error { + s.TelegramId.Reset() + if err := s.TelegramId.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"telegramId\"") + } + case "email": + if err := func() error { + s.Email.Reset() + if err := s.Email.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"email\"") + } + case "tag": + if err := func() error { + s.Tag.Reset() + if err := s.Tag.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"tag\"") + } + case "hwidDeviceLimit": + if err := func() error { + s.HwidDeviceLimit.Reset() + if err := s.HwidDeviceLimit.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"hwidDeviceLimit\"") + } + case "externalSquadUuid": + if err := func() error { + s.ExternalSquadUuid.Reset() + if err := s.ExternalSquadUuid.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"externalSquadUuid\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode BulkUpdateUsersRequestFields") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *BulkUpdateUsersRequestFields) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *BulkUpdateUsersRequestFields) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes BulkUpdateUsersRequestFieldsStatus as json. +func (s BulkUpdateUsersRequestFieldsStatus) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes BulkUpdateUsersRequestFieldsStatus from json. +func (s *BulkUpdateUsersRequestFieldsStatus) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode BulkUpdateUsersRequestFieldsStatus to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch BulkUpdateUsersRequestFieldsStatus(v) { + case BulkUpdateUsersRequestFieldsStatusACTIVE: + *s = BulkUpdateUsersRequestFieldsStatusACTIVE + case BulkUpdateUsersRequestFieldsStatusDISABLED: + *s = BulkUpdateUsersRequestFieldsStatusDISABLED + case BulkUpdateUsersRequestFieldsStatusLIMITED: + *s = BulkUpdateUsersRequestFieldsStatusLIMITED + case BulkUpdateUsersRequestFieldsStatusEXPIRED: + *s = BulkUpdateUsersRequestFieldsStatusEXPIRED + default: + *s = BulkUpdateUsersRequestFieldsStatus(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s BulkUpdateUsersRequestFieldsStatus) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *BulkUpdateUsersRequestFieldsStatus) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes BulkUpdateUsersRequestFieldsTrafficLimitStrategy as json. +func (s BulkUpdateUsersRequestFieldsTrafficLimitStrategy) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes BulkUpdateUsersRequestFieldsTrafficLimitStrategy from json. +func (s *BulkUpdateUsersRequestFieldsTrafficLimitStrategy) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode BulkUpdateUsersRequestFieldsTrafficLimitStrategy to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch BulkUpdateUsersRequestFieldsTrafficLimitStrategy(v) { + case BulkUpdateUsersRequestFieldsTrafficLimitStrategyNORESET: + *s = BulkUpdateUsersRequestFieldsTrafficLimitStrategyNORESET + case BulkUpdateUsersRequestFieldsTrafficLimitStrategyDAY: + *s = BulkUpdateUsersRequestFieldsTrafficLimitStrategyDAY + case BulkUpdateUsersRequestFieldsTrafficLimitStrategyWEEK: + *s = BulkUpdateUsersRequestFieldsTrafficLimitStrategyWEEK + case BulkUpdateUsersRequestFieldsTrafficLimitStrategyMONTH: + *s = BulkUpdateUsersRequestFieldsTrafficLimitStrategyMONTH + case BulkUpdateUsersRequestFieldsTrafficLimitStrategyMONTHROLLING: + *s = BulkUpdateUsersRequestFieldsTrafficLimitStrategyMONTHROLLING + default: + *s = BulkUpdateUsersRequestFieldsTrafficLimitStrategy(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s BulkUpdateUsersRequestFieldsTrafficLimitStrategy) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *BulkUpdateUsersRequestFieldsTrafficLimitStrategy) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *BulkUpdateUsersSquadsRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *BulkUpdateUsersSquadsRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuids") + e.ArrStart() + for _, elem := range s.Uuids { + json.EncodeUUID(e, elem) + } + e.ArrEnd() + } + { + e.FieldStart("activeInternalSquads") + e.ArrStart() + for _, elem := range s.ActiveInternalSquads { + json.EncodeUUID(e, elem) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfBulkUpdateUsersSquadsRequest = [2]string{ + 0: "uuids", + 1: "activeInternalSquads", +} + +// Decode decodes BulkUpdateUsersSquadsRequest from json. +func (s *BulkUpdateUsersSquadsRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode BulkUpdateUsersSquadsRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuids": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.Uuids = make([]uuid.UUID, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem uuid.UUID + v, err := json.DecodeUUID(d) + elem = v + if err != nil { + return err + } + s.Uuids = append(s.Uuids, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuids\"") + } + case "activeInternalSquads": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + s.ActiveInternalSquads = make([]uuid.UUID, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem uuid.UUID + v, err := json.DecodeUUID(d) + elem = v + if err != nil { + return err + } + s.ActiveInternalSquads = append(s.ActiveInternalSquads, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"activeInternalSquads\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode BulkUpdateUsersSquadsRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfBulkUpdateUsersSquadsRequest) { + name = jsonFieldsNameOfBulkUpdateUsersSquadsRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *BulkUpdateUsersSquadsRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *BulkUpdateUsersSquadsRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *BulkUuidsRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *BulkUuidsRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuids") + e.ArrStart() + for _, elem := range s.Uuids { + json.EncodeUUID(e, elem) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfBulkUuidsRequest = [1]string{ + 0: "uuids", +} + +// Decode decodes BulkUuidsRequest from json. +func (s *BulkUuidsRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode BulkUuidsRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuids": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.Uuids = make([]uuid.UUID, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem uuid.UUID + v, err := json.DecodeUUID(d) + elem = v + if err != nil { + return err + } + s.Uuids = append(s.Uuids, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuids\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode BulkUuidsRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfBulkUuidsRequest) { + name = jsonFieldsNameOfBulkUuidsRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *BulkUuidsRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *BulkUuidsRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *BulkUuidsRequest2) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *BulkUuidsRequest2) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuids") + e.ArrStart() + for _, elem := range s.Uuids { + json.EncodeUUID(e, elem) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfBulkUuidsRequest2 = [1]string{ + 0: "uuids", +} + +// Decode decodes BulkUuidsRequest2 from json. +func (s *BulkUuidsRequest2) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode BulkUuidsRequest2 to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuids": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.Uuids = make([]uuid.UUID, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem uuid.UUID + v, err := json.DecodeUUID(d) + elem = v + if err != nil { + return err + } + s.Uuids = append(s.Uuids, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuids\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode BulkUuidsRequest2") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfBulkUuidsRequest2) { + name = jsonFieldsNameOfBulkUuidsRequest2[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *BulkUuidsRequest2) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *BulkUuidsRequest2) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *ByAppItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *ByAppItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("app") + e.Str(s.App) + } + { + e.FieldStart("count") + e.Float64(s.Count) + } +} + +var jsonFieldsNameOfByAppItem = [2]string{ + 0: "app", + 1: "count", +} + +// Decode decodes ByAppItem from json. +func (s *ByAppItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ByAppItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "app": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.App = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"app\"") + } + case "count": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Float64() + s.Count = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"count\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode ByAppItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfByAppItem) { + name = jsonFieldsNameOfByAppItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *ByAppItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ByAppItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *CloneNodePluginRequestRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *CloneNodePluginRequestRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("cloneFromUuid") + json.EncodeUUID(e, s.CloneFromUuid) + } +} + +var jsonFieldsNameOfCloneNodePluginRequestRequest = [1]string{ + 0: "cloneFromUuid", +} + +// Decode decodes CloneNodePluginRequestRequest from json. +func (s *CloneNodePluginRequestRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CloneNodePluginRequestRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "cloneFromUuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.CloneFromUuid = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"cloneFromUuid\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode CloneNodePluginRequestRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfCloneNodePluginRequestRequest) { + name = jsonFieldsNameOfCloneNodePluginRequestRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *CloneNodePluginRequestRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CloneNodePluginRequestRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *Condition) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *Condition) encodeFields(e *jx.Encoder) { + { + e.FieldStart("headerName") + e.Str(s.HeaderName) + } + { + e.FieldStart("operator") + s.Operator.Encode(e) + } + { + e.FieldStart("value") + e.Str(s.Value) + } + { + e.FieldStart("caseSensitive") + e.Bool(s.CaseSensitive) + } +} + +var jsonFieldsNameOfCondition = [4]string{ + 0: "headerName", + 1: "operator", + 2: "value", + 3: "caseSensitive", +} + +// Decode decodes Condition from json. +func (s *Condition) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode Condition to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "headerName": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.HeaderName = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"headerName\"") + } + case "operator": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.Operator.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"operator\"") + } + case "value": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.Value = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"value\"") + } + case "caseSensitive": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.Bool() + s.CaseSensitive = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"caseSensitive\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode Condition") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00001111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfCondition) { + name = jsonFieldsNameOfCondition[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *Condition) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *Condition) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes ConditionOperator as json. +func (s ConditionOperator) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes ConditionOperator from json. +func (s *ConditionOperator) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ConditionOperator to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch ConditionOperator(v) { + case ConditionOperatorEQUALS: + *s = ConditionOperatorEQUALS + case ConditionOperatorNOTEQUALS: + *s = ConditionOperatorNOTEQUALS + case ConditionOperatorCONTAINS: + *s = ConditionOperatorCONTAINS + case ConditionOperatorNOTCONTAINS: + *s = ConditionOperatorNOTCONTAINS + case ConditionOperatorSTARTSWITH: + *s = ConditionOperatorSTARTSWITH + case ConditionOperatorNOTSTARTSWITH: + *s = ConditionOperatorNOTSTARTSWITH + case ConditionOperatorENDSWITH: + *s = ConditionOperatorENDSWITH + case ConditionOperatorNOTENDSWITH: + *s = ConditionOperatorNOTENDSWITH + case ConditionOperatorREGEX: + *s = ConditionOperatorREGEX + case ConditionOperatorNOTREGEX: + *s = ConditionOperatorNOTREGEX + default: + *s = ConditionOperator(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s ConditionOperator) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ConditionOperator) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *Config) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *Config) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + e.FieldStart("viewPosition") + e.Int(s.ViewPosition) + } + { + e.FieldStart("name") + e.Str(s.Name) + } + { + if len(s.Config) != 0 { + e.FieldStart("config") + e.Raw(s.Config) + } + } +} + +var jsonFieldsNameOfConfig = [4]string{ + 0: "uuid", + 1: "viewPosition", + 2: "name", + 3: "config", +} + +// Decode decodes Config from json. +func (s *Config) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode Config to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "viewPosition": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Int() + s.ViewPosition = int(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"viewPosition\"") + } + case "name": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "config": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.RawAppend(nil) + s.Config = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"config\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode Config") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00001111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfConfig) { + name = jsonFieldsNameOfConfig[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *Config) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *Config) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *ConfigProfile) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *ConfigProfile) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + e.FieldStart("viewPosition") + e.Int(s.ViewPosition) + } + { + e.FieldStart("name") + e.Str(s.Name) + } + { + if len(s.Config) != 0 { + e.FieldStart("config") + e.Raw(s.Config) + } + } + { + e.FieldStart("inbounds") + e.ArrStart() + for _, elem := range s.Inbounds { + elem.Encode(e) + } + e.ArrEnd() + } + { + e.FieldStart("nodes") + e.ArrStart() + for _, elem := range s.Nodes { + elem.Encode(e) + } + e.ArrEnd() + } + { + e.FieldStart("createdAt") + json.EncodeDateTime(e, s.CreatedAt) + } + { + e.FieldStart("updatedAt") + json.EncodeDateTime(e, s.UpdatedAt) + } +} + +var jsonFieldsNameOfConfigProfile = [8]string{ + 0: "uuid", + 1: "viewPosition", + 2: "name", + 3: "config", + 4: "inbounds", + 5: "nodes", + 6: "createdAt", + 7: "updatedAt", +} + +// Decode decodes ConfigProfile from json. +func (s *ConfigProfile) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ConfigProfile to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "viewPosition": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Int() + s.ViewPosition = int(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"viewPosition\"") + } + case "name": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "config": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.RawAppend(nil) + s.Config = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"config\"") + } + case "inbounds": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + s.Inbounds = make([]Inbound, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem Inbound + if err := elem.Decode(d); err != nil { + return err + } + s.Inbounds = append(s.Inbounds, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"inbounds\"") + } + case "nodes": + requiredBitSet[0] |= 1 << 5 + if err := func() error { + s.Nodes = make([]Node, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem Node + if err := elem.Decode(d); err != nil { + return err + } + s.Nodes = append(s.Nodes, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"nodes\"") + } + case "createdAt": + requiredBitSet[0] |= 1 << 6 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.CreatedAt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"createdAt\"") + } + case "updatedAt": + requiredBitSet[0] |= 1 << 7 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.UpdatedAt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"updatedAt\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode ConfigProfile") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b11111111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfConfigProfile) { + name = jsonFieldsNameOfConfigProfile[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *ConfigProfile) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ConfigProfile) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *ConfigProfileItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *ConfigProfileItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("activeConfigProfileUuid") + s.ActiveConfigProfileUuid.Encode(e) + } + { + e.FieldStart("activeInbounds") + e.ArrStart() + for _, elem := range s.ActiveInbounds { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfConfigProfileItem = [2]string{ + 0: "activeConfigProfileUuid", + 1: "activeInbounds", +} + +// Decode decodes ConfigProfileItem from json. +func (s *ConfigProfileItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ConfigProfileItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "activeConfigProfileUuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.ActiveConfigProfileUuid.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"activeConfigProfileUuid\"") + } + case "activeInbounds": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + s.ActiveInbounds = make([]Inbound, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem Inbound + if err := elem.Decode(d); err != nil { + return err + } + s.ActiveInbounds = append(s.ActiveInbounds, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"activeInbounds\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode ConfigProfileItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfConfigProfileItem) { + name = jsonFieldsNameOfConfigProfileItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *ConfigProfileItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ConfigProfileItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *ConfigProfileRef) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *ConfigProfileRef) encodeFields(e *jx.Encoder) { + { + e.FieldStart("activeConfigProfileUuid") + json.EncodeUUID(e, s.ActiveConfigProfileUuid) + } + { + e.FieldStart("activeInbounds") + e.ArrStart() + for _, elem := range s.ActiveInbounds { + json.EncodeUUID(e, elem) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfConfigProfileRef = [2]string{ + 0: "activeConfigProfileUuid", + 1: "activeInbounds", +} + +// Decode decodes ConfigProfileRef from json. +func (s *ConfigProfileRef) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ConfigProfileRef to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "activeConfigProfileUuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.ActiveConfigProfileUuid = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"activeConfigProfileUuid\"") + } + case "activeInbounds": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + s.ActiveInbounds = make([]uuid.UUID, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem uuid.UUID + v, err := json.DecodeUUID(d) + elem = v + if err != nil { + return err + } + s.ActiveInbounds = append(s.ActiveInbounds, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"activeInbounds\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode ConfigProfileRef") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfConfigProfileRef) { + name = jsonFieldsNameOfConfigProfileRef[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *ConfigProfileRef) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ConfigProfileRef) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *ConfigProfileResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *ConfigProfileResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfConfigProfileResponse = [1]string{ + 0: "response", +} + +// Decode decodes ConfigProfileResponse from json. +func (s *ConfigProfileResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ConfigProfileResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode ConfigProfileResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfConfigProfileResponse) { + name = jsonFieldsNameOfConfigProfileResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *ConfigProfileResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ConfigProfileResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *ConfigProfilesResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *ConfigProfilesResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfConfigProfilesResponse = [1]string{ + 0: "response", +} + +// Decode decodes ConfigProfilesResponse from json. +func (s *ConfigProfilesResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ConfigProfilesResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode ConfigProfilesResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfConfigProfilesResponse) { + name = jsonFieldsNameOfConfigProfilesResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *ConfigProfilesResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ConfigProfilesResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *ConfigProfilesResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *ConfigProfilesResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("total") + e.Float64(s.Total) + } + { + e.FieldStart("configProfiles") + e.ArrStart() + for _, elem := range s.ConfigProfiles { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfConfigProfilesResponseResponse = [2]string{ + 0: "total", + 1: "configProfiles", +} + +// Decode decodes ConfigProfilesResponseResponse from json. +func (s *ConfigProfilesResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ConfigProfilesResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "total": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Float64() + s.Total = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"total\"") + } + case "configProfiles": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + s.ConfigProfiles = make([]ConfigProfile, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem ConfigProfile + if err := elem.Decode(d); err != nil { + return err + } + s.ConfigProfiles = append(s.ConfigProfiles, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"configProfiles\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode ConfigProfilesResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfConfigProfilesResponseResponse) { + name = jsonFieldsNameOfConfigProfilesResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *ConfigProfilesResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ConfigProfilesResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *CreateApiTokenRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *CreateApiTokenRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("tokenName") + e.Str(s.TokenName) + } +} + +var jsonFieldsNameOfCreateApiTokenRequest = [1]string{ + 0: "tokenName", +} + +// Decode decodes CreateApiTokenRequest from json. +func (s *CreateApiTokenRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CreateApiTokenRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "tokenName": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.TokenName = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"tokenName\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode CreateApiTokenRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfCreateApiTokenRequest) { + name = jsonFieldsNameOfCreateApiTokenRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *CreateApiTokenRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CreateApiTokenRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *CreateApiTokenResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *CreateApiTokenResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfCreateApiTokenResponse = [1]string{ + 0: "response", +} + +// Decode decodes CreateApiTokenResponse from json. +func (s *CreateApiTokenResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CreateApiTokenResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode CreateApiTokenResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfCreateApiTokenResponse) { + name = jsonFieldsNameOfCreateApiTokenResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *CreateApiTokenResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CreateApiTokenResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *CreateApiTokenResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *CreateApiTokenResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("token") + e.Str(s.Token) + } + { + e.FieldStart("uuid") + e.Str(s.UUID) + } +} + +var jsonFieldsNameOfCreateApiTokenResponseResponse = [2]string{ + 0: "token", + 1: "uuid", +} + +// Decode decodes CreateApiTokenResponseResponse from json. +func (s *CreateApiTokenResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CreateApiTokenResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "token": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Token = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"token\"") + } + case "uuid": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.UUID = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode CreateApiTokenResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfCreateApiTokenResponseResponse) { + name = jsonFieldsNameOfCreateApiTokenResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *CreateApiTokenResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CreateApiTokenResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *CreateConfigProfileRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *CreateConfigProfileRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("name") + e.Str(s.Name) + } + { + e.FieldStart("config") + s.Config.Encode(e) + } +} + +var jsonFieldsNameOfCreateConfigProfileRequest = [2]string{ + 0: "name", + 1: "config", +} + +// Decode decodes CreateConfigProfileRequest from json. +func (s *CreateConfigProfileRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CreateConfigProfileRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "name": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "config": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.Config.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"config\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode CreateConfigProfileRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfCreateConfigProfileRequest) { + name = jsonFieldsNameOfCreateConfigProfileRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *CreateConfigProfileRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CreateConfigProfileRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *CreateConfigProfileRequestConfig) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *CreateConfigProfileRequestConfig) encodeFields(e *jx.Encoder) { +} + +var jsonFieldsNameOfCreateConfigProfileRequestConfig = [0]string{} + +// Decode decodes CreateConfigProfileRequestConfig from json. +func (s *CreateConfigProfileRequestConfig) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CreateConfigProfileRequestConfig to nil") + } + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + default: + return d.Skip() + } + }); err != nil { + return errors.Wrap(err, "decode CreateConfigProfileRequestConfig") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *CreateConfigProfileRequestConfig) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CreateConfigProfileRequestConfig) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *CreateExternalSquadRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *CreateExternalSquadRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("name") + e.Str(s.Name) + } +} + +var jsonFieldsNameOfCreateExternalSquadRequest = [1]string{ + 0: "name", +} + +// Decode decodes CreateExternalSquadRequest from json. +func (s *CreateExternalSquadRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CreateExternalSquadRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "name": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode CreateExternalSquadRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfCreateExternalSquadRequest) { + name = jsonFieldsNameOfCreateExternalSquadRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *CreateExternalSquadRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CreateExternalSquadRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *CreateHostRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *CreateHostRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("inbound") + s.Inbound.Encode(e) + } + { + e.FieldStart("remark") + e.Str(s.Remark) + } + { + e.FieldStart("address") + e.Str(s.Address) + } + { + e.FieldStart("port") + e.Int(s.Port) + } + { + if s.Path.Set { + e.FieldStart("path") + s.Path.Encode(e) + } + } + { + if s.Sni.Set { + e.FieldStart("sni") + s.Sni.Encode(e) + } + } + { + if s.Host.Set { + e.FieldStart("host") + s.Host.Encode(e) + } + } + { + if s.Alpn.Set { + e.FieldStart("alpn") + s.Alpn.Encode(e) + } + } + { + if s.Fingerprint.Set { + e.FieldStart("fingerprint") + s.Fingerprint.Encode(e) + } + } + { + if s.IsDisabled.Set { + e.FieldStart("isDisabled") + s.IsDisabled.Encode(e) + } + } + { + if s.SecurityLayer.Set { + e.FieldStart("securityLayer") + s.SecurityLayer.Encode(e) + } + } + { + if len(s.XHttpExtraParams) != 0 { + e.FieldStart("xHttpExtraParams") + e.Raw(s.XHttpExtraParams) + } + } + { + if len(s.MuxParams) != 0 { + e.FieldStart("muxParams") + e.Raw(s.MuxParams) + } + } + { + if len(s.SockoptParams) != 0 { + e.FieldStart("sockoptParams") + e.Raw(s.SockoptParams) + } + } + { + if len(s.FinalMask) != 0 { + e.FieldStart("finalMask") + e.Raw(s.FinalMask) + } + } + { + if s.ServerDescription.Set { + e.FieldStart("serverDescription") + s.ServerDescription.Encode(e) + } + } + { + if s.Tag.Set { + e.FieldStart("tag") + s.Tag.Encode(e) + } + } + { + if s.IsHidden.Set { + e.FieldStart("isHidden") + s.IsHidden.Encode(e) + } + } + { + if s.OverrideSniFromAddress.Set { + e.FieldStart("overrideSniFromAddress") + s.OverrideSniFromAddress.Encode(e) + } + } + { + if s.KeepSniBlank.Set { + e.FieldStart("keepSniBlank") + s.KeepSniBlank.Encode(e) + } + } + { + if s.AllowInsecure.Set { + e.FieldStart("allowInsecure") + s.AllowInsecure.Encode(e) + } + } + { + if s.VlessRouteId.Set { + e.FieldStart("vlessRouteId") + s.VlessRouteId.Encode(e) + } + } + { + if s.ShuffleHost.Set { + e.FieldStart("shuffleHost") + s.ShuffleHost.Encode(e) + } + } + { + if s.MihomoX25519.Set { + e.FieldStart("mihomoX25519") + s.MihomoX25519.Encode(e) + } + } + { + if s.Nodes != nil { + e.FieldStart("nodes") + e.ArrStart() + for _, elem := range s.Nodes { + json.EncodeUUID(e, elem) + } + e.ArrEnd() + } + } + { + if s.XrayJsonTemplateUuid.Set { + e.FieldStart("xrayJsonTemplateUuid") + s.XrayJsonTemplateUuid.Encode(e) + } + } + { + if s.ExcludedInternalSquads != nil { + e.FieldStart("excludedInternalSquads") + e.ArrStart() + for _, elem := range s.ExcludedInternalSquads { + json.EncodeUUID(e, elem) + } + e.ArrEnd() + } + } + { + if s.ExcludeFromSubscriptionTypes != nil { + e.FieldStart("excludeFromSubscriptionTypes") + e.ArrStart() + for _, elem := range s.ExcludeFromSubscriptionTypes { + elem.Encode(e) + } + e.ArrEnd() + } + } +} + +var jsonFieldsNameOfCreateHostRequest = [28]string{ + 0: "inbound", + 1: "remark", + 2: "address", + 3: "port", + 4: "path", + 5: "sni", + 6: "host", + 7: "alpn", + 8: "fingerprint", + 9: "isDisabled", + 10: "securityLayer", + 11: "xHttpExtraParams", + 12: "muxParams", + 13: "sockoptParams", + 14: "finalMask", + 15: "serverDescription", + 16: "tag", + 17: "isHidden", + 18: "overrideSniFromAddress", + 19: "keepSniBlank", + 20: "allowInsecure", + 21: "vlessRouteId", + 22: "shuffleHost", + 23: "mihomoX25519", + 24: "nodes", + 25: "xrayJsonTemplateUuid", + 26: "excludedInternalSquads", + 27: "excludeFromSubscriptionTypes", +} + +// Decode decodes CreateHostRequest from json. +func (s *CreateHostRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CreateHostRequest to nil") + } + var requiredBitSet [4]uint8 + s.setDefaults() + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "inbound": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Inbound.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"inbound\"") + } + case "remark": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Remark = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"remark\"") + } + case "address": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.Address = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"address\"") + } + case "port": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.Int() + s.Port = int(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"port\"") + } + case "path": + if err := func() error { + s.Path.Reset() + if err := s.Path.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"path\"") + } + case "sni": + if err := func() error { + s.Sni.Reset() + if err := s.Sni.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"sni\"") + } + case "host": + if err := func() error { + s.Host.Reset() + if err := s.Host.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"host\"") + } + case "alpn": + if err := func() error { + s.Alpn.Reset() + if err := s.Alpn.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"alpn\"") + } + case "fingerprint": + if err := func() error { + s.Fingerprint.Reset() + if err := s.Fingerprint.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"fingerprint\"") + } + case "isDisabled": + if err := func() error { + s.IsDisabled.Reset() + if err := s.IsDisabled.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"isDisabled\"") + } + case "securityLayer": + if err := func() error { + s.SecurityLayer.Reset() + if err := s.SecurityLayer.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"securityLayer\"") + } + case "xHttpExtraParams": + if err := func() error { + v, err := d.RawAppend(nil) + s.XHttpExtraParams = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"xHttpExtraParams\"") + } + case "muxParams": + if err := func() error { + v, err := d.RawAppend(nil) + s.MuxParams = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"muxParams\"") + } + case "sockoptParams": + if err := func() error { + v, err := d.RawAppend(nil) + s.SockoptParams = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"sockoptParams\"") + } + case "finalMask": + if err := func() error { + v, err := d.RawAppend(nil) + s.FinalMask = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"finalMask\"") + } + case "serverDescription": + if err := func() error { + s.ServerDescription.Reset() + if err := s.ServerDescription.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"serverDescription\"") + } + case "tag": + if err := func() error { + s.Tag.Reset() + if err := s.Tag.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"tag\"") + } + case "isHidden": + if err := func() error { + s.IsHidden.Reset() + if err := s.IsHidden.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"isHidden\"") + } + case "overrideSniFromAddress": + if err := func() error { + s.OverrideSniFromAddress.Reset() + if err := s.OverrideSniFromAddress.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"overrideSniFromAddress\"") + } + case "keepSniBlank": + if err := func() error { + s.KeepSniBlank.Reset() + if err := s.KeepSniBlank.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"keepSniBlank\"") + } + case "allowInsecure": + if err := func() error { + s.AllowInsecure.Reset() + if err := s.AllowInsecure.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"allowInsecure\"") + } + case "vlessRouteId": + if err := func() error { + s.VlessRouteId.Reset() + if err := s.VlessRouteId.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"vlessRouteId\"") + } + case "shuffleHost": + if err := func() error { + s.ShuffleHost.Reset() + if err := s.ShuffleHost.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"shuffleHost\"") + } + case "mihomoX25519": + if err := func() error { + s.MihomoX25519.Reset() + if err := s.MihomoX25519.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"mihomoX25519\"") + } + case "nodes": + if err := func() error { + s.Nodes = make([]uuid.UUID, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem uuid.UUID + v, err := json.DecodeUUID(d) + elem = v + if err != nil { + return err + } + s.Nodes = append(s.Nodes, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"nodes\"") + } + case "xrayJsonTemplateUuid": + if err := func() error { + s.XrayJsonTemplateUuid.Reset() + if err := s.XrayJsonTemplateUuid.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"xrayJsonTemplateUuid\"") + } + case "excludedInternalSquads": + if err := func() error { + s.ExcludedInternalSquads = make([]uuid.UUID, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem uuid.UUID + v, err := json.DecodeUUID(d) + elem = v + if err != nil { + return err + } + s.ExcludedInternalSquads = append(s.ExcludedInternalSquads, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"excludedInternalSquads\"") + } + case "excludeFromSubscriptionTypes": + if err := func() error { + s.ExcludeFromSubscriptionTypes = make([]CreateHostRequestExcludeFromSubscriptionTypesItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem CreateHostRequestExcludeFromSubscriptionTypesItem + if err := elem.Decode(d); err != nil { + return err + } + s.ExcludeFromSubscriptionTypes = append(s.ExcludeFromSubscriptionTypes, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"excludeFromSubscriptionTypes\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode CreateHostRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [4]uint8{ + 0b00001111, + 0b00000000, + 0b00000000, + 0b00000000, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfCreateHostRequest) { + name = jsonFieldsNameOfCreateHostRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *CreateHostRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CreateHostRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes CreateHostRequestAlpn as json. +func (s CreateHostRequestAlpn) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes CreateHostRequestAlpn from json. +func (s *CreateHostRequestAlpn) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CreateHostRequestAlpn to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch CreateHostRequestAlpn(v) { + case CreateHostRequestAlpnH3: + *s = CreateHostRequestAlpnH3 + case CreateHostRequestAlpnH2: + *s = CreateHostRequestAlpnH2 + case CreateHostRequestAlpnHTTP11: + *s = CreateHostRequestAlpnHTTP11 + case CreateHostRequestAlpnH2HTTP11: + *s = CreateHostRequestAlpnH2HTTP11 + case CreateHostRequestAlpnH3H2HTTP11: + *s = CreateHostRequestAlpnH3H2HTTP11 + case CreateHostRequestAlpnH3H2: + *s = CreateHostRequestAlpnH3H2 + default: + *s = CreateHostRequestAlpn(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s CreateHostRequestAlpn) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CreateHostRequestAlpn) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes CreateHostRequestExcludeFromSubscriptionTypesItem as json. +func (s CreateHostRequestExcludeFromSubscriptionTypesItem) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes CreateHostRequestExcludeFromSubscriptionTypesItem from json. +func (s *CreateHostRequestExcludeFromSubscriptionTypesItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CreateHostRequestExcludeFromSubscriptionTypesItem to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch CreateHostRequestExcludeFromSubscriptionTypesItem(v) { + case CreateHostRequestExcludeFromSubscriptionTypesItemXRAYJSON: + *s = CreateHostRequestExcludeFromSubscriptionTypesItemXRAYJSON + case CreateHostRequestExcludeFromSubscriptionTypesItemXRAYBASE64: + *s = CreateHostRequestExcludeFromSubscriptionTypesItemXRAYBASE64 + case CreateHostRequestExcludeFromSubscriptionTypesItemMIHOMO: + *s = CreateHostRequestExcludeFromSubscriptionTypesItemMIHOMO + case CreateHostRequestExcludeFromSubscriptionTypesItemSTASH: + *s = CreateHostRequestExcludeFromSubscriptionTypesItemSTASH + case CreateHostRequestExcludeFromSubscriptionTypesItemCLASH: + *s = CreateHostRequestExcludeFromSubscriptionTypesItemCLASH + case CreateHostRequestExcludeFromSubscriptionTypesItemSINGBOX: + *s = CreateHostRequestExcludeFromSubscriptionTypesItemSINGBOX + default: + *s = CreateHostRequestExcludeFromSubscriptionTypesItem(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s CreateHostRequestExcludeFromSubscriptionTypesItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CreateHostRequestExcludeFromSubscriptionTypesItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes CreateHostRequestFingerprint as json. +func (s CreateHostRequestFingerprint) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes CreateHostRequestFingerprint from json. +func (s *CreateHostRequestFingerprint) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CreateHostRequestFingerprint to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch CreateHostRequestFingerprint(v) { + case CreateHostRequestFingerprintChrome: + *s = CreateHostRequestFingerprintChrome + case CreateHostRequestFingerprintFirefox: + *s = CreateHostRequestFingerprintFirefox + case CreateHostRequestFingerprintSafari: + *s = CreateHostRequestFingerprintSafari + case CreateHostRequestFingerprintIos: + *s = CreateHostRequestFingerprintIos + case CreateHostRequestFingerprintAndroid: + *s = CreateHostRequestFingerprintAndroid + case CreateHostRequestFingerprintEdge: + *s = CreateHostRequestFingerprintEdge + case CreateHostRequestFingerprintQq: + *s = CreateHostRequestFingerprintQq + case CreateHostRequestFingerprintRandom: + *s = CreateHostRequestFingerprintRandom + case CreateHostRequestFingerprintRandomized: + *s = CreateHostRequestFingerprintRandomized + default: + *s = CreateHostRequestFingerprint(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s CreateHostRequestFingerprint) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CreateHostRequestFingerprint) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes CreateHostRequestSecurityLayer as json. +func (s CreateHostRequestSecurityLayer) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes CreateHostRequestSecurityLayer from json. +func (s *CreateHostRequestSecurityLayer) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CreateHostRequestSecurityLayer to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch CreateHostRequestSecurityLayer(v) { + case CreateHostRequestSecurityLayerDEFAULT: + *s = CreateHostRequestSecurityLayerDEFAULT + case CreateHostRequestSecurityLayerTLS: + *s = CreateHostRequestSecurityLayerTLS + case CreateHostRequestSecurityLayerNONE: + *s = CreateHostRequestSecurityLayerNONE + default: + *s = CreateHostRequestSecurityLayer(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s CreateHostRequestSecurityLayer) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CreateHostRequestSecurityLayer) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *CreateInfraBillingHistoryRecordRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *CreateInfraBillingHistoryRecordRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("providerUuid") + json.EncodeUUID(e, s.ProviderUuid) + } + { + e.FieldStart("amount") + e.Float64(s.Amount) + } + { + e.FieldStart("billedAt") + json.EncodeDateTime(e, s.BilledAt) + } +} + +var jsonFieldsNameOfCreateInfraBillingHistoryRecordRequest = [3]string{ + 0: "providerUuid", + 1: "amount", + 2: "billedAt", +} + +// Decode decodes CreateInfraBillingHistoryRecordRequest from json. +func (s *CreateInfraBillingHistoryRecordRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CreateInfraBillingHistoryRecordRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "providerUuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.ProviderUuid = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"providerUuid\"") + } + case "amount": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Float64() + s.Amount = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"amount\"") + } + case "billedAt": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.BilledAt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"billedAt\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode CreateInfraBillingHistoryRecordRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfCreateInfraBillingHistoryRecordRequest) { + name = jsonFieldsNameOfCreateInfraBillingHistoryRecordRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *CreateInfraBillingHistoryRecordRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CreateInfraBillingHistoryRecordRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *CreateInfraBillingNodeRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *CreateInfraBillingNodeRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("providerUuid") + json.EncodeUUID(e, s.ProviderUuid) + } + { + e.FieldStart("nodeUuid") + json.EncodeUUID(e, s.NodeUuid) + } + { + if s.NextBillingAt.Set { + e.FieldStart("nextBillingAt") + s.NextBillingAt.Encode(e, json.EncodeDateTime) + } + } +} + +var jsonFieldsNameOfCreateInfraBillingNodeRequest = [3]string{ + 0: "providerUuid", + 1: "nodeUuid", + 2: "nextBillingAt", +} + +// Decode decodes CreateInfraBillingNodeRequest from json. +func (s *CreateInfraBillingNodeRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CreateInfraBillingNodeRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "providerUuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.ProviderUuid = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"providerUuid\"") + } + case "nodeUuid": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := json.DecodeUUID(d) + s.NodeUuid = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"nodeUuid\"") + } + case "nextBillingAt": + if err := func() error { + s.NextBillingAt.Reset() + if err := s.NextBillingAt.Decode(d, json.DecodeDateTime); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"nextBillingAt\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode CreateInfraBillingNodeRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfCreateInfraBillingNodeRequest) { + name = jsonFieldsNameOfCreateInfraBillingNodeRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *CreateInfraBillingNodeRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CreateInfraBillingNodeRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *CreateInfraProviderRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *CreateInfraProviderRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("name") + e.Str(s.Name) + } + { + if s.FaviconLink.Set { + e.FieldStart("faviconLink") + s.FaviconLink.Encode(e) + } + } + { + if s.LoginUrl.Set { + e.FieldStart("loginUrl") + s.LoginUrl.Encode(e) + } + } +} + +var jsonFieldsNameOfCreateInfraProviderRequest = [3]string{ + 0: "name", + 1: "faviconLink", + 2: "loginUrl", +} + +// Decode decodes CreateInfraProviderRequest from json. +func (s *CreateInfraProviderRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CreateInfraProviderRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "name": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "faviconLink": + if err := func() error { + s.FaviconLink.Reset() + if err := s.FaviconLink.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"faviconLink\"") + } + case "loginUrl": + if err := func() error { + s.LoginUrl.Reset() + if err := s.LoginUrl.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"loginUrl\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode CreateInfraProviderRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfCreateInfraProviderRequest) { + name = jsonFieldsNameOfCreateInfraProviderRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *CreateInfraProviderRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CreateInfraProviderRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *CreateInternalSquadRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *CreateInternalSquadRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("name") + e.Str(s.Name) + } + { + e.FieldStart("inbounds") + e.ArrStart() + for _, elem := range s.Inbounds { + json.EncodeUUID(e, elem) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfCreateInternalSquadRequest = [2]string{ + 0: "name", + 1: "inbounds", +} + +// Decode decodes CreateInternalSquadRequest from json. +func (s *CreateInternalSquadRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CreateInternalSquadRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "name": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "inbounds": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + s.Inbounds = make([]uuid.UUID, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem uuid.UUID + v, err := json.DecodeUUID(d) + elem = v + if err != nil { + return err + } + s.Inbounds = append(s.Inbounds, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"inbounds\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode CreateInternalSquadRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfCreateInternalSquadRequest) { + name = jsonFieldsNameOfCreateInternalSquadRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *CreateInternalSquadRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CreateInternalSquadRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *CreateNodePluginRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *CreateNodePluginRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("name") + e.Str(s.Name) + } +} + +var jsonFieldsNameOfCreateNodePluginRequest = [1]string{ + 0: "name", +} + +// Decode decodes CreateNodePluginRequest from json. +func (s *CreateNodePluginRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CreateNodePluginRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "name": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode CreateNodePluginRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfCreateNodePluginRequest) { + name = jsonFieldsNameOfCreateNodePluginRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *CreateNodePluginRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CreateNodePluginRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *CreateNodePluginResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *CreateNodePluginResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfCreateNodePluginResponse = [1]string{ + 0: "response", +} + +// Decode decodes CreateNodePluginResponse from json. +func (s *CreateNodePluginResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CreateNodePluginResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode CreateNodePluginResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfCreateNodePluginResponse) { + name = jsonFieldsNameOfCreateNodePluginResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *CreateNodePluginResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CreateNodePluginResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *CreateNodeRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *CreateNodeRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("name") + e.Str(s.Name) + } + { + e.FieldStart("address") + e.Str(s.Address) + } + { + if s.Port.Set { + e.FieldStart("port") + s.Port.Encode(e) + } + } + { + if s.IsTrafficTrackingActive.Set { + e.FieldStart("isTrafficTrackingActive") + s.IsTrafficTrackingActive.Encode(e) + } + } + { + if s.TrafficLimitBytes.Set { + e.FieldStart("trafficLimitBytes") + s.TrafficLimitBytes.Encode(e) + } + } + { + if s.NotifyPercent.Set { + e.FieldStart("notifyPercent") + s.NotifyPercent.Encode(e) + } + } + { + if s.TrafficResetDay.Set { + e.FieldStart("trafficResetDay") + s.TrafficResetDay.Encode(e) + } + } + { + if s.CountryCode.Set { + e.FieldStart("countryCode") + s.CountryCode.Encode(e) + } + } + { + if s.ConsumptionMultiplier.Set { + e.FieldStart("consumptionMultiplier") + s.ConsumptionMultiplier.Encode(e) + } + } + { + e.FieldStart("configProfile") + s.ConfigProfile.Encode(e) + } + { + if s.ProviderUuid.Set { + e.FieldStart("providerUuid") + s.ProviderUuid.Encode(e) + } + } + { + if s.Tags != nil { + e.FieldStart("tags") + e.ArrStart() + for _, elem := range s.Tags { + e.Str(elem) + } + e.ArrEnd() + } + } + { + if s.ActivePluginUuid.Set { + e.FieldStart("activePluginUuid") + s.ActivePluginUuid.Encode(e) + } + } +} + +var jsonFieldsNameOfCreateNodeRequest = [13]string{ + 0: "name", + 1: "address", + 2: "port", + 3: "isTrafficTrackingActive", + 4: "trafficLimitBytes", + 5: "notifyPercent", + 6: "trafficResetDay", + 7: "countryCode", + 8: "consumptionMultiplier", + 9: "configProfile", + 10: "providerUuid", + 11: "tags", + 12: "activePluginUuid", +} + +// Decode decodes CreateNodeRequest from json. +func (s *CreateNodeRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CreateNodeRequest to nil") + } + var requiredBitSet [2]uint8 + s.setDefaults() + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "name": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "address": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Address = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"address\"") + } + case "port": + if err := func() error { + s.Port.Reset() + if err := s.Port.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"port\"") + } + case "isTrafficTrackingActive": + if err := func() error { + s.IsTrafficTrackingActive.Reset() + if err := s.IsTrafficTrackingActive.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"isTrafficTrackingActive\"") + } + case "trafficLimitBytes": + if err := func() error { + s.TrafficLimitBytes.Reset() + if err := s.TrafficLimitBytes.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"trafficLimitBytes\"") + } + case "notifyPercent": + if err := func() error { + s.NotifyPercent.Reset() + if err := s.NotifyPercent.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"notifyPercent\"") + } + case "trafficResetDay": + if err := func() error { + s.TrafficResetDay.Reset() + if err := s.TrafficResetDay.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"trafficResetDay\"") + } + case "countryCode": + if err := func() error { + s.CountryCode.Reset() + if err := s.CountryCode.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"countryCode\"") + } + case "consumptionMultiplier": + if err := func() error { + s.ConsumptionMultiplier.Reset() + if err := s.ConsumptionMultiplier.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"consumptionMultiplier\"") + } + case "configProfile": + requiredBitSet[1] |= 1 << 1 + if err := func() error { + if err := s.ConfigProfile.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"configProfile\"") + } + case "providerUuid": + if err := func() error { + s.ProviderUuid.Reset() + if err := s.ProviderUuid.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"providerUuid\"") + } + case "tags": + if err := func() error { + s.Tags = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.Tags = append(s.Tags, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"tags\"") + } + case "activePluginUuid": + if err := func() error { + s.ActivePluginUuid.Reset() + if err := s.ActivePluginUuid.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"activePluginUuid\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode CreateNodeRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [2]uint8{ + 0b00000011, + 0b00000010, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfCreateNodeRequest) { + name = jsonFieldsNameOfCreateNodeRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *CreateNodeRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CreateNodeRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *CreateSubscriptionPageConfigRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *CreateSubscriptionPageConfigRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("name") + e.Str(s.Name) + } +} + +var jsonFieldsNameOfCreateSubscriptionPageConfigRequest = [1]string{ + 0: "name", +} + +// Decode decodes CreateSubscriptionPageConfigRequest from json. +func (s *CreateSubscriptionPageConfigRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CreateSubscriptionPageConfigRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "name": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode CreateSubscriptionPageConfigRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfCreateSubscriptionPageConfigRequest) { + name = jsonFieldsNameOfCreateSubscriptionPageConfigRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *CreateSubscriptionPageConfigRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CreateSubscriptionPageConfigRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *CreateSubscriptionPageConfigResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *CreateSubscriptionPageConfigResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfCreateSubscriptionPageConfigResponse = [1]string{ + 0: "response", +} + +// Decode decodes CreateSubscriptionPageConfigResponse from json. +func (s *CreateSubscriptionPageConfigResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CreateSubscriptionPageConfigResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode CreateSubscriptionPageConfigResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfCreateSubscriptionPageConfigResponse) { + name = jsonFieldsNameOfCreateSubscriptionPageConfigResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *CreateSubscriptionPageConfigResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CreateSubscriptionPageConfigResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *CreateSubscriptionTemplateRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *CreateSubscriptionTemplateRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("name") + e.Str(s.Name) + } + { + e.FieldStart("templateType") + s.TemplateType.Encode(e) + } +} + +var jsonFieldsNameOfCreateSubscriptionTemplateRequest = [2]string{ + 0: "name", + 1: "templateType", +} + +// Decode decodes CreateSubscriptionTemplateRequest from json. +func (s *CreateSubscriptionTemplateRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CreateSubscriptionTemplateRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "name": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "templateType": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.TemplateType.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"templateType\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode CreateSubscriptionTemplateRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfCreateSubscriptionTemplateRequest) { + name = jsonFieldsNameOfCreateSubscriptionTemplateRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *CreateSubscriptionTemplateRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CreateSubscriptionTemplateRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes CreateSubscriptionTemplateRequestTemplateType as json. +func (s CreateSubscriptionTemplateRequestTemplateType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes CreateSubscriptionTemplateRequestTemplateType from json. +func (s *CreateSubscriptionTemplateRequestTemplateType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CreateSubscriptionTemplateRequestTemplateType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch CreateSubscriptionTemplateRequestTemplateType(v) { + case CreateSubscriptionTemplateRequestTemplateTypeXRAYJSON: + *s = CreateSubscriptionTemplateRequestTemplateTypeXRAYJSON + case CreateSubscriptionTemplateRequestTemplateTypeXRAYBASE64: + *s = CreateSubscriptionTemplateRequestTemplateTypeXRAYBASE64 + case CreateSubscriptionTemplateRequestTemplateTypeMIHOMO: + *s = CreateSubscriptionTemplateRequestTemplateTypeMIHOMO + case CreateSubscriptionTemplateRequestTemplateTypeSTASH: + *s = CreateSubscriptionTemplateRequestTemplateTypeSTASH + case CreateSubscriptionTemplateRequestTemplateTypeCLASH: + *s = CreateSubscriptionTemplateRequestTemplateTypeCLASH + case CreateSubscriptionTemplateRequestTemplateTypeSINGBOX: + *s = CreateSubscriptionTemplateRequestTemplateTypeSINGBOX + default: + *s = CreateSubscriptionTemplateRequestTemplateType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s CreateSubscriptionTemplateRequestTemplateType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CreateSubscriptionTemplateRequestTemplateType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *CreateUserHwidDeviceRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *CreateUserHwidDeviceRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("hwid") + e.Str(s.Hwid) + } + { + e.FieldStart("userUuid") + json.EncodeUUID(e, s.UserUuid) + } + { + if s.Platform.Set { + e.FieldStart("platform") + s.Platform.Encode(e) + } + } + { + if s.OsVersion.Set { + e.FieldStart("osVersion") + s.OsVersion.Encode(e) + } + } + { + if s.DeviceModel.Set { + e.FieldStart("deviceModel") + s.DeviceModel.Encode(e) + } + } + { + if s.UserAgent.Set { + e.FieldStart("userAgent") + s.UserAgent.Encode(e) + } + } +} + +var jsonFieldsNameOfCreateUserHwidDeviceRequest = [6]string{ + 0: "hwid", + 1: "userUuid", + 2: "platform", + 3: "osVersion", + 4: "deviceModel", + 5: "userAgent", +} + +// Decode decodes CreateUserHwidDeviceRequest from json. +func (s *CreateUserHwidDeviceRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CreateUserHwidDeviceRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "hwid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Hwid = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"hwid\"") + } + case "userUuid": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UserUuid = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"userUuid\"") + } + case "platform": + if err := func() error { + s.Platform.Reset() + if err := s.Platform.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"platform\"") + } + case "osVersion": + if err := func() error { + s.OsVersion.Reset() + if err := s.OsVersion.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"osVersion\"") + } + case "deviceModel": + if err := func() error { + s.DeviceModel.Reset() + if err := s.DeviceModel.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"deviceModel\"") + } + case "userAgent": + if err := func() error { + s.UserAgent.Reset() + if err := s.UserAgent.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"userAgent\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode CreateUserHwidDeviceRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfCreateUserHwidDeviceRequest) { + name = jsonFieldsNameOfCreateUserHwidDeviceRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *CreateUserHwidDeviceRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CreateUserHwidDeviceRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *CreateUserRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *CreateUserRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("username") + e.Str(s.Username) + } + { + if s.Status.Set { + e.FieldStart("status") + s.Status.Encode(e) + } + } + { + if s.ShortUuid.Set { + e.FieldStart("shortUuid") + s.ShortUuid.Encode(e) + } + } + { + if s.TrojanPassword.Set { + e.FieldStart("trojanPassword") + s.TrojanPassword.Encode(e) + } + } + { + if s.VlessUuid.Set { + e.FieldStart("vlessUuid") + s.VlessUuid.Encode(e) + } + } + { + if s.SsPassword.Set { + e.FieldStart("ssPassword") + s.SsPassword.Encode(e) + } + } + { + if s.TrafficLimitBytes.Set { + e.FieldStart("trafficLimitBytes") + s.TrafficLimitBytes.Encode(e) + } + } + { + if s.TrafficLimitStrategy.Set { + e.FieldStart("trafficLimitStrategy") + s.TrafficLimitStrategy.Encode(e) + } + } + { + e.FieldStart("expireAt") + json.EncodeDateTime(e, s.ExpireAt) + } + { + if s.CreatedAt.Set { + e.FieldStart("createdAt") + s.CreatedAt.Encode(e, json.EncodeDateTime) + } + } + { + if s.LastTrafficResetAt.Set { + e.FieldStart("lastTrafficResetAt") + s.LastTrafficResetAt.Encode(e, json.EncodeDateTime) + } + } + { + if s.Description.Set { + e.FieldStart("description") + s.Description.Encode(e) + } + } + { + if s.Tag.Set { + e.FieldStart("tag") + s.Tag.Encode(e) + } + } + { + if s.TelegramId.Set { + e.FieldStart("telegramId") + s.TelegramId.Encode(e) + } + } + { + if s.Email.Set { + e.FieldStart("email") + s.Email.Encode(e) + } + } + { + if s.HwidDeviceLimit.Set { + e.FieldStart("hwidDeviceLimit") + s.HwidDeviceLimit.Encode(e) + } + } + { + if s.ActiveInternalSquads != nil { + e.FieldStart("activeInternalSquads") + e.ArrStart() + for _, elem := range s.ActiveInternalSquads { + json.EncodeUUID(e, elem) + } + e.ArrEnd() + } + } + { + if s.UUID.Set { + e.FieldStart("uuid") + s.UUID.Encode(e) + } + } + { + if s.ExternalSquadUuid.Set { + e.FieldStart("externalSquadUuid") + s.ExternalSquadUuid.Encode(e) + } + } +} + +var jsonFieldsNameOfCreateUserRequest = [19]string{ + 0: "username", + 1: "status", + 2: "shortUuid", + 3: "trojanPassword", + 4: "vlessUuid", + 5: "ssPassword", + 6: "trafficLimitBytes", + 7: "trafficLimitStrategy", + 8: "expireAt", + 9: "createdAt", + 10: "lastTrafficResetAt", + 11: "description", + 12: "tag", + 13: "telegramId", + 14: "email", + 15: "hwidDeviceLimit", + 16: "activeInternalSquads", + 17: "uuid", + 18: "externalSquadUuid", +} + +// Decode decodes CreateUserRequest from json. +func (s *CreateUserRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CreateUserRequest to nil") + } + var requiredBitSet [3]uint8 + s.setDefaults() + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "username": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Username = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"username\"") + } + case "status": + if err := func() error { + s.Status.Reset() + if err := s.Status.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"status\"") + } + case "shortUuid": + if err := func() error { + s.ShortUuid.Reset() + if err := s.ShortUuid.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"shortUuid\"") + } + case "trojanPassword": + if err := func() error { + s.TrojanPassword.Reset() + if err := s.TrojanPassword.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"trojanPassword\"") + } + case "vlessUuid": + if err := func() error { + s.VlessUuid.Reset() + if err := s.VlessUuid.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"vlessUuid\"") + } + case "ssPassword": + if err := func() error { + s.SsPassword.Reset() + if err := s.SsPassword.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"ssPassword\"") + } + case "trafficLimitBytes": + if err := func() error { + s.TrafficLimitBytes.Reset() + if err := s.TrafficLimitBytes.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"trafficLimitBytes\"") + } + case "trafficLimitStrategy": + if err := func() error { + s.TrafficLimitStrategy.Reset() + if err := s.TrafficLimitStrategy.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"trafficLimitStrategy\"") + } + case "expireAt": + requiredBitSet[1] |= 1 << 0 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.ExpireAt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"expireAt\"") + } + case "createdAt": + if err := func() error { + s.CreatedAt.Reset() + if err := s.CreatedAt.Decode(d, json.DecodeDateTime); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"createdAt\"") + } + case "lastTrafficResetAt": + if err := func() error { + s.LastTrafficResetAt.Reset() + if err := s.LastTrafficResetAt.Decode(d, json.DecodeDateTime); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"lastTrafficResetAt\"") + } + case "description": + if err := func() error { + s.Description.Reset() + if err := s.Description.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"description\"") + } + case "tag": + if err := func() error { + s.Tag.Reset() + if err := s.Tag.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"tag\"") + } + case "telegramId": + if err := func() error { + s.TelegramId.Reset() + if err := s.TelegramId.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"telegramId\"") + } + case "email": + if err := func() error { + s.Email.Reset() + if err := s.Email.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"email\"") + } + case "hwidDeviceLimit": + if err := func() error { + s.HwidDeviceLimit.Reset() + if err := s.HwidDeviceLimit.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"hwidDeviceLimit\"") + } + case "activeInternalSquads": + if err := func() error { + s.ActiveInternalSquads = make([]uuid.UUID, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem uuid.UUID + v, err := json.DecodeUUID(d) + elem = v + if err != nil { + return err + } + s.ActiveInternalSquads = append(s.ActiveInternalSquads, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"activeInternalSquads\"") + } + case "uuid": + if err := func() error { + s.UUID.Reset() + if err := s.UUID.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "externalSquadUuid": + if err := func() error { + s.ExternalSquadUuid.Reset() + if err := s.ExternalSquadUuid.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"externalSquadUuid\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode CreateUserRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [3]uint8{ + 0b00000001, + 0b00000001, + 0b00000000, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfCreateUserRequest) { + name = jsonFieldsNameOfCreateUserRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *CreateUserRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CreateUserRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes CreateUserRequestStatus as json. +func (s CreateUserRequestStatus) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes CreateUserRequestStatus from json. +func (s *CreateUserRequestStatus) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CreateUserRequestStatus to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch CreateUserRequestStatus(v) { + case CreateUserRequestStatusACTIVE: + *s = CreateUserRequestStatusACTIVE + case CreateUserRequestStatusDISABLED: + *s = CreateUserRequestStatusDISABLED + case CreateUserRequestStatusLIMITED: + *s = CreateUserRequestStatusLIMITED + case CreateUserRequestStatusEXPIRED: + *s = CreateUserRequestStatusEXPIRED + default: + *s = CreateUserRequestStatus(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s CreateUserRequestStatus) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CreateUserRequestStatus) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes CreateUserRequestTrafficLimitStrategy as json. +func (s CreateUserRequestTrafficLimitStrategy) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes CreateUserRequestTrafficLimitStrategy from json. +func (s *CreateUserRequestTrafficLimitStrategy) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CreateUserRequestTrafficLimitStrategy to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch CreateUserRequestTrafficLimitStrategy(v) { + case CreateUserRequestTrafficLimitStrategyNORESET: + *s = CreateUserRequestTrafficLimitStrategyNORESET + case CreateUserRequestTrafficLimitStrategyDAY: + *s = CreateUserRequestTrafficLimitStrategyDAY + case CreateUserRequestTrafficLimitStrategyWEEK: + *s = CreateUserRequestTrafficLimitStrategyWEEK + case CreateUserRequestTrafficLimitStrategyMONTH: + *s = CreateUserRequestTrafficLimitStrategyMONTH + case CreateUserRequestTrafficLimitStrategyMONTHROLLING: + *s = CreateUserRequestTrafficLimitStrategyMONTHROLLING + default: + *s = CreateUserRequestTrafficLimitStrategy(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s CreateUserRequestTrafficLimitStrategy) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CreateUserRequestTrafficLimitStrategy) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *CustomRemark) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *CustomRemark) encodeFields(e *jx.Encoder) { + { + e.FieldStart("expiredUsers") + e.ArrStart() + for _, elem := range s.ExpiredUsers { + e.Str(elem) + } + e.ArrEnd() + } + { + e.FieldStart("limitedUsers") + e.ArrStart() + for _, elem := range s.LimitedUsers { + e.Str(elem) + } + e.ArrEnd() + } + { + e.FieldStart("disabledUsers") + e.ArrStart() + for _, elem := range s.DisabledUsers { + e.Str(elem) + } + e.ArrEnd() + } + { + e.FieldStart("emptyHosts") + e.ArrStart() + for _, elem := range s.EmptyHosts { + e.Str(elem) + } + e.ArrEnd() + } + { + e.FieldStart("HWIDMaxDevicesExceeded") + e.ArrStart() + for _, elem := range s.HWIDMaxDevicesExceeded { + e.Str(elem) + } + e.ArrEnd() + } + { + e.FieldStart("HWIDNotSupported") + e.ArrStart() + for _, elem := range s.HWIDNotSupported { + e.Str(elem) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfCustomRemark = [6]string{ + 0: "expiredUsers", + 1: "limitedUsers", + 2: "disabledUsers", + 3: "emptyHosts", + 4: "HWIDMaxDevicesExceeded", + 5: "HWIDNotSupported", +} + +// Decode decodes CustomRemark from json. +func (s *CustomRemark) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CustomRemark to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "expiredUsers": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.ExpiredUsers = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.ExpiredUsers = append(s.ExpiredUsers, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"expiredUsers\"") + } + case "limitedUsers": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + s.LimitedUsers = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.LimitedUsers = append(s.LimitedUsers, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"limitedUsers\"") + } + case "disabledUsers": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + s.DisabledUsers = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.DisabledUsers = append(s.DisabledUsers, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"disabledUsers\"") + } + case "emptyHosts": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + s.EmptyHosts = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.EmptyHosts = append(s.EmptyHosts, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"emptyHosts\"") + } + case "HWIDMaxDevicesExceeded": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + s.HWIDMaxDevicesExceeded = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.HWIDMaxDevicesExceeded = append(s.HWIDMaxDevicesExceeded, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"HWIDMaxDevicesExceeded\"") + } + case "HWIDNotSupported": + requiredBitSet[0] |= 1 << 5 + if err := func() error { + s.HWIDNotSupported = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.HWIDNotSupported = append(s.HWIDNotSupported, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"HWIDNotSupported\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode CustomRemark") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00111111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfCustomRemark) { + name = jsonFieldsNameOfCustomRemark[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *CustomRemark) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CustomRemark) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *DebugSrrMatcherRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *DebugSrrMatcherRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("responseRules") + s.ResponseRules.Encode(e) + } +} + +var jsonFieldsNameOfDebugSrrMatcherRequest = [1]string{ + 0: "responseRules", +} + +// Decode decodes DebugSrrMatcherRequest from json. +func (s *DebugSrrMatcherRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode DebugSrrMatcherRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "responseRules": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.ResponseRules.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"responseRules\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode DebugSrrMatcherRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfDebugSrrMatcherRequest) { + name = jsonFieldsNameOfDebugSrrMatcherRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *DebugSrrMatcherRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *DebugSrrMatcherRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *DebugSrrMatcherResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *DebugSrrMatcherResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfDebugSrrMatcherResponse = [1]string{ + 0: "response", +} + +// Decode decodes DebugSrrMatcherResponse from json. +func (s *DebugSrrMatcherResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode DebugSrrMatcherResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode DebugSrrMatcherResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfDebugSrrMatcherResponse) { + name = jsonFieldsNameOfDebugSrrMatcherResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *DebugSrrMatcherResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *DebugSrrMatcherResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *DebugSrrMatcherResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *DebugSrrMatcherResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("matched") + e.Bool(s.Matched) + } + { + e.FieldStart("responseType") + s.ResponseType.Encode(e) + } + { + e.FieldStart("matchedRule") + s.MatchedRule.Encode(e) + } + { + e.FieldStart("inputHeaders") + s.InputHeaders.Encode(e) + } + { + e.FieldStart("outputHeaders") + s.OutputHeaders.Encode(e) + } +} + +var jsonFieldsNameOfDebugSrrMatcherResponseResponse = [5]string{ + 0: "matched", + 1: "responseType", + 2: "matchedRule", + 3: "inputHeaders", + 4: "outputHeaders", +} + +// Decode decodes DebugSrrMatcherResponseResponse from json. +func (s *DebugSrrMatcherResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode DebugSrrMatcherResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "matched": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Bool() + s.Matched = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"matched\"") + } + case "responseType": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.ResponseType.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"responseType\"") + } + case "matchedRule": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.MatchedRule.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"matchedRule\"") + } + case "inputHeaders": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + if err := s.InputHeaders.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"inputHeaders\"") + } + case "outputHeaders": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + if err := s.OutputHeaders.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"outputHeaders\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode DebugSrrMatcherResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00011111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfDebugSrrMatcherResponseResponse) { + name = jsonFieldsNameOfDebugSrrMatcherResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *DebugSrrMatcherResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *DebugSrrMatcherResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s DebugSrrMatcherResponseResponseInputHeaders) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields implements json.Marshaler. +func (s DebugSrrMatcherResponseResponseInputHeaders) encodeFields(e *jx.Encoder) { + for k, elem := range s { + e.FieldStart(k) + + e.Str(elem) + } +} + +// Decode decodes DebugSrrMatcherResponseResponseInputHeaders from json. +func (s *DebugSrrMatcherResponseResponseInputHeaders) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode DebugSrrMatcherResponseResponseInputHeaders to nil") + } + m := s.init() + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + var elem string + if err := func() error { + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrapf(err, "decode field %q", k) + } + m[string(k)] = elem + return nil + }); err != nil { + return errors.Wrap(err, "decode DebugSrrMatcherResponseResponseInputHeaders") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s DebugSrrMatcherResponseResponseInputHeaders) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *DebugSrrMatcherResponseResponseInputHeaders) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s DebugSrrMatcherResponseResponseOutputHeaders) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields implements json.Marshaler. +func (s DebugSrrMatcherResponseResponseOutputHeaders) encodeFields(e *jx.Encoder) { + for k, elem := range s { + e.FieldStart(k) + + e.Str(elem) + } +} + +// Decode decodes DebugSrrMatcherResponseResponseOutputHeaders from json. +func (s *DebugSrrMatcherResponseResponseOutputHeaders) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode DebugSrrMatcherResponseResponseOutputHeaders to nil") + } + m := s.init() + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + var elem string + if err := func() error { + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrapf(err, "decode field %q", k) + } + m[string(k)] = elem + return nil + }); err != nil { + return errors.Wrap(err, "decode DebugSrrMatcherResponseResponseOutputHeaders") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s DebugSrrMatcherResponseResponseOutputHeaders) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *DebugSrrMatcherResponseResponseOutputHeaders) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes DebugSrrMatcherResponseResponseResponseType as json. +func (s DebugSrrMatcherResponseResponseResponseType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes DebugSrrMatcherResponseResponseResponseType from json. +func (s *DebugSrrMatcherResponseResponseResponseType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode DebugSrrMatcherResponseResponseResponseType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch DebugSrrMatcherResponseResponseResponseType(v) { + case DebugSrrMatcherResponseResponseResponseTypeXRAYJSON: + *s = DebugSrrMatcherResponseResponseResponseTypeXRAYJSON + case DebugSrrMatcherResponseResponseResponseTypeXRAYBASE64: + *s = DebugSrrMatcherResponseResponseResponseTypeXRAYBASE64 + case DebugSrrMatcherResponseResponseResponseTypeMIHOMO: + *s = DebugSrrMatcherResponseResponseResponseTypeMIHOMO + case DebugSrrMatcherResponseResponseResponseTypeSTASH: + *s = DebugSrrMatcherResponseResponseResponseTypeSTASH + case DebugSrrMatcherResponseResponseResponseTypeCLASH: + *s = DebugSrrMatcherResponseResponseResponseTypeCLASH + case DebugSrrMatcherResponseResponseResponseTypeSINGBOX: + *s = DebugSrrMatcherResponseResponseResponseTypeSINGBOX + case DebugSrrMatcherResponseResponseResponseTypeBROWSER: + *s = DebugSrrMatcherResponseResponseResponseTypeBROWSER + case DebugSrrMatcherResponseResponseResponseTypeBLOCK: + *s = DebugSrrMatcherResponseResponseResponseTypeBLOCK + case DebugSrrMatcherResponseResponseResponseTypeSTATUSCODE404: + *s = DebugSrrMatcherResponseResponseResponseTypeSTATUSCODE404 + case DebugSrrMatcherResponseResponseResponseTypeSTATUSCODE451: + *s = DebugSrrMatcherResponseResponseResponseTypeSTATUSCODE451 + case DebugSrrMatcherResponseResponseResponseTypeSOCKETDROP: + *s = DebugSrrMatcherResponseResponseResponseTypeSOCKETDROP + default: + *s = DebugSrrMatcherResponseResponseResponseType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s DebugSrrMatcherResponseResponseResponseType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *DebugSrrMatcherResponseResponseResponseType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *DebugSrrMatcherSettings) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *DebugSrrMatcherSettings) encodeFields(e *jx.Encoder) { + { + if s.DisableSubscriptionAccessByPath.Set { + e.FieldStart("disableSubscriptionAccessByPath") + s.DisableSubscriptionAccessByPath.Encode(e) + } + } +} + +var jsonFieldsNameOfDebugSrrMatcherSettings = [1]string{ + 0: "disableSubscriptionAccessByPath", +} + +// Decode decodes DebugSrrMatcherSettings from json. +func (s *DebugSrrMatcherSettings) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode DebugSrrMatcherSettings to nil") + } + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "disableSubscriptionAccessByPath": + if err := func() error { + s.DisableSubscriptionAccessByPath.Reset() + if err := s.DisableSubscriptionAccessByPath.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"disableSubscriptionAccessByPath\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode DebugSrrMatcherSettings") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *DebugSrrMatcherSettings) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *DebugSrrMatcherSettings) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *DeleteAllUserHwidDevicesRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *DeleteAllUserHwidDevicesRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("userUuid") + json.EncodeUUID(e, s.UserUuid) + } +} + +var jsonFieldsNameOfDeleteAllUserHwidDevicesRequest = [1]string{ + 0: "userUuid", +} + +// Decode decodes DeleteAllUserHwidDevicesRequest from json. +func (s *DeleteAllUserHwidDevicesRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode DeleteAllUserHwidDevicesRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "userUuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UserUuid = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"userUuid\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode DeleteAllUserHwidDevicesRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfDeleteAllUserHwidDevicesRequest) { + name = jsonFieldsNameOfDeleteAllUserHwidDevicesRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *DeleteAllUserHwidDevicesRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *DeleteAllUserHwidDevicesRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *DeleteApiTokenResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *DeleteApiTokenResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + e.Bool(s.Response) + } +} + +var jsonFieldsNameOfDeleteApiTokenResponse = [1]string{ + 0: "response", +} + +// Decode decodes DeleteApiTokenResponse from json. +func (s *DeleteApiTokenResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode DeleteApiTokenResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Bool() + s.Response = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode DeleteApiTokenResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfDeleteApiTokenResponse) { + name = jsonFieldsNameOfDeleteApiTokenResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *DeleteApiTokenResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *DeleteApiTokenResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *DeletePasskeyRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *DeletePasskeyRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("id") + e.Str(s.ID) + } +} + +var jsonFieldsNameOfDeletePasskeyRequest = [1]string{ + 0: "id", +} + +// Decode decodes DeletePasskeyRequest from json. +func (s *DeletePasskeyRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode DeletePasskeyRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "id": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.ID = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"id\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode DeletePasskeyRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfDeletePasskeyRequest) { + name = jsonFieldsNameOfDeletePasskeyRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *DeletePasskeyRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *DeletePasskeyRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *DeleteResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *DeleteResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfDeleteResponse = [1]string{ + 0: "response", +} + +// Decode decodes DeleteResponse from json. +func (s *DeleteResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode DeleteResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode DeleteResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfDeleteResponse) { + name = jsonFieldsNameOfDeleteResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *DeleteResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *DeleteResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *DeleteResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *DeleteResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("isDeleted") + e.Bool(s.IsDeleted) + } +} + +var jsonFieldsNameOfDeleteResponseResponse = [1]string{ + 0: "isDeleted", +} + +// Decode decodes DeleteResponseResponse from json. +func (s *DeleteResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode DeleteResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "isDeleted": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Bool() + s.IsDeleted = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"isDeleted\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode DeleteResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfDeleteResponseResponse) { + name = jsonFieldsNameOfDeleteResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *DeleteResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *DeleteResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *DeleteSnippetRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *DeleteSnippetRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("name") + e.Str(s.Name) + } +} + +var jsonFieldsNameOfDeleteSnippetRequest = [1]string{ + 0: "name", +} + +// Decode decodes DeleteSnippetRequest from json. +func (s *DeleteSnippetRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode DeleteSnippetRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "name": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode DeleteSnippetRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfDeleteSnippetRequest) { + name = jsonFieldsNameOfDeleteSnippetRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *DeleteSnippetRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *DeleteSnippetRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *DeleteUserHwidDeviceRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *DeleteUserHwidDeviceRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("userUuid") + json.EncodeUUID(e, s.UserUuid) + } + { + e.FieldStart("hwid") + e.Str(s.Hwid) + } +} + +var jsonFieldsNameOfDeleteUserHwidDeviceRequest = [2]string{ + 0: "userUuid", + 1: "hwid", +} + +// Decode decodes DeleteUserHwidDeviceRequest from json. +func (s *DeleteUserHwidDeviceRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode DeleteUserHwidDeviceRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "userUuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UserUuid = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"userUuid\"") + } + case "hwid": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Hwid = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"hwid\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode DeleteUserHwidDeviceRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfDeleteUserHwidDeviceRequest) { + name = jsonFieldsNameOfDeleteUserHwidDeviceRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *DeleteUserHwidDeviceRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *DeleteUserHwidDeviceRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *Device) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *Device) encodeFields(e *jx.Encoder) { + { + e.FieldStart("hwid") + e.Str(s.Hwid) + } + { + e.FieldStart("userUuid") + json.EncodeUUID(e, s.UserUuid) + } + { + e.FieldStart("platform") + s.Platform.Encode(e) + } + { + e.FieldStart("osVersion") + s.OsVersion.Encode(e) + } + { + e.FieldStart("deviceModel") + s.DeviceModel.Encode(e) + } + { + e.FieldStart("userAgent") + s.UserAgent.Encode(e) + } + { + e.FieldStart("createdAt") + json.EncodeDateTime(e, s.CreatedAt) + } + { + e.FieldStart("updatedAt") + json.EncodeDateTime(e, s.UpdatedAt) + } +} + +var jsonFieldsNameOfDevice = [8]string{ + 0: "hwid", + 1: "userUuid", + 2: "platform", + 3: "osVersion", + 4: "deviceModel", + 5: "userAgent", + 6: "createdAt", + 7: "updatedAt", +} + +// Decode decodes Device from json. +func (s *Device) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode Device to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "hwid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Hwid = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"hwid\"") + } + case "userUuid": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UserUuid = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"userUuid\"") + } + case "platform": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.Platform.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"platform\"") + } + case "osVersion": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + if err := s.OsVersion.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"osVersion\"") + } + case "deviceModel": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + if err := s.DeviceModel.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"deviceModel\"") + } + case "userAgent": + requiredBitSet[0] |= 1 << 5 + if err := func() error { + if err := s.UserAgent.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"userAgent\"") + } + case "createdAt": + requiredBitSet[0] |= 1 << 6 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.CreatedAt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"createdAt\"") + } + case "updatedAt": + requiredBitSet[0] |= 1 << 7 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.UpdatedAt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"updatedAt\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode Device") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b11111111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfDevice) { + name = jsonFieldsNameOfDevice[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *Device) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *Device) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *DropConnectionsRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *DropConnectionsRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("dropBy") + s.DropBy.Encode(e) + } + { + e.FieldStart("targetNodes") + s.TargetNodes.Encode(e) + } +} + +var jsonFieldsNameOfDropConnectionsRequest = [2]string{ + 0: "dropBy", + 1: "targetNodes", +} + +// Decode decodes DropConnectionsRequest from json. +func (s *DropConnectionsRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode DropConnectionsRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "dropBy": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.DropBy.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"dropBy\"") + } + case "targetNodes": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.TargetNodes.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"targetNodes\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode DropConnectionsRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfDropConnectionsRequest) { + name = jsonFieldsNameOfDropConnectionsRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *DropConnectionsRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *DropConnectionsRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes DropConnectionsRequestDropBy as json. +func (s DropConnectionsRequestDropBy) Encode(e *jx.Encoder) { + switch s.Type { + case DropConnectionsRequestDropBy0DropConnectionsRequestDropBy: + s.DropConnectionsRequestDropBy0.Encode(e) + case DropConnectionsRequestDropBy1DropConnectionsRequestDropBy: + s.DropConnectionsRequestDropBy1.Encode(e) + } +} + +func (s DropConnectionsRequestDropBy) encodeFields(e *jx.Encoder) { + switch s.Type { + case DropConnectionsRequestDropBy0DropConnectionsRequestDropBy: + s.DropConnectionsRequestDropBy0.encodeFields(e) + case DropConnectionsRequestDropBy1DropConnectionsRequestDropBy: + s.DropConnectionsRequestDropBy1.encodeFields(e) + } +} + +// Decode decodes DropConnectionsRequestDropBy from json. +func (s *DropConnectionsRequestDropBy) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode DropConnectionsRequestDropBy to nil") + } + // Sum type fields. + if typ := d.Next(); typ != jx.Object { + return errors.Errorf("unexpected json type %q", typ) + } + + var found bool + if err := d.Capture(func(d *jx.Decoder) error { + return d.ObjBytes(func(d *jx.Decoder, key []byte) error { + switch string(key) { + case "ipAddresses": + // Type-based discrimination: check if field has expected JSON type + if typ := d.Next(); typ != jx.Array { + // Field exists but has wrong type, not a match for this variant + return d.Skip() + } + match := DropConnectionsRequestDropBy1DropConnectionsRequestDropBy + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "userUuids": + // Type-based discrimination: check if field has expected JSON type + if typ := d.Next(); typ != jx.Array { + // Field exists but has wrong type, not a match for this variant + return d.Skip() + } + match := DropConnectionsRequestDropBy0DropConnectionsRequestDropBy + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "by": + // Value-based discrimination: check enum value + if typ := d.Next(); typ != jx.String { + return d.Skip() + } + value, err := d.StrBytes() + if err != nil { + return err + } + switch string(value) { + case "ipAddresses": + match := DropConnectionsRequestDropBy1DropConnectionsRequestDropBy + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "userUuids": + match := DropConnectionsRequestDropBy0DropConnectionsRequestDropBy + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + default: + // Unknown enum value, ignore and continue + } + return nil + } + return d.Skip() + }) + }); err != nil { + return errors.Wrap(err, "capture") + } + if !found { + return errors.New("unable to detect sum type variant") + } + switch s.Type { + case DropConnectionsRequestDropBy0DropConnectionsRequestDropBy: + if err := s.DropConnectionsRequestDropBy0.Decode(d); err != nil { + return err + } + case DropConnectionsRequestDropBy1DropConnectionsRequestDropBy: + if err := s.DropConnectionsRequestDropBy1.Decode(d); err != nil { + return err + } + default: + return errors.Errorf("inferred invalid type: %s", s.Type) + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s DropConnectionsRequestDropBy) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *DropConnectionsRequestDropBy) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *DropConnectionsRequestDropBy0) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *DropConnectionsRequestDropBy0) encodeFields(e *jx.Encoder) { + { + e.FieldStart("by") + s.By.Encode(e) + } + { + e.FieldStart("userUuids") + e.ArrStart() + for _, elem := range s.UserUuids { + json.EncodeUUID(e, elem) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfDropConnectionsRequestDropBy0 = [2]string{ + 0: "by", + 1: "userUuids", +} + +// Decode decodes DropConnectionsRequestDropBy0 from json. +func (s *DropConnectionsRequestDropBy0) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode DropConnectionsRequestDropBy0 to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "by": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.By.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"by\"") + } + case "userUuids": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + s.UserUuids = make([]uuid.UUID, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem uuid.UUID + v, err := json.DecodeUUID(d) + elem = v + if err != nil { + return err + } + s.UserUuids = append(s.UserUuids, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"userUuids\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode DropConnectionsRequestDropBy0") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfDropConnectionsRequestDropBy0) { + name = jsonFieldsNameOfDropConnectionsRequestDropBy0[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *DropConnectionsRequestDropBy0) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *DropConnectionsRequestDropBy0) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes DropConnectionsRequestDropBy0By as json. +func (s DropConnectionsRequestDropBy0By) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes DropConnectionsRequestDropBy0By from json. +func (s *DropConnectionsRequestDropBy0By) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode DropConnectionsRequestDropBy0By to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch DropConnectionsRequestDropBy0By(v) { + case DropConnectionsRequestDropBy0ByUserUuids: + *s = DropConnectionsRequestDropBy0ByUserUuids + default: + *s = DropConnectionsRequestDropBy0By(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s DropConnectionsRequestDropBy0By) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *DropConnectionsRequestDropBy0By) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *DropConnectionsRequestDropBy1) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *DropConnectionsRequestDropBy1) encodeFields(e *jx.Encoder) { + { + e.FieldStart("by") + s.By.Encode(e) + } + { + e.FieldStart("ipAddresses") + e.ArrStart() + for _, elem := range s.IpAddresses { + e.Str(elem) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfDropConnectionsRequestDropBy1 = [2]string{ + 0: "by", + 1: "ipAddresses", +} + +// Decode decodes DropConnectionsRequestDropBy1 from json. +func (s *DropConnectionsRequestDropBy1) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode DropConnectionsRequestDropBy1 to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "by": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.By.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"by\"") + } + case "ipAddresses": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + s.IpAddresses = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.IpAddresses = append(s.IpAddresses, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"ipAddresses\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode DropConnectionsRequestDropBy1") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfDropConnectionsRequestDropBy1) { + name = jsonFieldsNameOfDropConnectionsRequestDropBy1[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *DropConnectionsRequestDropBy1) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *DropConnectionsRequestDropBy1) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes DropConnectionsRequestDropBy1By as json. +func (s DropConnectionsRequestDropBy1By) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes DropConnectionsRequestDropBy1By from json. +func (s *DropConnectionsRequestDropBy1By) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode DropConnectionsRequestDropBy1By to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch DropConnectionsRequestDropBy1By(v) { + case DropConnectionsRequestDropBy1ByIpAddresses: + *s = DropConnectionsRequestDropBy1ByIpAddresses + default: + *s = DropConnectionsRequestDropBy1By(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s DropConnectionsRequestDropBy1By) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *DropConnectionsRequestDropBy1By) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes DropConnectionsRequestTargetNodes as json. +func (s DropConnectionsRequestTargetNodes) Encode(e *jx.Encoder) { + switch s.Type { + case DropConnectionsRequestTargetNodes0DropConnectionsRequestTargetNodes: + s.DropConnectionsRequestTargetNodes0.Encode(e) + case DropConnectionsRequestTargetNodes1DropConnectionsRequestTargetNodes: + s.DropConnectionsRequestTargetNodes1.Encode(e) + } +} + +func (s DropConnectionsRequestTargetNodes) encodeFields(e *jx.Encoder) { + switch s.Type { + case DropConnectionsRequestTargetNodes0DropConnectionsRequestTargetNodes: + s.DropConnectionsRequestTargetNodes0.encodeFields(e) + case DropConnectionsRequestTargetNodes1DropConnectionsRequestTargetNodes: + s.DropConnectionsRequestTargetNodes1.encodeFields(e) + } +} + +// Decode decodes DropConnectionsRequestTargetNodes from json. +func (s *DropConnectionsRequestTargetNodes) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode DropConnectionsRequestTargetNodes to nil") + } + // Sum type fields. + if typ := d.Next(); typ != jx.Object { + return errors.Errorf("unexpected json type %q", typ) + } + + var found bool + if err := d.Capture(func(d *jx.Decoder) error { + return d.ObjBytes(func(d *jx.Decoder, key []byte) error { + switch string(key) { + case "nodeUuids": + // Type-based discrimination: check if field has expected JSON type + if typ := d.Next(); typ != jx.Array { + // Field exists but has wrong type, not a match for this variant + return d.Skip() + } + match := DropConnectionsRequestTargetNodes1DropConnectionsRequestTargetNodes + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "target": + // Value-based discrimination: check enum value + if typ := d.Next(); typ != jx.String { + return d.Skip() + } + value, err := d.StrBytes() + if err != nil { + return err + } + switch string(value) { + case "allNodes": + match := DropConnectionsRequestTargetNodes0DropConnectionsRequestTargetNodes + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "specificNodes": + match := DropConnectionsRequestTargetNodes1DropConnectionsRequestTargetNodes + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + default: + // Unknown enum value, ignore and continue + } + return nil + } + return d.Skip() + }) + }); err != nil { + return errors.Wrap(err, "capture") + } + if !found { + return errors.New("unable to detect sum type variant") + } + switch s.Type { + case DropConnectionsRequestTargetNodes0DropConnectionsRequestTargetNodes: + if err := s.DropConnectionsRequestTargetNodes0.Decode(d); err != nil { + return err + } + case DropConnectionsRequestTargetNodes1DropConnectionsRequestTargetNodes: + if err := s.DropConnectionsRequestTargetNodes1.Decode(d); err != nil { + return err + } + default: + return errors.Errorf("inferred invalid type: %s", s.Type) + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s DropConnectionsRequestTargetNodes) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *DropConnectionsRequestTargetNodes) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *DropConnectionsRequestTargetNodes0) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *DropConnectionsRequestTargetNodes0) encodeFields(e *jx.Encoder) { + { + e.FieldStart("target") + s.Target.Encode(e) + } +} + +var jsonFieldsNameOfDropConnectionsRequestTargetNodes0 = [1]string{ + 0: "target", +} + +// Decode decodes DropConnectionsRequestTargetNodes0 from json. +func (s *DropConnectionsRequestTargetNodes0) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode DropConnectionsRequestTargetNodes0 to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "target": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Target.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"target\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode DropConnectionsRequestTargetNodes0") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfDropConnectionsRequestTargetNodes0) { + name = jsonFieldsNameOfDropConnectionsRequestTargetNodes0[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *DropConnectionsRequestTargetNodes0) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *DropConnectionsRequestTargetNodes0) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes DropConnectionsRequestTargetNodes0Target as json. +func (s DropConnectionsRequestTargetNodes0Target) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes DropConnectionsRequestTargetNodes0Target from json. +func (s *DropConnectionsRequestTargetNodes0Target) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode DropConnectionsRequestTargetNodes0Target to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch DropConnectionsRequestTargetNodes0Target(v) { + case DropConnectionsRequestTargetNodes0TargetAllNodes: + *s = DropConnectionsRequestTargetNodes0TargetAllNodes + default: + *s = DropConnectionsRequestTargetNodes0Target(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s DropConnectionsRequestTargetNodes0Target) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *DropConnectionsRequestTargetNodes0Target) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *DropConnectionsRequestTargetNodes1) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *DropConnectionsRequestTargetNodes1) encodeFields(e *jx.Encoder) { + { + e.FieldStart("target") + s.Target.Encode(e) + } + { + e.FieldStart("nodeUuids") + e.ArrStart() + for _, elem := range s.NodeUuids { + json.EncodeUUID(e, elem) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfDropConnectionsRequestTargetNodes1 = [2]string{ + 0: "target", + 1: "nodeUuids", +} + +// Decode decodes DropConnectionsRequestTargetNodes1 from json. +func (s *DropConnectionsRequestTargetNodes1) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode DropConnectionsRequestTargetNodes1 to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "target": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Target.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"target\"") + } + case "nodeUuids": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + s.NodeUuids = make([]uuid.UUID, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem uuid.UUID + v, err := json.DecodeUUID(d) + elem = v + if err != nil { + return err + } + s.NodeUuids = append(s.NodeUuids, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"nodeUuids\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode DropConnectionsRequestTargetNodes1") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfDropConnectionsRequestTargetNodes1) { + name = jsonFieldsNameOfDropConnectionsRequestTargetNodes1[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *DropConnectionsRequestTargetNodes1) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *DropConnectionsRequestTargetNodes1) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes DropConnectionsRequestTargetNodes1Target as json. +func (s DropConnectionsRequestTargetNodes1Target) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes DropConnectionsRequestTargetNodes1Target from json. +func (s *DropConnectionsRequestTargetNodes1Target) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode DropConnectionsRequestTargetNodes1Target to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch DropConnectionsRequestTargetNodes1Target(v) { + case DropConnectionsRequestTargetNodes1TargetSpecificNodes: + *s = DropConnectionsRequestTargetNodes1TargetSpecificNodes + default: + *s = DropConnectionsRequestTargetNodes1Target(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s DropConnectionsRequestTargetNodes1Target) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *DropConnectionsRequestTargetNodes1Target) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *EncryptHappCryptoLinkRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *EncryptHappCryptoLinkRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("linkToEncrypt") + json.EncodeURI(e, s.LinkToEncrypt) + } +} + +var jsonFieldsNameOfEncryptHappCryptoLinkRequest = [1]string{ + 0: "linkToEncrypt", +} + +// Decode decodes EncryptHappCryptoLinkRequest from json. +func (s *EncryptHappCryptoLinkRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode EncryptHappCryptoLinkRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "linkToEncrypt": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeURI(d) + s.LinkToEncrypt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"linkToEncrypt\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode EncryptHappCryptoLinkRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfEncryptHappCryptoLinkRequest) { + name = jsonFieldsNameOfEncryptHappCryptoLinkRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *EncryptHappCryptoLinkRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *EncryptHappCryptoLinkRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *EncryptHappCryptoLinkResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *EncryptHappCryptoLinkResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfEncryptHappCryptoLinkResponse = [1]string{ + 0: "response", +} + +// Decode decodes EncryptHappCryptoLinkResponse from json. +func (s *EncryptHappCryptoLinkResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode EncryptHappCryptoLinkResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode EncryptHappCryptoLinkResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfEncryptHappCryptoLinkResponse) { + name = jsonFieldsNameOfEncryptHappCryptoLinkResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *EncryptHappCryptoLinkResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *EncryptHappCryptoLinkResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *EncryptHappCryptoLinkResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *EncryptHappCryptoLinkResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("encryptedLink") + e.Str(s.EncryptedLink) + } +} + +var jsonFieldsNameOfEncryptHappCryptoLinkResponseResponse = [1]string{ + 0: "encryptedLink", +} + +// Decode decodes EncryptHappCryptoLinkResponseResponse from json. +func (s *EncryptHappCryptoLinkResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode EncryptHappCryptoLinkResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "encryptedLink": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.EncryptedLink = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"encryptedLink\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode EncryptHappCryptoLinkResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfEncryptHappCryptoLinkResponseResponse) { + name = jsonFieldsNameOfEncryptHappCryptoLinkResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *EncryptHappCryptoLinkResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *EncryptHappCryptoLinkResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *EventResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *EventResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfEventResponse = [1]string{ + 0: "response", +} + +// Decode decodes EventResponse from json. +func (s *EventResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode EventResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode EventResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfEventResponse) { + name = jsonFieldsNameOfEventResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *EventResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *EventResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *EventResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *EventResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("eventSent") + e.Bool(s.EventSent) + } +} + +var jsonFieldsNameOfEventResponseResponse = [1]string{ + 0: "eventSent", +} + +// Decode decodes EventResponseResponse from json. +func (s *EventResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode EventResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "eventSent": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Bool() + s.EventSent = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"eventSent\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode EventResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfEventResponseResponse) { + name = jsonFieldsNameOfEventResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *EventResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *EventResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *ExternalSquad) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *ExternalSquad) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + e.FieldStart("viewPosition") + e.Int(s.ViewPosition) + } + { + e.FieldStart("name") + e.Str(s.Name) + } + { + e.FieldStart("info") + s.Info.Encode(e) + } + { + e.FieldStart("templates") + e.ArrStart() + for _, elem := range s.Templates { + elem.Encode(e) + } + e.ArrEnd() + } + { + e.FieldStart("subscriptionSettings") + s.SubscriptionSettings.Encode(e) + } + { + e.FieldStart("hostOverrides") + s.HostOverrides.Encode(e) + } + { + e.FieldStart("responseHeaders") + s.ResponseHeaders.Encode(e) + } + { + e.FieldStart("hwidSettings") + s.HwidSettings.Encode(e) + } + { + e.FieldStart("customRemarks") + s.CustomRemarks.Encode(e) + } + { + e.FieldStart("subpageConfigUuid") + s.SubpageConfigUuid.Encode(e) + } + { + e.FieldStart("createdAt") + json.EncodeDateTime(e, s.CreatedAt) + } + { + e.FieldStart("updatedAt") + json.EncodeDateTime(e, s.UpdatedAt) + } +} + +var jsonFieldsNameOfExternalSquad = [13]string{ + 0: "uuid", + 1: "viewPosition", + 2: "name", + 3: "info", + 4: "templates", + 5: "subscriptionSettings", + 6: "hostOverrides", + 7: "responseHeaders", + 8: "hwidSettings", + 9: "customRemarks", + 10: "subpageConfigUuid", + 11: "createdAt", + 12: "updatedAt", +} + +// Decode decodes ExternalSquad from json. +func (s *ExternalSquad) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ExternalSquad to nil") + } + var requiredBitSet [2]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "viewPosition": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Int() + s.ViewPosition = int(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"viewPosition\"") + } + case "name": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "info": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + if err := s.Info.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"info\"") + } + case "templates": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + s.Templates = make([]TemplateRef, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem TemplateRef + if err := elem.Decode(d); err != nil { + return err + } + s.Templates = append(s.Templates, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"templates\"") + } + case "subscriptionSettings": + requiredBitSet[0] |= 1 << 5 + if err := func() error { + if err := s.SubscriptionSettings.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"subscriptionSettings\"") + } + case "hostOverrides": + requiredBitSet[0] |= 1 << 6 + if err := func() error { + if err := s.HostOverrides.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"hostOverrides\"") + } + case "responseHeaders": + requiredBitSet[0] |= 1 << 7 + if err := func() error { + if err := s.ResponseHeaders.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"responseHeaders\"") + } + case "hwidSettings": + requiredBitSet[1] |= 1 << 0 + if err := func() error { + if err := s.HwidSettings.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"hwidSettings\"") + } + case "customRemarks": + requiredBitSet[1] |= 1 << 1 + if err := func() error { + if err := s.CustomRemarks.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"customRemarks\"") + } + case "subpageConfigUuid": + requiredBitSet[1] |= 1 << 2 + if err := func() error { + if err := s.SubpageConfigUuid.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"subpageConfigUuid\"") + } + case "createdAt": + requiredBitSet[1] |= 1 << 3 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.CreatedAt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"createdAt\"") + } + case "updatedAt": + requiredBitSet[1] |= 1 << 4 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.UpdatedAt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"updatedAt\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode ExternalSquad") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [2]uint8{ + 0b11111111, + 0b00011111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfExternalSquad) { + name = jsonFieldsNameOfExternalSquad[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *ExternalSquad) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ExternalSquad) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s ExternalSquadResponseHeaders) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields implements json.Marshaler. +func (s ExternalSquadResponseHeaders) encodeFields(e *jx.Encoder) { + for k, elem := range s { + e.FieldStart(k) + + e.Str(elem) + } +} + +// Decode decodes ExternalSquadResponseHeaders from json. +func (s *ExternalSquadResponseHeaders) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ExternalSquadResponseHeaders to nil") + } + m := s.init() + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + var elem string + if err := func() error { + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrapf(err, "decode field %q", k) + } + m[string(k)] = elem + return nil + }); err != nil { + return errors.Wrap(err, "decode ExternalSquadResponseHeaders") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s ExternalSquadResponseHeaders) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ExternalSquadResponseHeaders) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *ExternalSquadResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *ExternalSquadResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfExternalSquadResponseResponse = [1]string{ + 0: "response", +} + +// Decode decodes ExternalSquadResponseResponse from json. +func (s *ExternalSquadResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ExternalSquadResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode ExternalSquadResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfExternalSquadResponseResponse) { + name = jsonFieldsNameOfExternalSquadResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *ExternalSquadResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ExternalSquadResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *ExternalSquadsResponInfoItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *ExternalSquadsResponInfoItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("membersCount") + e.Float64(s.MembersCount) + } +} + +var jsonFieldsNameOfExternalSquadsResponInfoItem = [1]string{ + 0: "membersCount", +} + +// Decode decodes ExternalSquadsResponInfoItem from json. +func (s *ExternalSquadsResponInfoItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ExternalSquadsResponInfoItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "membersCount": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Float64() + s.MembersCount = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"membersCount\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode ExternalSquadsResponInfoItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfExternalSquadsResponInfoItem) { + name = jsonFieldsNameOfExternalSquadsResponInfoItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *ExternalSquadsResponInfoItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ExternalSquadsResponInfoItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *ExternalSquadsResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *ExternalSquadsResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfExternalSquadsResponse = [1]string{ + 0: "response", +} + +// Decode decodes ExternalSquadsResponse from json. +func (s *ExternalSquadsResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ExternalSquadsResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode ExternalSquadsResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfExternalSquadsResponse) { + name = jsonFieldsNameOfExternalSquadsResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *ExternalSquadsResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ExternalSquadsResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *ExternalSquadsResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *ExternalSquadsResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("total") + e.Float64(s.Total) + } + { + e.FieldStart("externalSquads") + e.ArrStart() + for _, elem := range s.ExternalSquads { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfExternalSquadsResponseResponse = [2]string{ + 0: "total", + 1: "externalSquads", +} + +// Decode decodes ExternalSquadsResponseResponse from json. +func (s *ExternalSquadsResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ExternalSquadsResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "total": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Float64() + s.Total = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"total\"") + } + case "externalSquads": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + s.ExternalSquads = make([]ExternalSquad, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem ExternalSquad + if err := elem.Decode(d); err != nil { + return err + } + s.ExternalSquads = append(s.ExternalSquads, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"externalSquads\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode ExternalSquadsResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfExternalSquadsResponseResponse) { + name = jsonFieldsNameOfExternalSquadsResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *ExternalSquadsResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ExternalSquadsResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *FetchIpsResultResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *FetchIpsResultResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfFetchIpsResultResponse = [1]string{ + 0: "response", +} + +// Decode decodes FetchIpsResultResponse from json. +func (s *FetchIpsResultResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode FetchIpsResultResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode FetchIpsResultResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfFetchIpsResultResponse) { + name = jsonFieldsNameOfFetchIpsResultResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *FetchIpsResultResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *FetchIpsResultResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *FetchIpsResultResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *FetchIpsResultResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("isCompleted") + e.Bool(s.IsCompleted) + } + { + e.FieldStart("isFailed") + e.Bool(s.IsFailed) + } + { + e.FieldStart("progress") + s.Progress.Encode(e) + } + { + e.FieldStart("result") + s.Result.Encode(e) + } +} + +var jsonFieldsNameOfFetchIpsResultResponseResponse = [4]string{ + 0: "isCompleted", + 1: "isFailed", + 2: "progress", + 3: "result", +} + +// Decode decodes FetchIpsResultResponseResponse from json. +func (s *FetchIpsResultResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode FetchIpsResultResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "isCompleted": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Bool() + s.IsCompleted = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"isCompleted\"") + } + case "isFailed": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Bool() + s.IsFailed = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"isFailed\"") + } + case "progress": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.Progress.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"progress\"") + } + case "result": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + if err := s.Result.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"result\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode FetchIpsResultResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00001111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfFetchIpsResultResponseResponse) { + name = jsonFieldsNameOfFetchIpsResultResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *FetchIpsResultResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *FetchIpsResultResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *FetchIpsResultResponseResponseProgress) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *FetchIpsResultResponseResponseProgress) encodeFields(e *jx.Encoder) { + { + e.FieldStart("total") + e.Float64(s.Total) + } + { + e.FieldStart("completed") + e.Float64(s.Completed) + } + { + e.FieldStart("percent") + e.Float64(s.Percent) + } +} + +var jsonFieldsNameOfFetchIpsResultResponseResponseProgress = [3]string{ + 0: "total", + 1: "completed", + 2: "percent", +} + +// Decode decodes FetchIpsResultResponseResponseProgress from json. +func (s *FetchIpsResultResponseResponseProgress) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode FetchIpsResultResponseResponseProgress to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "total": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Float64() + s.Total = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"total\"") + } + case "completed": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Float64() + s.Completed = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"completed\"") + } + case "percent": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Float64() + s.Percent = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"percent\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode FetchIpsResultResponseResponseProgress") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfFetchIpsResultResponseResponseProgress) { + name = jsonFieldsNameOfFetchIpsResultResponseResponseProgress[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *FetchIpsResultResponseResponseProgress) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *FetchIpsResultResponseResponseProgress) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *FetchIpsResultResponseResponseResult) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *FetchIpsResultResponseResponseResult) encodeFields(e *jx.Encoder) { + { + e.FieldStart("success") + e.Bool(s.Success) + } + { + e.FieldStart("userUuid") + json.EncodeUUID(e, s.UserUuid) + } + { + e.FieldStart("userId") + e.Str(s.UserId) + } + { + e.FieldStart("nodes") + e.ArrStart() + for _, elem := range s.Nodes { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfFetchIpsResultResponseResponseResult = [4]string{ + 0: "success", + 1: "userUuid", + 2: "userId", + 3: "nodes", +} + +// Decode decodes FetchIpsResultResponseResponseResult from json. +func (s *FetchIpsResultResponseResponseResult) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode FetchIpsResultResponseResponseResult to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "success": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Bool() + s.Success = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"success\"") + } + case "userUuid": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UserUuid = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"userUuid\"") + } + case "userId": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.UserId = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"userId\"") + } + case "nodes": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + s.Nodes = make([]FetchIpsResultResponseResponseResultNodesItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem FetchIpsResultResponseResponseResultNodesItem + if err := elem.Decode(d); err != nil { + return err + } + s.Nodes = append(s.Nodes, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"nodes\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode FetchIpsResultResponseResponseResult") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00001111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfFetchIpsResultResponseResponseResult) { + name = jsonFieldsNameOfFetchIpsResultResponseResponseResult[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *FetchIpsResultResponseResponseResult) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *FetchIpsResultResponseResponseResult) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *FetchIpsResultResponseResponseResultNodesItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *FetchIpsResultResponseResponseResultNodesItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("nodeUuid") + json.EncodeUUID(e, s.NodeUuid) + } + { + e.FieldStart("nodeName") + e.Str(s.NodeName) + } + { + e.FieldStart("countryCode") + e.Str(s.CountryCode) + } + { + e.FieldStart("ips") + e.ArrStart() + for _, elem := range s.Ips { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfFetchIpsResultResponseResponseResultNodesItem = [4]string{ + 0: "nodeUuid", + 1: "nodeName", + 2: "countryCode", + 3: "ips", +} + +// Decode decodes FetchIpsResultResponseResponseResultNodesItem from json. +func (s *FetchIpsResultResponseResponseResultNodesItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode FetchIpsResultResponseResponseResultNodesItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "nodeUuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.NodeUuid = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"nodeUuid\"") + } + case "nodeName": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.NodeName = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"nodeName\"") + } + case "countryCode": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.CountryCode = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"countryCode\"") + } + case "ips": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + s.Ips = make([]Ips, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem Ips + if err := elem.Decode(d); err != nil { + return err + } + s.Ips = append(s.Ips, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"ips\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode FetchIpsResultResponseResponseResultNodesItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00001111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfFetchIpsResultResponseResponseResultNodesItem) { + name = jsonFieldsNameOfFetchIpsResultResponseResponseResultNodesItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *FetchIpsResultResponseResponseResultNodesItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *FetchIpsResultResponseResponseResultNodesItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *FetchUsersIpsResultResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *FetchUsersIpsResultResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfFetchUsersIpsResultResponse = [1]string{ + 0: "response", +} + +// Decode decodes FetchUsersIpsResultResponse from json. +func (s *FetchUsersIpsResultResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode FetchUsersIpsResultResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode FetchUsersIpsResultResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfFetchUsersIpsResultResponse) { + name = jsonFieldsNameOfFetchUsersIpsResultResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *FetchUsersIpsResultResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *FetchUsersIpsResultResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *FetchUsersIpsResultResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *FetchUsersIpsResultResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("isCompleted") + e.Bool(s.IsCompleted) + } + { + e.FieldStart("isFailed") + e.Bool(s.IsFailed) + } + { + e.FieldStart("result") + s.Result.Encode(e) + } +} + +var jsonFieldsNameOfFetchUsersIpsResultResponseResponse = [3]string{ + 0: "isCompleted", + 1: "isFailed", + 2: "result", +} + +// Decode decodes FetchUsersIpsResultResponseResponse from json. +func (s *FetchUsersIpsResultResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode FetchUsersIpsResultResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "isCompleted": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Bool() + s.IsCompleted = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"isCompleted\"") + } + case "isFailed": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Bool() + s.IsFailed = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"isFailed\"") + } + case "result": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.Result.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"result\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode FetchUsersIpsResultResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfFetchUsersIpsResultResponseResponse) { + name = jsonFieldsNameOfFetchUsersIpsResultResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *FetchUsersIpsResultResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *FetchUsersIpsResultResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *FetchUsersIpsResultResponseResponseResult) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *FetchUsersIpsResultResponseResponseResult) encodeFields(e *jx.Encoder) { + { + e.FieldStart("success") + e.Bool(s.Success) + } + { + e.FieldStart("nodeUuid") + json.EncodeUUID(e, s.NodeUuid) + } + { + e.FieldStart("users") + e.ArrStart() + for _, elem := range s.Users { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfFetchUsersIpsResultResponseResponseResult = [3]string{ + 0: "success", + 1: "nodeUuid", + 2: "users", +} + +// Decode decodes FetchUsersIpsResultResponseResponseResult from json. +func (s *FetchUsersIpsResultResponseResponseResult) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode FetchUsersIpsResultResponseResponseResult to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "success": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Bool() + s.Success = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"success\"") + } + case "nodeUuid": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := json.DecodeUUID(d) + s.NodeUuid = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"nodeUuid\"") + } + case "users": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + s.Users = make([]FetchUsersIpsResultResponseResponseResultUsersItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem FetchUsersIpsResultResponseResponseResultUsersItem + if err := elem.Decode(d); err != nil { + return err + } + s.Users = append(s.Users, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"users\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode FetchUsersIpsResultResponseResponseResult") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfFetchUsersIpsResultResponseResponseResult) { + name = jsonFieldsNameOfFetchUsersIpsResultResponseResponseResult[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *FetchUsersIpsResultResponseResponseResult) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *FetchUsersIpsResultResponseResponseResult) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *FetchUsersIpsResultResponseResponseResultUsersItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *FetchUsersIpsResultResponseResponseResultUsersItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("userId") + e.Str(s.UserId) + } + { + e.FieldStart("ips") + e.ArrStart() + for _, elem := range s.Ips { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfFetchUsersIpsResultResponseResponseResultUsersItem = [2]string{ + 0: "userId", + 1: "ips", +} + +// Decode decodes FetchUsersIpsResultResponseResponseResultUsersItem from json. +func (s *FetchUsersIpsResultResponseResponseResultUsersItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode FetchUsersIpsResultResponseResponseResultUsersItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "userId": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.UserId = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"userId\"") + } + case "ips": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + s.Ips = make([]Ips, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem Ips + if err := elem.Decode(d); err != nil { + return err + } + s.Ips = append(s.Ips, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"ips\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode FetchUsersIpsResultResponseResponseResultUsersItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfFetchUsersIpsResultResponseResponseResultUsersItem) { + name = jsonFieldsNameOfFetchUsersIpsResultResponseResponseResultUsersItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *FetchUsersIpsResultResponseResponseResultUsersItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *FetchUsersIpsResultResponseResponseResultUsersItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *FindAllApiTokensResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *FindAllApiTokensResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfFindAllApiTokensResponse = [1]string{ + 0: "response", +} + +// Decode decodes FindAllApiTokensResponse from json. +func (s *FindAllApiTokensResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode FindAllApiTokensResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode FindAllApiTokensResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfFindAllApiTokensResponse) { + name = jsonFieldsNameOfFindAllApiTokensResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *FindAllApiTokensResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *FindAllApiTokensResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *FindAllApiTokensResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *FindAllApiTokensResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("apiKeys") + e.ArrStart() + for _, elem := range s.ApiKeys { + elem.Encode(e) + } + e.ArrEnd() + } + { + e.FieldStart("docs") + s.Docs.Encode(e) + } +} + +var jsonFieldsNameOfFindAllApiTokensResponseResponse = [2]string{ + 0: "apiKeys", + 1: "docs", +} + +// Decode decodes FindAllApiTokensResponseResponse from json. +func (s *FindAllApiTokensResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode FindAllApiTokensResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "apiKeys": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.ApiKeys = make([]FindAllApiTokensResponseResponseApiKeysItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem FindAllApiTokensResponseResponseApiKeysItem + if err := elem.Decode(d); err != nil { + return err + } + s.ApiKeys = append(s.ApiKeys, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"apiKeys\"") + } + case "docs": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.Docs.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"docs\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode FindAllApiTokensResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfFindAllApiTokensResponseResponse) { + name = jsonFieldsNameOfFindAllApiTokensResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *FindAllApiTokensResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *FindAllApiTokensResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *FindAllApiTokensResponseResponseApiKeysItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *FindAllApiTokensResponseResponseApiKeysItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + e.FieldStart("token") + e.Str(s.Token) + } + { + e.FieldStart("tokenName") + e.Str(s.TokenName) + } + { + e.FieldStart("createdAt") + json.EncodeDateTime(e, s.CreatedAt) + } + { + e.FieldStart("updatedAt") + json.EncodeDateTime(e, s.UpdatedAt) + } +} + +var jsonFieldsNameOfFindAllApiTokensResponseResponseApiKeysItem = [5]string{ + 0: "uuid", + 1: "token", + 2: "tokenName", + 3: "createdAt", + 4: "updatedAt", +} + +// Decode decodes FindAllApiTokensResponseResponseApiKeysItem from json. +func (s *FindAllApiTokensResponseResponseApiKeysItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode FindAllApiTokensResponseResponseApiKeysItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "token": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Token = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"token\"") + } + case "tokenName": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.TokenName = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"tokenName\"") + } + case "createdAt": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.CreatedAt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"createdAt\"") + } + case "updatedAt": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.UpdatedAt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"updatedAt\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode FindAllApiTokensResponseResponseApiKeysItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00011111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfFindAllApiTokensResponseResponseApiKeysItem) { + name = jsonFieldsNameOfFindAllApiTokensResponseResponseApiKeysItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *FindAllApiTokensResponseResponseApiKeysItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *FindAllApiTokensResponseResponseApiKeysItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *FindAllApiTokensResponseResponseDocs) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *FindAllApiTokensResponseResponseDocs) encodeFields(e *jx.Encoder) { + { + e.FieldStart("isDocsEnabled") + e.Bool(s.IsDocsEnabled) + } + { + e.FieldStart("scalarPath") + s.ScalarPath.Encode(e) + } + { + e.FieldStart("swaggerPath") + s.SwaggerPath.Encode(e) + } +} + +var jsonFieldsNameOfFindAllApiTokensResponseResponseDocs = [3]string{ + 0: "isDocsEnabled", + 1: "scalarPath", + 2: "swaggerPath", +} + +// Decode decodes FindAllApiTokensResponseResponseDocs from json. +func (s *FindAllApiTokensResponseResponseDocs) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode FindAllApiTokensResponseResponseDocs to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "isDocsEnabled": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Bool() + s.IsDocsEnabled = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"isDocsEnabled\"") + } + case "scalarPath": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.ScalarPath.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"scalarPath\"") + } + case "swaggerPath": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.SwaggerPath.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"swaggerPath\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode FindAllApiTokensResponseResponseDocs") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfFindAllApiTokensResponseResponseDocs) { + name = jsonFieldsNameOfFindAllApiTokensResponseResponseDocs[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *FindAllApiTokensResponseResponseDocs) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *FindAllApiTokensResponseResponseDocs) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *ForbiddenError) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *ForbiddenError) encodeFields(e *jx.Encoder) { + { + e.FieldStart("message") + e.Str(s.Message) + } + { + e.FieldStart("statusCode") + e.Float64(s.StatusCode) + } +} + +var jsonFieldsNameOfForbiddenError = [2]string{ + 0: "message", + 1: "statusCode", +} + +// Decode decodes ForbiddenError from json. +func (s *ForbiddenError) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ForbiddenError to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "message": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Message = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"message\"") + } + case "statusCode": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Float64() + s.StatusCode = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"statusCode\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode ForbiddenError") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfForbiddenError) { + name = jsonFieldsNameOfForbiddenError[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *ForbiddenError) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ForbiddenError) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GenerateX25519Response) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GenerateX25519Response) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfGenerateX25519Response = [1]string{ + 0: "response", +} + +// Decode decodes GenerateX25519Response from json. +func (s *GenerateX25519Response) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GenerateX25519Response to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GenerateX25519Response") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGenerateX25519Response) { + name = jsonFieldsNameOfGenerateX25519Response[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GenerateX25519Response) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GenerateX25519Response) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GenerateX25519ResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GenerateX25519ResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("keypairs") + e.ArrStart() + for _, elem := range s.Keypairs { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfGenerateX25519ResponseResponse = [1]string{ + 0: "keypairs", +} + +// Decode decodes GenerateX25519ResponseResponse from json. +func (s *GenerateX25519ResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GenerateX25519ResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "keypairs": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.Keypairs = make([]GenerateX25519ResponseResponseKeypairsItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem GenerateX25519ResponseResponseKeypairsItem + if err := elem.Decode(d); err != nil { + return err + } + s.Keypairs = append(s.Keypairs, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"keypairs\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GenerateX25519ResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGenerateX25519ResponseResponse) { + name = jsonFieldsNameOfGenerateX25519ResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GenerateX25519ResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GenerateX25519ResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GenerateX25519ResponseResponseKeypairsItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GenerateX25519ResponseResponseKeypairsItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("publicKey") + e.Str(s.PublicKey) + } + { + e.FieldStart("privateKey") + e.Str(s.PrivateKey) + } +} + +var jsonFieldsNameOfGenerateX25519ResponseResponseKeypairsItem = [2]string{ + 0: "publicKey", + 1: "privateKey", +} + +// Decode decodes GenerateX25519ResponseResponseKeypairsItem from json. +func (s *GenerateX25519ResponseResponseKeypairsItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GenerateX25519ResponseResponseKeypairsItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "publicKey": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.PublicKey = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"publicKey\"") + } + case "privateKey": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.PrivateKey = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"privateKey\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GenerateX25519ResponseResponseKeypairsItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGenerateX25519ResponseResponseKeypairsItem) { + name = jsonFieldsNameOfGenerateX25519ResponseResponseKeypairsItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GenerateX25519ResponseResponseKeypairsItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GenerateX25519ResponseResponseKeypairsItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *Generic) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *Generic) encodeFields(e *jx.Encoder) { + { + e.FieldStart("enabled") + e.Bool(s.Enabled) + } + { + e.FieldStart("clientId") + s.ClientId.Encode(e) + } + { + e.FieldStart("clientSecret") + s.ClientSecret.Encode(e) + } + { + e.FieldStart("withPkce") + e.Bool(s.WithPkce) + } + { + e.FieldStart("authorizationUrl") + s.AuthorizationUrl.Encode(e) + } + { + e.FieldStart("tokenUrl") + s.TokenUrl.Encode(e) + } + { + e.FieldStart("frontendDomain") + s.FrontendDomain.Encode(e) + } + { + e.FieldStart("allowedEmails") + e.ArrStart() + for _, elem := range s.AllowedEmails { + e.Str(elem) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfGeneric = [8]string{ + 0: "enabled", + 1: "clientId", + 2: "clientSecret", + 3: "withPkce", + 4: "authorizationUrl", + 5: "tokenUrl", + 6: "frontendDomain", + 7: "allowedEmails", +} + +// Decode decodes Generic from json. +func (s *Generic) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode Generic to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "enabled": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Bool() + s.Enabled = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"enabled\"") + } + case "clientId": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.ClientId.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"clientId\"") + } + case "clientSecret": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.ClientSecret.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"clientSecret\"") + } + case "withPkce": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.Bool() + s.WithPkce = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"withPkce\"") + } + case "authorizationUrl": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + if err := s.AuthorizationUrl.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"authorizationUrl\"") + } + case "tokenUrl": + requiredBitSet[0] |= 1 << 5 + if err := func() error { + if err := s.TokenUrl.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"tokenUrl\"") + } + case "frontendDomain": + requiredBitSet[0] |= 1 << 6 + if err := func() error { + if err := s.FrontendDomain.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"frontendDomain\"") + } + case "allowedEmails": + requiredBitSet[0] |= 1 << 7 + if err := func() error { + s.AllowedEmails = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.AllowedEmails = append(s.AllowedEmails, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"allowedEmails\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode Generic") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b11111111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGeneric) { + name = jsonFieldsNameOfGeneric[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *Generic) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *Generic) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetAllHwidDevicesResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetAllHwidDevicesResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfGetAllHwidDevicesResponse = [1]string{ + 0: "response", +} + +// Decode decodes GetAllHwidDevicesResponse from json. +func (s *GetAllHwidDevicesResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetAllHwidDevicesResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetAllHwidDevicesResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetAllHwidDevicesResponse) { + name = jsonFieldsNameOfGetAllHwidDevicesResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetAllHwidDevicesResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetAllHwidDevicesResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetAllSubscriptionsResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetAllSubscriptionsResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfGetAllSubscriptionsResponse = [1]string{ + 0: "response", +} + +// Decode decodes GetAllSubscriptionsResponse from json. +func (s *GetAllSubscriptionsResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetAllSubscriptionsResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetAllSubscriptionsResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetAllSubscriptionsResponse) { + name = jsonFieldsNameOfGetAllSubscriptionsResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetAllSubscriptionsResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetAllSubscriptionsResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetAllSubscriptionsResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetAllSubscriptionsResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("subscriptions") + e.ArrStart() + for _, elem := range s.Subscriptions { + elem.Encode(e) + } + e.ArrEnd() + } + { + e.FieldStart("total") + e.Float64(s.Total) + } +} + +var jsonFieldsNameOfGetAllSubscriptionsResponseResponse = [2]string{ + 0: "subscriptions", + 1: "total", +} + +// Decode decodes GetAllSubscriptionsResponseResponse from json. +func (s *GetAllSubscriptionsResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetAllSubscriptionsResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "subscriptions": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.Subscriptions = make([]Subscription, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem Subscription + if err := elem.Decode(d); err != nil { + return err + } + s.Subscriptions = append(s.Subscriptions, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"subscriptions\"") + } + case "total": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Float64() + s.Total = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"total\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetAllSubscriptionsResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetAllSubscriptionsResponseResponse) { + name = jsonFieldsNameOfGetAllSubscriptionsResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetAllSubscriptionsResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetAllSubscriptionsResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetAllUsersResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetAllUsersResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfGetAllUsersResponse = [1]string{ + 0: "response", +} + +// Decode decodes GetAllUsersResponse from json. +func (s *GetAllUsersResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetAllUsersResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetAllUsersResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetAllUsersResponse) { + name = jsonFieldsNameOfGetAllUsersResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetAllUsersResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetAllUsersResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetAllUsersResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetAllUsersResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("users") + e.ArrStart() + for _, elem := range s.Users { + elem.Encode(e) + } + e.ArrEnd() + } + { + e.FieldStart("total") + e.Float64(s.Total) + } +} + +var jsonFieldsNameOfGetAllUsersResponseResponse = [2]string{ + 0: "users", + 1: "total", +} + +// Decode decodes GetAllUsersResponseResponse from json. +func (s *GetAllUsersResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetAllUsersResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "users": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.Users = make([]UserItemInfo, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem UserItemInfo + if err := elem.Decode(d); err != nil { + return err + } + s.Users = append(s.Users, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"users\"") + } + case "total": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Float64() + s.Total = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"total\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetAllUsersResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetAllUsersResponseResponse) { + name = jsonFieldsNameOfGetAllUsersResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetAllUsersResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetAllUsersResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetBandwidthStatsResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetBandwidthStatsResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfGetBandwidthStatsResponse = [1]string{ + 0: "response", +} + +// Decode decodes GetBandwidthStatsResponse from json. +func (s *GetBandwidthStatsResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetBandwidthStatsResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetBandwidthStatsResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetBandwidthStatsResponse) { + name = jsonFieldsNameOfGetBandwidthStatsResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetBandwidthStatsResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetBandwidthStatsResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetBandwidthStatsResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetBandwidthStatsResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("bandwidthLastTwoDays") + s.BandwidthLastTwoDays.Encode(e) + } + { + e.FieldStart("bandwidthLastSevenDays") + s.BandwidthLastSevenDays.Encode(e) + } + { + e.FieldStart("bandwidthLast30Days") + s.BandwidthLast30Days.Encode(e) + } + { + e.FieldStart("bandwidthCalendarMonth") + s.BandwidthCalendarMonth.Encode(e) + } + { + e.FieldStart("bandwidthCurrentYear") + s.BandwidthCurrentYear.Encode(e) + } +} + +var jsonFieldsNameOfGetBandwidthStatsResponseResponse = [5]string{ + 0: "bandwidthLastTwoDays", + 1: "bandwidthLastSevenDays", + 2: "bandwidthLast30Days", + 3: "bandwidthCalendarMonth", + 4: "bandwidthCurrentYear", +} + +// Decode decodes GetBandwidthStatsResponseResponse from json. +func (s *GetBandwidthStatsResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetBandwidthStatsResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "bandwidthLastTwoDays": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.BandwidthLastTwoDays.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"bandwidthLastTwoDays\"") + } + case "bandwidthLastSevenDays": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.BandwidthLastSevenDays.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"bandwidthLastSevenDays\"") + } + case "bandwidthLast30Days": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.BandwidthLast30Days.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"bandwidthLast30Days\"") + } + case "bandwidthCalendarMonth": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + if err := s.BandwidthCalendarMonth.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"bandwidthCalendarMonth\"") + } + case "bandwidthCurrentYear": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + if err := s.BandwidthCurrentYear.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"bandwidthCurrentYear\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetBandwidthStatsResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00011111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetBandwidthStatsResponseResponse) { + name = jsonFieldsNameOfGetBandwidthStatsResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetBandwidthStatsResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetBandwidthStatsResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetConnectionKeysByUuidResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetConnectionKeysByUuidResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfGetConnectionKeysByUuidResponse = [1]string{ + 0: "response", +} + +// Decode decodes GetConnectionKeysByUuidResponse from json. +func (s *GetConnectionKeysByUuidResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetConnectionKeysByUuidResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetConnectionKeysByUuidResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetConnectionKeysByUuidResponse) { + name = jsonFieldsNameOfGetConnectionKeysByUuidResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetConnectionKeysByUuidResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetConnectionKeysByUuidResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetConnectionKeysByUuidResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetConnectionKeysByUuidResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("enabledKeys") + e.ArrStart() + for _, elem := range s.EnabledKeys { + e.Str(elem) + } + e.ArrEnd() + } + { + e.FieldStart("hiddenKeys") + e.ArrStart() + for _, elem := range s.HiddenKeys { + e.Str(elem) + } + e.ArrEnd() + } + { + e.FieldStart("disabledKeys") + e.ArrStart() + for _, elem := range s.DisabledKeys { + e.Str(elem) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfGetConnectionKeysByUuidResponseResponse = [3]string{ + 0: "enabledKeys", + 1: "hiddenKeys", + 2: "disabledKeys", +} + +// Decode decodes GetConnectionKeysByUuidResponseResponse from json. +func (s *GetConnectionKeysByUuidResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetConnectionKeysByUuidResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "enabledKeys": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.EnabledKeys = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.EnabledKeys = append(s.EnabledKeys, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"enabledKeys\"") + } + case "hiddenKeys": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + s.HiddenKeys = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.HiddenKeys = append(s.HiddenKeys, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"hiddenKeys\"") + } + case "disabledKeys": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + s.DisabledKeys = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.DisabledKeys = append(s.DisabledKeys, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"disabledKeys\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetConnectionKeysByUuidResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetConnectionKeysByUuidResponseResponse) { + name = jsonFieldsNameOfGetConnectionKeysByUuidResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetConnectionKeysByUuidResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetConnectionKeysByUuidResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetHwidDevicesStatsResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetHwidDevicesStatsResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfGetHwidDevicesStatsResponse = [1]string{ + 0: "response", +} + +// Decode decodes GetHwidDevicesStatsResponse from json. +func (s *GetHwidDevicesStatsResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetHwidDevicesStatsResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetHwidDevicesStatsResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetHwidDevicesStatsResponse) { + name = jsonFieldsNameOfGetHwidDevicesStatsResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetHwidDevicesStatsResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetHwidDevicesStatsResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetHwidDevicesStatsResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetHwidDevicesStatsResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("byPlatform") + e.ArrStart() + for _, elem := range s.ByPlatform { + elem.Encode(e) + } + e.ArrEnd() + } + { + e.FieldStart("byApp") + e.ArrStart() + for _, elem := range s.ByApp { + elem.Encode(e) + } + e.ArrEnd() + } + { + e.FieldStart("stats") + s.Stats.Encode(e) + } +} + +var jsonFieldsNameOfGetHwidDevicesStatsResponseResponse = [3]string{ + 0: "byPlatform", + 1: "byApp", + 2: "stats", +} + +// Decode decodes GetHwidDevicesStatsResponseResponse from json. +func (s *GetHwidDevicesStatsResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetHwidDevicesStatsResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "byPlatform": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.ByPlatform = make([]GetHwidDevicesStatsResponseResponseByPlatformItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem GetHwidDevicesStatsResponseResponseByPlatformItem + if err := elem.Decode(d); err != nil { + return err + } + s.ByPlatform = append(s.ByPlatform, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"byPlatform\"") + } + case "byApp": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + s.ByApp = make([]ByAppItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem ByAppItem + if err := elem.Decode(d); err != nil { + return err + } + s.ByApp = append(s.ByApp, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"byApp\"") + } + case "stats": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.Stats.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"stats\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetHwidDevicesStatsResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetHwidDevicesStatsResponseResponse) { + name = jsonFieldsNameOfGetHwidDevicesStatsResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetHwidDevicesStatsResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetHwidDevicesStatsResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetHwidDevicesStatsResponseResponseByPlatformItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetHwidDevicesStatsResponseResponseByPlatformItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("platform") + e.Str(s.Platform) + } + { + e.FieldStart("count") + e.Float64(s.Count) + } +} + +var jsonFieldsNameOfGetHwidDevicesStatsResponseResponseByPlatformItem = [2]string{ + 0: "platform", + 1: "count", +} + +// Decode decodes GetHwidDevicesStatsResponseResponseByPlatformItem from json. +func (s *GetHwidDevicesStatsResponseResponseByPlatformItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetHwidDevicesStatsResponseResponseByPlatformItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "platform": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Platform = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"platform\"") + } + case "count": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Float64() + s.Count = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"count\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetHwidDevicesStatsResponseResponseByPlatformItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetHwidDevicesStatsResponseResponseByPlatformItem) { + name = jsonFieldsNameOfGetHwidDevicesStatsResponseResponseByPlatformItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetHwidDevicesStatsResponseResponseByPlatformItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetHwidDevicesStatsResponseResponseByPlatformItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetHwidDevicesStatsResponseResponseStats) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetHwidDevicesStatsResponseResponseStats) encodeFields(e *jx.Encoder) { + { + e.FieldStart("totalUniqueDevices") + e.Float64(s.TotalUniqueDevices) + } + { + e.FieldStart("totalHwidDevices") + e.Float64(s.TotalHwidDevices) + } + { + e.FieldStart("averageHwidDevicesPerUser") + e.Float64(s.AverageHwidDevicesPerUser) + } +} + +var jsonFieldsNameOfGetHwidDevicesStatsResponseResponseStats = [3]string{ + 0: "totalUniqueDevices", + 1: "totalHwidDevices", + 2: "averageHwidDevicesPerUser", +} + +// Decode decodes GetHwidDevicesStatsResponseResponseStats from json. +func (s *GetHwidDevicesStatsResponseResponseStats) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetHwidDevicesStatsResponseResponseStats to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "totalUniqueDevices": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Float64() + s.TotalUniqueDevices = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"totalUniqueDevices\"") + } + case "totalHwidDevices": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Float64() + s.TotalHwidDevices = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"totalHwidDevices\"") + } + case "averageHwidDevicesPerUser": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Float64() + s.AverageHwidDevicesPerUser = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"averageHwidDevicesPerUser\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetHwidDevicesStatsResponseResponseStats") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetHwidDevicesStatsResponseResponseStats) { + name = jsonFieldsNameOfGetHwidDevicesStatsResponseResponseStats[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetHwidDevicesStatsResponseResponseStats) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetHwidDevicesStatsResponseResponseStats) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetInfraProvidersResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetInfraProvidersResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfGetInfraProvidersResponse = [1]string{ + 0: "response", +} + +// Decode decodes GetInfraProvidersResponse from json. +func (s *GetInfraProvidersResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetInfraProvidersResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetInfraProvidersResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetInfraProvidersResponse) { + name = jsonFieldsNameOfGetInfraProvidersResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetInfraProvidersResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetInfraProvidersResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetInfraProvidersResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetInfraProvidersResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("total") + e.Float64(s.Total) + } + { + e.FieldStart("providers") + e.ArrStart() + for _, elem := range s.Providers { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfGetInfraProvidersResponseResponse = [2]string{ + 0: "total", + 1: "providers", +} + +// Decode decodes GetInfraProvidersResponseResponse from json. +func (s *GetInfraProvidersResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetInfraProvidersResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "total": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Float64() + s.Total = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"total\"") + } + case "providers": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + s.Providers = make([]Provider, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem Provider + if err := elem.Decode(d); err != nil { + return err + } + s.Providers = append(s.Providers, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"providers\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetInfraProvidersResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetInfraProvidersResponseResponse) { + name = jsonFieldsNameOfGetInfraProvidersResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetInfraProvidersResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetInfraProvidersResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetInternalSquadAccessibleNodesResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetInternalSquadAccessibleNodesResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfGetInternalSquadAccessibleNodesResponse = [1]string{ + 0: "response", +} + +// Decode decodes GetInternalSquadAccessibleNodesResponse from json. +func (s *GetInternalSquadAccessibleNodesResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetInternalSquadAccessibleNodesResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetInternalSquadAccessibleNodesResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetInternalSquadAccessibleNodesResponse) { + name = jsonFieldsNameOfGetInternalSquadAccessibleNodesResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetInternalSquadAccessibleNodesResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetInternalSquadAccessibleNodesResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetInternalSquadAccessibleNodesResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetInternalSquadAccessibleNodesResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("squadUuid") + json.EncodeUUID(e, s.SquadUuid) + } + { + e.FieldStart("accessibleNodes") + e.ArrStart() + for _, elem := range s.AccessibleNodes { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfGetInternalSquadAccessibleNodesResponseResponse = [2]string{ + 0: "squadUuid", + 1: "accessibleNodes", +} + +// Decode decodes GetInternalSquadAccessibleNodesResponseResponse from json. +func (s *GetInternalSquadAccessibleNodesResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetInternalSquadAccessibleNodesResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "squadUuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.SquadUuid = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"squadUuid\"") + } + case "accessibleNodes": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + s.AccessibleNodes = make([]GetInternalSquadAccessibleNodesResponseResponseAccessibleNodesItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem GetInternalSquadAccessibleNodesResponseResponseAccessibleNodesItem + if err := elem.Decode(d); err != nil { + return err + } + s.AccessibleNodes = append(s.AccessibleNodes, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"accessibleNodes\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetInternalSquadAccessibleNodesResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetInternalSquadAccessibleNodesResponseResponse) { + name = jsonFieldsNameOfGetInternalSquadAccessibleNodesResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetInternalSquadAccessibleNodesResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetInternalSquadAccessibleNodesResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetInternalSquadAccessibleNodesResponseResponseAccessibleNodesItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetInternalSquadAccessibleNodesResponseResponseAccessibleNodesItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + e.FieldStart("nodeName") + e.Str(s.NodeName) + } + { + e.FieldStart("countryCode") + e.Str(s.CountryCode) + } + { + e.FieldStart("configProfileUuid") + json.EncodeUUID(e, s.ConfigProfileUuid) + } + { + e.FieldStart("configProfileName") + e.Str(s.ConfigProfileName) + } + { + e.FieldStart("activeInbounds") + e.ArrStart() + for _, elem := range s.ActiveInbounds { + e.Str(elem) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfGetInternalSquadAccessibleNodesResponseResponseAccessibleNodesItem = [6]string{ + 0: "uuid", + 1: "nodeName", + 2: "countryCode", + 3: "configProfileUuid", + 4: "configProfileName", + 5: "activeInbounds", +} + +// Decode decodes GetInternalSquadAccessibleNodesResponseResponseAccessibleNodesItem from json. +func (s *GetInternalSquadAccessibleNodesResponseResponseAccessibleNodesItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetInternalSquadAccessibleNodesResponseResponseAccessibleNodesItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "nodeName": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.NodeName = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"nodeName\"") + } + case "countryCode": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.CountryCode = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"countryCode\"") + } + case "configProfileUuid": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := json.DecodeUUID(d) + s.ConfigProfileUuid = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"configProfileUuid\"") + } + case "configProfileName": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + v, err := d.Str() + s.ConfigProfileName = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"configProfileName\"") + } + case "activeInbounds": + requiredBitSet[0] |= 1 << 5 + if err := func() error { + s.ActiveInbounds = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.ActiveInbounds = append(s.ActiveInbounds, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"activeInbounds\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetInternalSquadAccessibleNodesResponseResponseAccessibleNodesItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00111111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetInternalSquadAccessibleNodesResponseResponseAccessibleNodesItem) { + name = jsonFieldsNameOfGetInternalSquadAccessibleNodesResponseResponseAccessibleNodesItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetInternalSquadAccessibleNodesResponseResponseAccessibleNodesItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetInternalSquadAccessibleNodesResponseResponseAccessibleNodesItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetLegacyStatsNodesUsersUsageResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetLegacyStatsNodesUsersUsageResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + e.ArrStart() + for _, elem := range s.Response { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfGetLegacyStatsNodesUsersUsageResponse = [1]string{ + 0: "response", +} + +// Decode decodes GetLegacyStatsNodesUsersUsageResponse from json. +func (s *GetLegacyStatsNodesUsersUsageResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetLegacyStatsNodesUsersUsageResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.Response = make([]GetLegacyStatsNodesUsersUsageResponseResponseItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem GetLegacyStatsNodesUsersUsageResponseResponseItem + if err := elem.Decode(d); err != nil { + return err + } + s.Response = append(s.Response, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetLegacyStatsNodesUsersUsageResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetLegacyStatsNodesUsersUsageResponse) { + name = jsonFieldsNameOfGetLegacyStatsNodesUsersUsageResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetLegacyStatsNodesUsersUsageResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetLegacyStatsNodesUsersUsageResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetLegacyStatsNodesUsersUsageResponseResponseItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetLegacyStatsNodesUsersUsageResponseResponseItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("userUuid") + json.EncodeUUID(e, s.UserUuid) + } + { + e.FieldStart("username") + e.Str(s.Username) + } + { + e.FieldStart("nodeUuid") + json.EncodeUUID(e, s.NodeUuid) + } + { + e.FieldStart("total") + e.Float64(s.Total) + } + { + e.FieldStart("date") + e.Str(s.Date) + } +} + +var jsonFieldsNameOfGetLegacyStatsNodesUsersUsageResponseResponseItem = [5]string{ + 0: "userUuid", + 1: "username", + 2: "nodeUuid", + 3: "total", + 4: "date", +} + +// Decode decodes GetLegacyStatsNodesUsersUsageResponseResponseItem from json. +func (s *GetLegacyStatsNodesUsersUsageResponseResponseItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetLegacyStatsNodesUsersUsageResponseResponseItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "userUuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UserUuid = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"userUuid\"") + } + case "username": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Username = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"username\"") + } + case "nodeUuid": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := json.DecodeUUID(d) + s.NodeUuid = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"nodeUuid\"") + } + case "total": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.Float64() + s.Total = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"total\"") + } + case "date": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + v, err := d.Str() + s.Date = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"date\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetLegacyStatsNodesUsersUsageResponseResponseItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00011111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetLegacyStatsNodesUsersUsageResponseResponseItem) { + name = jsonFieldsNameOfGetLegacyStatsNodesUsersUsageResponseResponseItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetLegacyStatsNodesUsersUsageResponseResponseItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetLegacyStatsNodesUsersUsageResponseResponseItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetLegacyStatsUserUsageResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetLegacyStatsUserUsageResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + e.ArrStart() + for _, elem := range s.Response { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfGetLegacyStatsUserUsageResponse = [1]string{ + 0: "response", +} + +// Decode decodes GetLegacyStatsUserUsageResponse from json. +func (s *GetLegacyStatsUserUsageResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetLegacyStatsUserUsageResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.Response = make([]GetLegacyStatsUserUsageResponseResponseItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem GetLegacyStatsUserUsageResponseResponseItem + if err := elem.Decode(d); err != nil { + return err + } + s.Response = append(s.Response, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetLegacyStatsUserUsageResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetLegacyStatsUserUsageResponse) { + name = jsonFieldsNameOfGetLegacyStatsUserUsageResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetLegacyStatsUserUsageResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetLegacyStatsUserUsageResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetLegacyStatsUserUsageResponseResponseItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetLegacyStatsUserUsageResponseResponseItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("userUuid") + json.EncodeUUID(e, s.UserUuid) + } + { + e.FieldStart("nodeUuid") + json.EncodeUUID(e, s.NodeUuid) + } + { + e.FieldStart("nodeName") + e.Str(s.NodeName) + } + { + e.FieldStart("countryCode") + e.Str(s.CountryCode) + } + { + e.FieldStart("total") + e.Float64(s.Total) + } + { + e.FieldStart("date") + e.Str(s.Date) + } +} + +var jsonFieldsNameOfGetLegacyStatsUserUsageResponseResponseItem = [6]string{ + 0: "userUuid", + 1: "nodeUuid", + 2: "nodeName", + 3: "countryCode", + 4: "total", + 5: "date", +} + +// Decode decodes GetLegacyStatsUserUsageResponseResponseItem from json. +func (s *GetLegacyStatsUserUsageResponseResponseItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetLegacyStatsUserUsageResponseResponseItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "userUuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UserUuid = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"userUuid\"") + } + case "nodeUuid": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := json.DecodeUUID(d) + s.NodeUuid = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"nodeUuid\"") + } + case "nodeName": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.NodeName = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"nodeName\"") + } + case "countryCode": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.Str() + s.CountryCode = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"countryCode\"") + } + case "total": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + v, err := d.Float64() + s.Total = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"total\"") + } + case "date": + requiredBitSet[0] |= 1 << 5 + if err := func() error { + v, err := d.Str() + s.Date = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"date\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetLegacyStatsUserUsageResponseResponseItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00111111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetLegacyStatsUserUsageResponseResponseItem) { + name = jsonFieldsNameOfGetLegacyStatsUserUsageResponseResponseItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetLegacyStatsUserUsageResponseResponseItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetLegacyStatsUserUsageResponseResponseItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetMetadataResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetMetadataResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfGetMetadataResponse = [1]string{ + 0: "response", +} + +// Decode decodes GetMetadataResponse from json. +func (s *GetMetadataResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetMetadataResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetMetadataResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetMetadataResponse) { + name = jsonFieldsNameOfGetMetadataResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetMetadataResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetMetadataResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetMetadataResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetMetadataResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("version") + e.Str(s.Version) + } + { + e.FieldStart("build") + s.Build.Encode(e) + } + { + e.FieldStart("git") + s.Git.Encode(e) + } +} + +var jsonFieldsNameOfGetMetadataResponseResponse = [3]string{ + 0: "version", + 1: "build", + 2: "git", +} + +// Decode decodes GetMetadataResponseResponse from json. +func (s *GetMetadataResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetMetadataResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "version": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Version = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"version\"") + } + case "build": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.Build.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"build\"") + } + case "git": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.Git.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"git\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetMetadataResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetMetadataResponseResponse) { + name = jsonFieldsNameOfGetMetadataResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetMetadataResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetMetadataResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetMetadataResponseResponseBuild) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetMetadataResponseResponseBuild) encodeFields(e *jx.Encoder) { + { + e.FieldStart("time") + e.Str(s.Time) + } + { + e.FieldStart("number") + e.Str(s.Number) + } +} + +var jsonFieldsNameOfGetMetadataResponseResponseBuild = [2]string{ + 0: "time", + 1: "number", +} + +// Decode decodes GetMetadataResponseResponseBuild from json. +func (s *GetMetadataResponseResponseBuild) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetMetadataResponseResponseBuild to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "time": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Time = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"time\"") + } + case "number": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Number = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"number\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetMetadataResponseResponseBuild") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetMetadataResponseResponseBuild) { + name = jsonFieldsNameOfGetMetadataResponseResponseBuild[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetMetadataResponseResponseBuild) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetMetadataResponseResponseBuild) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetMetadataResponseResponseGit) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetMetadataResponseResponseGit) encodeFields(e *jx.Encoder) { + { + e.FieldStart("backend") + s.Backend.Encode(e) + } + { + e.FieldStart("frontend") + s.Frontend.Encode(e) + } +} + +var jsonFieldsNameOfGetMetadataResponseResponseGit = [2]string{ + 0: "backend", + 1: "frontend", +} + +// Decode decodes GetMetadataResponseResponseGit from json. +func (s *GetMetadataResponseResponseGit) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetMetadataResponseResponseGit to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "backend": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Backend.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"backend\"") + } + case "frontend": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.Frontend.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"frontend\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetMetadataResponseResponseGit") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetMetadataResponseResponseGit) { + name = jsonFieldsNameOfGetMetadataResponseResponseGit[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetMetadataResponseResponseGit) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetMetadataResponseResponseGit) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetMetadataResponseResponseGitBackend) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetMetadataResponseResponseGitBackend) encodeFields(e *jx.Encoder) { + { + e.FieldStart("commitSha") + e.Str(s.CommitSha) + } + { + e.FieldStart("branch") + e.Str(s.Branch) + } + { + e.FieldStart("commitUrl") + e.Str(s.CommitUrl) + } +} + +var jsonFieldsNameOfGetMetadataResponseResponseGitBackend = [3]string{ + 0: "commitSha", + 1: "branch", + 2: "commitUrl", +} + +// Decode decodes GetMetadataResponseResponseGitBackend from json. +func (s *GetMetadataResponseResponseGitBackend) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetMetadataResponseResponseGitBackend to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "commitSha": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.CommitSha = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"commitSha\"") + } + case "branch": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Branch = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"branch\"") + } + case "commitUrl": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.CommitUrl = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"commitUrl\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetMetadataResponseResponseGitBackend") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetMetadataResponseResponseGitBackend) { + name = jsonFieldsNameOfGetMetadataResponseResponseGitBackend[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetMetadataResponseResponseGitBackend) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetMetadataResponseResponseGitBackend) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetMetadataResponseResponseGitFrontend) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetMetadataResponseResponseGitFrontend) encodeFields(e *jx.Encoder) { + { + e.FieldStart("commitSha") + e.Str(s.CommitSha) + } + { + e.FieldStart("commitUrl") + e.Str(s.CommitUrl) + } +} + +var jsonFieldsNameOfGetMetadataResponseResponseGitFrontend = [2]string{ + 0: "commitSha", + 1: "commitUrl", +} + +// Decode decodes GetMetadataResponseResponseGitFrontend from json. +func (s *GetMetadataResponseResponseGitFrontend) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetMetadataResponseResponseGitFrontend to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "commitSha": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.CommitSha = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"commitSha\"") + } + case "commitUrl": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.CommitUrl = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"commitUrl\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetMetadataResponseResponseGitFrontend") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetMetadataResponseResponseGitFrontend) { + name = jsonFieldsNameOfGetMetadataResponseResponseGitFrontend[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetMetadataResponseResponseGitFrontend) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetMetadataResponseResponseGitFrontend) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetNodesMetricsResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetNodesMetricsResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfGetNodesMetricsResponse = [1]string{ + 0: "response", +} + +// Decode decodes GetNodesMetricsResponse from json. +func (s *GetNodesMetricsResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetNodesMetricsResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetNodesMetricsResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetNodesMetricsResponse) { + name = jsonFieldsNameOfGetNodesMetricsResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetNodesMetricsResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetNodesMetricsResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetNodesMetricsResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetNodesMetricsResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("nodes") + e.ArrStart() + for _, elem := range s.Nodes { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfGetNodesMetricsResponseResponse = [1]string{ + 0: "nodes", +} + +// Decode decodes GetNodesMetricsResponseResponse from json. +func (s *GetNodesMetricsResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetNodesMetricsResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "nodes": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.Nodes = make([]GetNodesMetricsResponseResponseNodesItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem GetNodesMetricsResponseResponseNodesItem + if err := elem.Decode(d); err != nil { + return err + } + s.Nodes = append(s.Nodes, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"nodes\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetNodesMetricsResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetNodesMetricsResponseResponse) { + name = jsonFieldsNameOfGetNodesMetricsResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetNodesMetricsResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetNodesMetricsResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetNodesMetricsResponseResponseNodesItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetNodesMetricsResponseResponseNodesItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("nodeUuid") + e.Str(s.NodeUuid) + } + { + e.FieldStart("nodeName") + e.Str(s.NodeName) + } + { + e.FieldStart("countryEmoji") + e.Str(s.CountryEmoji) + } + { + e.FieldStart("providerName") + e.Str(s.ProviderName) + } + { + e.FieldStart("usersOnline") + e.Float64(s.UsersOnline) + } + { + e.FieldStart("inboundsStats") + e.ArrStart() + for _, elem := range s.InboundsStats { + elem.Encode(e) + } + e.ArrEnd() + } + { + e.FieldStart("outboundsStats") + e.ArrStart() + for _, elem := range s.OutboundsStats { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfGetNodesMetricsResponseResponseNodesItem = [7]string{ + 0: "nodeUuid", + 1: "nodeName", + 2: "countryEmoji", + 3: "providerName", + 4: "usersOnline", + 5: "inboundsStats", + 6: "outboundsStats", +} + +// Decode decodes GetNodesMetricsResponseResponseNodesItem from json. +func (s *GetNodesMetricsResponseResponseNodesItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetNodesMetricsResponseResponseNodesItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "nodeUuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.NodeUuid = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"nodeUuid\"") + } + case "nodeName": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.NodeName = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"nodeName\"") + } + case "countryEmoji": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.CountryEmoji = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"countryEmoji\"") + } + case "providerName": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.Str() + s.ProviderName = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"providerName\"") + } + case "usersOnline": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + v, err := d.Float64() + s.UsersOnline = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"usersOnline\"") + } + case "inboundsStats": + requiredBitSet[0] |= 1 << 5 + if err := func() error { + s.InboundsStats = make([]InboundsStat, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem InboundsStat + if err := elem.Decode(d); err != nil { + return err + } + s.InboundsStats = append(s.InboundsStats, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"inboundsStats\"") + } + case "outboundsStats": + requiredBitSet[0] |= 1 << 6 + if err := func() error { + s.OutboundsStats = make([]InboundsStat, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem InboundsStat + if err := elem.Decode(d); err != nil { + return err + } + s.OutboundsStats = append(s.OutboundsStats, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"outboundsStats\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetNodesMetricsResponseResponseNodesItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b01111111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetNodesMetricsResponseResponseNodesItem) { + name = jsonFieldsNameOfGetNodesMetricsResponseResponseNodesItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetNodesMetricsResponseResponseNodesItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetNodesMetricsResponseResponseNodesItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetNodesStatisticsResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetNodesStatisticsResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfGetNodesStatisticsResponse = [1]string{ + 0: "response", +} + +// Decode decodes GetNodesStatisticsResponse from json. +func (s *GetNodesStatisticsResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetNodesStatisticsResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetNodesStatisticsResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetNodesStatisticsResponse) { + name = jsonFieldsNameOfGetNodesStatisticsResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetNodesStatisticsResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetNodesStatisticsResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetNodesStatisticsResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetNodesStatisticsResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("lastSevenDays") + e.ArrStart() + for _, elem := range s.LastSevenDays { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfGetNodesStatisticsResponseResponse = [1]string{ + 0: "lastSevenDays", +} + +// Decode decodes GetNodesStatisticsResponseResponse from json. +func (s *GetNodesStatisticsResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetNodesStatisticsResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "lastSevenDays": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.LastSevenDays = make([]GetNodesStatisticsResponseResponseLastSevenDaysItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem GetNodesStatisticsResponseResponseLastSevenDaysItem + if err := elem.Decode(d); err != nil { + return err + } + s.LastSevenDays = append(s.LastSevenDays, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"lastSevenDays\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetNodesStatisticsResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetNodesStatisticsResponseResponse) { + name = jsonFieldsNameOfGetNodesStatisticsResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetNodesStatisticsResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetNodesStatisticsResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetNodesStatisticsResponseResponseLastSevenDaysItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetNodesStatisticsResponseResponseLastSevenDaysItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("nodeName") + e.Str(s.NodeName) + } + { + e.FieldStart("date") + e.Str(s.Date) + } + { + e.FieldStart("totalBytes") + e.Str(s.TotalBytes) + } +} + +var jsonFieldsNameOfGetNodesStatisticsResponseResponseLastSevenDaysItem = [3]string{ + 0: "nodeName", + 1: "date", + 2: "totalBytes", +} + +// Decode decodes GetNodesStatisticsResponseResponseLastSevenDaysItem from json. +func (s *GetNodesStatisticsResponseResponseLastSevenDaysItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetNodesStatisticsResponseResponseLastSevenDaysItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "nodeName": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.NodeName = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"nodeName\"") + } + case "date": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Date = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"date\"") + } + case "totalBytes": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.TotalBytes = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"totalBytes\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetNodesStatisticsResponseResponseLastSevenDaysItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetNodesStatisticsResponseResponseLastSevenDaysItem) { + name = jsonFieldsNameOfGetNodesStatisticsResponseResponseLastSevenDaysItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetNodesStatisticsResponseResponseLastSevenDaysItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetNodesStatisticsResponseResponseLastSevenDaysItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetPubKeyResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetPubKeyResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfGetPubKeyResponse = [1]string{ + 0: "response", +} + +// Decode decodes GetPubKeyResponse from json. +func (s *GetPubKeyResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetPubKeyResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetPubKeyResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetPubKeyResponse) { + name = jsonFieldsNameOfGetPubKeyResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetPubKeyResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetPubKeyResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetPubKeyResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetPubKeyResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("pubKey") + e.Str(s.PubKey) + } +} + +var jsonFieldsNameOfGetPubKeyResponseResponse = [1]string{ + 0: "pubKey", +} + +// Decode decodes GetPubKeyResponseResponse from json. +func (s *GetPubKeyResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetPubKeyResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "pubKey": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.PubKey = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"pubKey\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetPubKeyResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetPubKeyResponseResponse) { + name = jsonFieldsNameOfGetPubKeyResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetPubKeyResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetPubKeyResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetRawSubscriptionByShortUuidResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfGetRawSubscriptionByShortUuidResponse = [1]string{ + 0: "response", +} + +// Decode decodes GetRawSubscriptionByShortUuidResponse from json. +func (s *GetRawSubscriptionByShortUuidResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRawSubscriptionByShortUuidResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetRawSubscriptionByShortUuidResponse) { + name = jsonFieldsNameOfGetRawSubscriptionByShortUuidResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetRawSubscriptionByShortUuidResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("user") + s.User.Encode(e) + } + { + e.FieldStart("convertedUserInfo") + s.ConvertedUserInfo.Encode(e) + } + { + e.FieldStart("headers") + s.Headers.Encode(e) + } + { + e.FieldStart("resolvedProxyConfigs") + e.ArrStart() + for _, elem := range s.ResolvedProxyConfigs { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponse = [4]string{ + 0: "user", + 1: "convertedUserInfo", + 2: "headers", + 3: "resolvedProxyConfigs", +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponse from json. +func (s *GetRawSubscriptionByShortUuidResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "user": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.User.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"user\"") + } + case "convertedUserInfo": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.ConvertedUserInfo.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"convertedUserInfo\"") + } + case "headers": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.Headers.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"headers\"") + } + case "resolvedProxyConfigs": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + s.ResolvedProxyConfigs = make([]GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem + if err := elem.Decode(d); err != nil { + return err + } + s.ResolvedProxyConfigs = append(s.ResolvedProxyConfigs, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"resolvedProxyConfigs\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRawSubscriptionByShortUuidResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00001111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponse) { + name = jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseConvertedUserInfo) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetRawSubscriptionByShortUuidResponseResponseConvertedUserInfo) encodeFields(e *jx.Encoder) { + { + e.FieldStart("daysLeft") + e.Float64(s.DaysLeft) + } + { + e.FieldStart("trafficLimit") + e.Str(s.TrafficLimit) + } + { + e.FieldStart("trafficUsed") + e.Str(s.TrafficUsed) + } + { + e.FieldStart("lifetimeTrafficUsed") + e.Str(s.LifetimeTrafficUsed) + } + { + e.FieldStart("isHwidLimited") + e.Bool(s.IsHwidLimited) + } +} + +var jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseConvertedUserInfo = [5]string{ + 0: "daysLeft", + 1: "trafficLimit", + 2: "trafficUsed", + 3: "lifetimeTrafficUsed", + 4: "isHwidLimited", +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseConvertedUserInfo from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseConvertedUserInfo) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseConvertedUserInfo to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "daysLeft": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Float64() + s.DaysLeft = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"daysLeft\"") + } + case "trafficLimit": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.TrafficLimit = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"trafficLimit\"") + } + case "trafficUsed": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.TrafficUsed = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"trafficUsed\"") + } + case "lifetimeTrafficUsed": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.Str() + s.LifetimeTrafficUsed = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"lifetimeTrafficUsed\"") + } + case "isHwidLimited": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + v, err := d.Bool() + s.IsHwidLimited = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"isHwidLimited\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRawSubscriptionByShortUuidResponseResponseConvertedUserInfo") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00011111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseConvertedUserInfo) { + name = jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseConvertedUserInfo[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseConvertedUserInfo) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseConvertedUserInfo) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseHeaders) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields implements json.Marshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseHeaders) encodeFields(e *jx.Encoder) { + for k, elem := range s { + e.FieldStart(k) + + e.Str(elem) + } +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseHeaders from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseHeaders) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseHeaders to nil") + } + m := s.init() + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + var elem string + if err := func() error { + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrapf(err, "decode field %q", k) + } + m[string(k)] = elem + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRawSubscriptionByShortUuidResponseResponseHeaders") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseHeaders) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseHeaders) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("finalRemark") + e.Str(s.FinalRemark) + } + { + e.FieldStart("address") + e.Str(s.Address) + } + { + e.FieldStart("port") + e.Int(s.Port) + } + { + e.FieldStart("protocol") + s.Protocol.Encode(e) + } + { + e.FieldStart("protocolOptions") + s.ProtocolOptions.Encode(e) + } + { + e.FieldStart("transport") + s.Transport.Encode(e) + } + { + e.FieldStart("transportOptions") + s.TransportOptions.Encode(e) + } + { + e.FieldStart("security") + s.Security.Encode(e) + } + { + if s.SecurityOptions.Set { + e.FieldStart("securityOptions") + s.SecurityOptions.Encode(e) + } + } + { + e.FieldStart("streamOverrides") + s.StreamOverrides.Encode(e) + } + { + if len(s.Mux) != 0 { + e.FieldStart("mux") + e.Raw(s.Mux) + } + } + { + e.FieldStart("clientOverrides") + s.ClientOverrides.Encode(e) + } + { + e.FieldStart("metadata") + s.Metadata.Encode(e) + } +} + +var jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem = [13]string{ + 0: "finalRemark", + 1: "address", + 2: "port", + 3: "protocol", + 4: "protocolOptions", + 5: "transport", + 6: "transportOptions", + 7: "security", + 8: "securityOptions", + 9: "streamOverrides", + 10: "mux", + 11: "clientOverrides", + 12: "metadata", +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem to nil") + } + var requiredBitSet [2]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "finalRemark": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.FinalRemark = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"finalRemark\"") + } + case "address": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Address = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"address\"") + } + case "port": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Int() + s.Port = int(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"port\"") + } + case "protocol": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + if err := s.Protocol.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"protocol\"") + } + case "protocolOptions": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + if err := s.ProtocolOptions.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"protocolOptions\"") + } + case "transport": + requiredBitSet[0] |= 1 << 5 + if err := func() error { + if err := s.Transport.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"transport\"") + } + case "transportOptions": + requiredBitSet[0] |= 1 << 6 + if err := func() error { + if err := s.TransportOptions.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"transportOptions\"") + } + case "security": + requiredBitSet[0] |= 1 << 7 + if err := func() error { + if err := s.Security.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"security\"") + } + case "securityOptions": + if err := func() error { + s.SecurityOptions.Reset() + if err := s.SecurityOptions.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"securityOptions\"") + } + case "streamOverrides": + requiredBitSet[1] |= 1 << 1 + if err := func() error { + if err := s.StreamOverrides.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"streamOverrides\"") + } + case "mux": + requiredBitSet[1] |= 1 << 2 + if err := func() error { + v, err := d.RawAppend(nil) + s.Mux = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"mux\"") + } + case "clientOverrides": + requiredBitSet[1] |= 1 << 3 + if err := func() error { + if err := s.ClientOverrides.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"clientOverrides\"") + } + case "metadata": + requiredBitSet[1] |= 1 << 4 + if err := func() error { + if err := s.Metadata.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"metadata\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [2]uint8{ + 0b11111111, + 0b00011110, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem) { + name = jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemClientOverrides) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemClientOverrides) encodeFields(e *jx.Encoder) { + { + e.FieldStart("shuffleHost") + e.Bool(s.ShuffleHost) + } + { + e.FieldStart("mihomoX25519") + e.Bool(s.MihomoX25519) + } + { + e.FieldStart("serverDescription") + s.ServerDescription.Encode(e) + } + { + if len(s.XrayJsonTemplate) != 0 { + e.FieldStart("xrayJsonTemplate") + e.Raw(s.XrayJsonTemplate) + } + } +} + +var jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemClientOverrides = [4]string{ + 0: "shuffleHost", + 1: "mihomoX25519", + 2: "serverDescription", + 3: "xrayJsonTemplate", +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemClientOverrides from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemClientOverrides) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemClientOverrides to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "shuffleHost": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Bool() + s.ShuffleHost = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"shuffleHost\"") + } + case "mihomoX25519": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Bool() + s.MihomoX25519 = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"mihomoX25519\"") + } + case "serverDescription": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.ServerDescription.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"serverDescription\"") + } + case "xrayJsonTemplate": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.RawAppend(nil) + s.XrayJsonTemplate = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"xrayJsonTemplate\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemClientOverrides") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00001111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemClientOverrides) { + name = jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemClientOverrides[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemClientOverrides) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemClientOverrides) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + e.FieldStart("tag") + s.Tag.Encode(e) + } + { + e.FieldStart("excludeFromSubscriptionTypes") + e.ArrStart() + for _, elem := range s.ExcludeFromSubscriptionTypes { + elem.Encode(e) + } + e.ArrEnd() + } + { + e.FieldStart("inboundTag") + e.Str(s.InboundTag) + } + { + e.FieldStart("configProfileUuid") + s.ConfigProfileUuid.Encode(e) + } + { + e.FieldStart("configProfileInboundUuid") + s.ConfigProfileInboundUuid.Encode(e) + } + { + e.FieldStart("isDisabled") + e.Bool(s.IsDisabled) + } + { + e.FieldStart("isHidden") + e.Bool(s.IsHidden) + } + { + e.FieldStart("viewPosition") + e.Int(s.ViewPosition) + } + { + e.FieldStart("remark") + e.Str(s.Remark) + } + { + e.FieldStart("vlessRouteId") + s.VlessRouteId.Encode(e) + } + { + if len(s.RawInbound) != 0 { + e.FieldStart("rawInbound") + e.Raw(s.RawInbound) + } + } +} + +var jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata = [12]string{ + 0: "uuid", + 1: "tag", + 2: "excludeFromSubscriptionTypes", + 3: "inboundTag", + 4: "configProfileUuid", + 5: "configProfileInboundUuid", + 6: "isDisabled", + 7: "isHidden", + 8: "viewPosition", + 9: "remark", + 10: "vlessRouteId", + 11: "rawInbound", +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata to nil") + } + var requiredBitSet [2]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "tag": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.Tag.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"tag\"") + } + case "excludeFromSubscriptionTypes": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + s.ExcludeFromSubscriptionTypes = make([]GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItem + if err := elem.Decode(d); err != nil { + return err + } + s.ExcludeFromSubscriptionTypes = append(s.ExcludeFromSubscriptionTypes, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"excludeFromSubscriptionTypes\"") + } + case "inboundTag": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.Str() + s.InboundTag = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"inboundTag\"") + } + case "configProfileUuid": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + if err := s.ConfigProfileUuid.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"configProfileUuid\"") + } + case "configProfileInboundUuid": + requiredBitSet[0] |= 1 << 5 + if err := func() error { + if err := s.ConfigProfileInboundUuid.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"configProfileInboundUuid\"") + } + case "isDisabled": + requiredBitSet[0] |= 1 << 6 + if err := func() error { + v, err := d.Bool() + s.IsDisabled = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"isDisabled\"") + } + case "isHidden": + requiredBitSet[0] |= 1 << 7 + if err := func() error { + v, err := d.Bool() + s.IsHidden = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"isHidden\"") + } + case "viewPosition": + requiredBitSet[1] |= 1 << 0 + if err := func() error { + v, err := d.Int() + s.ViewPosition = int(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"viewPosition\"") + } + case "remark": + requiredBitSet[1] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Remark = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"remark\"") + } + case "vlessRouteId": + requiredBitSet[1] |= 1 << 2 + if err := func() error { + if err := s.VlessRouteId.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"vlessRouteId\"") + } + case "rawInbound": + requiredBitSet[1] |= 1 << 3 + if err := func() error { + v, err := d.RawAppend(nil) + s.RawInbound = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"rawInbound\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [2]uint8{ + 0b11111111, + 0b00001111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata) { + name = jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItem as json. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItem) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItem from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItem to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItem(v) { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemXRAYJSON: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemXRAYJSON + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemXRAYBASE64: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemXRAYBASE64 + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemMIHOMO: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemMIHOMO + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemSTASH: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemSTASH + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemCLASH: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemCLASH + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemSINGBOX: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemSINGBOX + default: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItem(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocol as json. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocol) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocol from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocol) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocol to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocol(v) { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolVless: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolVless + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolTrojan: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolTrojan + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolShadowsocks: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolShadowsocks + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolHysteria: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolHysteria + default: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocol(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocol) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocol) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions as json. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions) Encode(e *jx.Encoder) { + switch s.Type { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions: + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0.Encode(e) + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions: + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1.Encode(e) + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions: + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2.Encode(e) + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions: + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3.Encode(e) + } +} + +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions) encodeFields(e *jx.Encoder) { + switch s.Type { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions: + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0.encodeFields(e) + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions: + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1.encodeFields(e) + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions: + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2.encodeFields(e) + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions: + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3.encodeFields(e) + } +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions to nil") + } + // Sum type fields. + if typ := d.Next(); typ != jx.Object { + return errors.Errorf("unexpected json type %q", typ) + } + + var found bool + if err := d.Capture(func(d *jx.Decoder) error { + return d.ObjBytes(func(d *jx.Decoder, key []byte) error { + switch string(key) { + case "encryption": + // Type-based discrimination: check if field has expected JSON type + if typ := d.Next(); typ != jx.String { + // Field exists but has wrong type, not a match for this variant + return d.Skip() + } + match := GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "flow": + // Type-based discrimination: check if field has expected JSON type + if typ := d.Next(); typ != jx.String { + // Field exists but has wrong type, not a match for this variant + return d.Skip() + } + match := GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "id": + // Type-based discrimination: check if field has expected JSON type + if typ := d.Next(); typ != jx.String { + // Field exists but has wrong type, not a match for this variant + return d.Skip() + } + match := GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "method": + // Type-based discrimination: check if field has expected JSON type + if typ := d.Next(); typ != jx.String { + // Field exists but has wrong type, not a match for this variant + return d.Skip() + } + match := GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "uot": + // Type-based discrimination: check if field has expected JSON type + if typ := d.Next(); typ != jx.Bool { + // Field exists but has wrong type, not a match for this variant + return d.Skip() + } + match := GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "uotVersion": + // Type-based discrimination: check if field has expected JSON type + if typ := d.Next(); typ != jx.Number { + // Field exists but has wrong type, not a match for this variant + return d.Skip() + } + match := GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "version": + // Type-based discrimination: check if field has expected JSON type + if typ := d.Next(); typ != jx.Number { + // Field exists but has wrong type, not a match for this variant + return d.Skip() + } + match := GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + } + return d.Skip() + }) + }); err != nil { + return errors.Wrap(err, "capture") + } + if !found { + s.Type = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions + } + switch s.Type { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions: + if err := s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0.Decode(d); err != nil { + return err + } + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions: + if err := s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1.Decode(d); err != nil { + return err + } + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions: + if err := s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2.Decode(d); err != nil { + return err + } + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions: + if err := s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3.Decode(d); err != nil { + return err + } + default: + return errors.Errorf("inferred invalid type: %s", s.Type) + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0) encodeFields(e *jx.Encoder) { + { + e.FieldStart("encryption") + e.Str(s.Encryption) + } + { + e.FieldStart("id") + e.Str(s.ID) + } + { + e.FieldStart("flow") + s.Flow.Encode(e) + } +} + +var jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0 = [3]string{ + 0: "encryption", + 1: "id", + 2: "flow", +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0 from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0 to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "encryption": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Encryption = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"encryption\"") + } + case "id": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.ID = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"id\"") + } + case "flow": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.Flow.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"flow\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0) { + name = jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0Flow as json. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0Flow) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0Flow from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0Flow) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0Flow to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0Flow(v) { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0FlowEmpty: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0FlowEmpty + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0FlowXtlsRprxVision: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0FlowXtlsRprxVision + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0FlowXtlsRprxVisionUdp443: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0FlowXtlsRprxVisionUdp443 + default: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0Flow(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0Flow) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0Flow) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1) encodeFields(e *jx.Encoder) { + { + e.FieldStart("password") + e.Str(s.Password) + } +} + +var jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1 = [1]string{ + 0: "password", +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1 from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1 to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "password": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Password = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"password\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1) { + name = jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2) encodeFields(e *jx.Encoder) { + { + e.FieldStart("method") + e.Str(s.Method) + } + { + e.FieldStart("password") + e.Str(s.Password) + } + { + e.FieldStart("uot") + e.Bool(s.Uot) + } + { + e.FieldStart("uotVersion") + e.Int(s.UotVersion) + } +} + +var jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2 = [4]string{ + 0: "method", + 1: "password", + 2: "uot", + 3: "uotVersion", +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2 from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2 to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "method": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Method = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"method\"") + } + case "password": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Password = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"password\"") + } + case "uot": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Bool() + s.Uot = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uot\"") + } + case "uotVersion": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.Int() + s.UotVersion = int(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uotVersion\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00001111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2) { + name = jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3) encodeFields(e *jx.Encoder) { + { + e.FieldStart("version") + e.Int(s.Version) + } +} + +var jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3 = [1]string{ + 0: "version", +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3 from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3 to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "version": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Int() + s.Version = int(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"version\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3) { + name = jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurity as json. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurity) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurity from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurity) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurity to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurity(v) { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityTLS: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityTLS + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityReality: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityReality + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityNone: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityNone + default: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurity(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurity) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurity) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions as json. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions) Encode(e *jx.Encoder) { + switch s.Type { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions: + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0.Encode(e) + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions: + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1.Encode(e) + } +} + +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions) encodeFields(e *jx.Encoder) { + switch s.Type { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions: + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0.encodeFields(e) + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions: + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1.encodeFields(e) + } +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions to nil") + } + // Sum type fields. + if typ := d.Next(); typ != jx.Object { + return errors.Errorf("unexpected json type %q", typ) + } + + var found bool + if err := d.Capture(func(d *jx.Decoder) error { + return d.ObjBytes(func(d *jx.Decoder, key []byte) error { + switch string(key) { + case "allowInsecure": + // Type-based discrimination: check if field has expected JSON type + if typ := d.Next(); typ != jx.Bool { + // Field exists but has wrong type, not a match for this variant + return d.Skip() + } + match := GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "alpn": + // Type-based discrimination: check if field has expected JSON type (nullable) + typ := d.Next() + if typ != jx.String && typ != jx.Null { + // Field exists but has wrong type, not a match for this variant + return d.Skip() + } + match := GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "echConfigList": + // Type-based discrimination: check if field has expected JSON type (nullable) + typ := d.Next() + if typ != jx.String && typ != jx.Null { + // Field exists but has wrong type, not a match for this variant + return d.Skip() + } + match := GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "echForceQuery": + // Type-based discrimination: check if field has expected JSON type (nullable) + typ := d.Next() + if typ != jx.String && typ != jx.Null { + // Field exists but has wrong type, not a match for this variant + return d.Skip() + } + match := GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "enableSessionResumption": + // Type-based discrimination: check if field has expected JSON type + if typ := d.Next(); typ != jx.Bool { + // Field exists but has wrong type, not a match for this variant + return d.Skip() + } + match := GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "mldsa65Verify": + // Type-based discrimination: check if field has expected JSON type (nullable) + typ := d.Next() + if typ != jx.String && typ != jx.Null { + // Field exists but has wrong type, not a match for this variant + return d.Skip() + } + match := GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "publicKey": + // Type-based discrimination: check if field has expected JSON type + if typ := d.Next(); typ != jx.String { + // Field exists but has wrong type, not a match for this variant + return d.Skip() + } + match := GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "shortId": + // Type-based discrimination: check if field has expected JSON type (nullable) + typ := d.Next() + if typ != jx.String && typ != jx.Null { + // Field exists but has wrong type, not a match for this variant + return d.Skip() + } + match := GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "spiderX": + // Type-based discrimination: check if field has expected JSON type (nullable) + typ := d.Next() + if typ != jx.String && typ != jx.Null { + // Field exists but has wrong type, not a match for this variant + return d.Skip() + } + match := GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + } + return d.Skip() + }) + }); err != nil { + return errors.Wrap(err, "capture") + } + if !found { + return errors.New("unable to detect sum type variant") + } + switch s.Type { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions: + if err := s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0.Decode(d); err != nil { + return err + } + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions: + if err := s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1.Decode(d); err != nil { + return err + } + default: + return errors.Errorf("inferred invalid type: %s", s.Type) + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0) encodeFields(e *jx.Encoder) { + { + e.FieldStart("allowInsecure") + e.Bool(s.AllowInsecure) + } + { + e.FieldStart("alpn") + s.Alpn.Encode(e) + } + { + e.FieldStart("enableSessionResumption") + e.Bool(s.EnableSessionResumption) + } + { + e.FieldStart("fingerprint") + s.Fingerprint.Encode(e) + } + { + e.FieldStart("serverName") + s.ServerName.Encode(e) + } + { + e.FieldStart("echConfigList") + s.EchConfigList.Encode(e) + } + { + e.FieldStart("echForceQuery") + s.EchForceQuery.Encode(e) + } +} + +var jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0 = [7]string{ + 0: "allowInsecure", + 1: "alpn", + 2: "enableSessionResumption", + 3: "fingerprint", + 4: "serverName", + 5: "echConfigList", + 6: "echForceQuery", +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0 from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0 to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "allowInsecure": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Bool() + s.AllowInsecure = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"allowInsecure\"") + } + case "alpn": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.Alpn.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"alpn\"") + } + case "enableSessionResumption": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Bool() + s.EnableSessionResumption = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"enableSessionResumption\"") + } + case "fingerprint": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + if err := s.Fingerprint.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"fingerprint\"") + } + case "serverName": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + if err := s.ServerName.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"serverName\"") + } + case "echConfigList": + requiredBitSet[0] |= 1 << 5 + if err := func() error { + if err := s.EchConfigList.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"echConfigList\"") + } + case "echForceQuery": + requiredBitSet[0] |= 1 << 6 + if err := func() error { + if err := s.EchForceQuery.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"echForceQuery\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b01111111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0) { + name = jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1) encodeFields(e *jx.Encoder) { + { + e.FieldStart("fingerprint") + e.Str(s.Fingerprint) + } + { + e.FieldStart("publicKey") + e.Str(s.PublicKey) + } + { + e.FieldStart("shortId") + s.ShortId.Encode(e) + } + { + e.FieldStart("serverName") + e.Str(s.ServerName) + } + { + e.FieldStart("spiderX") + s.SpiderX.Encode(e) + } + { + e.FieldStart("mldsa65Verify") + s.Mldsa65Verify.Encode(e) + } +} + +var jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1 = [6]string{ + 0: "fingerprint", + 1: "publicKey", + 2: "shortId", + 3: "serverName", + 4: "spiderX", + 5: "mldsa65Verify", +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1 from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1 to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "fingerprint": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Fingerprint = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"fingerprint\"") + } + case "publicKey": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.PublicKey = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"publicKey\"") + } + case "shortId": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.ShortId.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"shortId\"") + } + case "serverName": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.Str() + s.ServerName = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"serverName\"") + } + case "spiderX": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + if err := s.SpiderX.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"spiderX\"") + } + case "mldsa65Verify": + requiredBitSet[0] |= 1 << 5 + if err := func() error { + if err := s.Mldsa65Verify.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"mldsa65Verify\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00111111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1) { + name = jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemStreamOverrides) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemStreamOverrides) encodeFields(e *jx.Encoder) { + { + if len(s.FinalMask) != 0 { + e.FieldStart("finalMask") + e.Raw(s.FinalMask) + } + } + { + if len(s.Sockopt) != 0 { + e.FieldStart("sockopt") + e.Raw(s.Sockopt) + } + } +} + +var jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemStreamOverrides = [2]string{ + 0: "finalMask", + 1: "sockopt", +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemStreamOverrides from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemStreamOverrides) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemStreamOverrides to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "finalMask": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.RawAppend(nil) + s.FinalMask = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"finalMask\"") + } + case "sockopt": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.RawAppend(nil) + s.Sockopt = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"sockopt\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemStreamOverrides") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemStreamOverrides) { + name = jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemStreamOverrides[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemStreamOverrides) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemStreamOverrides) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransport as json. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransport) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransport from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransport) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransport to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransport(v) { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportTCP: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportTCP + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportXhttp: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportXhttp + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportWs: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportWs + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportHttpupgrade: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportHttpupgrade + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportGrpc: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportGrpc + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportKcp: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportKcp + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportHysteria: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportHysteria + default: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransport(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransport) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransport) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions as json. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions) Encode(e *jx.Encoder) { + switch s.Type { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions: + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0.Encode(e) + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions: + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1.Encode(e) + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions: + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2.Encode(e) + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions: + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3.Encode(e) + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions: + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4.Encode(e) + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions: + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5.Encode(e) + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions: + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6.Encode(e) + } +} + +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions) encodeFields(e *jx.Encoder) { + switch s.Type { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions: + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0.encodeFields(e) + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions: + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1.encodeFields(e) + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions: + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2.encodeFields(e) + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions: + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3.encodeFields(e) + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions: + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4.encodeFields(e) + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions: + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5.encodeFields(e) + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions: + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6.encodeFields(e) + } +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions to nil") + } + // Sum type fields. + if typ := d.Next(); typ != jx.Object { + return errors.Errorf("unexpected json type %q", typ) + } + + var found bool + if err := d.Capture(func(d *jx.Decoder) error { + return d.ObjBytes(func(d *jx.Decoder, key []byte) error { + switch string(key) { + case "auth": + // Type-based discrimination: check if field has expected JSON type + if typ := d.Next(); typ != jx.String { + // Field exists but has wrong type, not a match for this variant + return d.Skip() + } + match := GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "authority": + // Type-based discrimination: check if field has expected JSON type (nullable) + typ := d.Next() + if typ != jx.String && typ != jx.Null { + // Field exists but has wrong type, not a match for this variant + return d.Skip() + } + match := GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "clientMtu": + // Type-based discrimination: check if field has expected JSON type + if typ := d.Next(); typ != jx.Number { + // Field exists but has wrong type, not a match for this variant + return d.Skip() + } + match := GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "congestion": + // Type-based discrimination: check if field has expected JSON type + if typ := d.Next(); typ != jx.Bool { + // Field exists but has wrong type, not a match for this variant + return d.Skip() + } + match := GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "extra": + // Type-based discrimination: check if field has expected JSON type (nullable) + typ := d.Next() + if typ != jx.Object && typ != jx.Null { + // Field exists but has wrong type, not a match for this variant + return d.Skip() + } + match := GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "header": + match := GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "heartbeatPeriod": + // Type-based discrimination: check if field has expected JSON type (nullable) + typ := d.Next() + if typ != jx.Number && typ != jx.Null { + // Field exists but has wrong type, not a match for this variant + return d.Skip() + } + match := GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "mode": + // Type-based discrimination: check if field has expected JSON type + if typ := d.Next(); typ != jx.String { + // Field exists but has wrong type, not a match for this variant + return d.Skip() + } + match := GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "multiMode": + // Type-based discrimination: check if field has expected JSON type + if typ := d.Next(); typ != jx.Bool { + // Field exists but has wrong type, not a match for this variant + return d.Skip() + } + match := GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "serviceName": + // Type-based discrimination: check if field has expected JSON type (nullable) + typ := d.Next() + if typ != jx.String && typ != jx.Null { + // Field exists but has wrong type, not a match for this variant + return d.Skip() + } + match := GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "tti": + // Type-based discrimination: check if field has expected JSON type + if typ := d.Next(); typ != jx.Number { + // Field exists but has wrong type, not a match for this variant + return d.Skip() + } + match := GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "version": + // Type-based discrimination: check if field has expected JSON type + if typ := d.Next(); typ != jx.Number { + // Field exists but has wrong type, not a match for this variant + return d.Skip() + } + match := GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + } + return d.Skip() + }) + }); err != nil { + return errors.Wrap(err, "capture") + } + if !found { + s.Type = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions + } + switch s.Type { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions: + if err := s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0.Decode(d); err != nil { + return err + } + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions: + if err := s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1.Decode(d); err != nil { + return err + } + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions: + if err := s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2.Decode(d); err != nil { + return err + } + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions: + if err := s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3.Decode(d); err != nil { + return err + } + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions: + if err := s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4.Decode(d); err != nil { + return err + } + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions: + if err := s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5.Decode(d); err != nil { + return err + } + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions: + if err := s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6.Decode(d); err != nil { + return err + } + default: + return errors.Errorf("inferred invalid type: %s", s.Type) + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0) encodeFields(e *jx.Encoder) { + { + e.FieldStart("header") + s.Header.Encode(e) + } +} + +var jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0 = [1]string{ + 0: "header", +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0 from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0 to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "header": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Header.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"header\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0) { + name = jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header as json. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header) Encode(e *jx.Encoder) { + switch s.Type { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header: + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0.Encode(e) + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header: + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1.Encode(e) + } +} + +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header) encodeFields(e *jx.Encoder) { + switch s.Type { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header: + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0.encodeFields(e) + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header: + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1.encodeFields(e) + } +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header to nil") + } + // Sum type fields. + if typ := d.Next(); typ != jx.Object { + return errors.Errorf("unexpected json type %q", typ) + } + + var found bool + if err := d.Capture(func(d *jx.Decoder) error { + return d.ObjBytes(func(d *jx.Decoder, key []byte) error { + switch string(key) { + case "request": + // Type-based discrimination: check if field has expected JSON type + if typ := d.Next(); typ != jx.Object { + // Field exists but has wrong type, not a match for this variant + return d.Skip() + } + match := GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "response": + // Type-based discrimination: check if field has expected JSON type + if typ := d.Next(); typ != jx.Object { + // Field exists but has wrong type, not a match for this variant + return d.Skip() + } + match := GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "type": + // Value-based discrimination: check enum value + if typ := d.Next(); typ != jx.String { + return d.Skip() + } + value, err := d.StrBytes() + if err != nil { + return err + } + switch string(value) { + case "http": + match := GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "none": + match := GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + default: + // Unknown enum value, ignore and continue + } + return nil + } + return d.Skip() + }) + }); err != nil { + return errors.Wrap(err, "capture") + } + if !found { + return errors.New("unable to detect sum type variant") + } + switch s.Type { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header: + if err := s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0.Decode(d); err != nil { + return err + } + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header: + if err := s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1.Decode(d); err != nil { + return err + } + default: + return errors.Errorf("inferred invalid type: %s", s.Type) + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } +} + +var jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0 = [1]string{ + 0: "type", +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0 from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0 to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0) { + name = jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0Type as json. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0Type) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0Type from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0Type) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0Type to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0Type(v) { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0TypeNone: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0TypeNone + default: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0Type(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0Type) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0Type) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + if s.Request.Set { + e.FieldStart("request") + s.Request.Encode(e) + } + } + { + if s.Response.Set { + e.FieldStart("response") + s.Response.Encode(e) + } + } +} + +var jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1 = [3]string{ + 0: "type", + 1: "request", + 2: "response", +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1 from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1 to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "request": + if err := func() error { + s.Request.Reset() + if err := s.Request.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"request\"") + } + case "response": + if err := func() error { + s.Response.Reset() + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1) { + name = jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request) encodeFields(e *jx.Encoder) { + { + if s.Version.Set { + e.FieldStart("version") + s.Version.Encode(e) + } + } + { + if s.Method.Set { + e.FieldStart("method") + s.Method.Encode(e) + } + } + { + if s.Path != nil { + e.FieldStart("path") + e.ArrStart() + for _, elem := range s.Path { + e.Str(elem) + } + e.ArrEnd() + } + } + { + if s.Headers.Set { + e.FieldStart("headers") + s.Headers.Encode(e) + } + } +} + +var jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request = [4]string{ + 0: "version", + 1: "method", + 2: "path", + 3: "headers", +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request to nil") + } + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "version": + if err := func() error { + s.Version.Reset() + if err := s.Version.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"version\"") + } + case "method": + if err := func() error { + s.Method.Reset() + if err := s.Method.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"method\"") + } + case "path": + if err := func() error { + s.Path = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.Path = append(s.Path, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"path\"") + } + case "headers": + if err := func() error { + s.Headers.Reset() + if err := s.Headers.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"headers\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields implements json.Marshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders) encodeFields(e *jx.Encoder) { + for k, elem := range s { + e.FieldStart(k) + + if len(elem) != 0 { + e.Raw(elem) + } + } +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders to nil") + } + m := s.init() + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + var elem jx.Raw + if err := func() error { + v, err := d.RawAppend(nil) + elem = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrapf(err, "decode field %q", k) + } + m[string(k)] = elem + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response) encodeFields(e *jx.Encoder) { + { + if s.Version.Set { + e.FieldStart("version") + s.Version.Encode(e) + } + } + { + if s.Status.Set { + e.FieldStart("status") + s.Status.Encode(e) + } + } + { + if s.Reason.Set { + e.FieldStart("reason") + s.Reason.Encode(e) + } + } + { + if s.Headers.Set { + e.FieldStart("headers") + s.Headers.Encode(e) + } + } +} + +var jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response = [4]string{ + 0: "version", + 1: "status", + 2: "reason", + 3: "headers", +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response to nil") + } + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "version": + if err := func() error { + s.Version.Reset() + if err := s.Version.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"version\"") + } + case "status": + if err := func() error { + s.Status.Reset() + if err := s.Status.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"status\"") + } + case "reason": + if err := func() error { + s.Reason.Reset() + if err := s.Reason.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"reason\"") + } + case "headers": + if err := func() error { + s.Headers.Reset() + if err := s.Headers.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"headers\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields implements json.Marshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders) encodeFields(e *jx.Encoder) { + for k, elem := range s { + e.FieldStart(k) + + if len(elem) != 0 { + e.Raw(elem) + } + } +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders to nil") + } + m := s.init() + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + var elem jx.Raw + if err := func() error { + v, err := d.RawAppend(nil) + elem = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrapf(err, "decode field %q", k) + } + m[string(k)] = elem + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Type as json. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Type) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Type from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Type) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Type to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Type(v) { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1TypeHTTP: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1TypeHTTP + default: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Type(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Type) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Type) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1) encodeFields(e *jx.Encoder) { + { + e.FieldStart("path") + s.Path.Encode(e) + } + { + e.FieldStart("host") + s.Host.Encode(e) + } + { + e.FieldStart("mode") + s.Mode.Encode(e) + } + { + e.FieldStart("extra") + s.Extra.Encode(e) + } +} + +var jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1 = [4]string{ + 0: "path", + 1: "host", + 2: "mode", + 3: "extra", +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1 from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1 to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "path": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Path.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"path\"") + } + case "host": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.Host.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"host\"") + } + case "mode": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.Mode.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"mode\"") + } + case "extra": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + if err := s.Extra.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"extra\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00001111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1) { + name = jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields implements json.Marshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra) encodeFields(e *jx.Encoder) { + for k, elem := range s { + e.FieldStart(k) + + if len(elem) != 0 { + e.Raw(elem) + } + } +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra to nil") + } + m := s.init() + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + var elem jx.Raw + if err := func() error { + v, err := d.RawAppend(nil) + elem = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrapf(err, "decode field %q", k) + } + m[string(k)] = elem + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Mode as json. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Mode) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Mode from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Mode) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Mode to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Mode(v) { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1ModeAuto: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1ModeAuto + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1ModePacketUp: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1ModePacketUp + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1ModeStreamUp: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1ModeStreamUp + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1ModeStreamOne: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1ModeStreamOne + default: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Mode(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Mode) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Mode) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2) encodeFields(e *jx.Encoder) { + { + e.FieldStart("path") + s.Path.Encode(e) + } + { + e.FieldStart("host") + s.Host.Encode(e) + } + { + e.FieldStart("headers") + s.Headers.Encode(e) + } + { + e.FieldStart("heartbeatPeriod") + s.HeartbeatPeriod.Encode(e) + } +} + +var jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2 = [4]string{ + 0: "path", + 1: "host", + 2: "headers", + 3: "heartbeatPeriod", +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2 from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2 to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "path": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Path.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"path\"") + } + case "host": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.Host.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"host\"") + } + case "headers": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.Headers.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"headers\"") + } + case "heartbeatPeriod": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + if err := s.HeartbeatPeriod.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"heartbeatPeriod\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00001111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2) { + name = jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields implements json.Marshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers) encodeFields(e *jx.Encoder) { + for k, elem := range s { + e.FieldStart(k) + + e.Str(elem) + } +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers to nil") + } + m := s.init() + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + var elem string + if err := func() error { + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrapf(err, "decode field %q", k) + } + m[string(k)] = elem + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3) encodeFields(e *jx.Encoder) { + { + e.FieldStart("path") + s.Path.Encode(e) + } + { + e.FieldStart("host") + s.Host.Encode(e) + } + { + e.FieldStart("headers") + s.Headers.Encode(e) + } +} + +var jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3 = [3]string{ + 0: "path", + 1: "host", + 2: "headers", +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3 from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3 to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "path": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Path.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"path\"") + } + case "host": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.Host.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"host\"") + } + case "headers": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.Headers.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"headers\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3) { + name = jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields implements json.Marshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers) encodeFields(e *jx.Encoder) { + for k, elem := range s { + e.FieldStart(k) + + e.Str(elem) + } +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers to nil") + } + m := s.init() + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + var elem string + if err := func() error { + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrapf(err, "decode field %q", k) + } + m[string(k)] = elem + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4) encodeFields(e *jx.Encoder) { + { + e.FieldStart("authority") + s.Authority.Encode(e) + } + { + e.FieldStart("serviceName") + s.ServiceName.Encode(e) + } + { + e.FieldStart("multiMode") + e.Bool(s.MultiMode) + } +} + +var jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4 = [3]string{ + 0: "authority", + 1: "serviceName", + 2: "multiMode", +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4 from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4 to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "authority": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Authority.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"authority\"") + } + case "serviceName": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.ServiceName.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"serviceName\"") + } + case "multiMode": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Bool() + s.MultiMode = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"multiMode\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4) { + name = jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5) encodeFields(e *jx.Encoder) { + { + e.FieldStart("clientMtu") + e.Int(s.ClientMtu) + } + { + e.FieldStart("tti") + e.Int(s.Tti) + } + { + e.FieldStart("congestion") + e.Bool(s.Congestion) + } +} + +var jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5 = [3]string{ + 0: "clientMtu", + 1: "tti", + 2: "congestion", +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5 from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5 to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "clientMtu": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Int() + s.ClientMtu = int(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"clientMtu\"") + } + case "tti": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Int() + s.Tti = int(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"tti\"") + } + case "congestion": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Bool() + s.Congestion = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"congestion\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5) { + name = jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6) encodeFields(e *jx.Encoder) { + { + e.FieldStart("version") + e.Int(s.Version) + } + { + e.FieldStart("auth") + e.Str(s.Auth) + } +} + +var jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6 = [2]string{ + 0: "version", + 1: "auth", +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6 from json. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6 to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "version": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Int() + s.Version = int(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"version\"") + } + case "auth": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Auth = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"auth\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6) { + name = jsonFieldsNameOfGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetRecapResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetRecapResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfGetRecapResponse = [1]string{ + 0: "response", +} + +// Decode decodes GetRecapResponse from json. +func (s *GetRecapResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRecapResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRecapResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetRecapResponse) { + name = jsonFieldsNameOfGetRecapResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetRecapResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRecapResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetRecapResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetRecapResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("thisMonth") + s.ThisMonth.Encode(e) + } + { + e.FieldStart("total") + s.Total.Encode(e) + } + { + e.FieldStart("version") + e.Str(s.Version) + } + { + e.FieldStart("initDate") + json.EncodeDateTime(e, s.InitDate) + } +} + +var jsonFieldsNameOfGetRecapResponseResponse = [4]string{ + 0: "thisMonth", + 1: "total", + 2: "version", + 3: "initDate", +} + +// Decode decodes GetRecapResponseResponse from json. +func (s *GetRecapResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRecapResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "thisMonth": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.ThisMonth.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"thisMonth\"") + } + case "total": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.Total.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"total\"") + } + case "version": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.Version = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"version\"") + } + case "initDate": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.InitDate = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"initDate\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRecapResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00001111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetRecapResponseResponse) { + name = jsonFieldsNameOfGetRecapResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetRecapResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRecapResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetRecapResponseResponseThisMonth) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetRecapResponseResponseThisMonth) encodeFields(e *jx.Encoder) { + { + e.FieldStart("users") + e.Float64(s.Users) + } + { + e.FieldStart("traffic") + e.Str(s.Traffic) + } +} + +var jsonFieldsNameOfGetRecapResponseResponseThisMonth = [2]string{ + 0: "users", + 1: "traffic", +} + +// Decode decodes GetRecapResponseResponseThisMonth from json. +func (s *GetRecapResponseResponseThisMonth) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRecapResponseResponseThisMonth to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "users": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Float64() + s.Users = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"users\"") + } + case "traffic": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Traffic = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"traffic\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRecapResponseResponseThisMonth") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetRecapResponseResponseThisMonth) { + name = jsonFieldsNameOfGetRecapResponseResponseThisMonth[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetRecapResponseResponseThisMonth) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRecapResponseResponseThisMonth) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetRecapResponseResponseTotal) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetRecapResponseResponseTotal) encodeFields(e *jx.Encoder) { + { + e.FieldStart("users") + e.Float64(s.Users) + } + { + e.FieldStart("nodes") + e.Float64(s.Nodes) + } + { + e.FieldStart("traffic") + e.Str(s.Traffic) + } + { + e.FieldStart("nodesRam") + e.Str(s.NodesRam) + } + { + e.FieldStart("nodesCpuCores") + e.Float64(s.NodesCpuCores) + } + { + e.FieldStart("distinctCountries") + e.Float64(s.DistinctCountries) + } +} + +var jsonFieldsNameOfGetRecapResponseResponseTotal = [6]string{ + 0: "users", + 1: "nodes", + 2: "traffic", + 3: "nodesRam", + 4: "nodesCpuCores", + 5: "distinctCountries", +} + +// Decode decodes GetRecapResponseResponseTotal from json. +func (s *GetRecapResponseResponseTotal) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRecapResponseResponseTotal to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "users": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Float64() + s.Users = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"users\"") + } + case "nodes": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Float64() + s.Nodes = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"nodes\"") + } + case "traffic": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.Traffic = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"traffic\"") + } + case "nodesRam": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.Str() + s.NodesRam = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"nodesRam\"") + } + case "nodesCpuCores": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + v, err := d.Float64() + s.NodesCpuCores = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"nodesCpuCores\"") + } + case "distinctCountries": + requiredBitSet[0] |= 1 << 5 + if err := func() error { + v, err := d.Float64() + s.DistinctCountries = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"distinctCountries\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRecapResponseResponseTotal") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00111111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetRecapResponseResponseTotal) { + name = jsonFieldsNameOfGetRecapResponseResponseTotal[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetRecapResponseResponseTotal) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRecapResponseResponseTotal) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetRemnawaveHealthResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetRemnawaveHealthResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfGetRemnawaveHealthResponse = [1]string{ + 0: "response", +} + +// Decode decodes GetRemnawaveHealthResponse from json. +func (s *GetRemnawaveHealthResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRemnawaveHealthResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRemnawaveHealthResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetRemnawaveHealthResponse) { + name = jsonFieldsNameOfGetRemnawaveHealthResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetRemnawaveHealthResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRemnawaveHealthResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetRemnawaveHealthResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetRemnawaveHealthResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("runtimeMetrics") + e.ArrStart() + for _, elem := range s.RuntimeMetrics { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfGetRemnawaveHealthResponseResponse = [1]string{ + 0: "runtimeMetrics", +} + +// Decode decodes GetRemnawaveHealthResponseResponse from json. +func (s *GetRemnawaveHealthResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRemnawaveHealthResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "runtimeMetrics": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.RuntimeMetrics = make([]GetRemnawaveHealthResponseResponseRuntimeMetricsItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem GetRemnawaveHealthResponseResponseRuntimeMetricsItem + if err := elem.Decode(d); err != nil { + return err + } + s.RuntimeMetrics = append(s.RuntimeMetrics, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"runtimeMetrics\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRemnawaveHealthResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetRemnawaveHealthResponseResponse) { + name = jsonFieldsNameOfGetRemnawaveHealthResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetRemnawaveHealthResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRemnawaveHealthResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetRemnawaveHealthResponseResponseRuntimeMetricsItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetRemnawaveHealthResponseResponseRuntimeMetricsItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("rss") + e.Float64(s.Rss) + } + { + e.FieldStart("heapUsed") + e.Float64(s.HeapUsed) + } + { + e.FieldStart("heapTotal") + e.Float64(s.HeapTotal) + } + { + e.FieldStart("external") + e.Float64(s.External) + } + { + e.FieldStart("arrayBuffers") + e.Float64(s.ArrayBuffers) + } + { + e.FieldStart("eventLoopDelayMs") + e.Float64(s.EventLoopDelayMs) + } + { + e.FieldStart("eventLoopP99Ms") + e.Float64(s.EventLoopP99Ms) + } + { + e.FieldStart("activeHandles") + e.Float64(s.ActiveHandles) + } + { + e.FieldStart("uptime") + e.Float64(s.Uptime) + } + { + e.FieldStart("pid") + e.Float64(s.Pid) + } + { + e.FieldStart("timestamp") + e.Float64(s.Timestamp) + } + { + e.FieldStart("instanceId") + e.Str(s.InstanceId) + } + { + e.FieldStart("instanceType") + e.Str(s.InstanceType) + } +} + +var jsonFieldsNameOfGetRemnawaveHealthResponseResponseRuntimeMetricsItem = [13]string{ + 0: "rss", + 1: "heapUsed", + 2: "heapTotal", + 3: "external", + 4: "arrayBuffers", + 5: "eventLoopDelayMs", + 6: "eventLoopP99Ms", + 7: "activeHandles", + 8: "uptime", + 9: "pid", + 10: "timestamp", + 11: "instanceId", + 12: "instanceType", +} + +// Decode decodes GetRemnawaveHealthResponseResponseRuntimeMetricsItem from json. +func (s *GetRemnawaveHealthResponseResponseRuntimeMetricsItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetRemnawaveHealthResponseResponseRuntimeMetricsItem to nil") + } + var requiredBitSet [2]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "rss": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Float64() + s.Rss = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"rss\"") + } + case "heapUsed": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Float64() + s.HeapUsed = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"heapUsed\"") + } + case "heapTotal": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Float64() + s.HeapTotal = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"heapTotal\"") + } + case "external": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.Float64() + s.External = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"external\"") + } + case "arrayBuffers": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + v, err := d.Float64() + s.ArrayBuffers = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"arrayBuffers\"") + } + case "eventLoopDelayMs": + requiredBitSet[0] |= 1 << 5 + if err := func() error { + v, err := d.Float64() + s.EventLoopDelayMs = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"eventLoopDelayMs\"") + } + case "eventLoopP99Ms": + requiredBitSet[0] |= 1 << 6 + if err := func() error { + v, err := d.Float64() + s.EventLoopP99Ms = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"eventLoopP99Ms\"") + } + case "activeHandles": + requiredBitSet[0] |= 1 << 7 + if err := func() error { + v, err := d.Float64() + s.ActiveHandles = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"activeHandles\"") + } + case "uptime": + requiredBitSet[1] |= 1 << 0 + if err := func() error { + v, err := d.Float64() + s.Uptime = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uptime\"") + } + case "pid": + requiredBitSet[1] |= 1 << 1 + if err := func() error { + v, err := d.Float64() + s.Pid = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"pid\"") + } + case "timestamp": + requiredBitSet[1] |= 1 << 2 + if err := func() error { + v, err := d.Float64() + s.Timestamp = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"timestamp\"") + } + case "instanceId": + requiredBitSet[1] |= 1 << 3 + if err := func() error { + v, err := d.Str() + s.InstanceId = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"instanceId\"") + } + case "instanceType": + requiredBitSet[1] |= 1 << 4 + if err := func() error { + v, err := d.Str() + s.InstanceType = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"instanceType\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetRemnawaveHealthResponseResponseRuntimeMetricsItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [2]uint8{ + 0b11111111, + 0b00011111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetRemnawaveHealthResponseResponseRuntimeMetricsItem) { + name = jsonFieldsNameOfGetRemnawaveHealthResponseResponseRuntimeMetricsItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetRemnawaveHealthResponseResponseRuntimeMetricsItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetRemnawaveHealthResponseResponseRuntimeMetricsItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetStatsNodeUsersUsageResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetStatsNodeUsersUsageResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfGetStatsNodeUsersUsageResponse = [1]string{ + 0: "response", +} + +// Decode decodes GetStatsNodeUsersUsageResponse from json. +func (s *GetStatsNodeUsersUsageResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetStatsNodeUsersUsageResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetStatsNodeUsersUsageResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetStatsNodeUsersUsageResponse) { + name = jsonFieldsNameOfGetStatsNodeUsersUsageResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetStatsNodeUsersUsageResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetStatsNodeUsersUsageResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetStatsNodeUsersUsageResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetStatsNodeUsersUsageResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("categories") + e.ArrStart() + for _, elem := range s.Categories { + e.Str(elem) + } + e.ArrEnd() + } + { + e.FieldStart("sparklineData") + e.ArrStart() + for _, elem := range s.SparklineData { + e.Float64(elem) + } + e.ArrEnd() + } + { + e.FieldStart("topUsers") + e.ArrStart() + for _, elem := range s.TopUsers { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfGetStatsNodeUsersUsageResponseResponse = [3]string{ + 0: "categories", + 1: "sparklineData", + 2: "topUsers", +} + +// Decode decodes GetStatsNodeUsersUsageResponseResponse from json. +func (s *GetStatsNodeUsersUsageResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetStatsNodeUsersUsageResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "categories": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.Categories = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.Categories = append(s.Categories, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"categories\"") + } + case "sparklineData": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + s.SparklineData = make([]float64, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem float64 + v, err := d.Float64() + elem = float64(v) + if err != nil { + return err + } + s.SparklineData = append(s.SparklineData, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"sparklineData\"") + } + case "topUsers": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + s.TopUsers = make([]GetStatsNodeUsersUsageResponseResponseTopUsersItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem GetStatsNodeUsersUsageResponseResponseTopUsersItem + if err := elem.Decode(d); err != nil { + return err + } + s.TopUsers = append(s.TopUsers, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"topUsers\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetStatsNodeUsersUsageResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetStatsNodeUsersUsageResponseResponse) { + name = jsonFieldsNameOfGetStatsNodeUsersUsageResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetStatsNodeUsersUsageResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetStatsNodeUsersUsageResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetStatsNodeUsersUsageResponseResponseTopUsersItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetStatsNodeUsersUsageResponseResponseTopUsersItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("color") + e.Str(s.Color) + } + { + e.FieldStart("username") + e.Str(s.Username) + } + { + e.FieldStart("total") + e.Float64(s.Total) + } +} + +var jsonFieldsNameOfGetStatsNodeUsersUsageResponseResponseTopUsersItem = [3]string{ + 0: "color", + 1: "username", + 2: "total", +} + +// Decode decodes GetStatsNodeUsersUsageResponseResponseTopUsersItem from json. +func (s *GetStatsNodeUsersUsageResponseResponseTopUsersItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetStatsNodeUsersUsageResponseResponseTopUsersItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "color": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Color = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"color\"") + } + case "username": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Username = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"username\"") + } + case "total": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Float64() + s.Total = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"total\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetStatsNodeUsersUsageResponseResponseTopUsersItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetStatsNodeUsersUsageResponseResponseTopUsersItem) { + name = jsonFieldsNameOfGetStatsNodeUsersUsageResponseResponseTopUsersItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetStatsNodeUsersUsageResponseResponseTopUsersItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetStatsNodeUsersUsageResponseResponseTopUsersItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetStatsResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetStatsResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfGetStatsResponse = [1]string{ + 0: "response", +} + +// Decode decodes GetStatsResponse from json. +func (s *GetStatsResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetStatsResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetStatsResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetStatsResponse) { + name = jsonFieldsNameOfGetStatsResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetStatsResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetStatsResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetStatsResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetStatsResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("cpu") + s.CPU.Encode(e) + } + { + e.FieldStart("memory") + s.Memory.Encode(e) + } + { + e.FieldStart("uptime") + e.Float64(s.Uptime) + } + { + e.FieldStart("timestamp") + e.Float64(s.Timestamp) + } + { + e.FieldStart("users") + s.Users.Encode(e) + } + { + e.FieldStart("onlineStats") + s.OnlineStats.Encode(e) + } + { + e.FieldStart("nodes") + s.Nodes.Encode(e) + } +} + +var jsonFieldsNameOfGetStatsResponseResponse = [7]string{ + 0: "cpu", + 1: "memory", + 2: "uptime", + 3: "timestamp", + 4: "users", + 5: "onlineStats", + 6: "nodes", +} + +// Decode decodes GetStatsResponseResponse from json. +func (s *GetStatsResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetStatsResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "cpu": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.CPU.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"cpu\"") + } + case "memory": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.Memory.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"memory\"") + } + case "uptime": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Float64() + s.Uptime = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uptime\"") + } + case "timestamp": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.Float64() + s.Timestamp = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"timestamp\"") + } + case "users": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + if err := s.Users.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"users\"") + } + case "onlineStats": + requiredBitSet[0] |= 1 << 5 + if err := func() error { + if err := s.OnlineStats.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"onlineStats\"") + } + case "nodes": + requiredBitSet[0] |= 1 << 6 + if err := func() error { + if err := s.Nodes.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"nodes\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetStatsResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b01111111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetStatsResponseResponse) { + name = jsonFieldsNameOfGetStatsResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetStatsResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetStatsResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetStatsResponseResponseCPU) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetStatsResponseResponseCPU) encodeFields(e *jx.Encoder) { + { + e.FieldStart("cores") + e.Float64(s.Cores) + } +} + +var jsonFieldsNameOfGetStatsResponseResponseCPU = [1]string{ + 0: "cores", +} + +// Decode decodes GetStatsResponseResponseCPU from json. +func (s *GetStatsResponseResponseCPU) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetStatsResponseResponseCPU to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "cores": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Float64() + s.Cores = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"cores\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetStatsResponseResponseCPU") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetStatsResponseResponseCPU) { + name = jsonFieldsNameOfGetStatsResponseResponseCPU[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetStatsResponseResponseCPU) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetStatsResponseResponseCPU) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetStatsResponseResponseMemory) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetStatsResponseResponseMemory) encodeFields(e *jx.Encoder) { + { + e.FieldStart("total") + e.Float64(s.Total) + } + { + e.FieldStart("free") + e.Float64(s.Free) + } + { + e.FieldStart("used") + e.Float64(s.Used) + } +} + +var jsonFieldsNameOfGetStatsResponseResponseMemory = [3]string{ + 0: "total", + 1: "free", + 2: "used", +} + +// Decode decodes GetStatsResponseResponseMemory from json. +func (s *GetStatsResponseResponseMemory) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetStatsResponseResponseMemory to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "total": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Float64() + s.Total = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"total\"") + } + case "free": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Float64() + s.Free = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"free\"") + } + case "used": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Float64() + s.Used = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"used\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetStatsResponseResponseMemory") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetStatsResponseResponseMemory) { + name = jsonFieldsNameOfGetStatsResponseResponseMemory[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetStatsResponseResponseMemory) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetStatsResponseResponseMemory) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetStatsResponseResponseNodes) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetStatsResponseResponseNodes) encodeFields(e *jx.Encoder) { + { + e.FieldStart("totalOnline") + e.Float64(s.TotalOnline) + } + { + e.FieldStart("totalBytesLifetime") + e.Str(s.TotalBytesLifetime) + } +} + +var jsonFieldsNameOfGetStatsResponseResponseNodes = [2]string{ + 0: "totalOnline", + 1: "totalBytesLifetime", +} + +// Decode decodes GetStatsResponseResponseNodes from json. +func (s *GetStatsResponseResponseNodes) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetStatsResponseResponseNodes to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "totalOnline": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Float64() + s.TotalOnline = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"totalOnline\"") + } + case "totalBytesLifetime": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.TotalBytesLifetime = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"totalBytesLifetime\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetStatsResponseResponseNodes") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetStatsResponseResponseNodes) { + name = jsonFieldsNameOfGetStatsResponseResponseNodes[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetStatsResponseResponseNodes) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetStatsResponseResponseNodes) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetStatsResponseResponseOnlineStats) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetStatsResponseResponseOnlineStats) encodeFields(e *jx.Encoder) { + { + e.FieldStart("lastDay") + e.Float64(s.LastDay) + } + { + e.FieldStart("lastWeek") + e.Float64(s.LastWeek) + } + { + e.FieldStart("neverOnline") + e.Float64(s.NeverOnline) + } + { + e.FieldStart("onlineNow") + e.Float64(s.OnlineNow) + } +} + +var jsonFieldsNameOfGetStatsResponseResponseOnlineStats = [4]string{ + 0: "lastDay", + 1: "lastWeek", + 2: "neverOnline", + 3: "onlineNow", +} + +// Decode decodes GetStatsResponseResponseOnlineStats from json. +func (s *GetStatsResponseResponseOnlineStats) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetStatsResponseResponseOnlineStats to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "lastDay": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Float64() + s.LastDay = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"lastDay\"") + } + case "lastWeek": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Float64() + s.LastWeek = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"lastWeek\"") + } + case "neverOnline": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Float64() + s.NeverOnline = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"neverOnline\"") + } + case "onlineNow": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.Float64() + s.OnlineNow = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"onlineNow\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetStatsResponseResponseOnlineStats") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00001111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetStatsResponseResponseOnlineStats) { + name = jsonFieldsNameOfGetStatsResponseResponseOnlineStats[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetStatsResponseResponseOnlineStats) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetStatsResponseResponseOnlineStats) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetStatsResponseResponseUsers) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetStatsResponseResponseUsers) encodeFields(e *jx.Encoder) { + { + e.FieldStart("statusCounts") + s.StatusCounts.Encode(e) + } + { + e.FieldStart("totalUsers") + e.Float64(s.TotalUsers) + } +} + +var jsonFieldsNameOfGetStatsResponseResponseUsers = [2]string{ + 0: "statusCounts", + 1: "totalUsers", +} + +// Decode decodes GetStatsResponseResponseUsers from json. +func (s *GetStatsResponseResponseUsers) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetStatsResponseResponseUsers to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "statusCounts": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.StatusCounts.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"statusCounts\"") + } + case "totalUsers": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Float64() + s.TotalUsers = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"totalUsers\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetStatsResponseResponseUsers") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetStatsResponseResponseUsers) { + name = jsonFieldsNameOfGetStatsResponseResponseUsers[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetStatsResponseResponseUsers) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetStatsResponseResponseUsers) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s GetStatsResponseResponseUsersStatusCounts) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields implements json.Marshaler. +func (s GetStatsResponseResponseUsersStatusCounts) encodeFields(e *jx.Encoder) { + for k, elem := range s { + e.FieldStart(k) + + e.Float64(elem) + } +} + +// Decode decodes GetStatsResponseResponseUsersStatusCounts from json. +func (s *GetStatsResponseResponseUsersStatusCounts) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetStatsResponseResponseUsersStatusCounts to nil") + } + m := s.init() + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + var elem float64 + if err := func() error { + v, err := d.Float64() + elem = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrapf(err, "decode field %q", k) + } + m[string(k)] = elem + return nil + }); err != nil { + return errors.Wrap(err, "decode GetStatsResponseResponseUsersStatusCounts") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s GetStatsResponseResponseUsersStatusCounts) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetStatsResponseResponseUsersStatusCounts) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetStatusResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetStatusResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfGetStatusResponse = [1]string{ + 0: "response", +} + +// Decode decodes GetStatusResponse from json. +func (s *GetStatusResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetStatusResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetStatusResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetStatusResponse) { + name = jsonFieldsNameOfGetStatusResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetStatusResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetStatusResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetStatusResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetStatusResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("isLoginAllowed") + e.Bool(s.IsLoginAllowed) + } + { + e.FieldStart("isRegisterAllowed") + e.Bool(s.IsRegisterAllowed) + } + { + e.FieldStart("authentication") + s.Authentication.Encode(e) + } + { + e.FieldStart("branding") + s.Branding.Encode(e) + } +} + +var jsonFieldsNameOfGetStatusResponseResponse = [4]string{ + 0: "isLoginAllowed", + 1: "isRegisterAllowed", + 2: "authentication", + 3: "branding", +} + +// Decode decodes GetStatusResponseResponse from json. +func (s *GetStatusResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetStatusResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "isLoginAllowed": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Bool() + s.IsLoginAllowed = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"isLoginAllowed\"") + } + case "isRegisterAllowed": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Bool() + s.IsRegisterAllowed = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"isRegisterAllowed\"") + } + case "authentication": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.Authentication.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"authentication\"") + } + case "branding": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + if err := s.Branding.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"branding\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetStatusResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00001111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetStatusResponseResponse) { + name = jsonFieldsNameOfGetStatusResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetStatusResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetStatusResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetStatusResponseResponseAuthentication) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetStatusResponseResponseAuthentication) encodeFields(e *jx.Encoder) { + { + e.FieldStart("passkey") + s.Passkey.Encode(e) + } + { + e.FieldStart("oauth2") + s.OAuth2.Encode(e) + } + { + e.FieldStart("password") + s.Password.Encode(e) + } +} + +var jsonFieldsNameOfGetStatusResponseResponseAuthentication = [3]string{ + 0: "passkey", + 1: "oauth2", + 2: "password", +} + +// Decode decodes GetStatusResponseResponseAuthentication from json. +func (s *GetStatusResponseResponseAuthentication) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetStatusResponseResponseAuthentication to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "passkey": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Passkey.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"passkey\"") + } + case "oauth2": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.OAuth2.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"oauth2\"") + } + case "password": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.Password.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"password\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetStatusResponseResponseAuthentication") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetStatusResponseResponseAuthentication) { + name = jsonFieldsNameOfGetStatusResponseResponseAuthentication[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetStatusResponseResponseAuthentication) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetStatusResponseResponseAuthentication) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetStatusResponseResponseAuthenticationOAuth2) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetStatusResponseResponseAuthenticationOAuth2) encodeFields(e *jx.Encoder) { + { + e.FieldStart("providers") + s.Providers.Encode(e) + } +} + +var jsonFieldsNameOfGetStatusResponseResponseAuthenticationOAuth2 = [1]string{ + 0: "providers", +} + +// Decode decodes GetStatusResponseResponseAuthenticationOAuth2 from json. +func (s *GetStatusResponseResponseAuthenticationOAuth2) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetStatusResponseResponseAuthenticationOAuth2 to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "providers": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Providers.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"providers\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetStatusResponseResponseAuthenticationOAuth2") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetStatusResponseResponseAuthenticationOAuth2) { + name = jsonFieldsNameOfGetStatusResponseResponseAuthenticationOAuth2[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetStatusResponseResponseAuthenticationOAuth2) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetStatusResponseResponseAuthenticationOAuth2) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s GetStatusResponseResponseAuthenticationOAuth2Providers) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields implements json.Marshaler. +func (s GetStatusResponseResponseAuthenticationOAuth2Providers) encodeFields(e *jx.Encoder) { + for k, elem := range s { + e.FieldStart(k) + + e.Bool(elem) + } +} + +// Decode decodes GetStatusResponseResponseAuthenticationOAuth2Providers from json. +func (s *GetStatusResponseResponseAuthenticationOAuth2Providers) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetStatusResponseResponseAuthenticationOAuth2Providers to nil") + } + m := s.init() + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + var elem bool + if err := func() error { + v, err := d.Bool() + elem = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrapf(err, "decode field %q", k) + } + m[string(k)] = elem + return nil + }); err != nil { + return errors.Wrap(err, "decode GetStatusResponseResponseAuthenticationOAuth2Providers") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s GetStatusResponseResponseAuthenticationOAuth2Providers) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetStatusResponseResponseAuthenticationOAuth2Providers) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetStatusResponseResponseBranding) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetStatusResponseResponseBranding) encodeFields(e *jx.Encoder) { + { + e.FieldStart("title") + s.Title.Encode(e) + } + { + e.FieldStart("logoUrl") + s.LogoUrl.Encode(e) + } +} + +var jsonFieldsNameOfGetStatusResponseResponseBranding = [2]string{ + 0: "title", + 1: "logoUrl", +} + +// Decode decodes GetStatusResponseResponseBranding from json. +func (s *GetStatusResponseResponseBranding) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetStatusResponseResponseBranding to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "title": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Title.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"title\"") + } + case "logoUrl": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.LogoUrl.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"logoUrl\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetStatusResponseResponseBranding") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetStatusResponseResponseBranding) { + name = jsonFieldsNameOfGetStatusResponseResponseBranding[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetStatusResponseResponseBranding) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetStatusResponseResponseBranding) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetSubpageConfigByShortUuidRequestBody) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetSubpageConfigByShortUuidRequestBody) encodeFields(e *jx.Encoder) { + { + e.FieldStart("requestHeaders") + s.RequestHeaders.Encode(e) + } +} + +var jsonFieldsNameOfGetSubpageConfigByShortUuidRequestBody = [1]string{ + 0: "requestHeaders", +} + +// Decode decodes GetSubpageConfigByShortUuidRequestBody from json. +func (s *GetSubpageConfigByShortUuidRequestBody) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetSubpageConfigByShortUuidRequestBody to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "requestHeaders": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.RequestHeaders.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"requestHeaders\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetSubpageConfigByShortUuidRequestBody") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetSubpageConfigByShortUuidRequestBody) { + name = jsonFieldsNameOfGetSubpageConfigByShortUuidRequestBody[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetSubpageConfigByShortUuidRequestBody) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetSubpageConfigByShortUuidRequestBody) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s GetSubpageConfigByShortUuidRequestBodyRequestHeaders) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields implements json.Marshaler. +func (s GetSubpageConfigByShortUuidRequestBodyRequestHeaders) encodeFields(e *jx.Encoder) { + for k, elem := range s { + e.FieldStart(k) + + e.Str(elem) + } +} + +// Decode decodes GetSubpageConfigByShortUuidRequestBodyRequestHeaders from json. +func (s *GetSubpageConfigByShortUuidRequestBodyRequestHeaders) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetSubpageConfigByShortUuidRequestBodyRequestHeaders to nil") + } + m := s.init() + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + var elem string + if err := func() error { + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrapf(err, "decode field %q", k) + } + m[string(k)] = elem + return nil + }); err != nil { + return errors.Wrap(err, "decode GetSubpageConfigByShortUuidRequestBodyRequestHeaders") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s GetSubpageConfigByShortUuidRequestBodyRequestHeaders) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetSubpageConfigByShortUuidRequestBodyRequestHeaders) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetSubpageConfigByShortUuidResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetSubpageConfigByShortUuidResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfGetSubpageConfigByShortUuidResponse = [1]string{ + 0: "response", +} + +// Decode decodes GetSubpageConfigByShortUuidResponse from json. +func (s *GetSubpageConfigByShortUuidResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetSubpageConfigByShortUuidResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetSubpageConfigByShortUuidResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetSubpageConfigByShortUuidResponse) { + name = jsonFieldsNameOfGetSubpageConfigByShortUuidResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetSubpageConfigByShortUuidResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetSubpageConfigByShortUuidResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetSubpageConfigByShortUuidResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetSubpageConfigByShortUuidResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("subpageConfigUuid") + s.SubpageConfigUuid.Encode(e) + } + { + e.FieldStart("webpageAllowed") + e.Bool(s.WebpageAllowed) + } +} + +var jsonFieldsNameOfGetSubpageConfigByShortUuidResponseResponse = [2]string{ + 0: "subpageConfigUuid", + 1: "webpageAllowed", +} + +// Decode decodes GetSubpageConfigByShortUuidResponseResponse from json. +func (s *GetSubpageConfigByShortUuidResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetSubpageConfigByShortUuidResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "subpageConfigUuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.SubpageConfigUuid.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"subpageConfigUuid\"") + } + case "webpageAllowed": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Bool() + s.WebpageAllowed = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"webpageAllowed\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetSubpageConfigByShortUuidResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetSubpageConfigByShortUuidResponseResponse) { + name = jsonFieldsNameOfGetSubpageConfigByShortUuidResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetSubpageConfigByShortUuidResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetSubpageConfigByShortUuidResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetSubscriptionRequestHistoryResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetSubscriptionRequestHistoryResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfGetSubscriptionRequestHistoryResponse = [1]string{ + 0: "response", +} + +// Decode decodes GetSubscriptionRequestHistoryResponse from json. +func (s *GetSubscriptionRequestHistoryResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetSubscriptionRequestHistoryResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetSubscriptionRequestHistoryResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetSubscriptionRequestHistoryResponse) { + name = jsonFieldsNameOfGetSubscriptionRequestHistoryResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetSubscriptionRequestHistoryResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetSubscriptionRequestHistoryResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetSubscriptionRequestHistoryStatsResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetSubscriptionRequestHistoryStatsResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfGetSubscriptionRequestHistoryStatsResponse = [1]string{ + 0: "response", +} + +// Decode decodes GetSubscriptionRequestHistoryStatsResponse from json. +func (s *GetSubscriptionRequestHistoryStatsResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetSubscriptionRequestHistoryStatsResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetSubscriptionRequestHistoryStatsResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetSubscriptionRequestHistoryStatsResponse) { + name = jsonFieldsNameOfGetSubscriptionRequestHistoryStatsResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetSubscriptionRequestHistoryStatsResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetSubscriptionRequestHistoryStatsResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetSubscriptionRequestHistoryStatsResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetSubscriptionRequestHistoryStatsResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("byParsedApp") + e.ArrStart() + for _, elem := range s.ByParsedApp { + elem.Encode(e) + } + e.ArrEnd() + } + { + e.FieldStart("hourlyRequestStats") + e.ArrStart() + for _, elem := range s.HourlyRequestStats { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfGetSubscriptionRequestHistoryStatsResponseResponse = [2]string{ + 0: "byParsedApp", + 1: "hourlyRequestStats", +} + +// Decode decodes GetSubscriptionRequestHistoryStatsResponseResponse from json. +func (s *GetSubscriptionRequestHistoryStatsResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetSubscriptionRequestHistoryStatsResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "byParsedApp": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.ByParsedApp = make([]ByAppItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem ByAppItem + if err := elem.Decode(d); err != nil { + return err + } + s.ByParsedApp = append(s.ByParsedApp, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"byParsedApp\"") + } + case "hourlyRequestStats": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + s.HourlyRequestStats = make([]GetSubscriptionRequestHistoryStatsResponseResponseHourlyRequestStatsItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem GetSubscriptionRequestHistoryStatsResponseResponseHourlyRequestStatsItem + if err := elem.Decode(d); err != nil { + return err + } + s.HourlyRequestStats = append(s.HourlyRequestStats, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"hourlyRequestStats\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetSubscriptionRequestHistoryStatsResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetSubscriptionRequestHistoryStatsResponseResponse) { + name = jsonFieldsNameOfGetSubscriptionRequestHistoryStatsResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetSubscriptionRequestHistoryStatsResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetSubscriptionRequestHistoryStatsResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetSubscriptionRequestHistoryStatsResponseResponseHourlyRequestStatsItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetSubscriptionRequestHistoryStatsResponseResponseHourlyRequestStatsItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("dateTime") + json.EncodeDateTime(e, s.DateTime) + } + { + e.FieldStart("requestCount") + e.Float64(s.RequestCount) + } +} + +var jsonFieldsNameOfGetSubscriptionRequestHistoryStatsResponseResponseHourlyRequestStatsItem = [2]string{ + 0: "dateTime", + 1: "requestCount", +} + +// Decode decodes GetSubscriptionRequestHistoryStatsResponseResponseHourlyRequestStatsItem from json. +func (s *GetSubscriptionRequestHistoryStatsResponseResponseHourlyRequestStatsItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetSubscriptionRequestHistoryStatsResponseResponseHourlyRequestStatsItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "dateTime": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.DateTime = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"dateTime\"") + } + case "requestCount": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Float64() + s.RequestCount = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"requestCount\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetSubscriptionRequestHistoryStatsResponseResponseHourlyRequestStatsItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetSubscriptionRequestHistoryStatsResponseResponseHourlyRequestStatsItem) { + name = jsonFieldsNameOfGetSubscriptionRequestHistoryStatsResponseResponseHourlyRequestStatsItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetSubscriptionRequestHistoryStatsResponseResponseHourlyRequestStatsItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetSubscriptionRequestHistoryStatsResponseResponseHourlyRequestStatsItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetTopUsersByHwidDevicesResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetTopUsersByHwidDevicesResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfGetTopUsersByHwidDevicesResponse = [1]string{ + 0: "response", +} + +// Decode decodes GetTopUsersByHwidDevicesResponse from json. +func (s *GetTopUsersByHwidDevicesResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetTopUsersByHwidDevicesResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetTopUsersByHwidDevicesResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetTopUsersByHwidDevicesResponse) { + name = jsonFieldsNameOfGetTopUsersByHwidDevicesResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetTopUsersByHwidDevicesResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetTopUsersByHwidDevicesResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetTopUsersByHwidDevicesResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetTopUsersByHwidDevicesResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("users") + e.ArrStart() + for _, elem := range s.Users { + elem.Encode(e) + } + e.ArrEnd() + } + { + e.FieldStart("total") + e.Float64(s.Total) + } +} + +var jsonFieldsNameOfGetTopUsersByHwidDevicesResponseResponse = [2]string{ + 0: "users", + 1: "total", +} + +// Decode decodes GetTopUsersByHwidDevicesResponseResponse from json. +func (s *GetTopUsersByHwidDevicesResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetTopUsersByHwidDevicesResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "users": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.Users = make([]GetTopUsersByHwidDevicesResponseResponseUsersItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem GetTopUsersByHwidDevicesResponseResponseUsersItem + if err := elem.Decode(d); err != nil { + return err + } + s.Users = append(s.Users, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"users\"") + } + case "total": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Float64() + s.Total = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"total\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetTopUsersByHwidDevicesResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetTopUsersByHwidDevicesResponseResponse) { + name = jsonFieldsNameOfGetTopUsersByHwidDevicesResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetTopUsersByHwidDevicesResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetTopUsersByHwidDevicesResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetTopUsersByHwidDevicesResponseResponseUsersItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetTopUsersByHwidDevicesResponseResponseUsersItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("userUuid") + json.EncodeUUID(e, s.UserUuid) + } + { + e.FieldStart("id") + e.Float64(s.ID) + } + { + e.FieldStart("username") + e.Str(s.Username) + } + { + e.FieldStart("devicesCount") + e.Float64(s.DevicesCount) + } +} + +var jsonFieldsNameOfGetTopUsersByHwidDevicesResponseResponseUsersItem = [4]string{ + 0: "userUuid", + 1: "id", + 2: "username", + 3: "devicesCount", +} + +// Decode decodes GetTopUsersByHwidDevicesResponseResponseUsersItem from json. +func (s *GetTopUsersByHwidDevicesResponseResponseUsersItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetTopUsersByHwidDevicesResponseResponseUsersItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "userUuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UserUuid = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"userUuid\"") + } + case "id": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Float64() + s.ID = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"id\"") + } + case "username": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.Username = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"username\"") + } + case "devicesCount": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.Float64() + s.DevicesCount = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"devicesCount\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetTopUsersByHwidDevicesResponseResponseUsersItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00001111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetTopUsersByHwidDevicesResponseResponseUsersItem) { + name = jsonFieldsNameOfGetTopUsersByHwidDevicesResponseResponseUsersItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetTopUsersByHwidDevicesResponseResponseUsersItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetTopUsersByHwidDevicesResponseResponseUsersItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetTorrentBlockerReportsStatsResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetTorrentBlockerReportsStatsResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfGetTorrentBlockerReportsStatsResponse = [1]string{ + 0: "response", +} + +// Decode decodes GetTorrentBlockerReportsStatsResponse from json. +func (s *GetTorrentBlockerReportsStatsResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetTorrentBlockerReportsStatsResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetTorrentBlockerReportsStatsResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetTorrentBlockerReportsStatsResponse) { + name = jsonFieldsNameOfGetTorrentBlockerReportsStatsResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetTorrentBlockerReportsStatsResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetTorrentBlockerReportsStatsResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetTorrentBlockerReportsStatsResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetTorrentBlockerReportsStatsResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("stats") + s.Stats.Encode(e) + } + { + e.FieldStart("topUsers") + e.ArrStart() + for _, elem := range s.TopUsers { + elem.Encode(e) + } + e.ArrEnd() + } + { + e.FieldStart("topNodes") + e.ArrStart() + for _, elem := range s.TopNodes { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfGetTorrentBlockerReportsStatsResponseResponse = [3]string{ + 0: "stats", + 1: "topUsers", + 2: "topNodes", +} + +// Decode decodes GetTorrentBlockerReportsStatsResponseResponse from json. +func (s *GetTorrentBlockerReportsStatsResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetTorrentBlockerReportsStatsResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "stats": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Stats.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"stats\"") + } + case "topUsers": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + s.TopUsers = make([]GetTorrentBlockerReportsStatsResponseResponseTopUsersItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem GetTorrentBlockerReportsStatsResponseResponseTopUsersItem + if err := elem.Decode(d); err != nil { + return err + } + s.TopUsers = append(s.TopUsers, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"topUsers\"") + } + case "topNodes": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + s.TopNodes = make([]TopNode, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem TopNode + if err := elem.Decode(d); err != nil { + return err + } + s.TopNodes = append(s.TopNodes, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"topNodes\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetTorrentBlockerReportsStatsResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetTorrentBlockerReportsStatsResponseResponse) { + name = jsonFieldsNameOfGetTorrentBlockerReportsStatsResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetTorrentBlockerReportsStatsResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetTorrentBlockerReportsStatsResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetTorrentBlockerReportsStatsResponseResponseStats) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetTorrentBlockerReportsStatsResponseResponseStats) encodeFields(e *jx.Encoder) { + { + e.FieldStart("distinctNodes") + e.Float64(s.DistinctNodes) + } + { + e.FieldStart("distinctUsers") + e.Float64(s.DistinctUsers) + } + { + e.FieldStart("totalReports") + e.Float64(s.TotalReports) + } + { + e.FieldStart("reportsLast24Hours") + e.Float64(s.ReportsLast24Hours) + } +} + +var jsonFieldsNameOfGetTorrentBlockerReportsStatsResponseResponseStats = [4]string{ + 0: "distinctNodes", + 1: "distinctUsers", + 2: "totalReports", + 3: "reportsLast24Hours", +} + +// Decode decodes GetTorrentBlockerReportsStatsResponseResponseStats from json. +func (s *GetTorrentBlockerReportsStatsResponseResponseStats) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetTorrentBlockerReportsStatsResponseResponseStats to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "distinctNodes": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Float64() + s.DistinctNodes = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"distinctNodes\"") + } + case "distinctUsers": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Float64() + s.DistinctUsers = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"distinctUsers\"") + } + case "totalReports": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Float64() + s.TotalReports = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"totalReports\"") + } + case "reportsLast24Hours": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.Float64() + s.ReportsLast24Hours = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"reportsLast24Hours\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetTorrentBlockerReportsStatsResponseResponseStats") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00001111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetTorrentBlockerReportsStatsResponseResponseStats) { + name = jsonFieldsNameOfGetTorrentBlockerReportsStatsResponseResponseStats[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetTorrentBlockerReportsStatsResponseResponseStats) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetTorrentBlockerReportsStatsResponseResponseStats) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetTorrentBlockerReportsStatsResponseResponseTopUsersItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetTorrentBlockerReportsStatsResponseResponseTopUsersItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + e.FieldStart("color") + e.Str(s.Color) + } + { + e.FieldStart("username") + e.Str(s.Username) + } + { + e.FieldStart("total") + e.Float64(s.Total) + } +} + +var jsonFieldsNameOfGetTorrentBlockerReportsStatsResponseResponseTopUsersItem = [4]string{ + 0: "uuid", + 1: "color", + 2: "username", + 3: "total", +} + +// Decode decodes GetTorrentBlockerReportsStatsResponseResponseTopUsersItem from json. +func (s *GetTorrentBlockerReportsStatsResponseResponseTopUsersItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetTorrentBlockerReportsStatsResponseResponseTopUsersItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "color": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Color = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"color\"") + } + case "username": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.Username = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"username\"") + } + case "total": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.Float64() + s.Total = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"total\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetTorrentBlockerReportsStatsResponseResponseTopUsersItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00001111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetTorrentBlockerReportsStatsResponseResponseTopUsersItem) { + name = jsonFieldsNameOfGetTorrentBlockerReportsStatsResponseResponseTopUsersItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetTorrentBlockerReportsStatsResponseResponseTopUsersItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetTorrentBlockerReportsStatsResponseResponseTopUsersItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetUserAccessibleNodesResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetUserAccessibleNodesResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfGetUserAccessibleNodesResponse = [1]string{ + 0: "response", +} + +// Decode decodes GetUserAccessibleNodesResponse from json. +func (s *GetUserAccessibleNodesResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetUserAccessibleNodesResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetUserAccessibleNodesResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetUserAccessibleNodesResponse) { + name = jsonFieldsNameOfGetUserAccessibleNodesResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetUserAccessibleNodesResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetUserAccessibleNodesResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetUserAccessibleNodesResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetUserAccessibleNodesResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("userUuid") + json.EncodeUUID(e, s.UserUuid) + } + { + e.FieldStart("activeNodes") + e.ArrStart() + for _, elem := range s.ActiveNodes { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfGetUserAccessibleNodesResponseResponse = [2]string{ + 0: "userUuid", + 1: "activeNodes", +} + +// Decode decodes GetUserAccessibleNodesResponseResponse from json. +func (s *GetUserAccessibleNodesResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetUserAccessibleNodesResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "userUuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UserUuid = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"userUuid\"") + } + case "activeNodes": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + s.ActiveNodes = make([]GetUserAccessibleNodesResponseResponseActiveNodesItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem GetUserAccessibleNodesResponseResponseActiveNodesItem + if err := elem.Decode(d); err != nil { + return err + } + s.ActiveNodes = append(s.ActiveNodes, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"activeNodes\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetUserAccessibleNodesResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetUserAccessibleNodesResponseResponse) { + name = jsonFieldsNameOfGetUserAccessibleNodesResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetUserAccessibleNodesResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetUserAccessibleNodesResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetUserAccessibleNodesResponseResponseActiveNodesItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetUserAccessibleNodesResponseResponseActiveNodesItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + e.FieldStart("nodeName") + e.Str(s.NodeName) + } + { + e.FieldStart("countryCode") + e.Str(s.CountryCode) + } + { + e.FieldStart("configProfileUuid") + json.EncodeUUID(e, s.ConfigProfileUuid) + } + { + e.FieldStart("configProfileName") + e.Str(s.ConfigProfileName) + } + { + e.FieldStart("activeSquads") + e.ArrStart() + for _, elem := range s.ActiveSquads { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfGetUserAccessibleNodesResponseResponseActiveNodesItem = [6]string{ + 0: "uuid", + 1: "nodeName", + 2: "countryCode", + 3: "configProfileUuid", + 4: "configProfileName", + 5: "activeSquads", +} + +// Decode decodes GetUserAccessibleNodesResponseResponseActiveNodesItem from json. +func (s *GetUserAccessibleNodesResponseResponseActiveNodesItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetUserAccessibleNodesResponseResponseActiveNodesItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "nodeName": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.NodeName = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"nodeName\"") + } + case "countryCode": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.CountryCode = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"countryCode\"") + } + case "configProfileUuid": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := json.DecodeUUID(d) + s.ConfigProfileUuid = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"configProfileUuid\"") + } + case "configProfileName": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + v, err := d.Str() + s.ConfigProfileName = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"configProfileName\"") + } + case "activeSquads": + requiredBitSet[0] |= 1 << 5 + if err := func() error { + s.ActiveSquads = make([]GetUserAccessibleNodesResponseResponseActiveNodesItemActiveSquadsItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem GetUserAccessibleNodesResponseResponseActiveNodesItemActiveSquadsItem + if err := elem.Decode(d); err != nil { + return err + } + s.ActiveSquads = append(s.ActiveSquads, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"activeSquads\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetUserAccessibleNodesResponseResponseActiveNodesItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00111111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetUserAccessibleNodesResponseResponseActiveNodesItem) { + name = jsonFieldsNameOfGetUserAccessibleNodesResponseResponseActiveNodesItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetUserAccessibleNodesResponseResponseActiveNodesItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetUserAccessibleNodesResponseResponseActiveNodesItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetUserAccessibleNodesResponseResponseActiveNodesItemActiveSquadsItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetUserAccessibleNodesResponseResponseActiveNodesItemActiveSquadsItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("squadName") + e.Str(s.SquadName) + } + { + e.FieldStart("activeInbounds") + e.ArrStart() + for _, elem := range s.ActiveInbounds { + e.Str(elem) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfGetUserAccessibleNodesResponseResponseActiveNodesItemActiveSquadsItem = [2]string{ + 0: "squadName", + 1: "activeInbounds", +} + +// Decode decodes GetUserAccessibleNodesResponseResponseActiveNodesItemActiveSquadsItem from json. +func (s *GetUserAccessibleNodesResponseResponseActiveNodesItemActiveSquadsItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetUserAccessibleNodesResponseResponseActiveNodesItemActiveSquadsItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "squadName": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.SquadName = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"squadName\"") + } + case "activeInbounds": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + s.ActiveInbounds = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.ActiveInbounds = append(s.ActiveInbounds, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"activeInbounds\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetUserAccessibleNodesResponseResponseActiveNodesItemActiveSquadsItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetUserAccessibleNodesResponseResponseActiveNodesItemActiveSquadsItem) { + name = jsonFieldsNameOfGetUserAccessibleNodesResponseResponseActiveNodesItemActiveSquadsItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetUserAccessibleNodesResponseResponseActiveNodesItemActiveSquadsItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetUserAccessibleNodesResponseResponseActiveNodesItemActiveSquadsItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *GetUserSubscriptionRequestHistoryResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *GetUserSubscriptionRequestHistoryResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfGetUserSubscriptionRequestHistoryResponse = [1]string{ + 0: "response", +} + +// Decode decodes GetUserSubscriptionRequestHistoryResponse from json. +func (s *GetUserSubscriptionRequestHistoryResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode GetUserSubscriptionRequestHistoryResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode GetUserSubscriptionRequestHistoryResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGetUserSubscriptionRequestHistoryResponse) { + name = jsonFieldsNameOfGetUserSubscriptionRequestHistoryResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *GetUserSubscriptionRequestHistoryResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *GetUserSubscriptionRequestHistoryResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *Github) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *Github) encodeFields(e *jx.Encoder) { + { + e.FieldStart("enabled") + e.Bool(s.Enabled) + } + { + e.FieldStart("clientId") + s.ClientId.Encode(e) + } + { + e.FieldStart("clientSecret") + s.ClientSecret.Encode(e) + } + { + e.FieldStart("allowedEmails") + e.ArrStart() + for _, elem := range s.AllowedEmails { + e.Str(elem) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfGithub = [4]string{ + 0: "enabled", + 1: "clientId", + 2: "clientSecret", + 3: "allowedEmails", +} + +// Decode decodes Github from json. +func (s *Github) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode Github to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "enabled": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Bool() + s.Enabled = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"enabled\"") + } + case "clientId": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.ClientId.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"clientId\"") + } + case "clientSecret": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.ClientSecret.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"clientSecret\"") + } + case "allowedEmails": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + s.AllowedEmails = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.AllowedEmails = append(s.AllowedEmails, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"allowedEmails\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode Github") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00001111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfGithub) { + name = jsonFieldsNameOfGithub[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *Github) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *Github) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *Header) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *Header) encodeFields(e *jx.Encoder) { + { + e.FieldStart("key") + e.Str(s.Key) + } + { + e.FieldStart("value") + e.Str(s.Value) + } +} + +var jsonFieldsNameOfHeader = [2]string{ + 0: "key", + 1: "value", +} + +// Decode decodes Header from json. +func (s *Header) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode Header to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "key": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Key = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"key\"") + } + case "value": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Value = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"value\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode Header") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfHeader) { + name = jsonFieldsNameOfHeader[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *Header) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *Header) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *HostItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *HostItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + e.FieldStart("viewPosition") + e.Int(s.ViewPosition) + } + { + e.FieldStart("remark") + e.Str(s.Remark) + } + { + e.FieldStart("address") + e.Str(s.Address) + } + { + e.FieldStart("port") + e.Int(s.Port) + } + { + e.FieldStart("path") + s.Path.Encode(e) + } + { + e.FieldStart("sni") + s.Sni.Encode(e) + } + { + e.FieldStart("host") + s.Host.Encode(e) + } + { + e.FieldStart("alpn") + s.Alpn.Encode(e) + } + { + e.FieldStart("fingerprint") + s.Fingerprint.Encode(e) + } + { + if s.IsDisabled.Set { + e.FieldStart("isDisabled") + s.IsDisabled.Encode(e) + } + } + { + if s.SecurityLayer.Set { + e.FieldStart("securityLayer") + s.SecurityLayer.Encode(e) + } + } + { + if len(s.XHttpExtraParams) != 0 { + e.FieldStart("xHttpExtraParams") + e.Raw(s.XHttpExtraParams) + } + } + { + if len(s.MuxParams) != 0 { + e.FieldStart("muxParams") + e.Raw(s.MuxParams) + } + } + { + if len(s.SockoptParams) != 0 { + e.FieldStart("sockoptParams") + e.Raw(s.SockoptParams) + } + } + { + if len(s.FinalMask) != 0 { + e.FieldStart("finalMask") + e.Raw(s.FinalMask) + } + } + { + e.FieldStart("inbound") + s.Inbound.Encode(e) + } + { + e.FieldStart("serverDescription") + s.ServerDescription.Encode(e) + } + { + e.FieldStart("tag") + s.Tag.Encode(e) + } + { + if s.IsHidden.Set { + e.FieldStart("isHidden") + s.IsHidden.Encode(e) + } + } + { + if s.OverrideSniFromAddress.Set { + e.FieldStart("overrideSniFromAddress") + s.OverrideSniFromAddress.Encode(e) + } + } + { + if s.KeepSniBlank.Set { + e.FieldStart("keepSniBlank") + s.KeepSniBlank.Encode(e) + } + } + { + e.FieldStart("vlessRouteId") + s.VlessRouteId.Encode(e) + } + { + if s.AllowInsecure.Set { + e.FieldStart("allowInsecure") + s.AllowInsecure.Encode(e) + } + } + { + e.FieldStart("shuffleHost") + e.Bool(s.ShuffleHost) + } + { + e.FieldStart("mihomoX25519") + e.Bool(s.MihomoX25519) + } + { + e.FieldStart("nodes") + e.ArrStart() + for _, elem := range s.Nodes { + json.EncodeUUID(e, elem) + } + e.ArrEnd() + } + { + e.FieldStart("xrayJsonTemplateUuid") + s.XrayJsonTemplateUuid.Encode(e) + } + { + e.FieldStart("excludedInternalSquads") + e.ArrStart() + for _, elem := range s.ExcludedInternalSquads { + json.EncodeUUID(e, elem) + } + e.ArrEnd() + } + { + if s.ExcludeFromSubscriptionTypes != nil { + e.FieldStart("excludeFromSubscriptionTypes") + e.ArrStart() + for _, elem := range s.ExcludeFromSubscriptionTypes { + elem.Encode(e) + } + e.ArrEnd() + } + } +} + +var jsonFieldsNameOfHostItem = [30]string{ + 0: "uuid", + 1: "viewPosition", + 2: "remark", + 3: "address", + 4: "port", + 5: "path", + 6: "sni", + 7: "host", + 8: "alpn", + 9: "fingerprint", + 10: "isDisabled", + 11: "securityLayer", + 12: "xHttpExtraParams", + 13: "muxParams", + 14: "sockoptParams", + 15: "finalMask", + 16: "inbound", + 17: "serverDescription", + 18: "tag", + 19: "isHidden", + 20: "overrideSniFromAddress", + 21: "keepSniBlank", + 22: "vlessRouteId", + 23: "allowInsecure", + 24: "shuffleHost", + 25: "mihomoX25519", + 26: "nodes", + 27: "xrayJsonTemplateUuid", + 28: "excludedInternalSquads", + 29: "excludeFromSubscriptionTypes", +} + +// Decode decodes HostItem from json. +func (s *HostItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode HostItem to nil") + } + var requiredBitSet [4]uint8 + s.setDefaults() + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "viewPosition": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Int() + s.ViewPosition = int(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"viewPosition\"") + } + case "remark": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.Remark = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"remark\"") + } + case "address": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.Str() + s.Address = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"address\"") + } + case "port": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + v, err := d.Int() + s.Port = int(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"port\"") + } + case "path": + requiredBitSet[0] |= 1 << 5 + if err := func() error { + if err := s.Path.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"path\"") + } + case "sni": + requiredBitSet[0] |= 1 << 6 + if err := func() error { + if err := s.Sni.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"sni\"") + } + case "host": + requiredBitSet[0] |= 1 << 7 + if err := func() error { + if err := s.Host.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"host\"") + } + case "alpn": + requiredBitSet[1] |= 1 << 0 + if err := func() error { + if err := s.Alpn.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"alpn\"") + } + case "fingerprint": + requiredBitSet[1] |= 1 << 1 + if err := func() error { + if err := s.Fingerprint.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"fingerprint\"") + } + case "isDisabled": + if err := func() error { + s.IsDisabled.Reset() + if err := s.IsDisabled.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"isDisabled\"") + } + case "securityLayer": + if err := func() error { + s.SecurityLayer.Reset() + if err := s.SecurityLayer.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"securityLayer\"") + } + case "xHttpExtraParams": + requiredBitSet[1] |= 1 << 4 + if err := func() error { + v, err := d.RawAppend(nil) + s.XHttpExtraParams = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"xHttpExtraParams\"") + } + case "muxParams": + requiredBitSet[1] |= 1 << 5 + if err := func() error { + v, err := d.RawAppend(nil) + s.MuxParams = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"muxParams\"") + } + case "sockoptParams": + requiredBitSet[1] |= 1 << 6 + if err := func() error { + v, err := d.RawAppend(nil) + s.SockoptParams = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"sockoptParams\"") + } + case "finalMask": + requiredBitSet[1] |= 1 << 7 + if err := func() error { + v, err := d.RawAppend(nil) + s.FinalMask = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"finalMask\"") + } + case "inbound": + requiredBitSet[2] |= 1 << 0 + if err := func() error { + if err := s.Inbound.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"inbound\"") + } + case "serverDescription": + requiredBitSet[2] |= 1 << 1 + if err := func() error { + if err := s.ServerDescription.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"serverDescription\"") + } + case "tag": + requiredBitSet[2] |= 1 << 2 + if err := func() error { + if err := s.Tag.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"tag\"") + } + case "isHidden": + if err := func() error { + s.IsHidden.Reset() + if err := s.IsHidden.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"isHidden\"") + } + case "overrideSniFromAddress": + if err := func() error { + s.OverrideSniFromAddress.Reset() + if err := s.OverrideSniFromAddress.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"overrideSniFromAddress\"") + } + case "keepSniBlank": + if err := func() error { + s.KeepSniBlank.Reset() + if err := s.KeepSniBlank.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"keepSniBlank\"") + } + case "vlessRouteId": + requiredBitSet[2] |= 1 << 6 + if err := func() error { + if err := s.VlessRouteId.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"vlessRouteId\"") + } + case "allowInsecure": + if err := func() error { + s.AllowInsecure.Reset() + if err := s.AllowInsecure.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"allowInsecure\"") + } + case "shuffleHost": + requiredBitSet[3] |= 1 << 0 + if err := func() error { + v, err := d.Bool() + s.ShuffleHost = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"shuffleHost\"") + } + case "mihomoX25519": + requiredBitSet[3] |= 1 << 1 + if err := func() error { + v, err := d.Bool() + s.MihomoX25519 = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"mihomoX25519\"") + } + case "nodes": + requiredBitSet[3] |= 1 << 2 + if err := func() error { + s.Nodes = make([]uuid.UUID, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem uuid.UUID + v, err := json.DecodeUUID(d) + elem = v + if err != nil { + return err + } + s.Nodes = append(s.Nodes, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"nodes\"") + } + case "xrayJsonTemplateUuid": + requiredBitSet[3] |= 1 << 3 + if err := func() error { + if err := s.XrayJsonTemplateUuid.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"xrayJsonTemplateUuid\"") + } + case "excludedInternalSquads": + requiredBitSet[3] |= 1 << 4 + if err := func() error { + s.ExcludedInternalSquads = make([]uuid.UUID, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem uuid.UUID + v, err := json.DecodeUUID(d) + elem = v + if err != nil { + return err + } + s.ExcludedInternalSquads = append(s.ExcludedInternalSquads, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"excludedInternalSquads\"") + } + case "excludeFromSubscriptionTypes": + if err := func() error { + s.ExcludeFromSubscriptionTypes = make([]HostItemExcludeFromSubscriptionTypesItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem HostItemExcludeFromSubscriptionTypesItem + if err := elem.Decode(d); err != nil { + return err + } + s.ExcludeFromSubscriptionTypes = append(s.ExcludeFromSubscriptionTypes, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"excludeFromSubscriptionTypes\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode HostItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [4]uint8{ + 0b11111111, + 0b11110011, + 0b01000111, + 0b00011111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfHostItem) { + name = jsonFieldsNameOfHostItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *HostItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *HostItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes HostItemExcludeFromSubscriptionTypesItem as json. +func (s HostItemExcludeFromSubscriptionTypesItem) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes HostItemExcludeFromSubscriptionTypesItem from json. +func (s *HostItemExcludeFromSubscriptionTypesItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode HostItemExcludeFromSubscriptionTypesItem to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch HostItemExcludeFromSubscriptionTypesItem(v) { + case HostItemExcludeFromSubscriptionTypesItemXRAYJSON: + *s = HostItemExcludeFromSubscriptionTypesItemXRAYJSON + case HostItemExcludeFromSubscriptionTypesItemXRAYBASE64: + *s = HostItemExcludeFromSubscriptionTypesItemXRAYBASE64 + case HostItemExcludeFromSubscriptionTypesItemMIHOMO: + *s = HostItemExcludeFromSubscriptionTypesItemMIHOMO + case HostItemExcludeFromSubscriptionTypesItemSTASH: + *s = HostItemExcludeFromSubscriptionTypesItemSTASH + case HostItemExcludeFromSubscriptionTypesItemCLASH: + *s = HostItemExcludeFromSubscriptionTypesItemCLASH + case HostItemExcludeFromSubscriptionTypesItemSINGBOX: + *s = HostItemExcludeFromSubscriptionTypesItemSINGBOX + default: + *s = HostItemExcludeFromSubscriptionTypesItem(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s HostItemExcludeFromSubscriptionTypesItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *HostItemExcludeFromSubscriptionTypesItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes HostItemSecurityLayer as json. +func (s HostItemSecurityLayer) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes HostItemSecurityLayer from json. +func (s *HostItemSecurityLayer) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode HostItemSecurityLayer to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch HostItemSecurityLayer(v) { + case HostItemSecurityLayerDEFAULT: + *s = HostItemSecurityLayerDEFAULT + case HostItemSecurityLayerTLS: + *s = HostItemSecurityLayerTLS + case HostItemSecurityLayerNONE: + *s = HostItemSecurityLayerNONE + default: + *s = HostItemSecurityLayer(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s HostItemSecurityLayer) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *HostItemSecurityLayer) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *HostListResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *HostListResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + e.ArrStart() + for _, elem := range s.Response { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfHostListResponse = [1]string{ + 0: "response", +} + +// Decode decodes HostListResponse from json. +func (s *HostListResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode HostListResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.Response = make([]HostItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem HostItem + if err := elem.Decode(d); err != nil { + return err + } + s.Response = append(s.Response, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode HostListResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfHostListResponse) { + name = jsonFieldsNameOfHostListResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *HostListResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *HostListResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *HostOverride) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *HostOverride) encodeFields(e *jx.Encoder) { + { + if s.ServerDescription.Set { + e.FieldStart("serverDescription") + s.ServerDescription.Encode(e) + } + } + { + if s.VlessRouteId.Set { + e.FieldStart("vlessRouteId") + s.VlessRouteId.Encode(e) + } + } +} + +var jsonFieldsNameOfHostOverride = [2]string{ + 0: "serverDescription", + 1: "vlessRouteId", +} + +// Decode decodes HostOverride from json. +func (s *HostOverride) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode HostOverride to nil") + } + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "serverDescription": + if err := func() error { + s.ServerDescription.Reset() + if err := s.ServerDescription.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"serverDescription\"") + } + case "vlessRouteId": + if err := func() error { + s.VlessRouteId.Reset() + if err := s.VlessRouteId.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"vlessRouteId\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode HostOverride") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *HostOverride) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *HostOverride) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *HostResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *HostResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfHostResponse = [1]string{ + 0: "response", +} + +// Decode decodes HostResponse from json. +func (s *HostResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode HostResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode HostResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfHostResponse) { + name = jsonFieldsNameOfHostResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *HostResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *HostResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *HwidDevicesResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *HwidDevicesResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfHwidDevicesResponse = [1]string{ + 0: "response", +} + +// Decode decodes HwidDevicesResponse from json. +func (s *HwidDevicesResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode HwidDevicesResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode HwidDevicesResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfHwidDevicesResponse) { + name = jsonFieldsNameOfHwidDevicesResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *HwidDevicesResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *HwidDevicesResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *HwidSettings) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *HwidSettings) encodeFields(e *jx.Encoder) { + { + e.FieldStart("enabled") + e.Bool(s.Enabled) + } + { + e.FieldStart("fallbackDeviceLimit") + e.Float64(s.FallbackDeviceLimit) + } + { + e.FieldStart("maxDevicesAnnounce") + s.MaxDevicesAnnounce.Encode(e) + } +} + +var jsonFieldsNameOfHwidSettings = [3]string{ + 0: "enabled", + 1: "fallbackDeviceLimit", + 2: "maxDevicesAnnounce", +} + +// Decode decodes HwidSettings from json. +func (s *HwidSettings) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode HwidSettings to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "enabled": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Bool() + s.Enabled = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"enabled\"") + } + case "fallbackDeviceLimit": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Float64() + s.FallbackDeviceLimit = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"fallbackDeviceLimit\"") + } + case "maxDevicesAnnounce": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.MaxDevicesAnnounce.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"maxDevicesAnnounce\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode HwidSettings") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfHwidSettings) { + name = jsonFieldsNameOfHwidSettings[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *HwidSettings) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *HwidSettings) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *Inbound) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *Inbound) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + e.FieldStart("profileUuid") + json.EncodeUUID(e, s.ProfileUuid) + } + { + e.FieldStart("tag") + e.Str(s.Tag) + } + { + e.FieldStart("type") + e.Str(s.Type) + } + { + e.FieldStart("network") + s.Network.Encode(e) + } + { + e.FieldStart("security") + s.Security.Encode(e) + } + { + e.FieldStart("port") + s.Port.Encode(e) + } + { + if len(s.RawInbound) != 0 { + e.FieldStart("rawInbound") + e.Raw(s.RawInbound) + } + } +} + +var jsonFieldsNameOfInbound = [8]string{ + 0: "uuid", + 1: "profileUuid", + 2: "tag", + 3: "type", + 4: "network", + 5: "security", + 6: "port", + 7: "rawInbound", +} + +// Decode decodes Inbound from json. +func (s *Inbound) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode Inbound to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "profileUuid": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := json.DecodeUUID(d) + s.ProfileUuid = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"profileUuid\"") + } + case "tag": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.Tag = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"tag\"") + } + case "type": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.Str() + s.Type = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "network": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + if err := s.Network.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"network\"") + } + case "security": + requiredBitSet[0] |= 1 << 5 + if err := func() error { + if err := s.Security.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"security\"") + } + case "port": + requiredBitSet[0] |= 1 << 6 + if err := func() error { + if err := s.Port.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"port\"") + } + case "rawInbound": + requiredBitSet[0] |= 1 << 7 + if err := func() error { + v, err := d.RawAppend(nil) + s.RawInbound = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"rawInbound\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode Inbound") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b11111111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfInbound) { + name = jsonFieldsNameOfInbound[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *Inbound) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *Inbound) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *InboundItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *InboundItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("configProfileUuid") + s.ConfigProfileUuid.Encode(e) + } + { + e.FieldStart("configProfileInboundUuid") + s.ConfigProfileInboundUuid.Encode(e) + } +} + +var jsonFieldsNameOfInboundItem = [2]string{ + 0: "configProfileUuid", + 1: "configProfileInboundUuid", +} + +// Decode decodes InboundItem from json. +func (s *InboundItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode InboundItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "configProfileUuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.ConfigProfileUuid.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"configProfileUuid\"") + } + case "configProfileInboundUuid": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.ConfigProfileInboundUuid.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"configProfileInboundUuid\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode InboundItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfInboundItem) { + name = jsonFieldsNameOfInboundItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *InboundItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *InboundItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *InboundRef) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *InboundRef) encodeFields(e *jx.Encoder) { + { + e.FieldStart("configProfileUuid") + json.EncodeUUID(e, s.ConfigProfileUuid) + } + { + e.FieldStart("configProfileInboundUuid") + json.EncodeUUID(e, s.ConfigProfileInboundUuid) + } +} + +var jsonFieldsNameOfInboundRef = [2]string{ + 0: "configProfileUuid", + 1: "configProfileInboundUuid", +} + +// Decode decodes InboundRef from json. +func (s *InboundRef) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode InboundRef to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "configProfileUuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.ConfigProfileUuid = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"configProfileUuid\"") + } + case "configProfileInboundUuid": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := json.DecodeUUID(d) + s.ConfigProfileInboundUuid = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"configProfileInboundUuid\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode InboundRef") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfInboundRef) { + name = jsonFieldsNameOfInboundRef[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *InboundRef) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *InboundRef) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *InboundsResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *InboundsResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfInboundsResponse = [1]string{ + 0: "response", +} + +// Decode decodes InboundsResponse from json. +func (s *InboundsResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode InboundsResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode InboundsResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfInboundsResponse) { + name = jsonFieldsNameOfInboundsResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *InboundsResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *InboundsResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *InboundsResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *InboundsResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("total") + e.Float64(s.Total) + } + { + e.FieldStart("inbounds") + e.ArrStart() + for _, elem := range s.Inbounds { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfInboundsResponseResponse = [2]string{ + 0: "total", + 1: "inbounds", +} + +// Decode decodes InboundsResponseResponse from json. +func (s *InboundsResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode InboundsResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "total": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Float64() + s.Total = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"total\"") + } + case "inbounds": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + s.Inbounds = make([]InboundsResponseResponseInboundsItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem InboundsResponseResponseInboundsItem + if err := elem.Decode(d); err != nil { + return err + } + s.Inbounds = append(s.Inbounds, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"inbounds\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode InboundsResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfInboundsResponseResponse) { + name = jsonFieldsNameOfInboundsResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *InboundsResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *InboundsResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *InboundsResponseResponseInboundsItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *InboundsResponseResponseInboundsItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + e.FieldStart("profileUuid") + json.EncodeUUID(e, s.ProfileUuid) + } + { + e.FieldStart("tag") + e.Str(s.Tag) + } + { + e.FieldStart("type") + e.Str(s.Type) + } + { + e.FieldStart("network") + s.Network.Encode(e) + } + { + e.FieldStart("security") + s.Security.Encode(e) + } + { + e.FieldStart("port") + s.Port.Encode(e) + } + { + if len(s.RawInbound) != 0 { + e.FieldStart("rawInbound") + e.Raw(s.RawInbound) + } + } + { + e.FieldStart("activeSquads") + e.ArrStart() + for _, elem := range s.ActiveSquads { + json.EncodeUUID(e, elem) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfInboundsResponseResponseInboundsItem = [9]string{ + 0: "uuid", + 1: "profileUuid", + 2: "tag", + 3: "type", + 4: "network", + 5: "security", + 6: "port", + 7: "rawInbound", + 8: "activeSquads", +} + +// Decode decodes InboundsResponseResponseInboundsItem from json. +func (s *InboundsResponseResponseInboundsItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode InboundsResponseResponseInboundsItem to nil") + } + var requiredBitSet [2]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "profileUuid": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := json.DecodeUUID(d) + s.ProfileUuid = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"profileUuid\"") + } + case "tag": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.Tag = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"tag\"") + } + case "type": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.Str() + s.Type = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "network": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + if err := s.Network.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"network\"") + } + case "security": + requiredBitSet[0] |= 1 << 5 + if err := func() error { + if err := s.Security.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"security\"") + } + case "port": + requiredBitSet[0] |= 1 << 6 + if err := func() error { + if err := s.Port.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"port\"") + } + case "rawInbound": + requiredBitSet[0] |= 1 << 7 + if err := func() error { + v, err := d.RawAppend(nil) + s.RawInbound = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"rawInbound\"") + } + case "activeSquads": + requiredBitSet[1] |= 1 << 0 + if err := func() error { + s.ActiveSquads = make([]uuid.UUID, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem uuid.UUID + v, err := json.DecodeUUID(d) + elem = v + if err != nil { + return err + } + s.ActiveSquads = append(s.ActiveSquads, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"activeSquads\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode InboundsResponseResponseInboundsItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [2]uint8{ + 0b11111111, + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfInboundsResponseResponseInboundsItem) { + name = jsonFieldsNameOfInboundsResponseResponseInboundsItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *InboundsResponseResponseInboundsItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *InboundsResponseResponseInboundsItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *InboundsStat) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *InboundsStat) encodeFields(e *jx.Encoder) { + { + e.FieldStart("tag") + e.Str(s.Tag) + } + { + e.FieldStart("upload") + e.Str(s.Upload) + } + { + e.FieldStart("download") + e.Str(s.Download) + } +} + +var jsonFieldsNameOfInboundsStat = [3]string{ + 0: "tag", + 1: "upload", + 2: "download", +} + +// Decode decodes InboundsStat from json. +func (s *InboundsStat) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode InboundsStat to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "tag": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Tag = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"tag\"") + } + case "upload": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Upload = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"upload\"") + } + case "download": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.Download = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"download\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode InboundsStat") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfInboundsStat) { + name = jsonFieldsNameOfInboundsStat[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *InboundsStat) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *InboundsStat) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *InfraProviderResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *InfraProviderResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfInfraProviderResponseResponse = [1]string{ + 0: "response", +} + +// Decode decodes InfraProviderResponseResponse from json. +func (s *InfraProviderResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode InfraProviderResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode InfraProviderResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfInfraProviderResponseResponse) { + name = jsonFieldsNameOfInfraProviderResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *InfraProviderResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *InfraProviderResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *InterfaceItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *InterfaceItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("interface") + e.Str(s.Interface) + } + { + e.FieldStart("rxBytesPerSec") + e.Float64(s.RxBytesPerSec) + } + { + e.FieldStart("txBytesPerSec") + e.Float64(s.TxBytesPerSec) + } + { + e.FieldStart("rxTotal") + e.Float64(s.RxTotal) + } + { + e.FieldStart("txTotal") + e.Float64(s.TxTotal) + } +} + +var jsonFieldsNameOfInterfaceItem = [5]string{ + 0: "interface", + 1: "rxBytesPerSec", + 2: "txBytesPerSec", + 3: "rxTotal", + 4: "txTotal", +} + +// Decode decodes InterfaceItem from json. +func (s *InterfaceItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode InterfaceItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "interface": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Interface = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"interface\"") + } + case "rxBytesPerSec": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Float64() + s.RxBytesPerSec = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"rxBytesPerSec\"") + } + case "txBytesPerSec": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Float64() + s.TxBytesPerSec = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"txBytesPerSec\"") + } + case "rxTotal": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.Float64() + s.RxTotal = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"rxTotal\"") + } + case "txTotal": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + v, err := d.Float64() + s.TxTotal = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"txTotal\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode InterfaceItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00011111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfInterfaceItem) { + name = jsonFieldsNameOfInterfaceItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *InterfaceItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *InterfaceItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *InternalServerError) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *InternalServerError) encodeFields(e *jx.Encoder) { + { + if s.Timestamp.Set { + e.FieldStart("timestamp") + s.Timestamp.Encode(e) + } + } + { + if s.Path.Set { + e.FieldStart("path") + s.Path.Encode(e) + } + } + { + if s.Message.Set { + e.FieldStart("message") + s.Message.Encode(e) + } + } + { + if s.ErrorCode.Set { + e.FieldStart("errorCode") + s.ErrorCode.Encode(e) + } + } +} + +var jsonFieldsNameOfInternalServerError = [4]string{ + 0: "timestamp", + 1: "path", + 2: "message", + 3: "errorCode", +} + +// Decode decodes InternalServerError from json. +func (s *InternalServerError) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode InternalServerError to nil") + } + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "timestamp": + if err := func() error { + s.Timestamp.Reset() + if err := s.Timestamp.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"timestamp\"") + } + case "path": + if err := func() error { + s.Path.Reset() + if err := s.Path.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"path\"") + } + case "message": + if err := func() error { + s.Message.Reset() + if err := s.Message.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"message\"") + } + case "errorCode": + if err := func() error { + s.ErrorCode.Reset() + if err := s.ErrorCode.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"errorCode\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode InternalServerError") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *InternalServerError) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *InternalServerError) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *InternalSquad) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *InternalSquad) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + e.FieldStart("viewPosition") + e.Int(s.ViewPosition) + } + { + e.FieldStart("name") + e.Str(s.Name) + } + { + e.FieldStart("info") + s.Info.Encode(e) + } + { + e.FieldStart("inbounds") + e.ArrStart() + for _, elem := range s.Inbounds { + elem.Encode(e) + } + e.ArrEnd() + } + { + e.FieldStart("createdAt") + json.EncodeDateTime(e, s.CreatedAt) + } + { + e.FieldStart("updatedAt") + json.EncodeDateTime(e, s.UpdatedAt) + } +} + +var jsonFieldsNameOfInternalSquad = [7]string{ + 0: "uuid", + 1: "viewPosition", + 2: "name", + 3: "info", + 4: "inbounds", + 5: "createdAt", + 6: "updatedAt", +} + +// Decode decodes InternalSquad from json. +func (s *InternalSquad) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode InternalSquad to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "viewPosition": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Int() + s.ViewPosition = int(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"viewPosition\"") + } + case "name": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "info": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + if err := s.Info.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"info\"") + } + case "inbounds": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + s.Inbounds = make([]Inbound, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem Inbound + if err := elem.Decode(d); err != nil { + return err + } + s.Inbounds = append(s.Inbounds, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"inbounds\"") + } + case "createdAt": + requiredBitSet[0] |= 1 << 5 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.CreatedAt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"createdAt\"") + } + case "updatedAt": + requiredBitSet[0] |= 1 << 6 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.UpdatedAt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"updatedAt\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode InternalSquad") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b01111111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfInternalSquad) { + name = jsonFieldsNameOfInternalSquad[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *InternalSquad) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *InternalSquad) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *InternalSquadResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *InternalSquadResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfInternalSquadResponseResponse = [1]string{ + 0: "response", +} + +// Decode decodes InternalSquadResponseResponse from json. +func (s *InternalSquadResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode InternalSquadResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode InternalSquadResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfInternalSquadResponseResponse) { + name = jsonFieldsNameOfInternalSquadResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *InternalSquadResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *InternalSquadResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *InternalSquadsResponInfoItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *InternalSquadsResponInfoItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("membersCount") + e.Float64(s.MembersCount) + } + { + e.FieldStart("inboundsCount") + e.Float64(s.InboundsCount) + } +} + +var jsonFieldsNameOfInternalSquadsResponInfoItem = [2]string{ + 0: "membersCount", + 1: "inboundsCount", +} + +// Decode decodes InternalSquadsResponInfoItem from json. +func (s *InternalSquadsResponInfoItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode InternalSquadsResponInfoItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "membersCount": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Float64() + s.MembersCount = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"membersCount\"") + } + case "inboundsCount": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Float64() + s.InboundsCount = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"inboundsCount\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode InternalSquadsResponInfoItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfInternalSquadsResponInfoItem) { + name = jsonFieldsNameOfInternalSquadsResponInfoItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *InternalSquadsResponInfoItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *InternalSquadsResponInfoItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *InternalSquadsResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *InternalSquadsResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfInternalSquadsResponse = [1]string{ + 0: "response", +} + +// Decode decodes InternalSquadsResponse from json. +func (s *InternalSquadsResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode InternalSquadsResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode InternalSquadsResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfInternalSquadsResponse) { + name = jsonFieldsNameOfInternalSquadsResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *InternalSquadsResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *InternalSquadsResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *InternalSquadsResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *InternalSquadsResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("total") + e.Float64(s.Total) + } + { + e.FieldStart("internalSquads") + e.ArrStart() + for _, elem := range s.InternalSquads { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfInternalSquadsResponseResponse = [2]string{ + 0: "total", + 1: "internalSquads", +} + +// Decode decodes InternalSquadsResponseResponse from json. +func (s *InternalSquadsResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode InternalSquadsResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "total": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Float64() + s.Total = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"total\"") + } + case "internalSquads": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + s.InternalSquads = make([]InternalSquad, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem InternalSquad + if err := elem.Decode(d); err != nil { + return err + } + s.InternalSquads = append(s.InternalSquads, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"internalSquads\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode InternalSquadsResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfInternalSquadsResponseResponse) { + name = jsonFieldsNameOfInternalSquadsResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *InternalSquadsResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *InternalSquadsResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *Ips) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *Ips) encodeFields(e *jx.Encoder) { + { + e.FieldStart("ip") + e.Str(s.IP) + } + { + e.FieldStart("lastSeen") + json.EncodeDateTime(e, s.LastSeen) + } +} + +var jsonFieldsNameOfIps = [2]string{ + 0: "ip", + 1: "lastSeen", +} + +// Decode decodes Ips from json. +func (s *Ips) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode Ips to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "ip": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.IP = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"ip\"") + } + case "lastSeen": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.LastSeen = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"lastSeen\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode Ips") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfIps) { + name = jsonFieldsNameOfIps[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *Ips) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *Ips) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *IpsResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *IpsResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfIpsResponseResponse = [1]string{ + 0: "response", +} + +// Decode decodes IpsResponseResponse from json. +func (s *IpsResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode IpsResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode IpsResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfIpsResponseResponse) { + name = jsonFieldsNameOfIpsResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *IpsResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *IpsResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *IpsResponseResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *IpsResponseResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("jobId") + e.Str(s.JobId) + } +} + +var jsonFieldsNameOfIpsResponseResponseResponse = [1]string{ + 0: "jobId", +} + +// Decode decodes IpsResponseResponseResponse from json. +func (s *IpsResponseResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode IpsResponseResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "jobId": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.JobId = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"jobId\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode IpsResponseResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfIpsResponseResponseResponse) { + name = jsonFieldsNameOfIpsResponseResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *IpsResponseResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *IpsResponseResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *Keycloak) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *Keycloak) encodeFields(e *jx.Encoder) { + { + e.FieldStart("enabled") + e.Bool(s.Enabled) + } + { + e.FieldStart("realm") + s.Realm.Encode(e) + } + { + e.FieldStart("clientId") + s.ClientId.Encode(e) + } + { + e.FieldStart("clientSecret") + s.ClientSecret.Encode(e) + } + { + e.FieldStart("frontendDomain") + s.FrontendDomain.Encode(e) + } + { + e.FieldStart("keycloakDomain") + s.KeycloakDomain.Encode(e) + } + { + e.FieldStart("allowedEmails") + e.ArrStart() + for _, elem := range s.AllowedEmails { + e.Str(elem) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfKeycloak = [7]string{ + 0: "enabled", + 1: "realm", + 2: "clientId", + 3: "clientSecret", + 4: "frontendDomain", + 5: "keycloakDomain", + 6: "allowedEmails", +} + +// Decode decodes Keycloak from json. +func (s *Keycloak) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode Keycloak to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "enabled": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Bool() + s.Enabled = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"enabled\"") + } + case "realm": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.Realm.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"realm\"") + } + case "clientId": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.ClientId.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"clientId\"") + } + case "clientSecret": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + if err := s.ClientSecret.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"clientSecret\"") + } + case "frontendDomain": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + if err := s.FrontendDomain.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"frontendDomain\"") + } + case "keycloakDomain": + requiredBitSet[0] |= 1 << 5 + if err := func() error { + if err := s.KeycloakDomain.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"keycloakDomain\"") + } + case "allowedEmails": + requiredBitSet[0] |= 1 << 6 + if err := func() error { + s.AllowedEmails = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.AllowedEmails = append(s.AllowedEmails, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"allowedEmails\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode Keycloak") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b01111111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfKeycloak) { + name = jsonFieldsNameOfKeycloak[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *Keycloak) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *Keycloak) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *LoginRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *LoginRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("username") + e.Str(s.Username) + } + { + e.FieldStart("password") + e.Str(s.Password) + } +} + +var jsonFieldsNameOfLoginRequest = [2]string{ + 0: "username", + 1: "password", +} + +// Decode decodes LoginRequest from json. +func (s *LoginRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode LoginRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "username": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Username = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"username\"") + } + case "password": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Password = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"password\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode LoginRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfLoginRequest) { + name = jsonFieldsNameOfLoginRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *LoginRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *LoginRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes BrandingSettings as json. +func (o NilBrandingSettings) Encode(e *jx.Encoder) { + if o.Null { + e.Null() + return + } + o.Value.Encode(e) +} + +// Decode decodes BrandingSettings from json. +func (o *NilBrandingSettings) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode NilBrandingSettings to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v BrandingSettings + o.Value = v + o.Null = true + return nil + } + o.Null = false + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s NilBrandingSettings) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NilBrandingSettings) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes CustomRemark as json. +func (o NilCustomRemark) Encode(e *jx.Encoder) { + if o.Null { + e.Null() + return + } + o.Value.Encode(e) +} + +// Decode decodes CustomRemark from json. +func (o *NilCustomRemark) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode NilCustomRemark to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v CustomRemark + o.Value = v + o.Null = true + return nil + } + o.Null = false + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s NilCustomRemark) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NilCustomRemark) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes time.Time as json. +func (o NilDateTime) Encode(e *jx.Encoder, format func(*jx.Encoder, time.Time)) { + if o.Null { + e.Null() + return + } + format(e, o.Value) +} + +// Decode decodes time.Time from json. +func (o *NilDateTime) Decode(d *jx.Decoder, format func(*jx.Decoder) (time.Time, error)) error { + if o == nil { + return errors.New("invalid: unable to decode NilDateTime to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v time.Time + o.Value = v + o.Null = true + return nil + } + o.Null = false + v, err := format(d) + if err != nil { + return err + } + o.Value = v + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s NilDateTime) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e, json.EncodeDateTime) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NilDateTime) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d, json.DecodeDateTime) +} + +// Encode encodes ExternalSquadResponseHeaders as json. +func (o NilExternalSquadResponseHeaders) Encode(e *jx.Encoder) { + if o.Null { + e.Null() + return + } + o.Value.Encode(e) +} + +// Decode decodes ExternalSquadResponseHeaders from json. +func (o *NilExternalSquadResponseHeaders) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode NilExternalSquadResponseHeaders to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v ExternalSquadResponseHeaders + o.Value = v + o.Null = true + return nil + } + o.Null = false + o.Value = make(ExternalSquadResponseHeaders) + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s NilExternalSquadResponseHeaders) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NilExternalSquadResponseHeaders) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes FetchIpsResultResponseResponseResult as json. +func (o NilFetchIpsResultResponseResponseResult) Encode(e *jx.Encoder) { + if o.Null { + e.Null() + return + } + o.Value.Encode(e) +} + +// Decode decodes FetchIpsResultResponseResponseResult from json. +func (o *NilFetchIpsResultResponseResponseResult) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode NilFetchIpsResultResponseResponseResult to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v FetchIpsResultResponseResponseResult + o.Value = v + o.Null = true + return nil + } + o.Null = false + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s NilFetchIpsResultResponseResponseResult) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NilFetchIpsResultResponseResponseResult) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes FetchUsersIpsResultResponseResponseResult as json. +func (o NilFetchUsersIpsResultResponseResponseResult) Encode(e *jx.Encoder) { + if o.Null { + e.Null() + return + } + o.Value.Encode(e) +} + +// Decode decodes FetchUsersIpsResultResponseResponseResult from json. +func (o *NilFetchUsersIpsResultResponseResponseResult) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode NilFetchUsersIpsResultResponseResponseResult to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v FetchUsersIpsResultResponseResponseResult + o.Value = v + o.Null = true + return nil + } + o.Null = false + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s NilFetchUsersIpsResultResponseResponseResult) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NilFetchUsersIpsResultResponseResponseResult) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes float64 as json. +func (o NilFloat64) Encode(e *jx.Encoder) { + if o.Null { + e.Null() + return + } + e.Float64(float64(o.Value)) +} + +// Decode decodes float64 from json. +func (o *NilFloat64) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode NilFloat64 to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v float64 + o.Value = v + o.Null = true + return nil + } + o.Null = false + v, err := d.Float64() + if err != nil { + return err + } + o.Value = float64(v) + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s NilFloat64) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NilFloat64) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header as json. +func (o NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header) Encode(e *jx.Encoder) { + if o.Null { + e.Null() + return + } + o.Value.Encode(e) +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header from json. +func (o *NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header + o.Value = v + o.Null = true + return nil + } + o.Null = false + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra as json. +func (o NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra) Encode(e *jx.Encoder) { + if o.Null { + e.Null() + return + } + o.Value.Encode(e) +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra from json. +func (o *NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra + o.Value = v + o.Null = true + return nil + } + o.Null = false + o.Value = make(GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra) + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers as json. +func (o NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers) Encode(e *jx.Encoder) { + if o.Null { + e.Null() + return + } + o.Value.Encode(e) +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers from json. +func (o *NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers + o.Value = v + o.Null = true + return nil + } + o.Null = false + o.Value = make(GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers) + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers as json. +func (o NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers) Encode(e *jx.Encoder) { + if o.Null { + e.Null() + return + } + o.Value.Encode(e) +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers from json. +func (o *NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers + o.Value = v + o.Null = true + return nil + } + o.Null = false + o.Value = make(GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers) + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes GetStatusResponseResponseAuthentication as json. +func (o NilGetStatusResponseResponseAuthentication) Encode(e *jx.Encoder) { + if o.Null { + e.Null() + return + } + o.Value.Encode(e) +} + +// Decode decodes GetStatusResponseResponseAuthentication from json. +func (o *NilGetStatusResponseResponseAuthentication) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode NilGetStatusResponseResponseAuthentication to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v GetStatusResponseResponseAuthentication + o.Value = v + o.Null = true + return nil + } + o.Null = false + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s NilGetStatusResponseResponseAuthentication) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NilGetStatusResponseResponseAuthentication) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes HostOverride as json. +func (o NilHostOverride) Encode(e *jx.Encoder) { + if o.Null { + e.Null() + return + } + o.Value.Encode(e) +} + +// Decode decodes HostOverride from json. +func (o *NilHostOverride) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode NilHostOverride to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v HostOverride + o.Value = v + o.Null = true + return nil + } + o.Null = false + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s NilHostOverride) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NilHostOverride) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes HwidSettings as json. +func (o NilHwidSettings) Encode(e *jx.Encoder) { + if o.Null { + e.Null() + return + } + o.Value.Encode(e) +} + +// Decode decodes HwidSettings from json. +func (o *NilHwidSettings) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode NilHwidSettings to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v HwidSettings + o.Value = v + o.Null = true + return nil + } + o.Null = false + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s NilHwidSettings) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NilHwidSettings) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes int as json. +func (o NilInt) Encode(e *jx.Encoder) { + if o.Null { + e.Null() + return + } + e.Int(int(o.Value)) +} + +// Decode decodes int from json. +func (o *NilInt) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode NilInt to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v int + o.Value = v + o.Null = true + return nil + } + o.Null = false + v, err := d.Int() + if err != nil { + return err + } + o.Value = int(v) + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s NilInt) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NilInt) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes InterfaceItem as json. +func (o NilInterfaceItem) Encode(e *jx.Encoder) { + if o.Null { + e.Null() + return + } + o.Value.Encode(e) +} + +// Decode decodes InterfaceItem from json. +func (o *NilInterfaceItem) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode NilInterfaceItem to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v InterfaceItem + o.Value = v + o.Null = true + return nil + } + o.Null = false + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s NilInterfaceItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NilInterfaceItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes Oauth2Settings as json. +func (o NilOauth2Settings) Encode(e *jx.Encoder) { + if o.Null { + e.Null() + return + } + o.Value.Encode(e) +} + +// Decode decodes Oauth2Settings from json. +func (o *NilOauth2Settings) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode NilOauth2Settings to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v Oauth2Settings + o.Value = v + o.Null = true + return nil + } + o.Null = false + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s NilOauth2Settings) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NilOauth2Settings) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes PasskeySettings as json. +func (o NilPasskeySettings) Encode(e *jx.Encoder) { + if o.Null { + e.Null() + return + } + o.Value.Encode(e) +} + +// Decode decodes PasskeySettings from json. +func (o *NilPasskeySettings) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode NilPasskeySettings to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v PasskeySettings + o.Value = v + o.Null = true + return nil + } + o.Null = false + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s NilPasskeySettings) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NilPasskeySettings) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes PasswordSettings as json. +func (o NilPasswordSettings) Encode(e *jx.Encoder) { + if o.Null { + e.Null() + return + } + o.Value.Encode(e) +} + +// Decode decodes PasswordSettings from json. +func (o *NilPasswordSettings) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode NilPasswordSettings to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v PasswordSettings + o.Value = v + o.Null = true + return nil + } + o.Null = false + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s NilPasswordSettings) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NilPasswordSettings) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes ProviderItem as json. +func (o NilProviderItem) Encode(e *jx.Encoder) { + if o.Null { + e.Null() + return + } + o.Value.Encode(e) +} + +// Decode decodes ProviderItem from json. +func (o *NilProviderItem) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode NilProviderItem to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v ProviderItem + o.Value = v + o.Null = true + return nil + } + o.Null = false + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s NilProviderItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NilProviderItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes string as json. +func (o NilString) Encode(e *jx.Encoder) { + if o.Null { + e.Null() + return + } + e.Str(string(o.Value)) +} + +// Decode decodes string from json. +func (o *NilString) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode NilString to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v string + o.Value = v + o.Null = true + return nil + } + o.Null = false + v, err := d.Str() + if err != nil { + return err + } + o.Value = string(v) + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s NilString) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NilString) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes SubscriptionSettings as json. +func (o NilSubscriptionSettings) Encode(e *jx.Encoder) { + if o.Null { + e.Null() + return + } + o.Value.Encode(e) +} + +// Decode decodes SubscriptionSettings from json. +func (o *NilSubscriptionSettings) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode NilSubscriptionSettings to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v SubscriptionSettings + o.Value = v + o.Null = true + return nil + } + o.Null = false + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s NilSubscriptionSettings) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NilSubscriptionSettings) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes SubscriptionSettingsResponseResponseCustomResponseHeaders as json. +func (o NilSubscriptionSettingsResponseResponseCustomResponseHeaders) Encode(e *jx.Encoder) { + if o.Null { + e.Null() + return + } + o.Value.Encode(e) +} + +// Decode decodes SubscriptionSettingsResponseResponseCustomResponseHeaders from json. +func (o *NilSubscriptionSettingsResponseResponseCustomResponseHeaders) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode NilSubscriptionSettingsResponseResponseCustomResponseHeaders to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v SubscriptionSettingsResponseResponseCustomResponseHeaders + o.Value = v + o.Null = true + return nil + } + o.Null = false + o.Value = make(SubscriptionSettingsResponseResponseCustomResponseHeaders) + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s NilSubscriptionSettingsResponseResponseCustomResponseHeaders) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NilSubscriptionSettingsResponseResponseCustomResponseHeaders) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes SystemItem as json. +func (o NilSystemItem) Encode(e *jx.Encoder) { + if o.Null { + e.Null() + return + } + o.Value.Encode(e) +} + +// Decode decodes SystemItem from json. +func (o *NilSystemItem) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode NilSystemItem to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v SystemItem + o.Value = v + o.Null = true + return nil + } + o.Null = false + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s NilSystemItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NilSystemItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes url.URL as json. +func (o NilURI) Encode(e *jx.Encoder) { + if o.Null { + e.Null() + return + } + json.EncodeURI(e, o.Value) +} + +// Decode decodes url.URL from json. +func (o *NilURI) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode NilURI to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v url.URL + o.Value = v + o.Null = true + return nil + } + o.Null = false + v, err := json.DecodeURI(d) + if err != nil { + return err + } + o.Value = v + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s NilURI) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NilURI) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes uuid.UUID as json. +func (o NilUUID) Encode(e *jx.Encoder) { + if o.Null { + e.Null() + return + } + json.EncodeUUID(e, o.Value) +} + +// Decode decodes uuid.UUID from json. +func (o *NilUUID) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode NilUUID to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v uuid.UUID + o.Value = v + o.Null = true + return nil + } + o.Null = false + v, err := json.DecodeUUID(d) + if err != nil { + return err + } + o.Value = v + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s NilUUID) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NilUUID) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes Version as json. +func (o NilVersion) Encode(e *jx.Encoder) { + if o.Null { + e.Null() + return + } + o.Value.Encode(e) +} + +// Decode decodes Version from json. +func (o *NilVersion) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode NilVersion to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v Version + o.Value = v + o.Null = true + return nil + } + o.Null = false + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s NilVersion) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NilVersion) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *Node) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *Node) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + e.FieldStart("name") + e.Str(s.Name) + } + { + e.FieldStart("countryCode") + e.Str(s.CountryCode) + } +} + +var jsonFieldsNameOfNode = [3]string{ + 0: "uuid", + 1: "name", + 2: "countryCode", +} + +// Decode decodes Node from json. +func (s *Node) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode Node to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "name": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "countryCode": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.CountryCode = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"countryCode\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode Node") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfNode) { + name = jsonFieldsNameOfNode[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *Node) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *Node) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *NodePlugin) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *NodePlugin) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + e.FieldStart("viewPosition") + e.Int(s.ViewPosition) + } + { + e.FieldStart("name") + e.Str(s.Name) + } + { + if len(s.PluginConfig) != 0 { + e.FieldStart("pluginConfig") + e.Raw(s.PluginConfig) + } + } +} + +var jsonFieldsNameOfNodePlugin = [4]string{ + 0: "uuid", + 1: "viewPosition", + 2: "name", + 3: "pluginConfig", +} + +// Decode decodes NodePlugin from json. +func (s *NodePlugin) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode NodePlugin to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "viewPosition": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Int() + s.ViewPosition = int(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"viewPosition\"") + } + case "name": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "pluginConfig": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.RawAppend(nil) + s.PluginConfig = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"pluginConfig\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode NodePlugin") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00001111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfNodePlugin) { + name = jsonFieldsNameOfNodePlugin[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *NodePlugin) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NodePlugin) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *NodePluginResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *NodePluginResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfNodePluginResponseResponse = [1]string{ + 0: "response", +} + +// Decode decodes NodePluginResponseResponse from json. +func (s *NodePluginResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode NodePluginResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode NodePluginResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfNodePluginResponseResponse) { + name = jsonFieldsNameOfNodePluginResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *NodePluginResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NodePluginResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *NodePluginResponseResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *NodePluginResponseResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + e.FieldStart("viewPosition") + e.Int(s.ViewPosition) + } + { + e.FieldStart("name") + e.Str(s.Name) + } + { + if len(s.PluginConfig) != 0 { + e.FieldStart("pluginConfig") + e.Raw(s.PluginConfig) + } + } +} + +var jsonFieldsNameOfNodePluginResponseResponseResponse = [4]string{ + 0: "uuid", + 1: "viewPosition", + 2: "name", + 3: "pluginConfig", +} + +// Decode decodes NodePluginResponseResponseResponse from json. +func (s *NodePluginResponseResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode NodePluginResponseResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "viewPosition": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Int() + s.ViewPosition = int(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"viewPosition\"") + } + case "name": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "pluginConfig": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.RawAppend(nil) + s.PluginConfig = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"pluginConfig\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode NodePluginResponseResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00001111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfNodePluginResponseResponseResponse) { + name = jsonFieldsNameOfNodePluginResponseResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *NodePluginResponseResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NodePluginResponseResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *NodePluginsResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *NodePluginsResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfNodePluginsResponseResponse = [1]string{ + 0: "response", +} + +// Decode decodes NodePluginsResponseResponse from json. +func (s *NodePluginsResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode NodePluginsResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode NodePluginsResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfNodePluginsResponseResponse) { + name = jsonFieldsNameOfNodePluginsResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *NodePluginsResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NodePluginsResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *NodePluginsResponseResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *NodePluginsResponseResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("total") + e.Float64(s.Total) + } + { + e.FieldStart("nodePlugins") + e.ArrStart() + for _, elem := range s.NodePlugins { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfNodePluginsResponseResponseResponse = [2]string{ + 0: "total", + 1: "nodePlugins", +} + +// Decode decodes NodePluginsResponseResponseResponse from json. +func (s *NodePluginsResponseResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode NodePluginsResponseResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "total": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Float64() + s.Total = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"total\"") + } + case "nodePlugins": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + s.NodePlugins = make([]NodePlugin, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem NodePlugin + if err := elem.Decode(d); err != nil { + return err + } + s.NodePlugins = append(s.NodePlugins, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"nodePlugins\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode NodePluginsResponseResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfNodePluginsResponseResponseResponse) { + name = jsonFieldsNameOfNodePluginsResponseResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *NodePluginsResponseResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NodePluginsResponseResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *NodeResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *NodeResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfNodeResponse = [1]string{ + 0: "response", +} + +// Decode decodes NodeResponse from json. +func (s *NodeResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode NodeResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode NodeResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfNodeResponse) { + name = jsonFieldsNameOfNodeResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *NodeResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NodeResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *NodeResponseDataItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *NodeResponseDataItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + e.FieldStart("name") + e.Str(s.Name) + } + { + e.FieldStart("address") + e.Str(s.Address) + } + { + e.FieldStart("port") + s.Port.Encode(e) + } + { + e.FieldStart("isConnected") + e.Bool(s.IsConnected) + } + { + e.FieldStart("isDisabled") + e.Bool(s.IsDisabled) + } + { + e.FieldStart("isConnecting") + e.Bool(s.IsConnecting) + } + { + e.FieldStart("lastStatusChange") + s.LastStatusChange.Encode(e, json.EncodeDateTime) + } + { + e.FieldStart("lastStatusMessage") + s.LastStatusMessage.Encode(e) + } + { + e.FieldStart("isTrafficTrackingActive") + e.Bool(s.IsTrafficTrackingActive) + } + { + e.FieldStart("trafficResetDay") + s.TrafficResetDay.Encode(e) + } + { + e.FieldStart("trafficLimitBytes") + s.TrafficLimitBytes.Encode(e) + } + { + e.FieldStart("trafficUsedBytes") + s.TrafficUsedBytes.Encode(e) + } + { + e.FieldStart("notifyPercent") + s.NotifyPercent.Encode(e) + } + { + e.FieldStart("viewPosition") + e.Int(s.ViewPosition) + } + { + e.FieldStart("countryCode") + e.Str(s.CountryCode) + } + { + e.FieldStart("consumptionMultiplier") + e.Float64(s.ConsumptionMultiplier) + } + { + e.FieldStart("tags") + e.ArrStart() + for _, elem := range s.Tags { + e.Str(elem) + } + e.ArrEnd() + } + { + e.FieldStart("createdAt") + json.EncodeDateTime(e, s.CreatedAt) + } + { + e.FieldStart("updatedAt") + json.EncodeDateTime(e, s.UpdatedAt) + } + { + e.FieldStart("configProfile") + s.ConfigProfile.Encode(e) + } + { + e.FieldStart("providerUuid") + s.ProviderUuid.Encode(e) + } + { + e.FieldStart("provider") + s.Provider.Encode(e) + } + { + e.FieldStart("activePluginUuid") + s.ActivePluginUuid.Encode(e) + } + { + e.FieldStart("system") + s.System.Encode(e) + } + { + e.FieldStart("versions") + s.Versions.Encode(e) + } + { + e.FieldStart("xrayUptime") + e.Float64(s.XrayUptime) + } + { + e.FieldStart("usersOnline") + e.Float64(s.UsersOnline) + } +} + +var jsonFieldsNameOfNodeResponseDataItem = [28]string{ + 0: "uuid", + 1: "name", + 2: "address", + 3: "port", + 4: "isConnected", + 5: "isDisabled", + 6: "isConnecting", + 7: "lastStatusChange", + 8: "lastStatusMessage", + 9: "isTrafficTrackingActive", + 10: "trafficResetDay", + 11: "trafficLimitBytes", + 12: "trafficUsedBytes", + 13: "notifyPercent", + 14: "viewPosition", + 15: "countryCode", + 16: "consumptionMultiplier", + 17: "tags", + 18: "createdAt", + 19: "updatedAt", + 20: "configProfile", + 21: "providerUuid", + 22: "provider", + 23: "activePluginUuid", + 24: "system", + 25: "versions", + 26: "xrayUptime", + 27: "usersOnline", +} + +// Decode decodes NodeResponseDataItem from json. +func (s *NodeResponseDataItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode NodeResponseDataItem to nil") + } + var requiredBitSet [4]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "name": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "address": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.Address = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"address\"") + } + case "port": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + if err := s.Port.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"port\"") + } + case "isConnected": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + v, err := d.Bool() + s.IsConnected = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"isConnected\"") + } + case "isDisabled": + requiredBitSet[0] |= 1 << 5 + if err := func() error { + v, err := d.Bool() + s.IsDisabled = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"isDisabled\"") + } + case "isConnecting": + requiredBitSet[0] |= 1 << 6 + if err := func() error { + v, err := d.Bool() + s.IsConnecting = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"isConnecting\"") + } + case "lastStatusChange": + requiredBitSet[0] |= 1 << 7 + if err := func() error { + if err := s.LastStatusChange.Decode(d, json.DecodeDateTime); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"lastStatusChange\"") + } + case "lastStatusMessage": + requiredBitSet[1] |= 1 << 0 + if err := func() error { + if err := s.LastStatusMessage.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"lastStatusMessage\"") + } + case "isTrafficTrackingActive": + requiredBitSet[1] |= 1 << 1 + if err := func() error { + v, err := d.Bool() + s.IsTrafficTrackingActive = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"isTrafficTrackingActive\"") + } + case "trafficResetDay": + requiredBitSet[1] |= 1 << 2 + if err := func() error { + if err := s.TrafficResetDay.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"trafficResetDay\"") + } + case "trafficLimitBytes": + requiredBitSet[1] |= 1 << 3 + if err := func() error { + if err := s.TrafficLimitBytes.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"trafficLimitBytes\"") + } + case "trafficUsedBytes": + requiredBitSet[1] |= 1 << 4 + if err := func() error { + if err := s.TrafficUsedBytes.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"trafficUsedBytes\"") + } + case "notifyPercent": + requiredBitSet[1] |= 1 << 5 + if err := func() error { + if err := s.NotifyPercent.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"notifyPercent\"") + } + case "viewPosition": + requiredBitSet[1] |= 1 << 6 + if err := func() error { + v, err := d.Int() + s.ViewPosition = int(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"viewPosition\"") + } + case "countryCode": + requiredBitSet[1] |= 1 << 7 + if err := func() error { + v, err := d.Str() + s.CountryCode = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"countryCode\"") + } + case "consumptionMultiplier": + requiredBitSet[2] |= 1 << 0 + if err := func() error { + v, err := d.Float64() + s.ConsumptionMultiplier = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"consumptionMultiplier\"") + } + case "tags": + requiredBitSet[2] |= 1 << 1 + if err := func() error { + s.Tags = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.Tags = append(s.Tags, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"tags\"") + } + case "createdAt": + requiredBitSet[2] |= 1 << 2 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.CreatedAt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"createdAt\"") + } + case "updatedAt": + requiredBitSet[2] |= 1 << 3 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.UpdatedAt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"updatedAt\"") + } + case "configProfile": + requiredBitSet[2] |= 1 << 4 + if err := func() error { + if err := s.ConfigProfile.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"configProfile\"") + } + case "providerUuid": + requiredBitSet[2] |= 1 << 5 + if err := func() error { + if err := s.ProviderUuid.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"providerUuid\"") + } + case "provider": + requiredBitSet[2] |= 1 << 6 + if err := func() error { + if err := s.Provider.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"provider\"") + } + case "activePluginUuid": + requiredBitSet[2] |= 1 << 7 + if err := func() error { + if err := s.ActivePluginUuid.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"activePluginUuid\"") + } + case "system": + requiredBitSet[3] |= 1 << 0 + if err := func() error { + if err := s.System.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"system\"") + } + case "versions": + requiredBitSet[3] |= 1 << 1 + if err := func() error { + if err := s.Versions.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"versions\"") + } + case "xrayUptime": + requiredBitSet[3] |= 1 << 2 + if err := func() error { + v, err := d.Float64() + s.XrayUptime = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"xrayUptime\"") + } + case "usersOnline": + requiredBitSet[3] |= 1 << 3 + if err := func() error { + v, err := d.Float64() + s.UsersOnline = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"usersOnline\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode NodeResponseDataItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [4]uint8{ + 0b11111111, + 0b11111111, + 0b11111111, + 0b00001111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfNodeResponseDataItem) { + name = jsonFieldsNameOfNodeResponseDataItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *NodeResponseDataItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NodeResponseDataItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *NodeResponseInfoItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *NodeResponseInfoItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("arch") + e.Str(s.Arch) + } + { + e.FieldStart("cpus") + e.Int(s.Cpus) + } + { + e.FieldStart("cpuModel") + e.Str(s.CpuModel) + } + { + e.FieldStart("memoryTotal") + e.Float64(s.MemoryTotal) + } + { + e.FieldStart("hostname") + e.Str(s.Hostname) + } + { + e.FieldStart("platform") + e.Str(s.Platform) + } + { + e.FieldStart("release") + e.Str(s.Release) + } + { + e.FieldStart("type") + e.Str(s.Type) + } + { + e.FieldStart("version") + e.Str(s.Version) + } + { + e.FieldStart("networkInterfaces") + e.ArrStart() + for _, elem := range s.NetworkInterfaces { + e.Str(elem) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfNodeResponseInfoItem = [10]string{ + 0: "arch", + 1: "cpus", + 2: "cpuModel", + 3: "memoryTotal", + 4: "hostname", + 5: "platform", + 6: "release", + 7: "type", + 8: "version", + 9: "networkInterfaces", +} + +// Decode decodes NodeResponseInfoItem from json. +func (s *NodeResponseInfoItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode NodeResponseInfoItem to nil") + } + var requiredBitSet [2]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "arch": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Arch = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"arch\"") + } + case "cpus": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Int() + s.Cpus = int(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"cpus\"") + } + case "cpuModel": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.CpuModel = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"cpuModel\"") + } + case "memoryTotal": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.Float64() + s.MemoryTotal = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"memoryTotal\"") + } + case "hostname": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + v, err := d.Str() + s.Hostname = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"hostname\"") + } + case "platform": + requiredBitSet[0] |= 1 << 5 + if err := func() error { + v, err := d.Str() + s.Platform = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"platform\"") + } + case "release": + requiredBitSet[0] |= 1 << 6 + if err := func() error { + v, err := d.Str() + s.Release = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"release\"") + } + case "type": + requiredBitSet[0] |= 1 << 7 + if err := func() error { + v, err := d.Str() + s.Type = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "version": + requiredBitSet[1] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Version = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"version\"") + } + case "networkInterfaces": + requiredBitSet[1] |= 1 << 1 + if err := func() error { + s.NetworkInterfaces = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.NetworkInterfaces = append(s.NetworkInterfaces, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"networkInterfaces\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode NodeResponseInfoItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [2]uint8{ + 0b11111111, + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfNodeResponseInfoItem) { + name = jsonFieldsNameOfNodeResponseInfoItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *NodeResponseInfoItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NodeResponseInfoItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *NodesResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *NodesResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + e.ArrStart() + for _, elem := range s.Response { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfNodesResponse = [1]string{ + 0: "response", +} + +// Decode decodes NodesResponse from json. +func (s *NodesResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode NodesResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.Response = make([]NodeResponseDataItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem NodeResponseDataItem + if err := elem.Decode(d); err != nil { + return err + } + s.Response = append(s.Response, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode NodesResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfNodesResponse) { + name = jsonFieldsNameOfNodesResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *NodesResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NodesResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *NotFoundError) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *NotFoundError) encodeFields(e *jx.Encoder) { + { + e.FieldStart("message") + e.Str(s.Message) + } + { + e.FieldStart("statusCode") + e.Float64(s.StatusCode) + } +} + +var jsonFieldsNameOfNotFoundError = [2]string{ + 0: "message", + 1: "statusCode", +} + +// Decode decodes NotFoundError from json. +func (s *NotFoundError) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode NotFoundError to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "message": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Message = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"message\"") + } + case "statusCode": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Float64() + s.StatusCode = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"statusCode\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode NotFoundError") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfNotFoundError) { + name = jsonFieldsNameOfNotFoundError[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *NotFoundError) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NotFoundError) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *OAuth2AuthorizeRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *OAuth2AuthorizeRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("provider") + s.Provider.Encode(e) + } +} + +var jsonFieldsNameOfOAuth2AuthorizeRequest = [1]string{ + 0: "provider", +} + +// Decode decodes OAuth2AuthorizeRequest from json. +func (s *OAuth2AuthorizeRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode OAuth2AuthorizeRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "provider": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Provider.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"provider\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode OAuth2AuthorizeRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfOAuth2AuthorizeRequest) { + name = jsonFieldsNameOfOAuth2AuthorizeRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *OAuth2AuthorizeRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OAuth2AuthorizeRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes OAuth2AuthorizeRequestProvider as json. +func (s OAuth2AuthorizeRequestProvider) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes OAuth2AuthorizeRequestProvider from json. +func (s *OAuth2AuthorizeRequestProvider) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode OAuth2AuthorizeRequestProvider to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch OAuth2AuthorizeRequestProvider(v) { + case OAuth2AuthorizeRequestProviderTelegram: + *s = OAuth2AuthorizeRequestProviderTelegram + case OAuth2AuthorizeRequestProviderGithub: + *s = OAuth2AuthorizeRequestProviderGithub + case OAuth2AuthorizeRequestProviderPocketid: + *s = OAuth2AuthorizeRequestProviderPocketid + case OAuth2AuthorizeRequestProviderYandex: + *s = OAuth2AuthorizeRequestProviderYandex + case OAuth2AuthorizeRequestProviderKeycloak: + *s = OAuth2AuthorizeRequestProviderKeycloak + case OAuth2AuthorizeRequestProviderGeneric: + *s = OAuth2AuthorizeRequestProviderGeneric + default: + *s = OAuth2AuthorizeRequestProvider(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OAuth2AuthorizeRequestProvider) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OAuth2AuthorizeRequestProvider) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *OAuth2AuthorizeResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *OAuth2AuthorizeResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfOAuth2AuthorizeResponse = [1]string{ + 0: "response", +} + +// Decode decodes OAuth2AuthorizeResponse from json. +func (s *OAuth2AuthorizeResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode OAuth2AuthorizeResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode OAuth2AuthorizeResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfOAuth2AuthorizeResponse) { + name = jsonFieldsNameOfOAuth2AuthorizeResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *OAuth2AuthorizeResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OAuth2AuthorizeResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *OAuth2AuthorizeResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *OAuth2AuthorizeResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("authorizationUrl") + s.AuthorizationUrl.Encode(e) + } +} + +var jsonFieldsNameOfOAuth2AuthorizeResponseResponse = [1]string{ + 0: "authorizationUrl", +} + +// Decode decodes OAuth2AuthorizeResponseResponse from json. +func (s *OAuth2AuthorizeResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode OAuth2AuthorizeResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "authorizationUrl": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.AuthorizationUrl.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"authorizationUrl\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode OAuth2AuthorizeResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfOAuth2AuthorizeResponseResponse) { + name = jsonFieldsNameOfOAuth2AuthorizeResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *OAuth2AuthorizeResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OAuth2AuthorizeResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *OAuth2CallbackRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *OAuth2CallbackRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("provider") + s.Provider.Encode(e) + } + { + e.FieldStart("code") + e.Str(s.Code) + } + { + e.FieldStart("state") + e.Str(s.State) + } +} + +var jsonFieldsNameOfOAuth2CallbackRequest = [3]string{ + 0: "provider", + 1: "code", + 2: "state", +} + +// Decode decodes OAuth2CallbackRequest from json. +func (s *OAuth2CallbackRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode OAuth2CallbackRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "provider": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Provider.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"provider\"") + } + case "code": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Code = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"code\"") + } + case "state": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.State = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"state\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode OAuth2CallbackRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfOAuth2CallbackRequest) { + name = jsonFieldsNameOfOAuth2CallbackRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *OAuth2CallbackRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OAuth2CallbackRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes OAuth2CallbackRequestProvider as json. +func (s OAuth2CallbackRequestProvider) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes OAuth2CallbackRequestProvider from json. +func (s *OAuth2CallbackRequestProvider) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode OAuth2CallbackRequestProvider to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch OAuth2CallbackRequestProvider(v) { + case OAuth2CallbackRequestProviderTelegram: + *s = OAuth2CallbackRequestProviderTelegram + case OAuth2CallbackRequestProviderGithub: + *s = OAuth2CallbackRequestProviderGithub + case OAuth2CallbackRequestProviderPocketid: + *s = OAuth2CallbackRequestProviderPocketid + case OAuth2CallbackRequestProviderYandex: + *s = OAuth2CallbackRequestProviderYandex + case OAuth2CallbackRequestProviderKeycloak: + *s = OAuth2CallbackRequestProviderKeycloak + case OAuth2CallbackRequestProviderGeneric: + *s = OAuth2CallbackRequestProviderGeneric + default: + *s = OAuth2CallbackRequestProvider(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OAuth2CallbackRequestProvider) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OAuth2CallbackRequestProvider) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *Oauth2Settings) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *Oauth2Settings) encodeFields(e *jx.Encoder) { + { + e.FieldStart("github") + s.Github.Encode(e) + } + { + e.FieldStart("pocketid") + s.Pocketid.Encode(e) + } + { + e.FieldStart("yandex") + s.Yandex.Encode(e) + } + { + if s.Keycloak.Set { + e.FieldStart("keycloak") + s.Keycloak.Encode(e) + } + } + { + if s.Generic.Set { + e.FieldStart("generic") + s.Generic.Encode(e) + } + } + { + if s.Telegram.Set { + e.FieldStart("telegram") + s.Telegram.Encode(e) + } + } +} + +var jsonFieldsNameOfOauth2Settings = [6]string{ + 0: "github", + 1: "pocketid", + 2: "yandex", + 3: "keycloak", + 4: "generic", + 5: "telegram", +} + +// Decode decodes Oauth2Settings from json. +func (s *Oauth2Settings) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode Oauth2Settings to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "github": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Github.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"github\"") + } + case "pocketid": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.Pocketid.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"pocketid\"") + } + case "yandex": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.Yandex.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"yandex\"") + } + case "keycloak": + if err := func() error { + s.Keycloak.Reset() + if err := s.Keycloak.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"keycloak\"") + } + case "generic": + if err := func() error { + s.Generic.Reset() + if err := s.Generic.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"generic\"") + } + case "telegram": + if err := func() error { + s.Telegram.Reset() + if err := s.Telegram.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"telegram\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode Oauth2Settings") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfOauth2Settings) { + name = jsonFieldsNameOfOauth2Settings[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *Oauth2Settings) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *Oauth2Settings) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes bool as json. +func (o OptBool) Encode(e *jx.Encoder) { + if !o.Set { + return + } + e.Bool(bool(o.Value)) +} + +// Decode decodes bool from json. +func (o *OptBool) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptBool to nil") + } + o.Set = true + v, err := d.Bool() + if err != nil { + return err + } + o.Value = bool(v) + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptBool) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptBool) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes BulkAllUpdateUsersRequestStatus as json. +func (o OptBulkAllUpdateUsersRequestStatus) Encode(e *jx.Encoder) { + if !o.Set { + return + } + e.Str(string(o.Value)) +} + +// Decode decodes BulkAllUpdateUsersRequestStatus from json. +func (o *OptBulkAllUpdateUsersRequestStatus) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptBulkAllUpdateUsersRequestStatus to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptBulkAllUpdateUsersRequestStatus) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptBulkAllUpdateUsersRequestStatus) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes BulkAllUpdateUsersRequestTrafficLimitStrategy as json. +func (o OptBulkAllUpdateUsersRequestTrafficLimitStrategy) Encode(e *jx.Encoder) { + if !o.Set { + return + } + e.Str(string(o.Value)) +} + +// Decode decodes BulkAllUpdateUsersRequestTrafficLimitStrategy from json. +func (o *OptBulkAllUpdateUsersRequestTrafficLimitStrategy) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptBulkAllUpdateUsersRequestTrafficLimitStrategy to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptBulkAllUpdateUsersRequestTrafficLimitStrategy) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptBulkAllUpdateUsersRequestTrafficLimitStrategy) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes BulkDeleteUsersByStatusRequestStatus as json. +func (o OptBulkDeleteUsersByStatusRequestStatus) Encode(e *jx.Encoder) { + if !o.Set { + return + } + e.Str(string(o.Value)) +} + +// Decode decodes BulkDeleteUsersByStatusRequestStatus from json. +func (o *OptBulkDeleteUsersByStatusRequestStatus) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptBulkDeleteUsersByStatusRequestStatus to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptBulkDeleteUsersByStatusRequestStatus) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptBulkDeleteUsersByStatusRequestStatus) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes BulkUpdateUsersRequestFieldsStatus as json. +func (o OptBulkUpdateUsersRequestFieldsStatus) Encode(e *jx.Encoder) { + if !o.Set { + return + } + e.Str(string(o.Value)) +} + +// Decode decodes BulkUpdateUsersRequestFieldsStatus from json. +func (o *OptBulkUpdateUsersRequestFieldsStatus) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptBulkUpdateUsersRequestFieldsStatus to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptBulkUpdateUsersRequestFieldsStatus) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptBulkUpdateUsersRequestFieldsStatus) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes BulkUpdateUsersRequestFieldsTrafficLimitStrategy as json. +func (o OptBulkUpdateUsersRequestFieldsTrafficLimitStrategy) Encode(e *jx.Encoder) { + if !o.Set { + return + } + e.Str(string(o.Value)) +} + +// Decode decodes BulkUpdateUsersRequestFieldsTrafficLimitStrategy from json. +func (o *OptBulkUpdateUsersRequestFieldsTrafficLimitStrategy) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptBulkUpdateUsersRequestFieldsTrafficLimitStrategy to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptBulkUpdateUsersRequestFieldsTrafficLimitStrategy) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptBulkUpdateUsersRequestFieldsTrafficLimitStrategy) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes ConfigProfileRef as json. +func (o OptConfigProfileRef) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes ConfigProfileRef from json. +func (o *OptConfigProfileRef) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptConfigProfileRef to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptConfigProfileRef) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptConfigProfileRef) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes CreateHostRequestSecurityLayer as json. +func (o OptCreateHostRequestSecurityLayer) Encode(e *jx.Encoder) { + if !o.Set { + return + } + e.Str(string(o.Value)) +} + +// Decode decodes CreateHostRequestSecurityLayer from json. +func (o *OptCreateHostRequestSecurityLayer) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptCreateHostRequestSecurityLayer to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptCreateHostRequestSecurityLayer) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptCreateHostRequestSecurityLayer) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes CreateUserRequestStatus as json. +func (o OptCreateUserRequestStatus) Encode(e *jx.Encoder) { + if !o.Set { + return + } + e.Str(string(o.Value)) +} + +// Decode decodes CreateUserRequestStatus from json. +func (o *OptCreateUserRequestStatus) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptCreateUserRequestStatus to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptCreateUserRequestStatus) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptCreateUserRequestStatus) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes CreateUserRequestTrafficLimitStrategy as json. +func (o OptCreateUserRequestTrafficLimitStrategy) Encode(e *jx.Encoder) { + if !o.Set { + return + } + e.Str(string(o.Value)) +} + +// Decode decodes CreateUserRequestTrafficLimitStrategy from json. +func (o *OptCreateUserRequestTrafficLimitStrategy) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptCreateUserRequestTrafficLimitStrategy to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptCreateUserRequestTrafficLimitStrategy) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptCreateUserRequestTrafficLimitStrategy) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes time.Time as json. +func (o OptDateTime) Encode(e *jx.Encoder, format func(*jx.Encoder, time.Time)) { + if !o.Set { + return + } + format(e, o.Value) +} + +// Decode decodes time.Time from json. +func (o *OptDateTime) Decode(d *jx.Decoder, format func(*jx.Decoder) (time.Time, error)) error { + if o == nil { + return errors.New("invalid: unable to decode OptDateTime to nil") + } + o.Set = true + v, err := format(d) + if err != nil { + return err + } + o.Value = v + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptDateTime) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e, json.EncodeDateTime) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptDateTime) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d, json.DecodeDateTime) +} + +// Encode encodes DebugSrrMatcherSettings as json. +func (o OptDebugSrrMatcherSettings) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes DebugSrrMatcherSettings from json. +func (o *OptDebugSrrMatcherSettings) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptDebugSrrMatcherSettings to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptDebugSrrMatcherSettings) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptDebugSrrMatcherSettings) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes float64 as json. +func (o OptFloat64) Encode(e *jx.Encoder) { + if !o.Set { + return + } + e.Float64(float64(o.Value)) +} + +// Decode decodes float64 from json. +func (o *OptFloat64) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptFloat64 to nil") + } + o.Set = true + v, err := d.Float64() + if err != nil { + return err + } + o.Value = float64(v) + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptFloat64) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptFloat64) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes Generic as json. +func (o OptGeneric) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes Generic from json. +func (o *OptGeneric) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptGeneric to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptGeneric) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptGeneric) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions as json. +func (o OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions from json. +func (o *OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request as json. +func (o OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request from json. +func (o *OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders as json. +func (o OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders from json. +func (o *OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders to nil") + } + o.Set = true + o.Value = make(GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders) + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response as json. +func (o OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response from json. +func (o *OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders as json. +func (o OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders from json. +func (o *OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders to nil") + } + o.Set = true + o.Value = make(GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders) + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes HostItemSecurityLayer as json. +func (o OptHostItemSecurityLayer) Encode(e *jx.Encoder) { + if !o.Set { + return + } + e.Str(string(o.Value)) +} + +// Decode decodes HostItemSecurityLayer from json. +func (o *OptHostItemSecurityLayer) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptHostItemSecurityLayer to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptHostItemSecurityLayer) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptHostItemSecurityLayer) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes InboundRef as json. +func (o OptInboundRef) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes InboundRef from json. +func (o *OptInboundRef) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptInboundRef to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptInboundRef) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptInboundRef) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes int as json. +func (o OptInt) Encode(e *jx.Encoder) { + if !o.Set { + return + } + e.Int(int(o.Value)) +} + +// Decode decodes int from json. +func (o *OptInt) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptInt to nil") + } + o.Set = true + v, err := d.Int() + if err != nil { + return err + } + o.Value = int(v) + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptInt) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptInt) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes Keycloak as json. +func (o OptKeycloak) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes Keycloak from json. +func (o *OptKeycloak) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptKeycloak to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptKeycloak) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptKeycloak) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes BrandingSettings as json. +func (o OptNilBrandingSettings) Encode(e *jx.Encoder) { + if !o.Set { + return + } + if o.Null { + e.Null() + return + } + o.Value.Encode(e) +} + +// Decode decodes BrandingSettings from json. +func (o *OptNilBrandingSettings) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptNilBrandingSettings to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v BrandingSettings + o.Value = v + o.Set = true + o.Null = true + return nil + } + o.Set = true + o.Null = false + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptNilBrandingSettings) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptNilBrandingSettings) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes CreateHostRequestAlpn as json. +func (o OptNilCreateHostRequestAlpn) Encode(e *jx.Encoder) { + if !o.Set { + return + } + if o.Null { + e.Null() + return + } + e.Str(string(o.Value)) +} + +// Decode decodes CreateHostRequestAlpn from json. +func (o *OptNilCreateHostRequestAlpn) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptNilCreateHostRequestAlpn to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v CreateHostRequestAlpn + o.Value = v + o.Set = true + o.Null = true + return nil + } + o.Set = true + o.Null = false + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptNilCreateHostRequestAlpn) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptNilCreateHostRequestAlpn) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes CreateHostRequestFingerprint as json. +func (o OptNilCreateHostRequestFingerprint) Encode(e *jx.Encoder) { + if !o.Set { + return + } + if o.Null { + e.Null() + return + } + e.Str(string(o.Value)) +} + +// Decode decodes CreateHostRequestFingerprint from json. +func (o *OptNilCreateHostRequestFingerprint) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptNilCreateHostRequestFingerprint to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v CreateHostRequestFingerprint + o.Value = v + o.Set = true + o.Null = true + return nil + } + o.Set = true + o.Null = false + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptNilCreateHostRequestFingerprint) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptNilCreateHostRequestFingerprint) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes CustomRemark as json. +func (o OptNilCustomRemark) Encode(e *jx.Encoder) { + if !o.Set { + return + } + if o.Null { + e.Null() + return + } + o.Value.Encode(e) +} + +// Decode decodes CustomRemark from json. +func (o *OptNilCustomRemark) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptNilCustomRemark to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v CustomRemark + o.Value = v + o.Set = true + o.Null = true + return nil + } + o.Set = true + o.Null = false + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptNilCustomRemark) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptNilCustomRemark) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes HostOverride as json. +func (o OptNilHostOverride) Encode(e *jx.Encoder) { + if !o.Set { + return + } + if o.Null { + e.Null() + return + } + o.Value.Encode(e) +} + +// Decode decodes HostOverride from json. +func (o *OptNilHostOverride) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptNilHostOverride to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v HostOverride + o.Value = v + o.Set = true + o.Null = true + return nil + } + o.Set = true + o.Null = false + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptNilHostOverride) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptNilHostOverride) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes HwidSettings as json. +func (o OptNilHwidSettings) Encode(e *jx.Encoder) { + if !o.Set { + return + } + if o.Null { + e.Null() + return + } + o.Value.Encode(e) +} + +// Decode decodes HwidSettings from json. +func (o *OptNilHwidSettings) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptNilHwidSettings to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v HwidSettings + o.Value = v + o.Set = true + o.Null = true + return nil + } + o.Set = true + o.Null = false + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptNilHwidSettings) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptNilHwidSettings) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes int as json. +func (o OptNilInt) Encode(e *jx.Encoder) { + if !o.Set { + return + } + if o.Null { + e.Null() + return + } + e.Int(int(o.Value)) +} + +// Decode decodes int from json. +func (o *OptNilInt) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptNilInt to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v int + o.Value = v + o.Set = true + o.Null = true + return nil + } + o.Set = true + o.Null = false + v, err := d.Int() + if err != nil { + return err + } + o.Value = int(v) + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptNilInt) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptNilInt) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes Oauth2Settings as json. +func (o OptNilOauth2Settings) Encode(e *jx.Encoder) { + if !o.Set { + return + } + if o.Null { + e.Null() + return + } + o.Value.Encode(e) +} + +// Decode decodes Oauth2Settings from json. +func (o *OptNilOauth2Settings) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptNilOauth2Settings to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v Oauth2Settings + o.Value = v + o.Set = true + o.Null = true + return nil + } + o.Set = true + o.Null = false + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptNilOauth2Settings) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptNilOauth2Settings) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes PasskeySettings as json. +func (o OptNilPasskeySettings) Encode(e *jx.Encoder) { + if !o.Set { + return + } + if o.Null { + e.Null() + return + } + o.Value.Encode(e) +} + +// Decode decodes PasskeySettings from json. +func (o *OptNilPasskeySettings) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptNilPasskeySettings to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v PasskeySettings + o.Value = v + o.Set = true + o.Null = true + return nil + } + o.Set = true + o.Null = false + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptNilPasskeySettings) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptNilPasskeySettings) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes PasswordSettings as json. +func (o OptNilPasswordSettings) Encode(e *jx.Encoder) { + if !o.Set { + return + } + if o.Null { + e.Null() + return + } + o.Value.Encode(e) +} + +// Decode decodes PasswordSettings from json. +func (o *OptNilPasswordSettings) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptNilPasswordSettings to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v PasswordSettings + o.Value = v + o.Set = true + o.Null = true + return nil + } + o.Set = true + o.Null = false + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptNilPasswordSettings) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptNilPasswordSettings) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes string as json. +func (o OptNilString) Encode(e *jx.Encoder) { + if !o.Set { + return + } + if o.Null { + e.Null() + return + } + e.Str(string(o.Value)) +} + +// Decode decodes string from json. +func (o *OptNilString) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptNilString to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v string + o.Value = v + o.Set = true + o.Null = true + return nil + } + o.Set = true + o.Null = false + v, err := d.Str() + if err != nil { + return err + } + o.Value = string(v) + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptNilString) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptNilString) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes SubscriptionSettings as json. +func (o OptNilSubscriptionSettings) Encode(e *jx.Encoder) { + if !o.Set { + return + } + if o.Null { + e.Null() + return + } + o.Value.Encode(e) +} + +// Decode decodes SubscriptionSettings from json. +func (o *OptNilSubscriptionSettings) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptNilSubscriptionSettings to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v SubscriptionSettings + o.Value = v + o.Set = true + o.Null = true + return nil + } + o.Set = true + o.Null = false + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptNilSubscriptionSettings) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptNilSubscriptionSettings) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes url.URL as json. +func (o OptNilURI) Encode(e *jx.Encoder) { + if !o.Set { + return + } + if o.Null { + e.Null() + return + } + json.EncodeURI(e, o.Value) +} + +// Decode decodes url.URL from json. +func (o *OptNilURI) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptNilURI to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v url.URL + o.Value = v + o.Set = true + o.Null = true + return nil + } + o.Set = true + o.Null = false + v, err := json.DecodeURI(d) + if err != nil { + return err + } + o.Value = v + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptNilURI) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptNilURI) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes uuid.UUID as json. +func (o OptNilUUID) Encode(e *jx.Encoder) { + if !o.Set { + return + } + if o.Null { + e.Null() + return + } + json.EncodeUUID(e, o.Value) +} + +// Decode decodes uuid.UUID from json. +func (o *OptNilUUID) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptNilUUID to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v uuid.UUID + o.Value = v + o.Set = true + o.Null = true + return nil + } + o.Set = true + o.Null = false + v, err := json.DecodeUUID(d) + if err != nil { + return err + } + o.Value = v + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptNilUUID) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptNilUUID) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes UpdateExternalSquadRequestResponseHeaders as json. +func (o OptNilUpdateExternalSquadRequestResponseHeaders) Encode(e *jx.Encoder) { + if !o.Set { + return + } + if o.Null { + e.Null() + return + } + o.Value.Encode(e) +} + +// Decode decodes UpdateExternalSquadRequestResponseHeaders from json. +func (o *OptNilUpdateExternalSquadRequestResponseHeaders) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptNilUpdateExternalSquadRequestResponseHeaders to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v UpdateExternalSquadRequestResponseHeaders + o.Value = v + o.Set = true + o.Null = true + return nil + } + o.Set = true + o.Null = false + o.Value = make(UpdateExternalSquadRequestResponseHeaders) + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptNilUpdateExternalSquadRequestResponseHeaders) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptNilUpdateExternalSquadRequestResponseHeaders) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes UpdateHostRequestAlpn as json. +func (o OptNilUpdateHostRequestAlpn) Encode(e *jx.Encoder) { + if !o.Set { + return + } + if o.Null { + e.Null() + return + } + e.Str(string(o.Value)) +} + +// Decode decodes UpdateHostRequestAlpn from json. +func (o *OptNilUpdateHostRequestAlpn) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptNilUpdateHostRequestAlpn to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v UpdateHostRequestAlpn + o.Value = v + o.Set = true + o.Null = true + return nil + } + o.Set = true + o.Null = false + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptNilUpdateHostRequestAlpn) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptNilUpdateHostRequestAlpn) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes UpdateHostRequestFingerprint as json. +func (o OptNilUpdateHostRequestFingerprint) Encode(e *jx.Encoder) { + if !o.Set { + return + } + if o.Null { + e.Null() + return + } + e.Str(string(o.Value)) +} + +// Decode decodes UpdateHostRequestFingerprint from json. +func (o *OptNilUpdateHostRequestFingerprint) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptNilUpdateHostRequestFingerprint to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v UpdateHostRequestFingerprint + o.Value = v + o.Set = true + o.Null = true + return nil + } + o.Set = true + o.Null = false + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptNilUpdateHostRequestFingerprint) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptNilUpdateHostRequestFingerprint) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes ResponseModification as json. +func (o OptResponseModification) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes ResponseModification from json. +func (o *OptResponseModification) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptResponseModification to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptResponseModification) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptResponseModification) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes ResponseRules as json. +func (o OptResponseRules) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes ResponseRules from json. +func (o *OptResponseRules) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptResponseRules to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptResponseRules) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptResponseRules) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes string as json. +func (o OptString) Encode(e *jx.Encoder) { + if !o.Set { + return + } + e.Str(string(o.Value)) +} + +// Decode decodes string from json. +func (o *OptString) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptString to nil") + } + o.Set = true + v, err := d.Str() + if err != nil { + return err + } + o.Value = string(v) + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptString) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptString) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes Telegram as json. +func (o OptTelegram) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes Telegram from json. +func (o *OptTelegram) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptTelegram to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptTelegram) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptTelegram) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes url.URL as json. +func (o OptURI) Encode(e *jx.Encoder) { + if !o.Set { + return + } + json.EncodeURI(e, o.Value) +} + +// Decode decodes url.URL from json. +func (o *OptURI) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptURI to nil") + } + o.Set = true + v, err := json.DecodeURI(d) + if err != nil { + return err + } + o.Value = v + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptURI) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptURI) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes uuid.UUID as json. +func (o OptUUID) Encode(e *jx.Encoder) { + if !o.Set { + return + } + json.EncodeUUID(e, o.Value) +} + +// Decode decodes uuid.UUID from json. +func (o *OptUUID) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptUUID to nil") + } + o.Set = true + v, err := json.DecodeUUID(d) + if err != nil { + return err + } + o.Value = v + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptUUID) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptUUID) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes UpdateHostRequestSecurityLayer as json. +func (o OptUpdateHostRequestSecurityLayer) Encode(e *jx.Encoder) { + if !o.Set { + return + } + e.Str(string(o.Value)) +} + +// Decode decodes UpdateHostRequestSecurityLayer from json. +func (o *OptUpdateHostRequestSecurityLayer) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptUpdateHostRequestSecurityLayer to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptUpdateHostRequestSecurityLayer) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptUpdateHostRequestSecurityLayer) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes UpdateSubscriptionSettingsRequestCustomResponseHeaders as json. +func (o OptUpdateSubscriptionSettingsRequestCustomResponseHeaders) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes UpdateSubscriptionSettingsRequestCustomResponseHeaders from json. +func (o *OptUpdateSubscriptionSettingsRequestCustomResponseHeaders) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptUpdateSubscriptionSettingsRequestCustomResponseHeaders to nil") + } + o.Set = true + o.Value = make(UpdateSubscriptionSettingsRequestCustomResponseHeaders) + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptUpdateSubscriptionSettingsRequestCustomResponseHeaders) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptUpdateSubscriptionSettingsRequestCustomResponseHeaders) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes UpdateUserRequestStatus as json. +func (o OptUpdateUserRequestStatus) Encode(e *jx.Encoder) { + if !o.Set { + return + } + e.Str(string(o.Value)) +} + +// Decode decodes UpdateUserRequestStatus from json. +func (o *OptUpdateUserRequestStatus) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptUpdateUserRequestStatus to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptUpdateUserRequestStatus) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptUpdateUserRequestStatus) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes UpdateUserRequestTrafficLimitStrategy as json. +func (o OptUpdateUserRequestTrafficLimitStrategy) Encode(e *jx.Encoder) { + if !o.Set { + return + } + e.Str(string(o.Value)) +} + +// Decode decodes UpdateUserRequestTrafficLimitStrategy from json. +func (o *OptUpdateUserRequestTrafficLimitStrategy) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptUpdateUserRequestTrafficLimitStrategy to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptUpdateUserRequestTrafficLimitStrategy) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptUpdateUserRequestTrafficLimitStrategy) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes UserItemInfoStatus as json. +func (o OptUserItemInfoStatus) Encode(e *jx.Encoder) { + if !o.Set { + return + } + e.Str(string(o.Value)) +} + +// Decode decodes UserItemInfoStatus from json. +func (o *OptUserItemInfoStatus) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptUserItemInfoStatus to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptUserItemInfoStatus) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptUserItemInfoStatus) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes UserItemInfoTrafficLimitStrategy as json. +func (o OptUserItemInfoTrafficLimitStrategy) Encode(e *jx.Encoder) { + if !o.Set { + return + } + e.Str(string(o.Value)) +} + +// Decode decodes UserItemInfoTrafficLimitStrategy from json. +func (o *OptUserItemInfoTrafficLimitStrategy) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptUserItemInfoTrafficLimitStrategy to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptUserItemInfoTrafficLimitStrategy) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptUserItemInfoTrafficLimitStrategy) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *PasskeyOptions) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *PasskeyOptions) encodeFields(e *jx.Encoder) { + { + if len(s.Response) != 0 { + e.FieldStart("response") + e.Raw(s.Response) + } + } +} + +var jsonFieldsNameOfPasskeyOptions = [1]string{ + 0: "response", +} + +// Decode decodes PasskeyOptions from json. +func (s *PasskeyOptions) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode PasskeyOptions to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.RawAppend(nil) + s.Response = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode PasskeyOptions") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfPasskeyOptions) { + name = jsonFieldsNameOfPasskeyOptions[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *PasskeyOptions) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *PasskeyOptions) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *PasskeySettings) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *PasskeySettings) encodeFields(e *jx.Encoder) { + { + e.FieldStart("enabled") + e.Bool(s.Enabled) + } + { + e.FieldStart("rpId") + s.RpId.Encode(e) + } + { + e.FieldStart("origin") + s.Origin.Encode(e) + } +} + +var jsonFieldsNameOfPasskeySettings = [3]string{ + 0: "enabled", + 1: "rpId", + 2: "origin", +} + +// Decode decodes PasskeySettings from json. +func (s *PasskeySettings) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode PasskeySettings to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "enabled": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Bool() + s.Enabled = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"enabled\"") + } + case "rpId": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.RpId.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"rpId\"") + } + case "origin": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.Origin.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"origin\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode PasskeySettings") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfPasskeySettings) { + name = jsonFieldsNameOfPasskeySettings[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *PasskeySettings) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *PasskeySettings) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *PasskeysResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *PasskeysResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfPasskeysResponse = [1]string{ + 0: "response", +} + +// Decode decodes PasskeysResponse from json. +func (s *PasskeysResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode PasskeysResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode PasskeysResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfPasskeysResponse) { + name = jsonFieldsNameOfPasskeysResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *PasskeysResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *PasskeysResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *PasskeysResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *PasskeysResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("passkeys") + e.ArrStart() + for _, elem := range s.Passkeys { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfPasskeysResponseResponse = [1]string{ + 0: "passkeys", +} + +// Decode decodes PasskeysResponseResponse from json. +func (s *PasskeysResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode PasskeysResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "passkeys": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.Passkeys = make([]PasskeysResponseResponsePasskeysItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem PasskeysResponseResponsePasskeysItem + if err := elem.Decode(d); err != nil { + return err + } + s.Passkeys = append(s.Passkeys, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"passkeys\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode PasskeysResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfPasskeysResponseResponse) { + name = jsonFieldsNameOfPasskeysResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *PasskeysResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *PasskeysResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *PasskeysResponseResponsePasskeysItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *PasskeysResponseResponsePasskeysItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("id") + e.Str(s.ID) + } + { + e.FieldStart("name") + e.Str(s.Name) + } + { + e.FieldStart("createdAt") + json.EncodeDateTime(e, s.CreatedAt) + } + { + e.FieldStart("lastUsedAt") + json.EncodeDateTime(e, s.LastUsedAt) + } +} + +var jsonFieldsNameOfPasskeysResponseResponsePasskeysItem = [4]string{ + 0: "id", + 1: "name", + 2: "createdAt", + 3: "lastUsedAt", +} + +// Decode decodes PasskeysResponseResponsePasskeysItem from json. +func (s *PasskeysResponseResponsePasskeysItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode PasskeysResponseResponsePasskeysItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "id": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.ID = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"id\"") + } + case "name": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "createdAt": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.CreatedAt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"createdAt\"") + } + case "lastUsedAt": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.LastUsedAt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"lastUsedAt\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode PasskeysResponseResponsePasskeysItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00001111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfPasskeysResponseResponsePasskeysItem) { + name = jsonFieldsNameOfPasskeysResponseResponsePasskeysItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *PasskeysResponseResponsePasskeysItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *PasskeysResponseResponsePasskeysItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *PasswordSettings) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *PasswordSettings) encodeFields(e *jx.Encoder) { + { + e.FieldStart("enabled") + e.Bool(s.Enabled) + } +} + +var jsonFieldsNameOfPasswordSettings = [1]string{ + 0: "enabled", +} + +// Decode decodes PasswordSettings from json. +func (s *PasswordSettings) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode PasswordSettings to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "enabled": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Bool() + s.Enabled = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"enabled\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode PasswordSettings") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfPasswordSettings) { + name = jsonFieldsNameOfPasswordSettings[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *PasswordSettings) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *PasswordSettings) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *PluginExecutorRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *PluginExecutorRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("command") + s.Command.Encode(e) + } + { + e.FieldStart("targetNodes") + s.TargetNodes.Encode(e) + } +} + +var jsonFieldsNameOfPluginExecutorRequest = [2]string{ + 0: "command", + 1: "targetNodes", +} + +// Decode decodes PluginExecutorRequest from json. +func (s *PluginExecutorRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode PluginExecutorRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "command": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Command.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"command\"") + } + case "targetNodes": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.TargetNodes.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"targetNodes\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode PluginExecutorRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfPluginExecutorRequest) { + name = jsonFieldsNameOfPluginExecutorRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *PluginExecutorRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *PluginExecutorRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes PluginExecutorRequestCommand as json. +func (s PluginExecutorRequestCommand) Encode(e *jx.Encoder) { + switch s.Type { + case PluginExecutorRequestCommand0PluginExecutorRequestCommand: + s.PluginExecutorRequestCommand0.Encode(e) + case PluginExecutorRequestCommand1PluginExecutorRequestCommand: + s.PluginExecutorRequestCommand1.Encode(e) + case PluginExecutorRequestCommand2PluginExecutorRequestCommand: + s.PluginExecutorRequestCommand2.Encode(e) + } +} + +func (s PluginExecutorRequestCommand) encodeFields(e *jx.Encoder) { + switch s.Type { + case PluginExecutorRequestCommand0PluginExecutorRequestCommand: + s.PluginExecutorRequestCommand0.encodeFields(e) + case PluginExecutorRequestCommand1PluginExecutorRequestCommand: + s.PluginExecutorRequestCommand1.encodeFields(e) + case PluginExecutorRequestCommand2PluginExecutorRequestCommand: + s.PluginExecutorRequestCommand2.encodeFields(e) + } +} + +// Decode decodes PluginExecutorRequestCommand from json. +func (s *PluginExecutorRequestCommand) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode PluginExecutorRequestCommand to nil") + } + // Sum type fields. + if typ := d.Next(); typ != jx.Object { + return errors.Errorf("unexpected json type %q", typ) + } + + var found bool + if err := d.Capture(func(d *jx.Decoder) error { + return d.ObjBytes(func(d *jx.Decoder, key []byte) error { + switch string(key) { + case "ips": + // Array element discrimination: peek into array to check first element type + if typ := d.Next(); typ != jx.Array { + return d.Skip() + } + // Capture array to peek at first element without consuming + if err := d.Capture(func(d *jx.Decoder) error { + // Check if array is empty + iter, err := d.ArrIter() + if err != nil { + return err + } + if !iter.Next() { + // Empty array - use first variant as default + if !found { + found = true + s.Type = PluginExecutorRequestCommand0PluginExecutorRequestCommand + } + return nil + } + elemType := d.Next() + switch elemType { + case jx.Object: + match := PluginExecutorRequestCommand0PluginExecutorRequestCommand + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case jx.String: + match := PluginExecutorRequestCommand1PluginExecutorRequestCommand + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + } + return nil + }); err != nil { + return err + } + case "command": + // Value-based discrimination: check enum value + if typ := d.Next(); typ != jx.String { + return d.Skip() + } + value, err := d.StrBytes() + if err != nil { + return err + } + switch string(value) { + case "blockIps": + match := PluginExecutorRequestCommand0PluginExecutorRequestCommand + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "recreateTables": + match := PluginExecutorRequestCommand2PluginExecutorRequestCommand + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "unblockIps": + match := PluginExecutorRequestCommand1PluginExecutorRequestCommand + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + default: + // Unknown enum value, ignore and continue + } + return nil + } + return d.Skip() + }) + }); err != nil { + return errors.Wrap(err, "capture") + } + if !found { + return errors.New("unable to detect sum type variant") + } + switch s.Type { + case PluginExecutorRequestCommand0PluginExecutorRequestCommand: + if err := s.PluginExecutorRequestCommand0.Decode(d); err != nil { + return err + } + case PluginExecutorRequestCommand1PluginExecutorRequestCommand: + if err := s.PluginExecutorRequestCommand1.Decode(d); err != nil { + return err + } + case PluginExecutorRequestCommand2PluginExecutorRequestCommand: + if err := s.PluginExecutorRequestCommand2.Decode(d); err != nil { + return err + } + default: + return errors.Errorf("inferred invalid type: %s", s.Type) + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s PluginExecutorRequestCommand) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *PluginExecutorRequestCommand) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *PluginExecutorRequestCommand0) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *PluginExecutorRequestCommand0) encodeFields(e *jx.Encoder) { + { + e.FieldStart("command") + s.Command.Encode(e) + } + { + e.FieldStart("ips") + e.ArrStart() + for _, elem := range s.Ips { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfPluginExecutorRequestCommand0 = [2]string{ + 0: "command", + 1: "ips", +} + +// Decode decodes PluginExecutorRequestCommand0 from json. +func (s *PluginExecutorRequestCommand0) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode PluginExecutorRequestCommand0 to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "command": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Command.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"command\"") + } + case "ips": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + s.Ips = make([]PluginExecutorRequestCommand0IpsItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem PluginExecutorRequestCommand0IpsItem + if err := elem.Decode(d); err != nil { + return err + } + s.Ips = append(s.Ips, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"ips\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode PluginExecutorRequestCommand0") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfPluginExecutorRequestCommand0) { + name = jsonFieldsNameOfPluginExecutorRequestCommand0[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *PluginExecutorRequestCommand0) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *PluginExecutorRequestCommand0) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes PluginExecutorRequestCommand0Command as json. +func (s PluginExecutorRequestCommand0Command) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes PluginExecutorRequestCommand0Command from json. +func (s *PluginExecutorRequestCommand0Command) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode PluginExecutorRequestCommand0Command to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch PluginExecutorRequestCommand0Command(v) { + case PluginExecutorRequestCommand0CommandBlockIps: + *s = PluginExecutorRequestCommand0CommandBlockIps + default: + *s = PluginExecutorRequestCommand0Command(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s PluginExecutorRequestCommand0Command) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *PluginExecutorRequestCommand0Command) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *PluginExecutorRequestCommand0IpsItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *PluginExecutorRequestCommand0IpsItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("ip") + e.Str(s.IP) + } + { + e.FieldStart("timeout") + e.Float64(s.Timeout) + } +} + +var jsonFieldsNameOfPluginExecutorRequestCommand0IpsItem = [2]string{ + 0: "ip", + 1: "timeout", +} + +// Decode decodes PluginExecutorRequestCommand0IpsItem from json. +func (s *PluginExecutorRequestCommand0IpsItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode PluginExecutorRequestCommand0IpsItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "ip": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.IP = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"ip\"") + } + case "timeout": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Float64() + s.Timeout = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"timeout\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode PluginExecutorRequestCommand0IpsItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfPluginExecutorRequestCommand0IpsItem) { + name = jsonFieldsNameOfPluginExecutorRequestCommand0IpsItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *PluginExecutorRequestCommand0IpsItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *PluginExecutorRequestCommand0IpsItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *PluginExecutorRequestCommand1) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *PluginExecutorRequestCommand1) encodeFields(e *jx.Encoder) { + { + e.FieldStart("command") + s.Command.Encode(e) + } + { + e.FieldStart("ips") + e.ArrStart() + for _, elem := range s.Ips { + e.Str(elem) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfPluginExecutorRequestCommand1 = [2]string{ + 0: "command", + 1: "ips", +} + +// Decode decodes PluginExecutorRequestCommand1 from json. +func (s *PluginExecutorRequestCommand1) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode PluginExecutorRequestCommand1 to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "command": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Command.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"command\"") + } + case "ips": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + s.Ips = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.Ips = append(s.Ips, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"ips\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode PluginExecutorRequestCommand1") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfPluginExecutorRequestCommand1) { + name = jsonFieldsNameOfPluginExecutorRequestCommand1[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *PluginExecutorRequestCommand1) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *PluginExecutorRequestCommand1) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes PluginExecutorRequestCommand1Command as json. +func (s PluginExecutorRequestCommand1Command) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes PluginExecutorRequestCommand1Command from json. +func (s *PluginExecutorRequestCommand1Command) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode PluginExecutorRequestCommand1Command to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch PluginExecutorRequestCommand1Command(v) { + case PluginExecutorRequestCommand1CommandUnblockIps: + *s = PluginExecutorRequestCommand1CommandUnblockIps + default: + *s = PluginExecutorRequestCommand1Command(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s PluginExecutorRequestCommand1Command) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *PluginExecutorRequestCommand1Command) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *PluginExecutorRequestCommand2) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *PluginExecutorRequestCommand2) encodeFields(e *jx.Encoder) { + { + e.FieldStart("command") + s.Command.Encode(e) + } +} + +var jsonFieldsNameOfPluginExecutorRequestCommand2 = [1]string{ + 0: "command", +} + +// Decode decodes PluginExecutorRequestCommand2 from json. +func (s *PluginExecutorRequestCommand2) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode PluginExecutorRequestCommand2 to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "command": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Command.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"command\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode PluginExecutorRequestCommand2") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfPluginExecutorRequestCommand2) { + name = jsonFieldsNameOfPluginExecutorRequestCommand2[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *PluginExecutorRequestCommand2) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *PluginExecutorRequestCommand2) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes PluginExecutorRequestCommand2Command as json. +func (s PluginExecutorRequestCommand2Command) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes PluginExecutorRequestCommand2Command from json. +func (s *PluginExecutorRequestCommand2Command) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode PluginExecutorRequestCommand2Command to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch PluginExecutorRequestCommand2Command(v) { + case PluginExecutorRequestCommand2CommandRecreateTables: + *s = PluginExecutorRequestCommand2CommandRecreateTables + default: + *s = PluginExecutorRequestCommand2Command(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s PluginExecutorRequestCommand2Command) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *PluginExecutorRequestCommand2Command) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes PluginExecutorRequestTargetNodes as json. +func (s PluginExecutorRequestTargetNodes) Encode(e *jx.Encoder) { + switch s.Type { + case PluginExecutorRequestTargetNodes0PluginExecutorRequestTargetNodes: + s.PluginExecutorRequestTargetNodes0.Encode(e) + case PluginExecutorRequestTargetNodes1PluginExecutorRequestTargetNodes: + s.PluginExecutorRequestTargetNodes1.Encode(e) + } +} + +func (s PluginExecutorRequestTargetNodes) encodeFields(e *jx.Encoder) { + switch s.Type { + case PluginExecutorRequestTargetNodes0PluginExecutorRequestTargetNodes: + s.PluginExecutorRequestTargetNodes0.encodeFields(e) + case PluginExecutorRequestTargetNodes1PluginExecutorRequestTargetNodes: + s.PluginExecutorRequestTargetNodes1.encodeFields(e) + } +} + +// Decode decodes PluginExecutorRequestTargetNodes from json. +func (s *PluginExecutorRequestTargetNodes) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode PluginExecutorRequestTargetNodes to nil") + } + // Sum type fields. + if typ := d.Next(); typ != jx.Object { + return errors.Errorf("unexpected json type %q", typ) + } + + var found bool + if err := d.Capture(func(d *jx.Decoder) error { + return d.ObjBytes(func(d *jx.Decoder, key []byte) error { + switch string(key) { + case "nodeUuids": + // Type-based discrimination: check if field has expected JSON type + if typ := d.Next(); typ != jx.Array { + // Field exists but has wrong type, not a match for this variant + return d.Skip() + } + match := PluginExecutorRequestTargetNodes1PluginExecutorRequestTargetNodes + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "target": + // Value-based discrimination: check enum value + if typ := d.Next(); typ != jx.String { + return d.Skip() + } + value, err := d.StrBytes() + if err != nil { + return err + } + switch string(value) { + case "allNodes": + match := PluginExecutorRequestTargetNodes0PluginExecutorRequestTargetNodes + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + case "specificNodes": + match := PluginExecutorRequestTargetNodes1PluginExecutorRequestTargetNodes + if found && s.Type != match { + s.Type = "" + return errors.Errorf("multiple oneOf matches: (%v, %v)", s.Type, match) + } + found = true + s.Type = match + default: + // Unknown enum value, ignore and continue + } + return nil + } + return d.Skip() + }) + }); err != nil { + return errors.Wrap(err, "capture") + } + if !found { + return errors.New("unable to detect sum type variant") + } + switch s.Type { + case PluginExecutorRequestTargetNodes0PluginExecutorRequestTargetNodes: + if err := s.PluginExecutorRequestTargetNodes0.Decode(d); err != nil { + return err + } + case PluginExecutorRequestTargetNodes1PluginExecutorRequestTargetNodes: + if err := s.PluginExecutorRequestTargetNodes1.Decode(d); err != nil { + return err + } + default: + return errors.Errorf("inferred invalid type: %s", s.Type) + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s PluginExecutorRequestTargetNodes) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *PluginExecutorRequestTargetNodes) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *PluginExecutorRequestTargetNodes0) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *PluginExecutorRequestTargetNodes0) encodeFields(e *jx.Encoder) { + { + e.FieldStart("target") + s.Target.Encode(e) + } +} + +var jsonFieldsNameOfPluginExecutorRequestTargetNodes0 = [1]string{ + 0: "target", +} + +// Decode decodes PluginExecutorRequestTargetNodes0 from json. +func (s *PluginExecutorRequestTargetNodes0) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode PluginExecutorRequestTargetNodes0 to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "target": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Target.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"target\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode PluginExecutorRequestTargetNodes0") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfPluginExecutorRequestTargetNodes0) { + name = jsonFieldsNameOfPluginExecutorRequestTargetNodes0[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *PluginExecutorRequestTargetNodes0) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *PluginExecutorRequestTargetNodes0) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes PluginExecutorRequestTargetNodes0Target as json. +func (s PluginExecutorRequestTargetNodes0Target) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes PluginExecutorRequestTargetNodes0Target from json. +func (s *PluginExecutorRequestTargetNodes0Target) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode PluginExecutorRequestTargetNodes0Target to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch PluginExecutorRequestTargetNodes0Target(v) { + case PluginExecutorRequestTargetNodes0TargetAllNodes: + *s = PluginExecutorRequestTargetNodes0TargetAllNodes + default: + *s = PluginExecutorRequestTargetNodes0Target(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s PluginExecutorRequestTargetNodes0Target) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *PluginExecutorRequestTargetNodes0Target) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *PluginExecutorRequestTargetNodes1) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *PluginExecutorRequestTargetNodes1) encodeFields(e *jx.Encoder) { + { + e.FieldStart("target") + s.Target.Encode(e) + } + { + e.FieldStart("nodeUuids") + e.ArrStart() + for _, elem := range s.NodeUuids { + json.EncodeUUID(e, elem) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfPluginExecutorRequestTargetNodes1 = [2]string{ + 0: "target", + 1: "nodeUuids", +} + +// Decode decodes PluginExecutorRequestTargetNodes1 from json. +func (s *PluginExecutorRequestTargetNodes1) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode PluginExecutorRequestTargetNodes1 to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "target": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Target.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"target\"") + } + case "nodeUuids": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + s.NodeUuids = make([]uuid.UUID, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem uuid.UUID + v, err := json.DecodeUUID(d) + elem = v + if err != nil { + return err + } + s.NodeUuids = append(s.NodeUuids, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"nodeUuids\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode PluginExecutorRequestTargetNodes1") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfPluginExecutorRequestTargetNodes1) { + name = jsonFieldsNameOfPluginExecutorRequestTargetNodes1[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *PluginExecutorRequestTargetNodes1) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *PluginExecutorRequestTargetNodes1) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes PluginExecutorRequestTargetNodes1Target as json. +func (s PluginExecutorRequestTargetNodes1Target) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes PluginExecutorRequestTargetNodes1Target from json. +func (s *PluginExecutorRequestTargetNodes1Target) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode PluginExecutorRequestTargetNodes1Target to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch PluginExecutorRequestTargetNodes1Target(v) { + case PluginExecutorRequestTargetNodes1TargetSpecificNodes: + *s = PluginExecutorRequestTargetNodes1TargetSpecificNodes + default: + *s = PluginExecutorRequestTargetNodes1Target(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s PluginExecutorRequestTargetNodes1Target) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *PluginExecutorRequestTargetNodes1Target) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *Pocketid) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *Pocketid) encodeFields(e *jx.Encoder) { + { + e.FieldStart("enabled") + e.Bool(s.Enabled) + } + { + e.FieldStart("clientId") + s.ClientId.Encode(e) + } + { + e.FieldStart("clientSecret") + s.ClientSecret.Encode(e) + } + { + e.FieldStart("plainDomain") + s.PlainDomain.Encode(e) + } + { + e.FieldStart("allowedEmails") + e.ArrStart() + for _, elem := range s.AllowedEmails { + e.Str(elem) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfPocketid = [5]string{ + 0: "enabled", + 1: "clientId", + 2: "clientSecret", + 3: "plainDomain", + 4: "allowedEmails", +} + +// Decode decodes Pocketid from json. +func (s *Pocketid) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode Pocketid to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "enabled": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Bool() + s.Enabled = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"enabled\"") + } + case "clientId": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.ClientId.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"clientId\"") + } + case "clientSecret": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.ClientSecret.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"clientSecret\"") + } + case "plainDomain": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + if err := s.PlainDomain.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"plainDomain\"") + } + case "allowedEmails": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + s.AllowedEmails = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.AllowedEmails = append(s.AllowedEmails, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"allowedEmails\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode Pocketid") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00011111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfPocketid) { + name = jsonFieldsNameOfPocketid[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *Pocketid) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *Pocketid) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *ProfileModificationRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *ProfileModificationRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuids") + e.ArrStart() + for _, elem := range s.Uuids { + json.EncodeUUID(e, elem) + } + e.ArrEnd() + } + { + e.FieldStart("configProfile") + s.ConfigProfile.Encode(e) + } +} + +var jsonFieldsNameOfProfileModificationRequest = [2]string{ + 0: "uuids", + 1: "configProfile", +} + +// Decode decodes ProfileModificationRequest from json. +func (s *ProfileModificationRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ProfileModificationRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuids": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.Uuids = make([]uuid.UUID, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem uuid.UUID + v, err := json.DecodeUUID(d) + elem = v + if err != nil { + return err + } + s.Uuids = append(s.Uuids, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuids\"") + } + case "configProfile": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.ConfigProfile.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"configProfile\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode ProfileModificationRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfProfileModificationRequest) { + name = jsonFieldsNameOfProfileModificationRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *ProfileModificationRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ProfileModificationRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *ProfileModificationRequestConfigProfile) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *ProfileModificationRequestConfigProfile) encodeFields(e *jx.Encoder) { + { + e.FieldStart("activeConfigProfileUuid") + json.EncodeUUID(e, s.ActiveConfigProfileUuid) + } + { + e.FieldStart("activeInbounds") + e.ArrStart() + for _, elem := range s.ActiveInbounds { + json.EncodeUUID(e, elem) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfProfileModificationRequestConfigProfile = [2]string{ + 0: "activeConfigProfileUuid", + 1: "activeInbounds", +} + +// Decode decodes ProfileModificationRequestConfigProfile from json. +func (s *ProfileModificationRequestConfigProfile) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ProfileModificationRequestConfigProfile to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "activeConfigProfileUuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.ActiveConfigProfileUuid = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"activeConfigProfileUuid\"") + } + case "activeInbounds": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + s.ActiveInbounds = make([]uuid.UUID, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem uuid.UUID + v, err := json.DecodeUUID(d) + elem = v + if err != nil { + return err + } + s.ActiveInbounds = append(s.ActiveInbounds, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"activeInbounds\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode ProfileModificationRequestConfigProfile") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfProfileModificationRequestConfigProfile) { + name = jsonFieldsNameOfProfileModificationRequestConfigProfile[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *ProfileModificationRequestConfigProfile) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ProfileModificationRequestConfigProfile) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *Provider) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *Provider) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + e.FieldStart("name") + e.Str(s.Name) + } + { + e.FieldStart("faviconLink") + s.FaviconLink.Encode(e) + } + { + e.FieldStart("loginUrl") + s.LoginUrl.Encode(e) + } + { + e.FieldStart("createdAt") + json.EncodeDateTime(e, s.CreatedAt) + } + { + e.FieldStart("updatedAt") + json.EncodeDateTime(e, s.UpdatedAt) + } + { + e.FieldStart("billingHistory") + s.BillingHistory.Encode(e) + } + { + e.FieldStart("billingNodes") + e.ArrStart() + for _, elem := range s.BillingNodes { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfProvider = [8]string{ + 0: "uuid", + 1: "name", + 2: "faviconLink", + 3: "loginUrl", + 4: "createdAt", + 5: "updatedAt", + 6: "billingHistory", + 7: "billingNodes", +} + +// Decode decodes Provider from json. +func (s *Provider) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode Provider to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "name": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "faviconLink": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.FaviconLink.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"faviconLink\"") + } + case "loginUrl": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + if err := s.LoginUrl.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"loginUrl\"") + } + case "createdAt": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.CreatedAt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"createdAt\"") + } + case "updatedAt": + requiredBitSet[0] |= 1 << 5 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.UpdatedAt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"updatedAt\"") + } + case "billingHistory": + requiredBitSet[0] |= 1 << 6 + if err := func() error { + if err := s.BillingHistory.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"billingHistory\"") + } + case "billingNodes": + requiredBitSet[0] |= 1 << 7 + if err := func() error { + s.BillingNodes = make([]BillingNode, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem BillingNode + if err := elem.Decode(d); err != nil { + return err + } + s.BillingNodes = append(s.BillingNodes, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"billingNodes\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode Provider") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b11111111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfProvider) { + name = jsonFieldsNameOfProvider[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *Provider) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *Provider) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *ProviderItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *ProviderItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + e.FieldStart("name") + e.Str(s.Name) + } + { + e.FieldStart("faviconLink") + s.FaviconLink.Encode(e) + } + { + e.FieldStart("loginUrl") + s.LoginUrl.Encode(e) + } + { + e.FieldStart("createdAt") + json.EncodeDateTime(e, s.CreatedAt) + } + { + e.FieldStart("updatedAt") + json.EncodeDateTime(e, s.UpdatedAt) + } +} + +var jsonFieldsNameOfProviderItem = [6]string{ + 0: "uuid", + 1: "name", + 2: "faviconLink", + 3: "loginUrl", + 4: "createdAt", + 5: "updatedAt", +} + +// Decode decodes ProviderItem from json. +func (s *ProviderItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ProviderItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "name": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "faviconLink": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.FaviconLink.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"faviconLink\"") + } + case "loginUrl": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + if err := s.LoginUrl.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"loginUrl\"") + } + case "createdAt": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.CreatedAt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"createdAt\"") + } + case "updatedAt": + requiredBitSet[0] |= 1 << 5 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.UpdatedAt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"updatedAt\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode ProviderItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00111111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfProviderItem) { + name = jsonFieldsNameOfProviderItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *ProviderItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ProviderItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *Record) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *Record) encodeFields(e *jx.Encoder) { + { + e.FieldStart("id") + e.Float64(s.ID) + } + { + e.FieldStart("userUuid") + json.EncodeUUID(e, s.UserUuid) + } + { + e.FieldStart("requestAt") + json.EncodeDateTime(e, s.RequestAt) + } + { + e.FieldStart("requestIp") + s.RequestIp.Encode(e) + } + { + e.FieldStart("userAgent") + s.UserAgent.Encode(e) + } +} + +var jsonFieldsNameOfRecord = [5]string{ + 0: "id", + 1: "userUuid", + 2: "requestAt", + 3: "requestIp", + 4: "userAgent", +} + +// Decode decodes Record from json. +func (s *Record) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode Record to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "id": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Float64() + s.ID = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"id\"") + } + case "userUuid": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UserUuid = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"userUuid\"") + } + case "requestAt": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.RequestAt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"requestAt\"") + } + case "requestIp": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + if err := s.RequestIp.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"requestIp\"") + } + case "userAgent": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + if err := s.UserAgent.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"userAgent\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode Record") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00011111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfRecord) { + name = jsonFieldsNameOfRecord[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *Record) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *Record) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *RegisterRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *RegisterRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("username") + e.Str(s.Username) + } + { + e.FieldStart("password") + e.Str(s.Password) + } +} + +var jsonFieldsNameOfRegisterRequest = [2]string{ + 0: "username", + 1: "password", +} + +// Decode decodes RegisterRequest from json. +func (s *RegisterRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode RegisterRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "username": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Username = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"username\"") + } + case "password": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Password = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"password\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode RegisterRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfRegisterRequest) { + name = jsonFieldsNameOfRegisterRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *RegisterRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *RegisterRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *ReorderHostRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *ReorderHostRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("hosts") + e.ArrStart() + for _, elem := range s.Hosts { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfReorderHostRequest = [1]string{ + 0: "hosts", +} + +// Decode decodes ReorderHostRequest from json. +func (s *ReorderHostRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ReorderHostRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "hosts": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.Hosts = make([]ReorderRequestItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem ReorderRequestItem + if err := elem.Decode(d); err != nil { + return err + } + s.Hosts = append(s.Hosts, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"hosts\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode ReorderHostRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfReorderHostRequest) { + name = jsonFieldsNameOfReorderHostRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *ReorderHostRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ReorderHostRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *ReorderHostResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *ReorderHostResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfReorderHostResponse = [1]string{ + 0: "response", +} + +// Decode decodes ReorderHostResponse from json. +func (s *ReorderHostResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ReorderHostResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode ReorderHostResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfReorderHostResponse) { + name = jsonFieldsNameOfReorderHostResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *ReorderHostResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ReorderHostResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *ReorderHostResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *ReorderHostResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("isUpdated") + e.Bool(s.IsUpdated) + } +} + +var jsonFieldsNameOfReorderHostResponseResponse = [1]string{ + 0: "isUpdated", +} + +// Decode decodes ReorderHostResponseResponse from json. +func (s *ReorderHostResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ReorderHostResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "isUpdated": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Bool() + s.IsUpdated = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"isUpdated\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode ReorderHostResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfReorderHostResponseResponse) { + name = jsonFieldsNameOfReorderHostResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *ReorderHostResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ReorderHostResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *ReorderNodeRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *ReorderNodeRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("nodes") + e.ArrStart() + for _, elem := range s.Nodes { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfReorderNodeRequest = [1]string{ + 0: "nodes", +} + +// Decode decodes ReorderNodeRequest from json. +func (s *ReorderNodeRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ReorderNodeRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "nodes": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.Nodes = make([]ReorderRequestItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem ReorderRequestItem + if err := elem.Decode(d); err != nil { + return err + } + s.Nodes = append(s.Nodes, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"nodes\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode ReorderNodeRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfReorderNodeRequest) { + name = jsonFieldsNameOfReorderNodeRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *ReorderNodeRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ReorderNodeRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *ReorderRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *ReorderRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("items") + e.ArrStart() + for _, elem := range s.Items { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfReorderRequest = [1]string{ + 0: "items", +} + +// Decode decodes ReorderRequest from json. +func (s *ReorderRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ReorderRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "items": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.Items = make([]ReorderRequestItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem ReorderRequestItem + if err := elem.Decode(d); err != nil { + return err + } + s.Items = append(s.Items, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"items\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode ReorderRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfReorderRequest) { + name = jsonFieldsNameOfReorderRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *ReorderRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ReorderRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *ReorderRequestItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *ReorderRequestItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("viewPosition") + e.Int(s.ViewPosition) + } + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } +} + +var jsonFieldsNameOfReorderRequestItem = [2]string{ + 0: "viewPosition", + 1: "uuid", +} + +// Decode decodes ReorderRequestItem from json. +func (s *ReorderRequestItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ReorderRequestItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "viewPosition": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Int() + s.ViewPosition = int(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"viewPosition\"") + } + case "uuid": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode ReorderRequestItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfReorderRequestItem) { + name = jsonFieldsNameOfReorderRequestItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *ReorderRequestItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ReorderRequestItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *ReportItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *ReportItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("actionReport") + s.ActionReport.Encode(e) + } + { + e.FieldStart("xrayReport") + s.XrayReport.Encode(e) + } +} + +var jsonFieldsNameOfReportItem = [2]string{ + 0: "actionReport", + 1: "xrayReport", +} + +// Decode decodes ReportItem from json. +func (s *ReportItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ReportItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "actionReport": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.ActionReport.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"actionReport\"") + } + case "xrayReport": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.XrayReport.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"xrayReport\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode ReportItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfReportItem) { + name = jsonFieldsNameOfReportItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *ReportItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ReportItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *ResolveUserRequestBody) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *ResolveUserRequestBody) encodeFields(e *jx.Encoder) { + { + if s.UUID.Set { + e.FieldStart("uuid") + s.UUID.Encode(e) + } + } + { + if s.ID.Set { + e.FieldStart("id") + s.ID.Encode(e) + } + } + { + if s.ShortUuid.Set { + e.FieldStart("shortUuid") + s.ShortUuid.Encode(e) + } + } + { + if s.Username.Set { + e.FieldStart("username") + s.Username.Encode(e) + } + } +} + +var jsonFieldsNameOfResolveUserRequestBody = [4]string{ + 0: "uuid", + 1: "id", + 2: "shortUuid", + 3: "username", +} + +// Decode decodes ResolveUserRequestBody from json. +func (s *ResolveUserRequestBody) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ResolveUserRequestBody to nil") + } + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + if err := func() error { + s.UUID.Reset() + if err := s.UUID.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "id": + if err := func() error { + s.ID.Reset() + if err := s.ID.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"id\"") + } + case "shortUuid": + if err := func() error { + s.ShortUuid.Reset() + if err := s.ShortUuid.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"shortUuid\"") + } + case "username": + if err := func() error { + s.Username.Reset() + if err := s.Username.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"username\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode ResolveUserRequestBody") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *ResolveUserRequestBody) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ResolveUserRequestBody) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *ResolveUserResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *ResolveUserResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfResolveUserResponse = [1]string{ + 0: "response", +} + +// Decode decodes ResolveUserResponse from json. +func (s *ResolveUserResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ResolveUserResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode ResolveUserResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfResolveUserResponse) { + name = jsonFieldsNameOfResolveUserResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *ResolveUserResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ResolveUserResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *ResolveUserResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *ResolveUserResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + e.FieldStart("username") + e.Str(s.Username) + } + { + e.FieldStart("id") + e.Float64(s.ID) + } + { + e.FieldStart("shortUuid") + e.Str(s.ShortUuid) + } +} + +var jsonFieldsNameOfResolveUserResponseResponse = [4]string{ + 0: "uuid", + 1: "username", + 2: "id", + 3: "shortUuid", +} + +// Decode decodes ResolveUserResponseResponse from json. +func (s *ResolveUserResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ResolveUserResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "username": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Username = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"username\"") + } + case "id": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Float64() + s.ID = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"id\"") + } + case "shortUuid": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.Str() + s.ShortUuid = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"shortUuid\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode ResolveUserResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00001111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfResolveUserResponseResponse) { + name = jsonFieldsNameOfResolveUserResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *ResolveUserResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ResolveUserResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *ResponseModification) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *ResponseModification) encodeFields(e *jx.Encoder) { + { + if s.Headers != nil { + e.FieldStart("headers") + e.ArrStart() + for _, elem := range s.Headers { + elem.Encode(e) + } + e.ArrEnd() + } + } + { + if s.ApplyHeadersToEnd.Set { + e.FieldStart("applyHeadersToEnd") + s.ApplyHeadersToEnd.Encode(e) + } + } + { + if s.SubscriptionTemplate.Set { + e.FieldStart("subscriptionTemplate") + s.SubscriptionTemplate.Encode(e) + } + } + { + if s.IgnoreHostXrayJsonTemplate.Set { + e.FieldStart("ignoreHostXrayJsonTemplate") + s.IgnoreHostXrayJsonTemplate.Encode(e) + } + } + { + if s.IgnoreServeJsonAtBaseSubscription.Set { + e.FieldStart("ignoreServeJsonAtBaseSubscription") + s.IgnoreServeJsonAtBaseSubscription.Encode(e) + } + } + { + if s.AdditionalExtendedClientsRegex != nil { + e.FieldStart("additionalExtendedClientsRegex") + e.ArrStart() + for _, elem := range s.AdditionalExtendedClientsRegex { + e.Str(elem) + } + e.ArrEnd() + } + } +} + +var jsonFieldsNameOfResponseModification = [6]string{ + 0: "headers", + 1: "applyHeadersToEnd", + 2: "subscriptionTemplate", + 3: "ignoreHostXrayJsonTemplate", + 4: "ignoreServeJsonAtBaseSubscription", + 5: "additionalExtendedClientsRegex", +} + +// Decode decodes ResponseModification from json. +func (s *ResponseModification) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ResponseModification to nil") + } + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "headers": + if err := func() error { + s.Headers = make([]Header, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem Header + if err := elem.Decode(d); err != nil { + return err + } + s.Headers = append(s.Headers, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"headers\"") + } + case "applyHeadersToEnd": + if err := func() error { + s.ApplyHeadersToEnd.Reset() + if err := s.ApplyHeadersToEnd.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"applyHeadersToEnd\"") + } + case "subscriptionTemplate": + if err := func() error { + s.SubscriptionTemplate.Reset() + if err := s.SubscriptionTemplate.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"subscriptionTemplate\"") + } + case "ignoreHostXrayJsonTemplate": + if err := func() error { + s.IgnoreHostXrayJsonTemplate.Reset() + if err := s.IgnoreHostXrayJsonTemplate.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"ignoreHostXrayJsonTemplate\"") + } + case "ignoreServeJsonAtBaseSubscription": + if err := func() error { + s.IgnoreServeJsonAtBaseSubscription.Reset() + if err := s.IgnoreServeJsonAtBaseSubscription.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"ignoreServeJsonAtBaseSubscription\"") + } + case "additionalExtendedClientsRegex": + if err := func() error { + s.AdditionalExtendedClientsRegex = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.AdditionalExtendedClientsRegex = append(s.AdditionalExtendedClientsRegex, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"additionalExtendedClientsRegex\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode ResponseModification") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *ResponseModification) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ResponseModification) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *ResponseRules) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *ResponseRules) encodeFields(e *jx.Encoder) { + { + e.FieldStart("version") + s.Version.Encode(e) + } + { + if s.Settings.Set { + e.FieldStart("settings") + s.Settings.Encode(e) + } + } + { + e.FieldStart("rules") + e.ArrStart() + for _, elem := range s.Rules { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfResponseRules = [3]string{ + 0: "version", + 1: "settings", + 2: "rules", +} + +// Decode decodes ResponseRules from json. +func (s *ResponseRules) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ResponseRules to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "version": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Version.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"version\"") + } + case "settings": + if err := func() error { + s.Settings.Reset() + if err := s.Settings.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"settings\"") + } + case "rules": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + s.Rules = make([]Rule, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem Rule + if err := elem.Decode(d); err != nil { + return err + } + s.Rules = append(s.Rules, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"rules\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode ResponseRules") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000101, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfResponseRules) { + name = jsonFieldsNameOfResponseRules[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *ResponseRules) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ResponseRules) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes ResponseRulesVersion as json. +func (s ResponseRulesVersion) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes ResponseRulesVersion from json. +func (s *ResponseRulesVersion) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ResponseRulesVersion to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch ResponseRulesVersion(v) { + case ResponseRulesVersion1: + *s = ResponseRulesVersion1 + default: + *s = ResponseRulesVersion(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s ResponseRulesVersion) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ResponseRulesVersion) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *RestartAllNodesRequestBody) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *RestartAllNodesRequestBody) encodeFields(e *jx.Encoder) { + { + if s.ForceRestart.Set { + e.FieldStart("forceRestart") + s.ForceRestart.Encode(e) + } + } +} + +var jsonFieldsNameOfRestartAllNodesRequestBody = [1]string{ + 0: "forceRestart", +} + +// Decode decodes RestartAllNodesRequestBody from json. +func (s *RestartAllNodesRequestBody) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode RestartAllNodesRequestBody to nil") + } + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "forceRestart": + if err := func() error { + s.ForceRestart.Reset() + if err := s.ForceRestart.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"forceRestart\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode RestartAllNodesRequestBody") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *RestartAllNodesRequestBody) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *RestartAllNodesRequestBody) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *RevokeUserSubscriptionBody) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *RevokeUserSubscriptionBody) encodeFields(e *jx.Encoder) { + { + if s.RevokeOnlyPasswords.Set { + e.FieldStart("revokeOnlyPasswords") + s.RevokeOnlyPasswords.Encode(e) + } + } + { + if s.ShortUuid.Set { + e.FieldStart("shortUuid") + s.ShortUuid.Encode(e) + } + } +} + +var jsonFieldsNameOfRevokeUserSubscriptionBody = [2]string{ + 0: "revokeOnlyPasswords", + 1: "shortUuid", +} + +// Decode decodes RevokeUserSubscriptionBody from json. +func (s *RevokeUserSubscriptionBody) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode RevokeUserSubscriptionBody to nil") + } + s.setDefaults() + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "revokeOnlyPasswords": + if err := func() error { + s.RevokeOnlyPasswords.Reset() + if err := s.RevokeOnlyPasswords.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"revokeOnlyPasswords\"") + } + case "shortUuid": + if err := func() error { + s.ShortUuid.Reset() + if err := s.ShortUuid.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"shortUuid\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode RevokeUserSubscriptionBody") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *RevokeUserSubscriptionBody) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *RevokeUserSubscriptionBody) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *Rule) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *Rule) encodeFields(e *jx.Encoder) { + { + e.FieldStart("name") + e.Str(s.Name) + } + { + if s.Description.Set { + e.FieldStart("description") + s.Description.Encode(e) + } + } + { + e.FieldStart("enabled") + e.Bool(s.Enabled) + } + { + e.FieldStart("operator") + s.Operator.Encode(e) + } + { + e.FieldStart("conditions") + e.ArrStart() + for _, elem := range s.Conditions { + elem.Encode(e) + } + e.ArrEnd() + } + { + e.FieldStart("responseType") + s.ResponseType.Encode(e) + } + { + if s.ResponseModifications.Set { + e.FieldStart("responseModifications") + s.ResponseModifications.Encode(e) + } + } +} + +var jsonFieldsNameOfRule = [7]string{ + 0: "name", + 1: "description", + 2: "enabled", + 3: "operator", + 4: "conditions", + 5: "responseType", + 6: "responseModifications", +} + +// Decode decodes Rule from json. +func (s *Rule) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode Rule to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "name": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "description": + if err := func() error { + s.Description.Reset() + if err := s.Description.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"description\"") + } + case "enabled": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Bool() + s.Enabled = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"enabled\"") + } + case "operator": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + if err := s.Operator.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"operator\"") + } + case "conditions": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + s.Conditions = make([]Condition, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem Condition + if err := elem.Decode(d); err != nil { + return err + } + s.Conditions = append(s.Conditions, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"conditions\"") + } + case "responseType": + requiredBitSet[0] |= 1 << 5 + if err := func() error { + if err := s.ResponseType.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"responseType\"") + } + case "responseModifications": + if err := func() error { + s.ResponseModifications.Reset() + if err := s.ResponseModifications.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"responseModifications\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode Rule") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00111101, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfRule) { + name = jsonFieldsNameOfRule[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *Rule) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *Rule) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes RuleOperator as json. +func (s RuleOperator) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes RuleOperator from json. +func (s *RuleOperator) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode RuleOperator to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch RuleOperator(v) { + case RuleOperatorAND: + *s = RuleOperatorAND + case RuleOperatorOR: + *s = RuleOperatorOR + default: + *s = RuleOperator(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s RuleOperator) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *RuleOperator) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes RuleResponseType as json. +func (s RuleResponseType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes RuleResponseType from json. +func (s *RuleResponseType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode RuleResponseType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch RuleResponseType(v) { + case RuleResponseTypeXRAYJSON: + *s = RuleResponseTypeXRAYJSON + case RuleResponseTypeXRAYBASE64: + *s = RuleResponseTypeXRAYBASE64 + case RuleResponseTypeMIHOMO: + *s = RuleResponseTypeMIHOMO + case RuleResponseTypeSTASH: + *s = RuleResponseTypeSTASH + case RuleResponseTypeCLASH: + *s = RuleResponseTypeCLASH + case RuleResponseTypeSINGBOX: + *s = RuleResponseTypeSINGBOX + case RuleResponseTypeBROWSER: + *s = RuleResponseTypeBROWSER + case RuleResponseTypeBLOCK: + *s = RuleResponseTypeBLOCK + case RuleResponseTypeSTATUSCODE404: + *s = RuleResponseTypeSTATUSCODE404 + case RuleResponseTypeSTATUSCODE451: + *s = RuleResponseTypeSTATUSCODE451 + case RuleResponseTypeSOCKETDROP: + *s = RuleResponseTypeSOCKETDROP + default: + *s = RuleResponseType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s RuleResponseType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *RuleResponseType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *SetInboundToManyHostsRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *SetInboundToManyHostsRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuids") + e.ArrStart() + for _, elem := range s.Uuids { + json.EncodeUUID(e, elem) + } + e.ArrEnd() + } + { + e.FieldStart("configProfileUuid") + json.EncodeUUID(e, s.ConfigProfileUuid) + } + { + e.FieldStart("configProfileInboundUuid") + json.EncodeUUID(e, s.ConfigProfileInboundUuid) + } +} + +var jsonFieldsNameOfSetInboundToManyHostsRequest = [3]string{ + 0: "uuids", + 1: "configProfileUuid", + 2: "configProfileInboundUuid", +} + +// Decode decodes SetInboundToManyHostsRequest from json. +func (s *SetInboundToManyHostsRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode SetInboundToManyHostsRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuids": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.Uuids = make([]uuid.UUID, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem uuid.UUID + v, err := json.DecodeUUID(d) + elem = v + if err != nil { + return err + } + s.Uuids = append(s.Uuids, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuids\"") + } + case "configProfileUuid": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := json.DecodeUUID(d) + s.ConfigProfileUuid = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"configProfileUuid\"") + } + case "configProfileInboundUuid": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := json.DecodeUUID(d) + s.ConfigProfileInboundUuid = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"configProfileInboundUuid\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode SetInboundToManyHostsRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfSetInboundToManyHostsRequest) { + name = jsonFieldsNameOfSetInboundToManyHostsRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *SetInboundToManyHostsRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *SetInboundToManyHostsRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *SetPortToManyHostsRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *SetPortToManyHostsRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuids") + e.ArrStart() + for _, elem := range s.Uuids { + json.EncodeUUID(e, elem) + } + e.ArrEnd() + } + { + e.FieldStart("port") + e.Int(s.Port) + } +} + +var jsonFieldsNameOfSetPortToManyHostsRequest = [2]string{ + 0: "uuids", + 1: "port", +} + +// Decode decodes SetPortToManyHostsRequest from json. +func (s *SetPortToManyHostsRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode SetPortToManyHostsRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuids": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.Uuids = make([]uuid.UUID, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem uuid.UUID + v, err := json.DecodeUUID(d) + elem = v + if err != nil { + return err + } + s.Uuids = append(s.Uuids, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuids\"") + } + case "port": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Int() + s.Port = int(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"port\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode SetPortToManyHostsRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfSetPortToManyHostsRequest) { + name = jsonFieldsNameOfSetPortToManyHostsRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *SetPortToManyHostsRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *SetPortToManyHostsRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *SettingsResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *SettingsResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfSettingsResponse = [1]string{ + 0: "response", +} + +// Decode decodes SettingsResponse from json. +func (s *SettingsResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode SettingsResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode SettingsResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfSettingsResponse) { + name = jsonFieldsNameOfSettingsResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *SettingsResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *SettingsResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *SettingsResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *SettingsResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("passkeySettings") + s.PasskeySettings.Encode(e) + } + { + e.FieldStart("oauth2Settings") + s.Oauth2Settings.Encode(e) + } + { + e.FieldStart("passwordSettings") + s.PasswordSettings.Encode(e) + } + { + e.FieldStart("brandingSettings") + s.BrandingSettings.Encode(e) + } +} + +var jsonFieldsNameOfSettingsResponseResponse = [4]string{ + 0: "passkeySettings", + 1: "oauth2Settings", + 2: "passwordSettings", + 3: "brandingSettings", +} + +// Decode decodes SettingsResponseResponse from json. +func (s *SettingsResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode SettingsResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "passkeySettings": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.PasskeySettings.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"passkeySettings\"") + } + case "oauth2Settings": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.Oauth2Settings.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"oauth2Settings\"") + } + case "passwordSettings": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.PasswordSettings.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"passwordSettings\"") + } + case "brandingSettings": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + if err := s.BrandingSettings.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"brandingSettings\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode SettingsResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00001111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfSettingsResponseResponse) { + name = jsonFieldsNameOfSettingsResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *SettingsResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *SettingsResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *SnippetRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *SnippetRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("name") + e.Str(s.Name) + } + { + e.FieldStart("snippet") + e.ArrStart() + for _, elem := range s.Snippet { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfSnippetRequest = [2]string{ + 0: "name", + 1: "snippet", +} + +// Decode decodes SnippetRequest from json. +func (s *SnippetRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode SnippetRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "name": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "snippet": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + s.Snippet = make([]SnippetRequestSnippetItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem SnippetRequestSnippetItem + if err := elem.Decode(d); err != nil { + return err + } + s.Snippet = append(s.Snippet, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"snippet\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode SnippetRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfSnippetRequest) { + name = jsonFieldsNameOfSnippetRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *SnippetRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *SnippetRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *SnippetRequestSnippetItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *SnippetRequestSnippetItem) encodeFields(e *jx.Encoder) { +} + +var jsonFieldsNameOfSnippetRequestSnippetItem = [0]string{} + +// Decode decodes SnippetRequestSnippetItem from json. +func (s *SnippetRequestSnippetItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode SnippetRequestSnippetItem to nil") + } + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + default: + return d.Skip() + } + }); err != nil { + return errors.Wrap(err, "decode SnippetRequestSnippetItem") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *SnippetRequestSnippetItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *SnippetRequestSnippetItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *SnippetsResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *SnippetsResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfSnippetsResponse = [1]string{ + 0: "response", +} + +// Decode decodes SnippetsResponse from json. +func (s *SnippetsResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode SnippetsResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode SnippetsResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfSnippetsResponse) { + name = jsonFieldsNameOfSnippetsResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *SnippetsResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *SnippetsResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *SnippetsResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *SnippetsResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("total") + e.Float64(s.Total) + } + { + e.FieldStart("snippets") + e.ArrStart() + for _, elem := range s.Snippets { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfSnippetsResponseResponse = [2]string{ + 0: "total", + 1: "snippets", +} + +// Decode decodes SnippetsResponseResponse from json. +func (s *SnippetsResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode SnippetsResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "total": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Float64() + s.Total = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"total\"") + } + case "snippets": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + s.Snippets = make([]SnippetsResponseResponseSnippetsItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem SnippetsResponseResponseSnippetsItem + if err := elem.Decode(d); err != nil { + return err + } + s.Snippets = append(s.Snippets, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"snippets\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode SnippetsResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfSnippetsResponseResponse) { + name = jsonFieldsNameOfSnippetsResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *SnippetsResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *SnippetsResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *SnippetsResponseResponseSnippetsItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *SnippetsResponseResponseSnippetsItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("name") + e.Str(s.Name) + } + { + if len(s.Snippet) != 0 { + e.FieldStart("snippet") + e.Raw(s.Snippet) + } + } +} + +var jsonFieldsNameOfSnippetsResponseResponseSnippetsItem = [2]string{ + 0: "name", + 1: "snippet", +} + +// Decode decodes SnippetsResponseResponseSnippetsItem from json. +func (s *SnippetsResponseResponseSnippetsItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode SnippetsResponseResponseSnippetsItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "name": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "snippet": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.RawAppend(nil) + s.Snippet = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"snippet\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode SnippetsResponseResponseSnippetsItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfSnippetsResponseResponseSnippetsItem) { + name = jsonFieldsNameOfSnippetsResponseResponseSnippetsItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *SnippetsResponseResponseSnippetsItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *SnippetsResponseResponseSnippetsItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *Stat) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *Stat) encodeFields(e *jx.Encoder) { + { + e.FieldStart("memoryFree") + e.Float64(s.MemoryFree) + } + { + e.FieldStart("memoryUsed") + e.Float64(s.MemoryUsed) + } + { + e.FieldStart("uptime") + e.Float64(s.Uptime) + } + { + e.FieldStart("loadAvg") + e.ArrStart() + for _, elem := range s.LoadAvg { + e.Float64(elem) + } + e.ArrEnd() + } + { + e.FieldStart("interface") + s.Interface.Encode(e) + } +} + +var jsonFieldsNameOfStat = [5]string{ + 0: "memoryFree", + 1: "memoryUsed", + 2: "uptime", + 3: "loadAvg", + 4: "interface", +} + +// Decode decodes Stat from json. +func (s *Stat) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode Stat to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "memoryFree": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Float64() + s.MemoryFree = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"memoryFree\"") + } + case "memoryUsed": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Float64() + s.MemoryUsed = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"memoryUsed\"") + } + case "uptime": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Float64() + s.Uptime = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uptime\"") + } + case "loadAvg": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + s.LoadAvg = make([]float64, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem float64 + v, err := d.Float64() + elem = float64(v) + if err != nil { + return err + } + s.LoadAvg = append(s.LoadAvg, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"loadAvg\"") + } + case "interface": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + if err := s.Interface.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"interface\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode Stat") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00011111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfStat) { + name = jsonFieldsNameOfStat[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *Stat) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *Stat) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *StatsUserUsageResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *StatsUserUsageResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfStatsUserUsageResponseResponse = [1]string{ + 0: "response", +} + +// Decode decodes StatsUserUsageResponseResponse from json. +func (s *StatsUserUsageResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode StatsUserUsageResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode StatsUserUsageResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfStatsUserUsageResponseResponse) { + name = jsonFieldsNameOfStatsUserUsageResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *StatsUserUsageResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *StatsUserUsageResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *StatsUserUsageResponseResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *StatsUserUsageResponseResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("categories") + e.ArrStart() + for _, elem := range s.Categories { + e.Str(elem) + } + e.ArrEnd() + } + { + e.FieldStart("sparklineData") + e.ArrStart() + for _, elem := range s.SparklineData { + e.Float64(elem) + } + e.ArrEnd() + } + { + e.FieldStart("topNodes") + e.ArrStart() + for _, elem := range s.TopNodes { + elem.Encode(e) + } + e.ArrEnd() + } + { + e.FieldStart("series") + e.ArrStart() + for _, elem := range s.Series { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfStatsUserUsageResponseResponseResponse = [4]string{ + 0: "categories", + 1: "sparklineData", + 2: "topNodes", + 3: "series", +} + +// Decode decodes StatsUserUsageResponseResponseResponse from json. +func (s *StatsUserUsageResponseResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode StatsUserUsageResponseResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "categories": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.Categories = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.Categories = append(s.Categories, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"categories\"") + } + case "sparklineData": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + s.SparklineData = make([]float64, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem float64 + v, err := d.Float64() + elem = float64(v) + if err != nil { + return err + } + s.SparklineData = append(s.SparklineData, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"sparklineData\"") + } + case "topNodes": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + s.TopNodes = make([]TopNode, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem TopNode + if err := elem.Decode(d); err != nil { + return err + } + s.TopNodes = append(s.TopNodes, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"topNodes\"") + } + case "series": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + s.Series = make([]StatsUserUsageResponseResponseResponseSeriesItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem StatsUserUsageResponseResponseResponseSeriesItem + if err := elem.Decode(d); err != nil { + return err + } + s.Series = append(s.Series, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"series\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode StatsUserUsageResponseResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00001111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfStatsUserUsageResponseResponseResponse) { + name = jsonFieldsNameOfStatsUserUsageResponseResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *StatsUserUsageResponseResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *StatsUserUsageResponseResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *StatsUserUsageResponseResponseResponseSeriesItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *StatsUserUsageResponseResponseResponseSeriesItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + e.FieldStart("name") + e.Str(s.Name) + } + { + e.FieldStart("color") + e.Str(s.Color) + } + { + e.FieldStart("countryCode") + e.Str(s.CountryCode) + } + { + e.FieldStart("total") + e.Float64(s.Total) + } + { + e.FieldStart("data") + e.ArrStart() + for _, elem := range s.Data { + e.Float64(elem) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfStatsUserUsageResponseResponseResponseSeriesItem = [6]string{ + 0: "uuid", + 1: "name", + 2: "color", + 3: "countryCode", + 4: "total", + 5: "data", +} + +// Decode decodes StatsUserUsageResponseResponseResponseSeriesItem from json. +func (s *StatsUserUsageResponseResponseResponseSeriesItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode StatsUserUsageResponseResponseResponseSeriesItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "name": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "color": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.Color = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"color\"") + } + case "countryCode": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.Str() + s.CountryCode = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"countryCode\"") + } + case "total": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + v, err := d.Float64() + s.Total = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"total\"") + } + case "data": + requiredBitSet[0] |= 1 << 5 + if err := func() error { + s.Data = make([]float64, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem float64 + v, err := d.Float64() + elem = float64(v) + if err != nil { + return err + } + s.Data = append(s.Data, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"data\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode StatsUserUsageResponseResponseResponseSeriesItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00111111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfStatsUserUsageResponseResponseResponseSeriesItem) { + name = jsonFieldsNameOfStatsUserUsageResponseResponseResponseSeriesItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *StatsUserUsageResponseResponseResponseSeriesItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *StatsUserUsageResponseResponseResponseSeriesItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *Subscription) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *Subscription) encodeFields(e *jx.Encoder) { + { + e.FieldStart("isFound") + e.Bool(s.IsFound) + } + { + e.FieldStart("user") + s.User.Encode(e) + } + { + e.FieldStart("links") + e.ArrStart() + for _, elem := range s.Links { + e.Str(elem) + } + e.ArrEnd() + } + { + e.FieldStart("ssConfLinks") + s.SsConfLinks.Encode(e) + } + { + e.FieldStart("subscriptionUrl") + e.Str(s.SubscriptionUrl) + } +} + +var jsonFieldsNameOfSubscription = [5]string{ + 0: "isFound", + 1: "user", + 2: "links", + 3: "ssConfLinks", + 4: "subscriptionUrl", +} + +// Decode decodes Subscription from json. +func (s *Subscription) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode Subscription to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "isFound": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Bool() + s.IsFound = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"isFound\"") + } + case "user": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.User.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"user\"") + } + case "links": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + s.Links = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.Links = append(s.Links, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"links\"") + } + case "ssConfLinks": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + if err := s.SsConfLinks.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"ssConfLinks\"") + } + case "subscriptionUrl": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + v, err := d.Str() + s.SubscriptionUrl = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"subscriptionUrl\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode Subscription") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00011111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfSubscription) { + name = jsonFieldsNameOfSubscription[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *Subscription) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *Subscription) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *SubscriptionPageConfigResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *SubscriptionPageConfigResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfSubscriptionPageConfigResponseResponse = [1]string{ + 0: "response", +} + +// Decode decodes SubscriptionPageConfigResponseResponse from json. +func (s *SubscriptionPageConfigResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode SubscriptionPageConfigResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode SubscriptionPageConfigResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfSubscriptionPageConfigResponseResponse) { + name = jsonFieldsNameOfSubscriptionPageConfigResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *SubscriptionPageConfigResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *SubscriptionPageConfigResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *SubscriptionPageConfigResponseResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *SubscriptionPageConfigResponseResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + e.FieldStart("viewPosition") + e.Int(s.ViewPosition) + } + { + e.FieldStart("name") + e.Str(s.Name) + } + { + if len(s.Config) != 0 { + e.FieldStart("config") + e.Raw(s.Config) + } + } +} + +var jsonFieldsNameOfSubscriptionPageConfigResponseResponseResponse = [4]string{ + 0: "uuid", + 1: "viewPosition", + 2: "name", + 3: "config", +} + +// Decode decodes SubscriptionPageConfigResponseResponseResponse from json. +func (s *SubscriptionPageConfigResponseResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode SubscriptionPageConfigResponseResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "viewPosition": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Int() + s.ViewPosition = int(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"viewPosition\"") + } + case "name": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "config": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.RawAppend(nil) + s.Config = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"config\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode SubscriptionPageConfigResponseResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00001111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfSubscriptionPageConfigResponseResponseResponse) { + name = jsonFieldsNameOfSubscriptionPageConfigResponseResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *SubscriptionPageConfigResponseResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *SubscriptionPageConfigResponseResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *SubscriptionPageConfigsResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *SubscriptionPageConfigsResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfSubscriptionPageConfigsResponseResponse = [1]string{ + 0: "response", +} + +// Decode decodes SubscriptionPageConfigsResponseResponse from json. +func (s *SubscriptionPageConfigsResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode SubscriptionPageConfigsResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode SubscriptionPageConfigsResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfSubscriptionPageConfigsResponseResponse) { + name = jsonFieldsNameOfSubscriptionPageConfigsResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *SubscriptionPageConfigsResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *SubscriptionPageConfigsResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *SubscriptionPageConfigsResponseResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *SubscriptionPageConfigsResponseResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("total") + e.Float64(s.Total) + } + { + e.FieldStart("configs") + e.ArrStart() + for _, elem := range s.Configs { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfSubscriptionPageConfigsResponseResponseResponse = [2]string{ + 0: "total", + 1: "configs", +} + +// Decode decodes SubscriptionPageConfigsResponseResponseResponse from json. +func (s *SubscriptionPageConfigsResponseResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode SubscriptionPageConfigsResponseResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "total": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Float64() + s.Total = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"total\"") + } + case "configs": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + s.Configs = make([]Config, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem Config + if err := elem.Decode(d); err != nil { + return err + } + s.Configs = append(s.Configs, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"configs\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode SubscriptionPageConfigsResponseResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfSubscriptionPageConfigsResponseResponseResponse) { + name = jsonFieldsNameOfSubscriptionPageConfigsResponseResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *SubscriptionPageConfigsResponseResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *SubscriptionPageConfigsResponseResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *SubscriptionResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *SubscriptionResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfSubscriptionResponse = [1]string{ + 0: "response", +} + +// Decode decodes SubscriptionResponse from json. +func (s *SubscriptionResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode SubscriptionResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode SubscriptionResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfSubscriptionResponse) { + name = jsonFieldsNameOfSubscriptionResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *SubscriptionResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *SubscriptionResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *SubscriptionSettings) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *SubscriptionSettings) encodeFields(e *jx.Encoder) { + { + if s.ProfileTitle.Set { + e.FieldStart("profileTitle") + s.ProfileTitle.Encode(e) + } + } + { + if s.SupportLink.Set { + e.FieldStart("supportLink") + s.SupportLink.Encode(e) + } + } + { + if s.ProfileUpdateInterval.Set { + e.FieldStart("profileUpdateInterval") + s.ProfileUpdateInterval.Encode(e) + } + } + { + if s.IsProfileWebpageUrlEnabled.Set { + e.FieldStart("isProfileWebpageUrlEnabled") + s.IsProfileWebpageUrlEnabled.Encode(e) + } + } + { + if s.ServeJsonAtBaseSubscription.Set { + e.FieldStart("serveJsonAtBaseSubscription") + s.ServeJsonAtBaseSubscription.Encode(e) + } + } + { + if s.IsShowCustomRemarks.Set { + e.FieldStart("isShowCustomRemarks") + s.IsShowCustomRemarks.Encode(e) + } + } + { + if s.HappAnnounce.Set { + e.FieldStart("happAnnounce") + s.HappAnnounce.Encode(e) + } + } + { + if s.HappRouting.Set { + e.FieldStart("happRouting") + s.HappRouting.Encode(e) + } + } + { + if s.RandomizeHosts.Set { + e.FieldStart("randomizeHosts") + s.RandomizeHosts.Encode(e) + } + } +} + +var jsonFieldsNameOfSubscriptionSettings = [9]string{ + 0: "profileTitle", + 1: "supportLink", + 2: "profileUpdateInterval", + 3: "isProfileWebpageUrlEnabled", + 4: "serveJsonAtBaseSubscription", + 5: "isShowCustomRemarks", + 6: "happAnnounce", + 7: "happRouting", + 8: "randomizeHosts", +} + +// Decode decodes SubscriptionSettings from json. +func (s *SubscriptionSettings) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode SubscriptionSettings to nil") + } + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "profileTitle": + if err := func() error { + s.ProfileTitle.Reset() + if err := s.ProfileTitle.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"profileTitle\"") + } + case "supportLink": + if err := func() error { + s.SupportLink.Reset() + if err := s.SupportLink.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"supportLink\"") + } + case "profileUpdateInterval": + if err := func() error { + s.ProfileUpdateInterval.Reset() + if err := s.ProfileUpdateInterval.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"profileUpdateInterval\"") + } + case "isProfileWebpageUrlEnabled": + if err := func() error { + s.IsProfileWebpageUrlEnabled.Reset() + if err := s.IsProfileWebpageUrlEnabled.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"isProfileWebpageUrlEnabled\"") + } + case "serveJsonAtBaseSubscription": + if err := func() error { + s.ServeJsonAtBaseSubscription.Reset() + if err := s.ServeJsonAtBaseSubscription.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"serveJsonAtBaseSubscription\"") + } + case "isShowCustomRemarks": + if err := func() error { + s.IsShowCustomRemarks.Reset() + if err := s.IsShowCustomRemarks.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"isShowCustomRemarks\"") + } + case "happAnnounce": + if err := func() error { + s.HappAnnounce.Reset() + if err := s.HappAnnounce.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"happAnnounce\"") + } + case "happRouting": + if err := func() error { + s.HappRouting.Reset() + if err := s.HappRouting.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"happRouting\"") + } + case "randomizeHosts": + if err := func() error { + s.RandomizeHosts.Reset() + if err := s.RandomizeHosts.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"randomizeHosts\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode SubscriptionSettings") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *SubscriptionSettings) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *SubscriptionSettings) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *SubscriptionSettingsResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *SubscriptionSettingsResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfSubscriptionSettingsResponse = [1]string{ + 0: "response", +} + +// Decode decodes SubscriptionSettingsResponse from json. +func (s *SubscriptionSettingsResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode SubscriptionSettingsResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode SubscriptionSettingsResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfSubscriptionSettingsResponse) { + name = jsonFieldsNameOfSubscriptionSettingsResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *SubscriptionSettingsResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *SubscriptionSettingsResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *SubscriptionSettingsResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *SubscriptionSettingsResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + e.FieldStart("profileTitle") + e.Str(s.ProfileTitle) + } + { + e.FieldStart("supportLink") + e.Str(s.SupportLink) + } + { + e.FieldStart("profileUpdateInterval") + e.Int(s.ProfileUpdateInterval) + } + { + e.FieldStart("isProfileWebpageUrlEnabled") + e.Bool(s.IsProfileWebpageUrlEnabled) + } + { + e.FieldStart("serveJsonAtBaseSubscription") + e.Bool(s.ServeJsonAtBaseSubscription) + } + { + e.FieldStart("isShowCustomRemarks") + e.Bool(s.IsShowCustomRemarks) + } + { + e.FieldStart("customRemarks") + s.CustomRemarks.Encode(e) + } + { + e.FieldStart("happAnnounce") + s.HappAnnounce.Encode(e) + } + { + e.FieldStart("happRouting") + s.HappRouting.Encode(e) + } + { + e.FieldStart("customResponseHeaders") + s.CustomResponseHeaders.Encode(e) + } + { + e.FieldStart("randomizeHosts") + e.Bool(s.RandomizeHosts) + } + { + e.FieldStart("responseRules") + s.ResponseRules.Encode(e) + } + { + e.FieldStart("hwidSettings") + s.HwidSettings.Encode(e) + } + { + e.FieldStart("createdAt") + json.EncodeDateTime(e, s.CreatedAt) + } + { + e.FieldStart("updatedAt") + json.EncodeDateTime(e, s.UpdatedAt) + } +} + +var jsonFieldsNameOfSubscriptionSettingsResponseResponse = [16]string{ + 0: "uuid", + 1: "profileTitle", + 2: "supportLink", + 3: "profileUpdateInterval", + 4: "isProfileWebpageUrlEnabled", + 5: "serveJsonAtBaseSubscription", + 6: "isShowCustomRemarks", + 7: "customRemarks", + 8: "happAnnounce", + 9: "happRouting", + 10: "customResponseHeaders", + 11: "randomizeHosts", + 12: "responseRules", + 13: "hwidSettings", + 14: "createdAt", + 15: "updatedAt", +} + +// Decode decodes SubscriptionSettingsResponseResponse from json. +func (s *SubscriptionSettingsResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode SubscriptionSettingsResponseResponse to nil") + } + var requiredBitSet [2]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "profileTitle": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.ProfileTitle = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"profileTitle\"") + } + case "supportLink": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.SupportLink = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"supportLink\"") + } + case "profileUpdateInterval": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.Int() + s.ProfileUpdateInterval = int(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"profileUpdateInterval\"") + } + case "isProfileWebpageUrlEnabled": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + v, err := d.Bool() + s.IsProfileWebpageUrlEnabled = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"isProfileWebpageUrlEnabled\"") + } + case "serveJsonAtBaseSubscription": + requiredBitSet[0] |= 1 << 5 + if err := func() error { + v, err := d.Bool() + s.ServeJsonAtBaseSubscription = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"serveJsonAtBaseSubscription\"") + } + case "isShowCustomRemarks": + requiredBitSet[0] |= 1 << 6 + if err := func() error { + v, err := d.Bool() + s.IsShowCustomRemarks = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"isShowCustomRemarks\"") + } + case "customRemarks": + requiredBitSet[0] |= 1 << 7 + if err := func() error { + if err := s.CustomRemarks.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"customRemarks\"") + } + case "happAnnounce": + requiredBitSet[1] |= 1 << 0 + if err := func() error { + if err := s.HappAnnounce.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"happAnnounce\"") + } + case "happRouting": + requiredBitSet[1] |= 1 << 1 + if err := func() error { + if err := s.HappRouting.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"happRouting\"") + } + case "customResponseHeaders": + requiredBitSet[1] |= 1 << 2 + if err := func() error { + if err := s.CustomResponseHeaders.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"customResponseHeaders\"") + } + case "randomizeHosts": + requiredBitSet[1] |= 1 << 3 + if err := func() error { + v, err := d.Bool() + s.RandomizeHosts = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"randomizeHosts\"") + } + case "responseRules": + requiredBitSet[1] |= 1 << 4 + if err := func() error { + if err := s.ResponseRules.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"responseRules\"") + } + case "hwidSettings": + requiredBitSet[1] |= 1 << 5 + if err := func() error { + if err := s.HwidSettings.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"hwidSettings\"") + } + case "createdAt": + requiredBitSet[1] |= 1 << 6 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.CreatedAt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"createdAt\"") + } + case "updatedAt": + requiredBitSet[1] |= 1 << 7 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.UpdatedAt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"updatedAt\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode SubscriptionSettingsResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [2]uint8{ + 0b11111111, + 0b11111111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfSubscriptionSettingsResponseResponse) { + name = jsonFieldsNameOfSubscriptionSettingsResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *SubscriptionSettingsResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *SubscriptionSettingsResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s SubscriptionSettingsResponseResponseCustomResponseHeaders) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields implements json.Marshaler. +func (s SubscriptionSettingsResponseResponseCustomResponseHeaders) encodeFields(e *jx.Encoder) { + for k, elem := range s { + e.FieldStart(k) + + e.Str(elem) + } +} + +// Decode decodes SubscriptionSettingsResponseResponseCustomResponseHeaders from json. +func (s *SubscriptionSettingsResponseResponseCustomResponseHeaders) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode SubscriptionSettingsResponseResponseCustomResponseHeaders to nil") + } + m := s.init() + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + var elem string + if err := func() error { + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrapf(err, "decode field %q", k) + } + m[string(k)] = elem + return nil + }); err != nil { + return errors.Wrap(err, "decode SubscriptionSettingsResponseResponseCustomResponseHeaders") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s SubscriptionSettingsResponseResponseCustomResponseHeaders) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *SubscriptionSettingsResponseResponseCustomResponseHeaders) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s SubscriptionSsConfLinks) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields implements json.Marshaler. +func (s SubscriptionSsConfLinks) encodeFields(e *jx.Encoder) { + for k, elem := range s { + e.FieldStart(k) + + e.Str(elem) + } +} + +// Decode decodes SubscriptionSsConfLinks from json. +func (s *SubscriptionSsConfLinks) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode SubscriptionSsConfLinks to nil") + } + m := s.init() + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + var elem string + if err := func() error { + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrapf(err, "decode field %q", k) + } + m[string(k)] = elem + return nil + }); err != nil { + return errors.Wrap(err, "decode SubscriptionSsConfLinks") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s SubscriptionSsConfLinks) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *SubscriptionSsConfLinks) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *SystemItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *SystemItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("info") + s.Info.Encode(e) + } + { + e.FieldStart("stats") + s.Stats.Encode(e) + } +} + +var jsonFieldsNameOfSystemItem = [2]string{ + 0: "info", + 1: "stats", +} + +// Decode decodes SystemItem from json. +func (s *SystemItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode SystemItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "info": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Info.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"info\"") + } + case "stats": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.Stats.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"stats\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode SystemItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfSystemItem) { + name = jsonFieldsNameOfSystemItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *SystemItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *SystemItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *TagsResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *TagsResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfTagsResponse = [1]string{ + 0: "response", +} + +// Decode decodes TagsResponse from json. +func (s *TagsResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode TagsResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode TagsResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfTagsResponse) { + name = jsonFieldsNameOfTagsResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *TagsResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *TagsResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *TagsResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *TagsResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("tags") + e.ArrStart() + for _, elem := range s.Tags { + e.Str(elem) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfTagsResponseResponse = [1]string{ + 0: "tags", +} + +// Decode decodes TagsResponseResponse from json. +func (s *TagsResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode TagsResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "tags": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.Tags = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.Tags = append(s.Tags, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"tags\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode TagsResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfTagsResponseResponse) { + name = jsonFieldsNameOfTagsResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *TagsResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *TagsResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *Telegram) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *Telegram) encodeFields(e *jx.Encoder) { + { + e.FieldStart("enabled") + e.Bool(s.Enabled) + } + { + e.FieldStart("clientId") + s.ClientId.Encode(e) + } + { + e.FieldStart("clientSecret") + s.ClientSecret.Encode(e) + } + { + e.FieldStart("allowedIds") + e.ArrStart() + for _, elem := range s.AllowedIds { + e.Str(elem) + } + e.ArrEnd() + } + { + e.FieldStart("frontendDomain") + s.FrontendDomain.Encode(e) + } +} + +var jsonFieldsNameOfTelegram = [5]string{ + 0: "enabled", + 1: "clientId", + 2: "clientSecret", + 3: "allowedIds", + 4: "frontendDomain", +} + +// Decode decodes Telegram from json. +func (s *Telegram) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode Telegram to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "enabled": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Bool() + s.Enabled = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"enabled\"") + } + case "clientId": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.ClientId.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"clientId\"") + } + case "clientSecret": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.ClientSecret.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"clientSecret\"") + } + case "allowedIds": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + s.AllowedIds = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.AllowedIds = append(s.AllowedIds, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"allowedIds\"") + } + case "frontendDomain": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + if err := s.FrontendDomain.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"frontendDomain\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode Telegram") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00011111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfTelegram) { + name = jsonFieldsNameOfTelegram[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *Telegram) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *Telegram) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *Template) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *Template) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + e.FieldStart("viewPosition") + e.Int(s.ViewPosition) + } + { + e.FieldStart("name") + e.Str(s.Name) + } + { + e.FieldStart("templateType") + s.TemplateType.Encode(e) + } + { + if len(s.TemplateJson) != 0 { + e.FieldStart("templateJson") + e.Raw(s.TemplateJson) + } + } + { + e.FieldStart("encodedTemplateYaml") + s.EncodedTemplateYaml.Encode(e) + } +} + +var jsonFieldsNameOfTemplate = [6]string{ + 0: "uuid", + 1: "viewPosition", + 2: "name", + 3: "templateType", + 4: "templateJson", + 5: "encodedTemplateYaml", +} + +// Decode decodes Template from json. +func (s *Template) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode Template to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "viewPosition": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Int() + s.ViewPosition = int(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"viewPosition\"") + } + case "name": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "templateType": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + if err := s.TemplateType.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"templateType\"") + } + case "templateJson": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + v, err := d.RawAppend(nil) + s.TemplateJson = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"templateJson\"") + } + case "encodedTemplateYaml": + requiredBitSet[0] |= 1 << 5 + if err := func() error { + if err := s.EncodedTemplateYaml.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"encodedTemplateYaml\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode Template") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00111111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfTemplate) { + name = jsonFieldsNameOfTemplate[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *Template) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *Template) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *TemplateRef) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *TemplateRef) encodeFields(e *jx.Encoder) { + { + e.FieldStart("templateUuid") + json.EncodeUUID(e, s.TemplateUuid) + } + { + e.FieldStart("templateType") + s.TemplateType.Encode(e) + } +} + +var jsonFieldsNameOfTemplateRef = [2]string{ + 0: "templateUuid", + 1: "templateType", +} + +// Decode decodes TemplateRef from json. +func (s *TemplateRef) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode TemplateRef to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "templateUuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.TemplateUuid = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"templateUuid\"") + } + case "templateType": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.TemplateType.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"templateType\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode TemplateRef") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfTemplateRef) { + name = jsonFieldsNameOfTemplateRef[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *TemplateRef) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *TemplateRef) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes TemplateRefTemplateType as json. +func (s TemplateRefTemplateType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes TemplateRefTemplateType from json. +func (s *TemplateRefTemplateType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode TemplateRefTemplateType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch TemplateRefTemplateType(v) { + case TemplateRefTemplateTypeXRAYJSON: + *s = TemplateRefTemplateTypeXRAYJSON + case TemplateRefTemplateTypeXRAYBASE64: + *s = TemplateRefTemplateTypeXRAYBASE64 + case TemplateRefTemplateTypeMIHOMO: + *s = TemplateRefTemplateTypeMIHOMO + case TemplateRefTemplateTypeSTASH: + *s = TemplateRefTemplateTypeSTASH + case TemplateRefTemplateTypeCLASH: + *s = TemplateRefTemplateTypeCLASH + case TemplateRefTemplateTypeSINGBOX: + *s = TemplateRefTemplateTypeSINGBOX + default: + *s = TemplateRefTemplateType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s TemplateRefTemplateType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *TemplateRefTemplateType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *TemplateResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *TemplateResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfTemplateResponse = [1]string{ + 0: "response", +} + +// Decode decodes TemplateResponse from json. +func (s *TemplateResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode TemplateResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode TemplateResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfTemplateResponse) { + name = jsonFieldsNameOfTemplateResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *TemplateResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *TemplateResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes TemplateTemplateType as json. +func (s TemplateTemplateType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes TemplateTemplateType from json. +func (s *TemplateTemplateType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode TemplateTemplateType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch TemplateTemplateType(v) { + case TemplateTemplateTypeXRAYJSON: + *s = TemplateTemplateTypeXRAYJSON + case TemplateTemplateTypeXRAYBASE64: + *s = TemplateTemplateTypeXRAYBASE64 + case TemplateTemplateTypeMIHOMO: + *s = TemplateTemplateTypeMIHOMO + case TemplateTemplateTypeSTASH: + *s = TemplateTemplateTypeSTASH + case TemplateTemplateTypeCLASH: + *s = TemplateTemplateTypeCLASH + case TemplateTemplateTypeSINGBOX: + *s = TemplateTemplateTypeSINGBOX + default: + *s = TemplateTemplateType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s TemplateTemplateType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *TemplateTemplateType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *TemplatesResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *TemplatesResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfTemplatesResponse = [1]string{ + 0: "response", +} + +// Decode decodes TemplatesResponse from json. +func (s *TemplatesResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode TemplatesResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode TemplatesResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfTemplatesResponse) { + name = jsonFieldsNameOfTemplatesResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *TemplatesResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *TemplatesResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *TemplatesResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *TemplatesResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("total") + e.Float64(s.Total) + } + { + e.FieldStart("templates") + e.ArrStart() + for _, elem := range s.Templates { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfTemplatesResponseResponse = [2]string{ + 0: "total", + 1: "templates", +} + +// Decode decodes TemplatesResponseResponse from json. +func (s *TemplatesResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode TemplatesResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "total": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Float64() + s.Total = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"total\"") + } + case "templates": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + s.Templates = make([]Template, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem Template + if err := elem.Decode(d); err != nil { + return err + } + s.Templates = append(s.Templates, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"templates\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode TemplatesResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfTemplatesResponseResponse) { + name = jsonFieldsNameOfTemplatesResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *TemplatesResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *TemplatesResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *TokenResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *TokenResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfTokenResponse = [1]string{ + 0: "response", +} + +// Decode decodes TokenResponse from json. +func (s *TokenResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode TokenResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode TokenResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfTokenResponse) { + name = jsonFieldsNameOfTokenResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *TokenResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *TokenResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *TokenResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *TokenResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("accessToken") + e.Str(s.AccessToken) + } +} + +var jsonFieldsNameOfTokenResponseResponse = [1]string{ + 0: "accessToken", +} + +// Decode decodes TokenResponseResponse from json. +func (s *TokenResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode TokenResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "accessToken": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.AccessToken = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"accessToken\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode TokenResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfTokenResponseResponse) { + name = jsonFieldsNameOfTokenResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *TokenResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *TokenResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *TopNode) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *TopNode) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + e.FieldStart("countryCode") + e.Str(s.CountryCode) + } + { + e.FieldStart("color") + e.Str(s.Color) + } + { + e.FieldStart("name") + e.Str(s.Name) + } + { + e.FieldStart("total") + e.Float64(s.Total) + } +} + +var jsonFieldsNameOfTopNode = [5]string{ + 0: "uuid", + 1: "countryCode", + 2: "color", + 3: "name", + 4: "total", +} + +// Decode decodes TopNode from json. +func (s *TopNode) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode TopNode to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "countryCode": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.CountryCode = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"countryCode\"") + } + case "color": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.Color = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"color\"") + } + case "name": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "total": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + v, err := d.Float64() + s.Total = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"total\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode TopNode") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00011111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfTopNode) { + name = jsonFieldsNameOfTopNode[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *TopNode) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *TopNode) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *TorrentBlockerReportsResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *TorrentBlockerReportsResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfTorrentBlockerReportsResponseResponse = [1]string{ + 0: "response", +} + +// Decode decodes TorrentBlockerReportsResponseResponse from json. +func (s *TorrentBlockerReportsResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode TorrentBlockerReportsResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode TorrentBlockerReportsResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfTorrentBlockerReportsResponseResponse) { + name = jsonFieldsNameOfTorrentBlockerReportsResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *TorrentBlockerReportsResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *TorrentBlockerReportsResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *TorrentBlockerReportsResponseResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *TorrentBlockerReportsResponseResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("records") + e.ArrStart() + for _, elem := range s.Records { + elem.Encode(e) + } + e.ArrEnd() + } + { + e.FieldStart("total") + e.Float64(s.Total) + } +} + +var jsonFieldsNameOfTorrentBlockerReportsResponseResponseResponse = [2]string{ + 0: "records", + 1: "total", +} + +// Decode decodes TorrentBlockerReportsResponseResponseResponse from json. +func (s *TorrentBlockerReportsResponseResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode TorrentBlockerReportsResponseResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "records": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.Records = make([]TorrentBlockerReportsResponseResponseResponseRecordsItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem TorrentBlockerReportsResponseResponseResponseRecordsItem + if err := elem.Decode(d); err != nil { + return err + } + s.Records = append(s.Records, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"records\"") + } + case "total": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Float64() + s.Total = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"total\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode TorrentBlockerReportsResponseResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfTorrentBlockerReportsResponseResponseResponse) { + name = jsonFieldsNameOfTorrentBlockerReportsResponseResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *TorrentBlockerReportsResponseResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *TorrentBlockerReportsResponseResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *TorrentBlockerReportsResponseResponseResponseRecordsItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *TorrentBlockerReportsResponseResponseResponseRecordsItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("id") + e.Float64(s.ID) + } + { + e.FieldStart("userId") + e.Float64(s.UserId) + } + { + e.FieldStart("nodeId") + e.Float64(s.NodeId) + } + { + e.FieldStart("user") + s.User.Encode(e) + } + { + e.FieldStart("node") + s.Node.Encode(e) + } + { + e.FieldStart("report") + s.Report.Encode(e) + } + { + e.FieldStart("createdAt") + json.EncodeDateTime(e, s.CreatedAt) + } +} + +var jsonFieldsNameOfTorrentBlockerReportsResponseResponseResponseRecordsItem = [7]string{ + 0: "id", + 1: "userId", + 2: "nodeId", + 3: "user", + 4: "node", + 5: "report", + 6: "createdAt", +} + +// Decode decodes TorrentBlockerReportsResponseResponseResponseRecordsItem from json. +func (s *TorrentBlockerReportsResponseResponseResponseRecordsItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode TorrentBlockerReportsResponseResponseResponseRecordsItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "id": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Float64() + s.ID = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"id\"") + } + case "userId": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Float64() + s.UserId = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"userId\"") + } + case "nodeId": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Float64() + s.NodeId = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"nodeId\"") + } + case "user": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + if err := s.User.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"user\"") + } + case "node": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + if err := s.Node.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"node\"") + } + case "report": + requiredBitSet[0] |= 1 << 5 + if err := func() error { + if err := s.Report.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"report\"") + } + case "createdAt": + requiredBitSet[0] |= 1 << 6 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.CreatedAt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"createdAt\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode TorrentBlockerReportsResponseResponseResponseRecordsItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b01111111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfTorrentBlockerReportsResponseResponseResponseRecordsItem) { + name = jsonFieldsNameOfTorrentBlockerReportsResponseResponseResponseRecordsItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *TorrentBlockerReportsResponseResponseResponseRecordsItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *TorrentBlockerReportsResponseResponseResponseRecordsItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *TorrentBlockerReportsResponseResponseResponseRecordsItemUser) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *TorrentBlockerReportsResponseResponseResponseRecordsItemUser) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + e.FieldStart("username") + e.Str(s.Username) + } +} + +var jsonFieldsNameOfTorrentBlockerReportsResponseResponseResponseRecordsItemUser = [2]string{ + 0: "uuid", + 1: "username", +} + +// Decode decodes TorrentBlockerReportsResponseResponseResponseRecordsItemUser from json. +func (s *TorrentBlockerReportsResponseResponseResponseRecordsItemUser) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode TorrentBlockerReportsResponseResponseResponseRecordsItemUser to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "username": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Username = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"username\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode TorrentBlockerReportsResponseResponseResponseRecordsItemUser") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfTorrentBlockerReportsResponseResponseResponseRecordsItemUser) { + name = jsonFieldsNameOfTorrentBlockerReportsResponseResponseResponseRecordsItemUser[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *TorrentBlockerReportsResponseResponseResponseRecordsItemUser) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *TorrentBlockerReportsResponseResponseResponseRecordsItemUser) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *UnauthorizedError) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *UnauthorizedError) encodeFields(e *jx.Encoder) { + { + e.FieldStart("message") + e.Str(s.Message) + } + { + e.FieldStart("statusCode") + e.Float64(s.StatusCode) + } +} + +var jsonFieldsNameOfUnauthorizedError = [2]string{ + 0: "message", + 1: "statusCode", +} + +// Decode decodes UnauthorizedError from json. +func (s *UnauthorizedError) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UnauthorizedError to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "message": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Message = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"message\"") + } + case "statusCode": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Float64() + s.StatusCode = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"statusCode\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode UnauthorizedError") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfUnauthorizedError) { + name = jsonFieldsNameOfUnauthorizedError[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *UnauthorizedError) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UnauthorizedError) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *UpdateConfigProfileRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *UpdateConfigProfileRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + if s.Name.Set { + e.FieldStart("name") + s.Name.Encode(e) + } + } + { + if s.Config != nil { + e.FieldStart("config") + s.Config.Encode(e) + } + } +} + +var jsonFieldsNameOfUpdateConfigProfileRequest = [3]string{ + 0: "uuid", + 1: "name", + 2: "config", +} + +// Decode decodes UpdateConfigProfileRequest from json. +func (s *UpdateConfigProfileRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UpdateConfigProfileRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "name": + if err := func() error { + s.Name.Reset() + if err := s.Name.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "config": + if err := func() error { + s.Config = nil + var elem UpdateConfigProfileRequestConfig + if err := elem.Decode(d); err != nil { + return err + } + s.Config = &elem + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"config\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode UpdateConfigProfileRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfUpdateConfigProfileRequest) { + name = jsonFieldsNameOfUpdateConfigProfileRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *UpdateConfigProfileRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UpdateConfigProfileRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *UpdateConfigProfileRequestConfig) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *UpdateConfigProfileRequestConfig) encodeFields(e *jx.Encoder) { +} + +var jsonFieldsNameOfUpdateConfigProfileRequestConfig = [0]string{} + +// Decode decodes UpdateConfigProfileRequestConfig from json. +func (s *UpdateConfigProfileRequestConfig) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UpdateConfigProfileRequestConfig to nil") + } + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + default: + return d.Skip() + } + }); err != nil { + return errors.Wrap(err, "decode UpdateConfigProfileRequestConfig") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *UpdateConfigProfileRequestConfig) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UpdateConfigProfileRequestConfig) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *UpdateExternalSquadRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *UpdateExternalSquadRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + if s.Name.Set { + e.FieldStart("name") + s.Name.Encode(e) + } + } + { + if s.Templates != nil { + e.FieldStart("templates") + e.ArrStart() + for _, elem := range s.Templates { + elem.Encode(e) + } + e.ArrEnd() + } + } + { + if s.SubscriptionSettings.Set { + e.FieldStart("subscriptionSettings") + s.SubscriptionSettings.Encode(e) + } + } + { + if s.HostOverrides.Set { + e.FieldStart("hostOverrides") + s.HostOverrides.Encode(e) + } + } + { + if s.ResponseHeaders.Set { + e.FieldStart("responseHeaders") + s.ResponseHeaders.Encode(e) + } + } + { + if s.HwidSettings.Set { + e.FieldStart("hwidSettings") + s.HwidSettings.Encode(e) + } + } + { + if s.CustomRemarks.Set { + e.FieldStart("customRemarks") + s.CustomRemarks.Encode(e) + } + } + { + if s.SubpageConfigUuid.Set { + e.FieldStart("subpageConfigUuid") + s.SubpageConfigUuid.Encode(e) + } + } +} + +var jsonFieldsNameOfUpdateExternalSquadRequest = [9]string{ + 0: "uuid", + 1: "name", + 2: "templates", + 3: "subscriptionSettings", + 4: "hostOverrides", + 5: "responseHeaders", + 6: "hwidSettings", + 7: "customRemarks", + 8: "subpageConfigUuid", +} + +// Decode decodes UpdateExternalSquadRequest from json. +func (s *UpdateExternalSquadRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UpdateExternalSquadRequest to nil") + } + var requiredBitSet [2]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "name": + if err := func() error { + s.Name.Reset() + if err := s.Name.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "templates": + if err := func() error { + s.Templates = make([]TemplateRef, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem TemplateRef + if err := elem.Decode(d); err != nil { + return err + } + s.Templates = append(s.Templates, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"templates\"") + } + case "subscriptionSettings": + if err := func() error { + s.SubscriptionSettings.Reset() + if err := s.SubscriptionSettings.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"subscriptionSettings\"") + } + case "hostOverrides": + if err := func() error { + s.HostOverrides.Reset() + if err := s.HostOverrides.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"hostOverrides\"") + } + case "responseHeaders": + if err := func() error { + s.ResponseHeaders.Reset() + if err := s.ResponseHeaders.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"responseHeaders\"") + } + case "hwidSettings": + if err := func() error { + s.HwidSettings.Reset() + if err := s.HwidSettings.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"hwidSettings\"") + } + case "customRemarks": + if err := func() error { + s.CustomRemarks.Reset() + if err := s.CustomRemarks.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"customRemarks\"") + } + case "subpageConfigUuid": + if err := func() error { + s.SubpageConfigUuid.Reset() + if err := s.SubpageConfigUuid.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"subpageConfigUuid\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode UpdateExternalSquadRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [2]uint8{ + 0b00000001, + 0b00000000, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfUpdateExternalSquadRequest) { + name = jsonFieldsNameOfUpdateExternalSquadRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *UpdateExternalSquadRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UpdateExternalSquadRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s UpdateExternalSquadRequestResponseHeaders) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields implements json.Marshaler. +func (s UpdateExternalSquadRequestResponseHeaders) encodeFields(e *jx.Encoder) { + for k, elem := range s { + e.FieldStart(k) + + e.Str(elem) + } +} + +// Decode decodes UpdateExternalSquadRequestResponseHeaders from json. +func (s *UpdateExternalSquadRequestResponseHeaders) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UpdateExternalSquadRequestResponseHeaders to nil") + } + m := s.init() + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + var elem string + if err := func() error { + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrapf(err, "decode field %q", k) + } + m[string(k)] = elem + return nil + }); err != nil { + return errors.Wrap(err, "decode UpdateExternalSquadRequestResponseHeaders") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s UpdateExternalSquadRequestResponseHeaders) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UpdateExternalSquadRequestResponseHeaders) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *UpdateHostRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *UpdateHostRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + if s.Inbound.Set { + e.FieldStart("inbound") + s.Inbound.Encode(e) + } + } + { + if s.Remark.Set { + e.FieldStart("remark") + s.Remark.Encode(e) + } + } + { + if s.Address.Set { + e.FieldStart("address") + s.Address.Encode(e) + } + } + { + if s.Port.Set { + e.FieldStart("port") + s.Port.Encode(e) + } + } + { + if s.Path.Set { + e.FieldStart("path") + s.Path.Encode(e) + } + } + { + if s.Sni.Set { + e.FieldStart("sni") + s.Sni.Encode(e) + } + } + { + if s.Host.Set { + e.FieldStart("host") + s.Host.Encode(e) + } + } + { + if s.Alpn.Set { + e.FieldStart("alpn") + s.Alpn.Encode(e) + } + } + { + if s.Fingerprint.Set { + e.FieldStart("fingerprint") + s.Fingerprint.Encode(e) + } + } + { + if s.IsDisabled.Set { + e.FieldStart("isDisabled") + s.IsDisabled.Encode(e) + } + } + { + if s.SecurityLayer.Set { + e.FieldStart("securityLayer") + s.SecurityLayer.Encode(e) + } + } + { + if len(s.XHttpExtraParams) != 0 { + e.FieldStart("xHttpExtraParams") + e.Raw(s.XHttpExtraParams) + } + } + { + if len(s.MuxParams) != 0 { + e.FieldStart("muxParams") + e.Raw(s.MuxParams) + } + } + { + if len(s.SockoptParams) != 0 { + e.FieldStart("sockoptParams") + e.Raw(s.SockoptParams) + } + } + { + if len(s.FinalMask) != 0 { + e.FieldStart("finalMask") + e.Raw(s.FinalMask) + } + } + { + if s.ServerDescription.Set { + e.FieldStart("serverDescription") + s.ServerDescription.Encode(e) + } + } + { + if s.Tag.Set { + e.FieldStart("tag") + s.Tag.Encode(e) + } + } + { + if s.IsHidden.Set { + e.FieldStart("isHidden") + s.IsHidden.Encode(e) + } + } + { + if s.OverrideSniFromAddress.Set { + e.FieldStart("overrideSniFromAddress") + s.OverrideSniFromAddress.Encode(e) + } + } + { + if s.KeepSniBlank.Set { + e.FieldStart("keepSniBlank") + s.KeepSniBlank.Encode(e) + } + } + { + if s.VlessRouteId.Set { + e.FieldStart("vlessRouteId") + s.VlessRouteId.Encode(e) + } + } + { + if s.AllowInsecure.Set { + e.FieldStart("allowInsecure") + s.AllowInsecure.Encode(e) + } + } + { + if s.ShuffleHost.Set { + e.FieldStart("shuffleHost") + s.ShuffleHost.Encode(e) + } + } + { + if s.MihomoX25519.Set { + e.FieldStart("mihomoX25519") + s.MihomoX25519.Encode(e) + } + } + { + if s.Nodes != nil { + e.FieldStart("nodes") + e.ArrStart() + for _, elem := range s.Nodes { + json.EncodeUUID(e, elem) + } + e.ArrEnd() + } + } + { + if s.XrayJsonTemplateUuid.Set { + e.FieldStart("xrayJsonTemplateUuid") + s.XrayJsonTemplateUuid.Encode(e) + } + } + { + if s.ExcludedInternalSquads != nil { + e.FieldStart("excludedInternalSquads") + e.ArrStart() + for _, elem := range s.ExcludedInternalSquads { + json.EncodeUUID(e, elem) + } + e.ArrEnd() + } + } + { + if s.ExcludeFromSubscriptionTypes != nil { + e.FieldStart("excludeFromSubscriptionTypes") + e.ArrStart() + for _, elem := range s.ExcludeFromSubscriptionTypes { + elem.Encode(e) + } + e.ArrEnd() + } + } +} + +var jsonFieldsNameOfUpdateHostRequest = [29]string{ + 0: "uuid", + 1: "inbound", + 2: "remark", + 3: "address", + 4: "port", + 5: "path", + 6: "sni", + 7: "host", + 8: "alpn", + 9: "fingerprint", + 10: "isDisabled", + 11: "securityLayer", + 12: "xHttpExtraParams", + 13: "muxParams", + 14: "sockoptParams", + 15: "finalMask", + 16: "serverDescription", + 17: "tag", + 18: "isHidden", + 19: "overrideSniFromAddress", + 20: "keepSniBlank", + 21: "vlessRouteId", + 22: "allowInsecure", + 23: "shuffleHost", + 24: "mihomoX25519", + 25: "nodes", + 26: "xrayJsonTemplateUuid", + 27: "excludedInternalSquads", + 28: "excludeFromSubscriptionTypes", +} + +// Decode decodes UpdateHostRequest from json. +func (s *UpdateHostRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UpdateHostRequest to nil") + } + var requiredBitSet [4]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "inbound": + if err := func() error { + s.Inbound.Reset() + if err := s.Inbound.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"inbound\"") + } + case "remark": + if err := func() error { + s.Remark.Reset() + if err := s.Remark.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"remark\"") + } + case "address": + if err := func() error { + s.Address.Reset() + if err := s.Address.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"address\"") + } + case "port": + if err := func() error { + s.Port.Reset() + if err := s.Port.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"port\"") + } + case "path": + if err := func() error { + s.Path.Reset() + if err := s.Path.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"path\"") + } + case "sni": + if err := func() error { + s.Sni.Reset() + if err := s.Sni.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"sni\"") + } + case "host": + if err := func() error { + s.Host.Reset() + if err := s.Host.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"host\"") + } + case "alpn": + if err := func() error { + s.Alpn.Reset() + if err := s.Alpn.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"alpn\"") + } + case "fingerprint": + if err := func() error { + s.Fingerprint.Reset() + if err := s.Fingerprint.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"fingerprint\"") + } + case "isDisabled": + if err := func() error { + s.IsDisabled.Reset() + if err := s.IsDisabled.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"isDisabled\"") + } + case "securityLayer": + if err := func() error { + s.SecurityLayer.Reset() + if err := s.SecurityLayer.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"securityLayer\"") + } + case "xHttpExtraParams": + if err := func() error { + v, err := d.RawAppend(nil) + s.XHttpExtraParams = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"xHttpExtraParams\"") + } + case "muxParams": + if err := func() error { + v, err := d.RawAppend(nil) + s.MuxParams = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"muxParams\"") + } + case "sockoptParams": + if err := func() error { + v, err := d.RawAppend(nil) + s.SockoptParams = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"sockoptParams\"") + } + case "finalMask": + if err := func() error { + v, err := d.RawAppend(nil) + s.FinalMask = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"finalMask\"") + } + case "serverDescription": + if err := func() error { + s.ServerDescription.Reset() + if err := s.ServerDescription.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"serverDescription\"") + } + case "tag": + if err := func() error { + s.Tag.Reset() + if err := s.Tag.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"tag\"") + } + case "isHidden": + if err := func() error { + s.IsHidden.Reset() + if err := s.IsHidden.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"isHidden\"") + } + case "overrideSniFromAddress": + if err := func() error { + s.OverrideSniFromAddress.Reset() + if err := s.OverrideSniFromAddress.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"overrideSniFromAddress\"") + } + case "keepSniBlank": + if err := func() error { + s.KeepSniBlank.Reset() + if err := s.KeepSniBlank.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"keepSniBlank\"") + } + case "vlessRouteId": + if err := func() error { + s.VlessRouteId.Reset() + if err := s.VlessRouteId.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"vlessRouteId\"") + } + case "allowInsecure": + if err := func() error { + s.AllowInsecure.Reset() + if err := s.AllowInsecure.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"allowInsecure\"") + } + case "shuffleHost": + if err := func() error { + s.ShuffleHost.Reset() + if err := s.ShuffleHost.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"shuffleHost\"") + } + case "mihomoX25519": + if err := func() error { + s.MihomoX25519.Reset() + if err := s.MihomoX25519.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"mihomoX25519\"") + } + case "nodes": + if err := func() error { + s.Nodes = make([]uuid.UUID, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem uuid.UUID + v, err := json.DecodeUUID(d) + elem = v + if err != nil { + return err + } + s.Nodes = append(s.Nodes, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"nodes\"") + } + case "xrayJsonTemplateUuid": + if err := func() error { + s.XrayJsonTemplateUuid.Reset() + if err := s.XrayJsonTemplateUuid.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"xrayJsonTemplateUuid\"") + } + case "excludedInternalSquads": + if err := func() error { + s.ExcludedInternalSquads = make([]uuid.UUID, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem uuid.UUID + v, err := json.DecodeUUID(d) + elem = v + if err != nil { + return err + } + s.ExcludedInternalSquads = append(s.ExcludedInternalSquads, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"excludedInternalSquads\"") + } + case "excludeFromSubscriptionTypes": + if err := func() error { + s.ExcludeFromSubscriptionTypes = make([]UpdateHostRequestExcludeFromSubscriptionTypesItem, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem UpdateHostRequestExcludeFromSubscriptionTypesItem + if err := elem.Decode(d); err != nil { + return err + } + s.ExcludeFromSubscriptionTypes = append(s.ExcludeFromSubscriptionTypes, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"excludeFromSubscriptionTypes\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode UpdateHostRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [4]uint8{ + 0b00000001, + 0b00000000, + 0b00000000, + 0b00000000, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfUpdateHostRequest) { + name = jsonFieldsNameOfUpdateHostRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *UpdateHostRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UpdateHostRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes UpdateHostRequestAlpn as json. +func (s UpdateHostRequestAlpn) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes UpdateHostRequestAlpn from json. +func (s *UpdateHostRequestAlpn) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UpdateHostRequestAlpn to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch UpdateHostRequestAlpn(v) { + case UpdateHostRequestAlpnH3: + *s = UpdateHostRequestAlpnH3 + case UpdateHostRequestAlpnH2: + *s = UpdateHostRequestAlpnH2 + case UpdateHostRequestAlpnHTTP11: + *s = UpdateHostRequestAlpnHTTP11 + case UpdateHostRequestAlpnH2HTTP11: + *s = UpdateHostRequestAlpnH2HTTP11 + case UpdateHostRequestAlpnH3H2HTTP11: + *s = UpdateHostRequestAlpnH3H2HTTP11 + case UpdateHostRequestAlpnH3H2: + *s = UpdateHostRequestAlpnH3H2 + default: + *s = UpdateHostRequestAlpn(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s UpdateHostRequestAlpn) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UpdateHostRequestAlpn) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes UpdateHostRequestExcludeFromSubscriptionTypesItem as json. +func (s UpdateHostRequestExcludeFromSubscriptionTypesItem) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes UpdateHostRequestExcludeFromSubscriptionTypesItem from json. +func (s *UpdateHostRequestExcludeFromSubscriptionTypesItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UpdateHostRequestExcludeFromSubscriptionTypesItem to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch UpdateHostRequestExcludeFromSubscriptionTypesItem(v) { + case UpdateHostRequestExcludeFromSubscriptionTypesItemXRAYJSON: + *s = UpdateHostRequestExcludeFromSubscriptionTypesItemXRAYJSON + case UpdateHostRequestExcludeFromSubscriptionTypesItemXRAYBASE64: + *s = UpdateHostRequestExcludeFromSubscriptionTypesItemXRAYBASE64 + case UpdateHostRequestExcludeFromSubscriptionTypesItemMIHOMO: + *s = UpdateHostRequestExcludeFromSubscriptionTypesItemMIHOMO + case UpdateHostRequestExcludeFromSubscriptionTypesItemSTASH: + *s = UpdateHostRequestExcludeFromSubscriptionTypesItemSTASH + case UpdateHostRequestExcludeFromSubscriptionTypesItemCLASH: + *s = UpdateHostRequestExcludeFromSubscriptionTypesItemCLASH + case UpdateHostRequestExcludeFromSubscriptionTypesItemSINGBOX: + *s = UpdateHostRequestExcludeFromSubscriptionTypesItemSINGBOX + default: + *s = UpdateHostRequestExcludeFromSubscriptionTypesItem(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s UpdateHostRequestExcludeFromSubscriptionTypesItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UpdateHostRequestExcludeFromSubscriptionTypesItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes UpdateHostRequestFingerprint as json. +func (s UpdateHostRequestFingerprint) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes UpdateHostRequestFingerprint from json. +func (s *UpdateHostRequestFingerprint) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UpdateHostRequestFingerprint to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch UpdateHostRequestFingerprint(v) { + case UpdateHostRequestFingerprintChrome: + *s = UpdateHostRequestFingerprintChrome + case UpdateHostRequestFingerprintFirefox: + *s = UpdateHostRequestFingerprintFirefox + case UpdateHostRequestFingerprintSafari: + *s = UpdateHostRequestFingerprintSafari + case UpdateHostRequestFingerprintIos: + *s = UpdateHostRequestFingerprintIos + case UpdateHostRequestFingerprintAndroid: + *s = UpdateHostRequestFingerprintAndroid + case UpdateHostRequestFingerprintEdge: + *s = UpdateHostRequestFingerprintEdge + case UpdateHostRequestFingerprintQq: + *s = UpdateHostRequestFingerprintQq + case UpdateHostRequestFingerprintRandom: + *s = UpdateHostRequestFingerprintRandom + case UpdateHostRequestFingerprintRandomized: + *s = UpdateHostRequestFingerprintRandomized + default: + *s = UpdateHostRequestFingerprint(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s UpdateHostRequestFingerprint) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UpdateHostRequestFingerprint) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes UpdateHostRequestSecurityLayer as json. +func (s UpdateHostRequestSecurityLayer) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes UpdateHostRequestSecurityLayer from json. +func (s *UpdateHostRequestSecurityLayer) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UpdateHostRequestSecurityLayer to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch UpdateHostRequestSecurityLayer(v) { + case UpdateHostRequestSecurityLayerDEFAULT: + *s = UpdateHostRequestSecurityLayerDEFAULT + case UpdateHostRequestSecurityLayerTLS: + *s = UpdateHostRequestSecurityLayerTLS + case UpdateHostRequestSecurityLayerNONE: + *s = UpdateHostRequestSecurityLayerNONE + default: + *s = UpdateHostRequestSecurityLayer(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s UpdateHostRequestSecurityLayer) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UpdateHostRequestSecurityLayer) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *UpdateInfraBillingNodeRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *UpdateInfraBillingNodeRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuids") + e.ArrStart() + for _, elem := range s.Uuids { + json.EncodeUUID(e, elem) + } + e.ArrEnd() + } + { + e.FieldStart("nextBillingAt") + json.EncodeDateTime(e, s.NextBillingAt) + } +} + +var jsonFieldsNameOfUpdateInfraBillingNodeRequest = [2]string{ + 0: "uuids", + 1: "nextBillingAt", +} + +// Decode decodes UpdateInfraBillingNodeRequest from json. +func (s *UpdateInfraBillingNodeRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UpdateInfraBillingNodeRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuids": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.Uuids = make([]uuid.UUID, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem uuid.UUID + v, err := json.DecodeUUID(d) + elem = v + if err != nil { + return err + } + s.Uuids = append(s.Uuids, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuids\"") + } + case "nextBillingAt": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.NextBillingAt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"nextBillingAt\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode UpdateInfraBillingNodeRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfUpdateInfraBillingNodeRequest) { + name = jsonFieldsNameOfUpdateInfraBillingNodeRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *UpdateInfraBillingNodeRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UpdateInfraBillingNodeRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *UpdateInfraProviderRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *UpdateInfraProviderRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + if s.Name.Set { + e.FieldStart("name") + s.Name.Encode(e) + } + } + { + if s.FaviconLink.Set { + e.FieldStart("faviconLink") + s.FaviconLink.Encode(e) + } + } + { + if s.LoginUrl.Set { + e.FieldStart("loginUrl") + s.LoginUrl.Encode(e) + } + } +} + +var jsonFieldsNameOfUpdateInfraProviderRequest = [4]string{ + 0: "uuid", + 1: "name", + 2: "faviconLink", + 3: "loginUrl", +} + +// Decode decodes UpdateInfraProviderRequest from json. +func (s *UpdateInfraProviderRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UpdateInfraProviderRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "name": + if err := func() error { + s.Name.Reset() + if err := s.Name.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "faviconLink": + if err := func() error { + s.FaviconLink.Reset() + if err := s.FaviconLink.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"faviconLink\"") + } + case "loginUrl": + if err := func() error { + s.LoginUrl.Reset() + if err := s.LoginUrl.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"loginUrl\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode UpdateInfraProviderRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfUpdateInfraProviderRequest) { + name = jsonFieldsNameOfUpdateInfraProviderRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *UpdateInfraProviderRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UpdateInfraProviderRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *UpdateInternalSquadRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *UpdateInternalSquadRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + if s.Name.Set { + e.FieldStart("name") + s.Name.Encode(e) + } + } + { + if s.Inbounds != nil { + e.FieldStart("inbounds") + e.ArrStart() + for _, elem := range s.Inbounds { + json.EncodeUUID(e, elem) + } + e.ArrEnd() + } + } +} + +var jsonFieldsNameOfUpdateInternalSquadRequest = [3]string{ + 0: "uuid", + 1: "name", + 2: "inbounds", +} + +// Decode decodes UpdateInternalSquadRequest from json. +func (s *UpdateInternalSquadRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UpdateInternalSquadRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "name": + if err := func() error { + s.Name.Reset() + if err := s.Name.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "inbounds": + if err := func() error { + s.Inbounds = make([]uuid.UUID, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem uuid.UUID + v, err := json.DecodeUUID(d) + elem = v + if err != nil { + return err + } + s.Inbounds = append(s.Inbounds, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"inbounds\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode UpdateInternalSquadRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfUpdateInternalSquadRequest) { + name = jsonFieldsNameOfUpdateInternalSquadRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *UpdateInternalSquadRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UpdateInternalSquadRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *UpdateNodePluginRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *UpdateNodePluginRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + if s.Name.Set { + e.FieldStart("name") + s.Name.Encode(e) + } + } + { + if len(s.PluginConfig) != 0 { + e.FieldStart("pluginConfig") + e.Raw(s.PluginConfig) + } + } +} + +var jsonFieldsNameOfUpdateNodePluginRequest = [3]string{ + 0: "uuid", + 1: "name", + 2: "pluginConfig", +} + +// Decode decodes UpdateNodePluginRequest from json. +func (s *UpdateNodePluginRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UpdateNodePluginRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "name": + if err := func() error { + s.Name.Reset() + if err := s.Name.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "pluginConfig": + if err := func() error { + v, err := d.RawAppend(nil) + s.PluginConfig = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"pluginConfig\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode UpdateNodePluginRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfUpdateNodePluginRequest) { + name = jsonFieldsNameOfUpdateNodePluginRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *UpdateNodePluginRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UpdateNodePluginRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *UpdateNodeRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *UpdateNodeRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + if s.Name.Set { + e.FieldStart("name") + s.Name.Encode(e) + } + } + { + if s.Address.Set { + e.FieldStart("address") + s.Address.Encode(e) + } + } + { + if s.Port.Set { + e.FieldStart("port") + s.Port.Encode(e) + } + } + { + if s.IsTrafficTrackingActive.Set { + e.FieldStart("isTrafficTrackingActive") + s.IsTrafficTrackingActive.Encode(e) + } + } + { + if s.TrafficLimitBytes.Set { + e.FieldStart("trafficLimitBytes") + s.TrafficLimitBytes.Encode(e) + } + } + { + if s.NotifyPercent.Set { + e.FieldStart("notifyPercent") + s.NotifyPercent.Encode(e) + } + } + { + if s.TrafficResetDay.Set { + e.FieldStart("trafficResetDay") + s.TrafficResetDay.Encode(e) + } + } + { + if s.CountryCode.Set { + e.FieldStart("countryCode") + s.CountryCode.Encode(e) + } + } + { + if s.ConsumptionMultiplier.Set { + e.FieldStart("consumptionMultiplier") + s.ConsumptionMultiplier.Encode(e) + } + } + { + if s.ConfigProfile.Set { + e.FieldStart("configProfile") + s.ConfigProfile.Encode(e) + } + } + { + if s.ProviderUuid.Set { + e.FieldStart("providerUuid") + s.ProviderUuid.Encode(e) + } + } + { + if s.Tags != nil { + e.FieldStart("tags") + e.ArrStart() + for _, elem := range s.Tags { + e.Str(elem) + } + e.ArrEnd() + } + } + { + if s.ActivePluginUuid.Set { + e.FieldStart("activePluginUuid") + s.ActivePluginUuid.Encode(e) + } + } +} + +var jsonFieldsNameOfUpdateNodeRequest = [14]string{ + 0: "uuid", + 1: "name", + 2: "address", + 3: "port", + 4: "isTrafficTrackingActive", + 5: "trafficLimitBytes", + 6: "notifyPercent", + 7: "trafficResetDay", + 8: "countryCode", + 9: "consumptionMultiplier", + 10: "configProfile", + 11: "providerUuid", + 12: "tags", + 13: "activePluginUuid", +} + +// Decode decodes UpdateNodeRequest from json. +func (s *UpdateNodeRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UpdateNodeRequest to nil") + } + var requiredBitSet [2]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "name": + if err := func() error { + s.Name.Reset() + if err := s.Name.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "address": + if err := func() error { + s.Address.Reset() + if err := s.Address.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"address\"") + } + case "port": + if err := func() error { + s.Port.Reset() + if err := s.Port.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"port\"") + } + case "isTrafficTrackingActive": + if err := func() error { + s.IsTrafficTrackingActive.Reset() + if err := s.IsTrafficTrackingActive.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"isTrafficTrackingActive\"") + } + case "trafficLimitBytes": + if err := func() error { + s.TrafficLimitBytes.Reset() + if err := s.TrafficLimitBytes.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"trafficLimitBytes\"") + } + case "notifyPercent": + if err := func() error { + s.NotifyPercent.Reset() + if err := s.NotifyPercent.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"notifyPercent\"") + } + case "trafficResetDay": + if err := func() error { + s.TrafficResetDay.Reset() + if err := s.TrafficResetDay.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"trafficResetDay\"") + } + case "countryCode": + if err := func() error { + s.CountryCode.Reset() + if err := s.CountryCode.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"countryCode\"") + } + case "consumptionMultiplier": + if err := func() error { + s.ConsumptionMultiplier.Reset() + if err := s.ConsumptionMultiplier.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"consumptionMultiplier\"") + } + case "configProfile": + if err := func() error { + s.ConfigProfile.Reset() + if err := s.ConfigProfile.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"configProfile\"") + } + case "providerUuid": + if err := func() error { + s.ProviderUuid.Reset() + if err := s.ProviderUuid.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"providerUuid\"") + } + case "tags": + if err := func() error { + s.Tags = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.Tags = append(s.Tags, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"tags\"") + } + case "activePluginUuid": + if err := func() error { + s.ActivePluginUuid.Reset() + if err := s.ActivePluginUuid.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"activePluginUuid\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode UpdateNodeRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [2]uint8{ + 0b00000001, + 0b00000000, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfUpdateNodeRequest) { + name = jsonFieldsNameOfUpdateNodeRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *UpdateNodeRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UpdateNodeRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *UpdatePasskeyRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *UpdatePasskeyRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("id") + e.Str(s.ID) + } + { + e.FieldStart("name") + e.Str(s.Name) + } +} + +var jsonFieldsNameOfUpdatePasskeyRequest = [2]string{ + 0: "id", + 1: "name", +} + +// Decode decodes UpdatePasskeyRequest from json. +func (s *UpdatePasskeyRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UpdatePasskeyRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "id": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.ID = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"id\"") + } + case "name": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode UpdatePasskeyRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfUpdatePasskeyRequest) { + name = jsonFieldsNameOfUpdatePasskeyRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *UpdatePasskeyRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UpdatePasskeyRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *UpdateRemnawaveSettingsRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *UpdateRemnawaveSettingsRequest) encodeFields(e *jx.Encoder) { + { + if s.PasskeySettings.Set { + e.FieldStart("passkeySettings") + s.PasskeySettings.Encode(e) + } + } + { + if s.Oauth2Settings.Set { + e.FieldStart("oauth2Settings") + s.Oauth2Settings.Encode(e) + } + } + { + if s.PasswordSettings.Set { + e.FieldStart("passwordSettings") + s.PasswordSettings.Encode(e) + } + } + { + if s.BrandingSettings.Set { + e.FieldStart("brandingSettings") + s.BrandingSettings.Encode(e) + } + } +} + +var jsonFieldsNameOfUpdateRemnawaveSettingsRequest = [4]string{ + 0: "passkeySettings", + 1: "oauth2Settings", + 2: "passwordSettings", + 3: "brandingSettings", +} + +// Decode decodes UpdateRemnawaveSettingsRequest from json. +func (s *UpdateRemnawaveSettingsRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UpdateRemnawaveSettingsRequest to nil") + } + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "passkeySettings": + if err := func() error { + s.PasskeySettings.Reset() + if err := s.PasskeySettings.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"passkeySettings\"") + } + case "oauth2Settings": + if err := func() error { + s.Oauth2Settings.Reset() + if err := s.Oauth2Settings.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"oauth2Settings\"") + } + case "passwordSettings": + if err := func() error { + s.PasswordSettings.Reset() + if err := s.PasswordSettings.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"passwordSettings\"") + } + case "brandingSettings": + if err := func() error { + s.BrandingSettings.Reset() + if err := s.BrandingSettings.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"brandingSettings\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode UpdateRemnawaveSettingsRequest") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *UpdateRemnawaveSettingsRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UpdateRemnawaveSettingsRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *UpdateSubscriptionPageConfigRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *UpdateSubscriptionPageConfigRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + if s.Name.Set { + e.FieldStart("name") + s.Name.Encode(e) + } + } + { + if len(s.Config) != 0 { + e.FieldStart("config") + e.Raw(s.Config) + } + } +} + +var jsonFieldsNameOfUpdateSubscriptionPageConfigRequest = [3]string{ + 0: "uuid", + 1: "name", + 2: "config", +} + +// Decode decodes UpdateSubscriptionPageConfigRequest from json. +func (s *UpdateSubscriptionPageConfigRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UpdateSubscriptionPageConfigRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "name": + if err := func() error { + s.Name.Reset() + if err := s.Name.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "config": + if err := func() error { + v, err := d.RawAppend(nil) + s.Config = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"config\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode UpdateSubscriptionPageConfigRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfUpdateSubscriptionPageConfigRequest) { + name = jsonFieldsNameOfUpdateSubscriptionPageConfigRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *UpdateSubscriptionPageConfigRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UpdateSubscriptionPageConfigRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *UpdateSubscriptionSettingsRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *UpdateSubscriptionSettingsRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + if s.ProfileTitle.Set { + e.FieldStart("profileTitle") + s.ProfileTitle.Encode(e) + } + } + { + if s.SupportLink.Set { + e.FieldStart("supportLink") + s.SupportLink.Encode(e) + } + } + { + if s.ProfileUpdateInterval.Set { + e.FieldStart("profileUpdateInterval") + s.ProfileUpdateInterval.Encode(e) + } + } + { + if s.IsProfileWebpageUrlEnabled.Set { + e.FieldStart("isProfileWebpageUrlEnabled") + s.IsProfileWebpageUrlEnabled.Encode(e) + } + } + { + if s.ServeJsonAtBaseSubscription.Set { + e.FieldStart("serveJsonAtBaseSubscription") + s.ServeJsonAtBaseSubscription.Encode(e) + } + } + { + if s.HappAnnounce.Set { + e.FieldStart("happAnnounce") + s.HappAnnounce.Encode(e) + } + } + { + if s.HappRouting.Set { + e.FieldStart("happRouting") + s.HappRouting.Encode(e) + } + } + { + if s.IsShowCustomRemarks.Set { + e.FieldStart("isShowCustomRemarks") + s.IsShowCustomRemarks.Encode(e) + } + } + { + if s.CustomRemarks.Set { + e.FieldStart("customRemarks") + s.CustomRemarks.Encode(e) + } + } + { + if s.CustomResponseHeaders.Set { + e.FieldStart("customResponseHeaders") + s.CustomResponseHeaders.Encode(e) + } + } + { + if s.RandomizeHosts.Set { + e.FieldStart("randomizeHosts") + s.RandomizeHosts.Encode(e) + } + } + { + if s.ResponseRules.Set { + e.FieldStart("responseRules") + s.ResponseRules.Encode(e) + } + } + { + if s.HwidSettings.Set { + e.FieldStart("hwidSettings") + s.HwidSettings.Encode(e) + } + } +} + +var jsonFieldsNameOfUpdateSubscriptionSettingsRequest = [14]string{ + 0: "uuid", + 1: "profileTitle", + 2: "supportLink", + 3: "profileUpdateInterval", + 4: "isProfileWebpageUrlEnabled", + 5: "serveJsonAtBaseSubscription", + 6: "happAnnounce", + 7: "happRouting", + 8: "isShowCustomRemarks", + 9: "customRemarks", + 10: "customResponseHeaders", + 11: "randomizeHosts", + 12: "responseRules", + 13: "hwidSettings", +} + +// Decode decodes UpdateSubscriptionSettingsRequest from json. +func (s *UpdateSubscriptionSettingsRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UpdateSubscriptionSettingsRequest to nil") + } + var requiredBitSet [2]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "profileTitle": + if err := func() error { + s.ProfileTitle.Reset() + if err := s.ProfileTitle.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"profileTitle\"") + } + case "supportLink": + if err := func() error { + s.SupportLink.Reset() + if err := s.SupportLink.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"supportLink\"") + } + case "profileUpdateInterval": + if err := func() error { + s.ProfileUpdateInterval.Reset() + if err := s.ProfileUpdateInterval.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"profileUpdateInterval\"") + } + case "isProfileWebpageUrlEnabled": + if err := func() error { + s.IsProfileWebpageUrlEnabled.Reset() + if err := s.IsProfileWebpageUrlEnabled.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"isProfileWebpageUrlEnabled\"") + } + case "serveJsonAtBaseSubscription": + if err := func() error { + s.ServeJsonAtBaseSubscription.Reset() + if err := s.ServeJsonAtBaseSubscription.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"serveJsonAtBaseSubscription\"") + } + case "happAnnounce": + if err := func() error { + s.HappAnnounce.Reset() + if err := s.HappAnnounce.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"happAnnounce\"") + } + case "happRouting": + if err := func() error { + s.HappRouting.Reset() + if err := s.HappRouting.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"happRouting\"") + } + case "isShowCustomRemarks": + if err := func() error { + s.IsShowCustomRemarks.Reset() + if err := s.IsShowCustomRemarks.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"isShowCustomRemarks\"") + } + case "customRemarks": + if err := func() error { + s.CustomRemarks.Reset() + if err := s.CustomRemarks.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"customRemarks\"") + } + case "customResponseHeaders": + if err := func() error { + s.CustomResponseHeaders.Reset() + if err := s.CustomResponseHeaders.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"customResponseHeaders\"") + } + case "randomizeHosts": + if err := func() error { + s.RandomizeHosts.Reset() + if err := s.RandomizeHosts.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"randomizeHosts\"") + } + case "responseRules": + if err := func() error { + s.ResponseRules.Reset() + if err := s.ResponseRules.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"responseRules\"") + } + case "hwidSettings": + if err := func() error { + s.HwidSettings.Reset() + if err := s.HwidSettings.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"hwidSettings\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode UpdateSubscriptionSettingsRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [2]uint8{ + 0b00000001, + 0b00000000, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfUpdateSubscriptionSettingsRequest) { + name = jsonFieldsNameOfUpdateSubscriptionSettingsRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *UpdateSubscriptionSettingsRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UpdateSubscriptionSettingsRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s UpdateSubscriptionSettingsRequestCustomResponseHeaders) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields implements json.Marshaler. +func (s UpdateSubscriptionSettingsRequestCustomResponseHeaders) encodeFields(e *jx.Encoder) { + for k, elem := range s { + e.FieldStart(k) + + e.Str(elem) + } +} + +// Decode decodes UpdateSubscriptionSettingsRequestCustomResponseHeaders from json. +func (s *UpdateSubscriptionSettingsRequestCustomResponseHeaders) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UpdateSubscriptionSettingsRequestCustomResponseHeaders to nil") + } + m := s.init() + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + var elem string + if err := func() error { + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrapf(err, "decode field %q", k) + } + m[string(k)] = elem + return nil + }); err != nil { + return errors.Wrap(err, "decode UpdateSubscriptionSettingsRequestCustomResponseHeaders") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s UpdateSubscriptionSettingsRequestCustomResponseHeaders) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UpdateSubscriptionSettingsRequestCustomResponseHeaders) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *UpdateTemplateRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *UpdateTemplateRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + if s.Name.Set { + e.FieldStart("name") + s.Name.Encode(e) + } + } + { + if s.TemplateJson != nil { + e.FieldStart("templateJson") + s.TemplateJson.Encode(e) + } + } + { + if s.EncodedTemplateYaml.Set { + e.FieldStart("encodedTemplateYaml") + s.EncodedTemplateYaml.Encode(e) + } + } +} + +var jsonFieldsNameOfUpdateTemplateRequest = [4]string{ + 0: "uuid", + 1: "name", + 2: "templateJson", + 3: "encodedTemplateYaml", +} + +// Decode decodes UpdateTemplateRequest from json. +func (s *UpdateTemplateRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UpdateTemplateRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "name": + if err := func() error { + s.Name.Reset() + if err := s.Name.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "templateJson": + if err := func() error { + s.TemplateJson = nil + var elem UpdateTemplateRequestTemplateJson + if err := elem.Decode(d); err != nil { + return err + } + s.TemplateJson = &elem + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"templateJson\"") + } + case "encodedTemplateYaml": + if err := func() error { + s.EncodedTemplateYaml.Reset() + if err := s.EncodedTemplateYaml.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"encodedTemplateYaml\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode UpdateTemplateRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfUpdateTemplateRequest) { + name = jsonFieldsNameOfUpdateTemplateRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *UpdateTemplateRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UpdateTemplateRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *UpdateTemplateRequestTemplateJson) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *UpdateTemplateRequestTemplateJson) encodeFields(e *jx.Encoder) { +} + +var jsonFieldsNameOfUpdateTemplateRequestTemplateJson = [0]string{} + +// Decode decodes UpdateTemplateRequestTemplateJson from json. +func (s *UpdateTemplateRequestTemplateJson) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UpdateTemplateRequestTemplateJson to nil") + } + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + default: + return d.Skip() + } + }); err != nil { + return errors.Wrap(err, "decode UpdateTemplateRequestTemplateJson") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *UpdateTemplateRequestTemplateJson) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UpdateTemplateRequestTemplateJson) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *UpdateUserRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *UpdateUserRequest) encodeFields(e *jx.Encoder) { + { + if s.Username.Set { + e.FieldStart("username") + s.Username.Encode(e) + } + } + { + if s.UUID.Set { + e.FieldStart("uuid") + s.UUID.Encode(e) + } + } + { + if s.Status.Set { + e.FieldStart("status") + s.Status.Encode(e) + } + } + { + if s.TrafficLimitBytes.Set { + e.FieldStart("trafficLimitBytes") + s.TrafficLimitBytes.Encode(e) + } + } + { + if s.TrafficLimitStrategy.Set { + e.FieldStart("trafficLimitStrategy") + s.TrafficLimitStrategy.Encode(e) + } + } + { + if s.ExpireAt.Set { + e.FieldStart("expireAt") + s.ExpireAt.Encode(e, json.EncodeDateTime) + } + } + { + if s.Description.Set { + e.FieldStart("description") + s.Description.Encode(e) + } + } + { + if s.Tag.Set { + e.FieldStart("tag") + s.Tag.Encode(e) + } + } + { + if s.TelegramId.Set { + e.FieldStart("telegramId") + s.TelegramId.Encode(e) + } + } + { + if s.Email.Set { + e.FieldStart("email") + s.Email.Encode(e) + } + } + { + if s.HwidDeviceLimit.Set { + e.FieldStart("hwidDeviceLimit") + s.HwidDeviceLimit.Encode(e) + } + } + { + if s.ActiveInternalSquads != nil { + e.FieldStart("activeInternalSquads") + e.ArrStart() + for _, elem := range s.ActiveInternalSquads { + json.EncodeUUID(e, elem) + } + e.ArrEnd() + } + } + { + if s.ExternalSquadUuid.Set { + e.FieldStart("externalSquadUuid") + s.ExternalSquadUuid.Encode(e) + } + } +} + +var jsonFieldsNameOfUpdateUserRequest = [13]string{ + 0: "username", + 1: "uuid", + 2: "status", + 3: "trafficLimitBytes", + 4: "trafficLimitStrategy", + 5: "expireAt", + 6: "description", + 7: "tag", + 8: "telegramId", + 9: "email", + 10: "hwidDeviceLimit", + 11: "activeInternalSquads", + 12: "externalSquadUuid", +} + +// Decode decodes UpdateUserRequest from json. +func (s *UpdateUserRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UpdateUserRequest to nil") + } + s.setDefaults() + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "username": + if err := func() error { + s.Username.Reset() + if err := s.Username.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"username\"") + } + case "uuid": + if err := func() error { + s.UUID.Reset() + if err := s.UUID.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "status": + if err := func() error { + s.Status.Reset() + if err := s.Status.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"status\"") + } + case "trafficLimitBytes": + if err := func() error { + s.TrafficLimitBytes.Reset() + if err := s.TrafficLimitBytes.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"trafficLimitBytes\"") + } + case "trafficLimitStrategy": + if err := func() error { + s.TrafficLimitStrategy.Reset() + if err := s.TrafficLimitStrategy.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"trafficLimitStrategy\"") + } + case "expireAt": + if err := func() error { + s.ExpireAt.Reset() + if err := s.ExpireAt.Decode(d, json.DecodeDateTime); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"expireAt\"") + } + case "description": + if err := func() error { + s.Description.Reset() + if err := s.Description.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"description\"") + } + case "tag": + if err := func() error { + s.Tag.Reset() + if err := s.Tag.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"tag\"") + } + case "telegramId": + if err := func() error { + s.TelegramId.Reset() + if err := s.TelegramId.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"telegramId\"") + } + case "email": + if err := func() error { + s.Email.Reset() + if err := s.Email.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"email\"") + } + case "hwidDeviceLimit": + if err := func() error { + s.HwidDeviceLimit.Reset() + if err := s.HwidDeviceLimit.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"hwidDeviceLimit\"") + } + case "activeInternalSquads": + if err := func() error { + s.ActiveInternalSquads = make([]uuid.UUID, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem uuid.UUID + v, err := json.DecodeUUID(d) + elem = v + if err != nil { + return err + } + s.ActiveInternalSquads = append(s.ActiveInternalSquads, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"activeInternalSquads\"") + } + case "externalSquadUuid": + if err := func() error { + s.ExternalSquadUuid.Reset() + if err := s.ExternalSquadUuid.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"externalSquadUuid\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode UpdateUserRequest") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *UpdateUserRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UpdateUserRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes UpdateUserRequestStatus as json. +func (s UpdateUserRequestStatus) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes UpdateUserRequestStatus from json. +func (s *UpdateUserRequestStatus) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UpdateUserRequestStatus to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch UpdateUserRequestStatus(v) { + case UpdateUserRequestStatusACTIVE: + *s = UpdateUserRequestStatusACTIVE + case UpdateUserRequestStatusDISABLED: + *s = UpdateUserRequestStatusDISABLED + default: + *s = UpdateUserRequestStatus(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s UpdateUserRequestStatus) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UpdateUserRequestStatus) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes UpdateUserRequestTrafficLimitStrategy as json. +func (s UpdateUserRequestTrafficLimitStrategy) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes UpdateUserRequestTrafficLimitStrategy from json. +func (s *UpdateUserRequestTrafficLimitStrategy) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UpdateUserRequestTrafficLimitStrategy to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch UpdateUserRequestTrafficLimitStrategy(v) { + case UpdateUserRequestTrafficLimitStrategyNORESET: + *s = UpdateUserRequestTrafficLimitStrategyNORESET + case UpdateUserRequestTrafficLimitStrategyDAY: + *s = UpdateUserRequestTrafficLimitStrategyDAY + case UpdateUserRequestTrafficLimitStrategyWEEK: + *s = UpdateUserRequestTrafficLimitStrategyWEEK + case UpdateUserRequestTrafficLimitStrategyMONTH: + *s = UpdateUserRequestTrafficLimitStrategyMONTH + case UpdateUserRequestTrafficLimitStrategyMONTHROLLING: + *s = UpdateUserRequestTrafficLimitStrategyMONTHROLLING + default: + *s = UpdateUserRequestTrafficLimitStrategy(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s UpdateUserRequestTrafficLimitStrategy) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UpdateUserRequestTrafficLimitStrategy) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *UpsertUserMetadataRequestBodyRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *UpsertUserMetadataRequestBodyRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("metadata") + s.Metadata.Encode(e) + } +} + +var jsonFieldsNameOfUpsertUserMetadataRequestBodyRequest = [1]string{ + 0: "metadata", +} + +// Decode decodes UpsertUserMetadataRequestBodyRequest from json. +func (s *UpsertUserMetadataRequestBodyRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UpsertUserMetadataRequestBodyRequest to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "metadata": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Metadata.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"metadata\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode UpsertUserMetadataRequestBodyRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfUpsertUserMetadataRequestBodyRequest) { + name = jsonFieldsNameOfUpsertUserMetadataRequestBodyRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *UpsertUserMetadataRequestBodyRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UpsertUserMetadataRequestBodyRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *UpsertUserMetadataRequestBodyRequestMetadata) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *UpsertUserMetadataRequestBodyRequestMetadata) encodeFields(e *jx.Encoder) { +} + +var jsonFieldsNameOfUpsertUserMetadataRequestBodyRequestMetadata = [0]string{} + +// Decode decodes UpsertUserMetadataRequestBodyRequestMetadata from json. +func (s *UpsertUserMetadataRequestBodyRequestMetadata) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UpsertUserMetadataRequestBodyRequestMetadata to nil") + } + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + default: + return d.Skip() + } + }); err != nil { + return errors.Wrap(err, "decode UpsertUserMetadataRequestBodyRequestMetadata") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *UpsertUserMetadataRequestBodyRequestMetadata) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UpsertUserMetadataRequestBodyRequestMetadata) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *UserItem2) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *UserItem2) encodeFields(e *jx.Encoder) { + { + e.FieldStart("shortUuid") + e.Str(s.ShortUuid) + } + { + e.FieldStart("daysLeft") + e.Float64(s.DaysLeft) + } + { + e.FieldStart("trafficUsed") + e.Str(s.TrafficUsed) + } + { + e.FieldStart("trafficLimit") + e.Str(s.TrafficLimit) + } + { + e.FieldStart("lifetimeTrafficUsed") + e.Str(s.LifetimeTrafficUsed) + } + { + e.FieldStart("trafficUsedBytes") + e.Str(s.TrafficUsedBytes) + } + { + e.FieldStart("trafficLimitBytes") + e.Str(s.TrafficLimitBytes) + } + { + e.FieldStart("lifetimeTrafficUsedBytes") + e.Str(s.LifetimeTrafficUsedBytes) + } + { + e.FieldStart("username") + e.Str(s.Username) + } + { + e.FieldStart("expiresAt") + json.EncodeDateTime(e, s.ExpiresAt) + } + { + e.FieldStart("isActive") + e.Bool(s.IsActive) + } + { + e.FieldStart("userStatus") + s.UserStatus.Encode(e) + } + { + e.FieldStart("trafficLimitStrategy") + s.TrafficLimitStrategy.Encode(e) + } +} + +var jsonFieldsNameOfUserItem2 = [13]string{ + 0: "shortUuid", + 1: "daysLeft", + 2: "trafficUsed", + 3: "trafficLimit", + 4: "lifetimeTrafficUsed", + 5: "trafficUsedBytes", + 6: "trafficLimitBytes", + 7: "lifetimeTrafficUsedBytes", + 8: "username", + 9: "expiresAt", + 10: "isActive", + 11: "userStatus", + 12: "trafficLimitStrategy", +} + +// Decode decodes UserItem2 from json. +func (s *UserItem2) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UserItem2 to nil") + } + var requiredBitSet [2]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "shortUuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.ShortUuid = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"shortUuid\"") + } + case "daysLeft": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Float64() + s.DaysLeft = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"daysLeft\"") + } + case "trafficUsed": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.TrafficUsed = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"trafficUsed\"") + } + case "trafficLimit": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.Str() + s.TrafficLimit = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"trafficLimit\"") + } + case "lifetimeTrafficUsed": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + v, err := d.Str() + s.LifetimeTrafficUsed = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"lifetimeTrafficUsed\"") + } + case "trafficUsedBytes": + requiredBitSet[0] |= 1 << 5 + if err := func() error { + v, err := d.Str() + s.TrafficUsedBytes = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"trafficUsedBytes\"") + } + case "trafficLimitBytes": + requiredBitSet[0] |= 1 << 6 + if err := func() error { + v, err := d.Str() + s.TrafficLimitBytes = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"trafficLimitBytes\"") + } + case "lifetimeTrafficUsedBytes": + requiredBitSet[0] |= 1 << 7 + if err := func() error { + v, err := d.Str() + s.LifetimeTrafficUsedBytes = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"lifetimeTrafficUsedBytes\"") + } + case "username": + requiredBitSet[1] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Username = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"username\"") + } + case "expiresAt": + requiredBitSet[1] |= 1 << 1 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.ExpiresAt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"expiresAt\"") + } + case "isActive": + requiredBitSet[1] |= 1 << 2 + if err := func() error { + v, err := d.Bool() + s.IsActive = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"isActive\"") + } + case "userStatus": + requiredBitSet[1] |= 1 << 3 + if err := func() error { + if err := s.UserStatus.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"userStatus\"") + } + case "trafficLimitStrategy": + requiredBitSet[1] |= 1 << 4 + if err := func() error { + if err := s.TrafficLimitStrategy.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"trafficLimitStrategy\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode UserItem2") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [2]uint8{ + 0b11111111, + 0b00011111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfUserItem2) { + name = jsonFieldsNameOfUserItem2[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *UserItem2) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UserItem2) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes UserItem2TrafficLimitStrategy as json. +func (s UserItem2TrafficLimitStrategy) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes UserItem2TrafficLimitStrategy from json. +func (s *UserItem2TrafficLimitStrategy) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UserItem2TrafficLimitStrategy to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch UserItem2TrafficLimitStrategy(v) { + case UserItem2TrafficLimitStrategyNORESET: + *s = UserItem2TrafficLimitStrategyNORESET + case UserItem2TrafficLimitStrategyDAY: + *s = UserItem2TrafficLimitStrategyDAY + case UserItem2TrafficLimitStrategyWEEK: + *s = UserItem2TrafficLimitStrategyWEEK + case UserItem2TrafficLimitStrategyMONTH: + *s = UserItem2TrafficLimitStrategyMONTH + case UserItem2TrafficLimitStrategyMONTHROLLING: + *s = UserItem2TrafficLimitStrategyMONTHROLLING + default: + *s = UserItem2TrafficLimitStrategy(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s UserItem2TrafficLimitStrategy) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UserItem2TrafficLimitStrategy) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes UserItem2UserStatus as json. +func (s UserItem2UserStatus) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes UserItem2UserStatus from json. +func (s *UserItem2UserStatus) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UserItem2UserStatus to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch UserItem2UserStatus(v) { + case UserItem2UserStatusACTIVE: + *s = UserItem2UserStatusACTIVE + case UserItem2UserStatusDISABLED: + *s = UserItem2UserStatusDISABLED + case UserItem2UserStatusLIMITED: + *s = UserItem2UserStatusLIMITED + case UserItem2UserStatusEXPIRED: + *s = UserItem2UserStatusEXPIRED + default: + *s = UserItem2UserStatus(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s UserItem2UserStatus) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UserItem2UserStatus) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *UserItemInfo) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *UserItemInfo) encodeFields(e *jx.Encoder) { + { + e.FieldStart("uuid") + json.EncodeUUID(e, s.UUID) + } + { + e.FieldStart("id") + e.Float64(s.ID) + } + { + e.FieldStart("shortUuid") + e.Str(s.ShortUuid) + } + { + e.FieldStart("username") + e.Str(s.Username) + } + { + if s.Status.Set { + e.FieldStart("status") + s.Status.Encode(e) + } + } + { + if s.TrafficLimitBytes.Set { + e.FieldStart("trafficLimitBytes") + s.TrafficLimitBytes.Encode(e) + } + } + { + if s.TrafficLimitStrategy.Set { + e.FieldStart("trafficLimitStrategy") + s.TrafficLimitStrategy.Encode(e) + } + } + { + e.FieldStart("expireAt") + json.EncodeDateTime(e, s.ExpireAt) + } + { + e.FieldStart("telegramId") + s.TelegramId.Encode(e) + } + { + e.FieldStart("email") + s.Email.Encode(e) + } + { + e.FieldStart("description") + s.Description.Encode(e) + } + { + e.FieldStart("tag") + s.Tag.Encode(e) + } + { + e.FieldStart("hwidDeviceLimit") + s.HwidDeviceLimit.Encode(e) + } + { + e.FieldStart("externalSquadUuid") + s.ExternalSquadUuid.Encode(e) + } + { + e.FieldStart("trojanPassword") + e.Str(s.TrojanPassword) + } + { + e.FieldStart("vlessUuid") + json.EncodeUUID(e, s.VlessUuid) + } + { + e.FieldStart("ssPassword") + e.Str(s.SsPassword) + } + { + if s.LastTriggeredThreshold.Set { + e.FieldStart("lastTriggeredThreshold") + s.LastTriggeredThreshold.Encode(e) + } + } + { + e.FieldStart("subRevokedAt") + s.SubRevokedAt.Encode(e, json.EncodeDateTime) + } + { + e.FieldStart("lastTrafficResetAt") + s.LastTrafficResetAt.Encode(e, json.EncodeDateTime) + } + { + e.FieldStart("createdAt") + json.EncodeDateTime(e, s.CreatedAt) + } + { + e.FieldStart("updatedAt") + json.EncodeDateTime(e, s.UpdatedAt) + } + { + e.FieldStart("subscriptionUrl") + e.Str(s.SubscriptionUrl) + } + { + e.FieldStart("activeInternalSquads") + e.ArrStart() + for _, elem := range s.ActiveInternalSquads { + elem.Encode(e) + } + e.ArrEnd() + } + { + e.FieldStart("userTraffic") + s.UserTraffic.Encode(e) + } +} + +var jsonFieldsNameOfUserItemInfo = [25]string{ + 0: "uuid", + 1: "id", + 2: "shortUuid", + 3: "username", + 4: "status", + 5: "trafficLimitBytes", + 6: "trafficLimitStrategy", + 7: "expireAt", + 8: "telegramId", + 9: "email", + 10: "description", + 11: "tag", + 12: "hwidDeviceLimit", + 13: "externalSquadUuid", + 14: "trojanPassword", + 15: "vlessUuid", + 16: "ssPassword", + 17: "lastTriggeredThreshold", + 18: "subRevokedAt", + 19: "lastTrafficResetAt", + 20: "createdAt", + 21: "updatedAt", + 22: "subscriptionUrl", + 23: "activeInternalSquads", + 24: "userTraffic", +} + +// Decode decodes UserItemInfo from json. +func (s *UserItemInfo) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UserItemInfo to nil") + } + var requiredBitSet [4]uint8 + s.setDefaults() + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "uuid": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := json.DecodeUUID(d) + s.UUID = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"uuid\"") + } + case "id": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Float64() + s.ID = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"id\"") + } + case "shortUuid": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.ShortUuid = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"shortUuid\"") + } + case "username": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.Str() + s.Username = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"username\"") + } + case "status": + if err := func() error { + s.Status.Reset() + if err := s.Status.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"status\"") + } + case "trafficLimitBytes": + if err := func() error { + s.TrafficLimitBytes.Reset() + if err := s.TrafficLimitBytes.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"trafficLimitBytes\"") + } + case "trafficLimitStrategy": + if err := func() error { + s.TrafficLimitStrategy.Reset() + if err := s.TrafficLimitStrategy.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"trafficLimitStrategy\"") + } + case "expireAt": + requiredBitSet[0] |= 1 << 7 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.ExpireAt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"expireAt\"") + } + case "telegramId": + requiredBitSet[1] |= 1 << 0 + if err := func() error { + if err := s.TelegramId.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"telegramId\"") + } + case "email": + requiredBitSet[1] |= 1 << 1 + if err := func() error { + if err := s.Email.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"email\"") + } + case "description": + requiredBitSet[1] |= 1 << 2 + if err := func() error { + if err := s.Description.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"description\"") + } + case "tag": + requiredBitSet[1] |= 1 << 3 + if err := func() error { + if err := s.Tag.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"tag\"") + } + case "hwidDeviceLimit": + requiredBitSet[1] |= 1 << 4 + if err := func() error { + if err := s.HwidDeviceLimit.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"hwidDeviceLimit\"") + } + case "externalSquadUuid": + requiredBitSet[1] |= 1 << 5 + if err := func() error { + if err := s.ExternalSquadUuid.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"externalSquadUuid\"") + } + case "trojanPassword": + requiredBitSet[1] |= 1 << 6 + if err := func() error { + v, err := d.Str() + s.TrojanPassword = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"trojanPassword\"") + } + case "vlessUuid": + requiredBitSet[1] |= 1 << 7 + if err := func() error { + v, err := json.DecodeUUID(d) + s.VlessUuid = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"vlessUuid\"") + } + case "ssPassword": + requiredBitSet[2] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.SsPassword = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"ssPassword\"") + } + case "lastTriggeredThreshold": + if err := func() error { + s.LastTriggeredThreshold.Reset() + if err := s.LastTriggeredThreshold.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"lastTriggeredThreshold\"") + } + case "subRevokedAt": + requiredBitSet[2] |= 1 << 2 + if err := func() error { + if err := s.SubRevokedAt.Decode(d, json.DecodeDateTime); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"subRevokedAt\"") + } + case "lastTrafficResetAt": + requiredBitSet[2] |= 1 << 3 + if err := func() error { + if err := s.LastTrafficResetAt.Decode(d, json.DecodeDateTime); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"lastTrafficResetAt\"") + } + case "createdAt": + requiredBitSet[2] |= 1 << 4 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.CreatedAt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"createdAt\"") + } + case "updatedAt": + requiredBitSet[2] |= 1 << 5 + if err := func() error { + v, err := json.DecodeDateTime(d) + s.UpdatedAt = v + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"updatedAt\"") + } + case "subscriptionUrl": + requiredBitSet[2] |= 1 << 6 + if err := func() error { + v, err := d.Str() + s.SubscriptionUrl = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"subscriptionUrl\"") + } + case "activeInternalSquads": + requiredBitSet[2] |= 1 << 7 + if err := func() error { + s.ActiveInternalSquads = make([]ActiveInternalSquad, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem ActiveInternalSquad + if err := elem.Decode(d); err != nil { + return err + } + s.ActiveInternalSquads = append(s.ActiveInternalSquads, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"activeInternalSquads\"") + } + case "userTraffic": + requiredBitSet[3] |= 1 << 0 + if err := func() error { + if err := s.UserTraffic.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"userTraffic\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode UserItemInfo") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [4]uint8{ + 0b10001111, + 0b11111111, + 0b11111101, + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfUserItemInfo) { + name = jsonFieldsNameOfUserItemInfo[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *UserItemInfo) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UserItemInfo) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes UserItemInfoStatus as json. +func (s UserItemInfoStatus) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes UserItemInfoStatus from json. +func (s *UserItemInfoStatus) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UserItemInfoStatus to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch UserItemInfoStatus(v) { + case UserItemInfoStatusACTIVE: + *s = UserItemInfoStatusACTIVE + case UserItemInfoStatusDISABLED: + *s = UserItemInfoStatusDISABLED + case UserItemInfoStatusLIMITED: + *s = UserItemInfoStatusLIMITED + case UserItemInfoStatusEXPIRED: + *s = UserItemInfoStatusEXPIRED + default: + *s = UserItemInfoStatus(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s UserItemInfoStatus) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UserItemInfoStatus) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes UserItemInfoTrafficLimitStrategy as json. +func (s UserItemInfoTrafficLimitStrategy) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes UserItemInfoTrafficLimitStrategy from json. +func (s *UserItemInfoTrafficLimitStrategy) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UserItemInfoTrafficLimitStrategy to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch UserItemInfoTrafficLimitStrategy(v) { + case UserItemInfoTrafficLimitStrategyNORESET: + *s = UserItemInfoTrafficLimitStrategyNORESET + case UserItemInfoTrafficLimitStrategyDAY: + *s = UserItemInfoTrafficLimitStrategyDAY + case UserItemInfoTrafficLimitStrategyWEEK: + *s = UserItemInfoTrafficLimitStrategyWEEK + case UserItemInfoTrafficLimitStrategyMONTH: + *s = UserItemInfoTrafficLimitStrategyMONTH + case UserItemInfoTrafficLimitStrategyMONTHROLLING: + *s = UserItemInfoTrafficLimitStrategyMONTHROLLING + default: + *s = UserItemInfoTrafficLimitStrategy(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s UserItemInfoTrafficLimitStrategy) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UserItemInfoTrafficLimitStrategy) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *UserMetadataResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *UserMetadataResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfUserMetadataResponseResponse = [1]string{ + 0: "response", +} + +// Decode decodes UserMetadataResponseResponse from json. +func (s *UserMetadataResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UserMetadataResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode UserMetadataResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfUserMetadataResponseResponse) { + name = jsonFieldsNameOfUserMetadataResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *UserMetadataResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UserMetadataResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *UserMetadataResponseResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *UserMetadataResponseResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("metadata") + s.Metadata.Encode(e) + } +} + +var jsonFieldsNameOfUserMetadataResponseResponseResponse = [1]string{ + 0: "metadata", +} + +// Decode decodes UserMetadataResponseResponseResponse from json. +func (s *UserMetadataResponseResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UserMetadataResponseResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "metadata": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Metadata.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"metadata\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode UserMetadataResponseResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfUserMetadataResponseResponseResponse) { + name = jsonFieldsNameOfUserMetadataResponseResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *UserMetadataResponseResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UserMetadataResponseResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *UserMetadataResponseResponseResponseMetadata) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *UserMetadataResponseResponseResponseMetadata) encodeFields(e *jx.Encoder) { +} + +var jsonFieldsNameOfUserMetadataResponseResponseResponseMetadata = [0]string{} + +// Decode decodes UserMetadataResponseResponseResponseMetadata from json. +func (s *UserMetadataResponseResponseResponseMetadata) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UserMetadataResponseResponseResponseMetadata to nil") + } + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + default: + return d.Skip() + } + }); err != nil { + return errors.Wrap(err, "decode UserMetadataResponseResponseResponseMetadata") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *UserMetadataResponseResponseResponseMetadata) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UserMetadataResponseResponseResponseMetadata) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *UserResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *UserResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfUserResponse = [1]string{ + 0: "response", +} + +// Decode decodes UserResponse from json. +func (s *UserResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UserResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode UserResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfUserResponse) { + name = jsonFieldsNameOfUserResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *UserResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UserResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *UserSubscriptionHistory) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *UserSubscriptionHistory) encodeFields(e *jx.Encoder) { + { + e.FieldStart("total") + e.Float64(s.Total) + } + { + e.FieldStart("records") + e.ArrStart() + for _, elem := range s.Records { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfUserSubscriptionHistory = [2]string{ + 0: "total", + 1: "records", +} + +// Decode decodes UserSubscriptionHistory from json. +func (s *UserSubscriptionHistory) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UserSubscriptionHistory to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "total": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Float64() + s.Total = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"total\"") + } + case "records": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + s.Records = make([]Record, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem Record + if err := elem.Decode(d); err != nil { + return err + } + s.Records = append(s.Records, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"records\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode UserSubscriptionHistory") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfUserSubscriptionHistory) { + name = jsonFieldsNameOfUserSubscriptionHistory[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *UserSubscriptionHistory) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UserSubscriptionHistory) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *UserTrafficItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *UserTrafficItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("usedTrafficBytes") + e.Float64(s.UsedTrafficBytes) + } + { + e.FieldStart("lifetimeUsedTrafficBytes") + e.Float64(s.LifetimeUsedTrafficBytes) + } + { + e.FieldStart("onlineAt") + s.OnlineAt.Encode(e, json.EncodeDateTime) + } + { + e.FieldStart("firstConnectedAt") + s.FirstConnectedAt.Encode(e, json.EncodeDateTime) + } + { + e.FieldStart("lastConnectedNodeUuid") + s.LastConnectedNodeUuid.Encode(e) + } +} + +var jsonFieldsNameOfUserTrafficItem = [5]string{ + 0: "usedTrafficBytes", + 1: "lifetimeUsedTrafficBytes", + 2: "onlineAt", + 3: "firstConnectedAt", + 4: "lastConnectedNodeUuid", +} + +// Decode decodes UserTrafficItem from json. +func (s *UserTrafficItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UserTrafficItem to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "usedTrafficBytes": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Float64() + s.UsedTrafficBytes = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"usedTrafficBytes\"") + } + case "lifetimeUsedTrafficBytes": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Float64() + s.LifetimeUsedTrafficBytes = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"lifetimeUsedTrafficBytes\"") + } + case "onlineAt": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.OnlineAt.Decode(d, json.DecodeDateTime); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"onlineAt\"") + } + case "firstConnectedAt": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + if err := s.FirstConnectedAt.Decode(d, json.DecodeDateTime); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"firstConnectedAt\"") + } + case "lastConnectedNodeUuid": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + if err := s.LastConnectedNodeUuid.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"lastConnectedNodeUuid\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode UserTrafficItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00011111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfUserTrafficItem) { + name = jsonFieldsNameOfUserTrafficItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *UserTrafficItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UserTrafficItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *UsersResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *UsersResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + e.ArrStart() + for _, elem := range s.Response { + elem.Encode(e) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfUsersResponse = [1]string{ + 0: "response", +} + +// Decode decodes UsersResponse from json. +func (s *UsersResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode UsersResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.Response = make([]UserItemInfo, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem UserItemInfo + if err := elem.Decode(d); err != nil { + return err + } + s.Response = append(s.Response, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode UsersResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfUsersResponse) { + name = jsonFieldsNameOfUsersResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *UsersResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *UsersResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *ValidationError) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *ValidationError) encodeFields(e *jx.Encoder) { + { + e.FieldStart("validation") + e.Str(s.Validation) + } + { + e.FieldStart("code") + e.Str(s.Code) + } + { + e.FieldStart("message") + e.Str(s.Message) + } + { + e.FieldStart("path") + e.ArrStart() + for _, elem := range s.Path { + e.Str(elem) + } + e.ArrEnd() + } +} + +var jsonFieldsNameOfValidationError = [4]string{ + 0: "validation", + 1: "code", + 2: "message", + 3: "path", +} + +// Decode decodes ValidationError from json. +func (s *ValidationError) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ValidationError to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "validation": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Validation = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"validation\"") + } + case "code": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Code = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"code\"") + } + case "message": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.Message = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"message\"") + } + case "path": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + s.Path = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.Path = append(s.Path, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"path\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode ValidationError") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00001111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfValidationError) { + name = jsonFieldsNameOfValidationError[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *ValidationError) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ValidationError) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *VerifyPasskeyRegistrationResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *VerifyPasskeyRegistrationResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("response") + s.Response.Encode(e) + } +} + +var jsonFieldsNameOfVerifyPasskeyRegistrationResponse = [1]string{ + 0: "response", +} + +// Decode decodes VerifyPasskeyRegistrationResponse from json. +func (s *VerifyPasskeyRegistrationResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode VerifyPasskeyRegistrationResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "response": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Response.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"response\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode VerifyPasskeyRegistrationResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfVerifyPasskeyRegistrationResponse) { + name = jsonFieldsNameOfVerifyPasskeyRegistrationResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *VerifyPasskeyRegistrationResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *VerifyPasskeyRegistrationResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *VerifyPasskeyRegistrationResponseResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *VerifyPasskeyRegistrationResponseResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("verified") + e.Bool(s.Verified) + } +} + +var jsonFieldsNameOfVerifyPasskeyRegistrationResponseResponse = [1]string{ + 0: "verified", +} + +// Decode decodes VerifyPasskeyRegistrationResponseResponse from json. +func (s *VerifyPasskeyRegistrationResponseResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode VerifyPasskeyRegistrationResponseResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "verified": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Bool() + s.Verified = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"verified\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode VerifyPasskeyRegistrationResponseResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfVerifyPasskeyRegistrationResponseResponse) { + name = jsonFieldsNameOfVerifyPasskeyRegistrationResponseResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *VerifyPasskeyRegistrationResponseResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *VerifyPasskeyRegistrationResponseResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *Version) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *Version) encodeFields(e *jx.Encoder) { + { + e.FieldStart("xray") + e.Str(s.Xray) + } + { + e.FieldStart("node") + e.Str(s.Node) + } +} + +var jsonFieldsNameOfVersion = [2]string{ + 0: "xray", + 1: "node", +} + +// Decode decodes Version from json. +func (s *Version) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode Version to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "xray": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Xray = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"xray\"") + } + case "node": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Node = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"node\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode Version") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfVersion) { + name = jsonFieldsNameOfVersion[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *Version) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *Version) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *XrayReportItem) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *XrayReportItem) encodeFields(e *jx.Encoder) { + { + e.FieldStart("email") + s.Email.Encode(e) + } + { + e.FieldStart("level") + s.Level.Encode(e) + } + { + e.FieldStart("protocol") + s.Protocol.Encode(e) + } + { + e.FieldStart("network") + e.Str(s.Network) + } + { + e.FieldStart("source") + s.Source.Encode(e) + } + { + e.FieldStart("destination") + e.Str(s.Destination) + } + { + e.FieldStart("routeTarget") + s.RouteTarget.Encode(e) + } + { + e.FieldStart("originalTarget") + s.OriginalTarget.Encode(e) + } + { + e.FieldStart("inboundTag") + s.InboundTag.Encode(e) + } + { + e.FieldStart("inboundName") + s.InboundName.Encode(e) + } + { + e.FieldStart("inboundLocal") + s.InboundLocal.Encode(e) + } + { + e.FieldStart("outboundTag") + s.OutboundTag.Encode(e) + } + { + e.FieldStart("ts") + e.Float64(s.Ts) + } +} + +var jsonFieldsNameOfXrayReportItem = [13]string{ + 0: "email", + 1: "level", + 2: "protocol", + 3: "network", + 4: "source", + 5: "destination", + 6: "routeTarget", + 7: "originalTarget", + 8: "inboundTag", + 9: "inboundName", + 10: "inboundLocal", + 11: "outboundTag", + 12: "ts", +} + +// Decode decodes XrayReportItem from json. +func (s *XrayReportItem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode XrayReportItem to nil") + } + var requiredBitSet [2]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "email": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Email.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"email\"") + } + case "level": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.Level.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"level\"") + } + case "protocol": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.Protocol.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"protocol\"") + } + case "network": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.Str() + s.Network = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"network\"") + } + case "source": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + if err := s.Source.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"source\"") + } + case "destination": + requiredBitSet[0] |= 1 << 5 + if err := func() error { + v, err := d.Str() + s.Destination = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"destination\"") + } + case "routeTarget": + requiredBitSet[0] |= 1 << 6 + if err := func() error { + if err := s.RouteTarget.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"routeTarget\"") + } + case "originalTarget": + requiredBitSet[0] |= 1 << 7 + if err := func() error { + if err := s.OriginalTarget.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"originalTarget\"") + } + case "inboundTag": + requiredBitSet[1] |= 1 << 0 + if err := func() error { + if err := s.InboundTag.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"inboundTag\"") + } + case "inboundName": + requiredBitSet[1] |= 1 << 1 + if err := func() error { + if err := s.InboundName.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"inboundName\"") + } + case "inboundLocal": + requiredBitSet[1] |= 1 << 2 + if err := func() error { + if err := s.InboundLocal.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"inboundLocal\"") + } + case "outboundTag": + requiredBitSet[1] |= 1 << 3 + if err := func() error { + if err := s.OutboundTag.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"outboundTag\"") + } + case "ts": + requiredBitSet[1] |= 1 << 4 + if err := func() error { + v, err := d.Float64() + s.Ts = float64(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"ts\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode XrayReportItem") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [2]uint8{ + 0b11111111, + 0b00011111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfXrayReportItem) { + name = jsonFieldsNameOfXrayReportItem[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *XrayReportItem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *XrayReportItem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} diff --git a/api/oas_operations_gen.go b/api/oas_operations_gen.go new file mode 100644 index 0000000..ebe264b --- /dev/null +++ b/api/oas_operations_gen.go @@ -0,0 +1,194 @@ +// Code generated by ogen, DO NOT EDIT. + +package api + +// OperationName is the ogen operation name +type OperationName = string + +const ( + ApiTokensCreateOperation OperationName = "ApiTokensCreate" + ApiTokensDeleteOperation OperationName = "ApiTokensDelete" + ApiTokensFindAllOperation OperationName = "ApiTokensFindAll" + AuthGetStatusOperation OperationName = "AuthGetStatus" + AuthLoginOperation OperationName = "AuthLogin" + AuthOauth2AuthorizeOperation OperationName = "AuthOauth2Authorize" + AuthOauth2CallbackOperation OperationName = "AuthOauth2Callback" + AuthPasskeyAuthenticationOptionsOperation OperationName = "AuthPasskeyAuthenticationOptions" + AuthPasskeyAuthenticationVerifyOperation OperationName = "AuthPasskeyAuthenticationVerify" + AuthRegisterOperation OperationName = "AuthRegister" + BandwidthStatsNodesGetNodeUserUsageOperation OperationName = "BandwidthStatsNodesGetNodeUserUsage" + BandwidthStatsNodesGetStatsNodeUsersUsageOperation OperationName = "BandwidthStatsNodesGetStatsNodeUsersUsage" + BandwidthStatsUsersGetStatsNodesUsageOperation OperationName = "BandwidthStatsUsersGetStatsNodesUsage" + BandwidthStatsUsersGetUserUsageByRangeOperation OperationName = "BandwidthStatsUsersGetUserUsageByRange" + ConfigProfileCreateConfigProfileOperation OperationName = "ConfigProfileCreateConfigProfile" + ConfigProfileDeleteConfigProfileByUuidOperation OperationName = "ConfigProfileDeleteConfigProfileByUuid" + ConfigProfileGetAllInboundsOperation OperationName = "ConfigProfileGetAllInbounds" + ConfigProfileGetComputedConfigProfileByUuidOperation OperationName = "ConfigProfileGetComputedConfigProfileByUuid" + ConfigProfileGetConfigProfileByUuidOperation OperationName = "ConfigProfileGetConfigProfileByUuid" + ConfigProfileGetConfigProfilesOperation OperationName = "ConfigProfileGetConfigProfiles" + ConfigProfileGetInboundsByProfileUuidOperation OperationName = "ConfigProfileGetInboundsByProfileUuid" + ConfigProfileReorderConfigProfilesOperation OperationName = "ConfigProfileReorderConfigProfiles" + ConfigProfileUpdateConfigProfileOperation OperationName = "ConfigProfileUpdateConfigProfile" + ExternalSquadAddUsersToExternalSquadOperation OperationName = "ExternalSquadAddUsersToExternalSquad" + ExternalSquadCreateExternalSquadOperation OperationName = "ExternalSquadCreateExternalSquad" + ExternalSquadDeleteExternalSquadOperation OperationName = "ExternalSquadDeleteExternalSquad" + ExternalSquadGetExternalSquadByUuidOperation OperationName = "ExternalSquadGetExternalSquadByUuid" + ExternalSquadGetExternalSquadsOperation OperationName = "ExternalSquadGetExternalSquads" + ExternalSquadRemoveUsersFromExternalSquadOperation OperationName = "ExternalSquadRemoveUsersFromExternalSquad" + ExternalSquadReorderExternalSquadsOperation OperationName = "ExternalSquadReorderExternalSquads" + ExternalSquadUpdateExternalSquadOperation OperationName = "ExternalSquadUpdateExternalSquad" + HostsBulkActionsDeleteHostsOperation OperationName = "HostsBulkActionsDeleteHosts" + HostsBulkActionsDisableHostsOperation OperationName = "HostsBulkActionsDisableHosts" + HostsBulkActionsEnableHostsOperation OperationName = "HostsBulkActionsEnableHosts" + HostsBulkActionsSetInboundToHostsOperation OperationName = "HostsBulkActionsSetInboundToHosts" + HostsBulkActionsSetPortToHostsOperation OperationName = "HostsBulkActionsSetPortToHosts" + HostsCreateHostOperation OperationName = "HostsCreateHost" + HostsDeleteHostOperation OperationName = "HostsDeleteHost" + HostsGetAllHostTagsOperation OperationName = "HostsGetAllHostTags" + HostsGetAllHostsOperation OperationName = "HostsGetAllHosts" + HostsGetOneHostOperation OperationName = "HostsGetOneHost" + HostsReorderHostsOperation OperationName = "HostsReorderHosts" + HostsUpdateHostOperation OperationName = "HostsUpdateHost" + HwidUserDevicesCreateUserHwidDeviceOperation OperationName = "HwidUserDevicesCreateUserHwidDevice" + HwidUserDevicesDeleteAllUserHwidDevicesOperation OperationName = "HwidUserDevicesDeleteAllUserHwidDevices" + HwidUserDevicesDeleteUserHwidDeviceOperation OperationName = "HwidUserDevicesDeleteUserHwidDevice" + HwidUserDevicesGetAllUsersOperation OperationName = "HwidUserDevicesGetAllUsers" + HwidUserDevicesGetHwidDevicesStatsOperation OperationName = "HwidUserDevicesGetHwidDevicesStats" + HwidUserDevicesGetTopUsersByHwidDevicesOperation OperationName = "HwidUserDevicesGetTopUsersByHwidDevices" + HwidUserDevicesGetUserHwidDevicesOperation OperationName = "HwidUserDevicesGetUserHwidDevices" + InfraBillingCreateInfraBillingHistoryRecordOperation OperationName = "InfraBillingCreateInfraBillingHistoryRecord" + InfraBillingCreateInfraBillingNodeOperation OperationName = "InfraBillingCreateInfraBillingNode" + InfraBillingCreateInfraProviderOperation OperationName = "InfraBillingCreateInfraProvider" + InfraBillingDeleteInfraBillingHistoryRecordByUuidOperation OperationName = "InfraBillingDeleteInfraBillingHistoryRecordByUuid" + InfraBillingDeleteInfraBillingNodeByUuidOperation OperationName = "InfraBillingDeleteInfraBillingNodeByUuid" + InfraBillingDeleteInfraProviderByUuidOperation OperationName = "InfraBillingDeleteInfraProviderByUuid" + InfraBillingGetBillingNodesOperation OperationName = "InfraBillingGetBillingNodes" + InfraBillingGetInfraBillingHistoryRecordsOperation OperationName = "InfraBillingGetInfraBillingHistoryRecords" + InfraBillingGetInfraProviderByUuidOperation OperationName = "InfraBillingGetInfraProviderByUuid" + InfraBillingGetInfraProvidersOperation OperationName = "InfraBillingGetInfraProviders" + InfraBillingUpdateInfraBillingNodeOperation OperationName = "InfraBillingUpdateInfraBillingNode" + InfraBillingUpdateInfraProviderOperation OperationName = "InfraBillingUpdateInfraProvider" + InternalSquadAddUsersToInternalSquadOperation OperationName = "InternalSquadAddUsersToInternalSquad" + InternalSquadCreateInternalSquadOperation OperationName = "InternalSquadCreateInternalSquad" + InternalSquadDeleteInternalSquadOperation OperationName = "InternalSquadDeleteInternalSquad" + InternalSquadGetInternalSquadAccessibleNodesOperation OperationName = "InternalSquadGetInternalSquadAccessibleNodes" + InternalSquadGetInternalSquadByUuidOperation OperationName = "InternalSquadGetInternalSquadByUuid" + InternalSquadGetInternalSquadsOperation OperationName = "InternalSquadGetInternalSquads" + InternalSquadRemoveUsersFromInternalSquadOperation OperationName = "InternalSquadRemoveUsersFromInternalSquad" + InternalSquadReorderInternalSquadsOperation OperationName = "InternalSquadReorderInternalSquads" + InternalSquadUpdateInternalSquadOperation OperationName = "InternalSquadUpdateInternalSquad" + IpControlDropConnectionsOperation OperationName = "IpControlDropConnections" + IpControlFetchUserIpsOperation OperationName = "IpControlFetchUserIps" + IpControlFetchUsersIpsOperation OperationName = "IpControlFetchUsersIps" + IpControlGetFetchIpsResultOperation OperationName = "IpControlGetFetchIpsResult" + IpControlGetFetchUsersIpsResultOperation OperationName = "IpControlGetFetchUsersIpsResult" + KeygenGenerateKeyOperation OperationName = "KeygenGenerateKey" + MetadataGetNodeMetadataOperation OperationName = "MetadataGetNodeMetadata" + MetadataGetUserMetadataOperation OperationName = "MetadataGetUserMetadata" + MetadataUpsertNodeMetadataOperation OperationName = "MetadataUpsertNodeMetadata" + MetadataUpsertUserMetadataOperation OperationName = "MetadataUpsertUserMetadata" + NodePluginCloneNodePluginOperation OperationName = "NodePluginCloneNodePlugin" + NodePluginCreateConfigOperation OperationName = "NodePluginCreateConfig" + NodePluginDeleteConfigOperation OperationName = "NodePluginDeleteConfig" + NodePluginGetAllConfigsOperation OperationName = "NodePluginGetAllConfigs" + NodePluginGetConfigByUuidOperation OperationName = "NodePluginGetConfigByUuid" + NodePluginPluginExecutorOperation OperationName = "NodePluginPluginExecutor" + NodePluginReorderNodePluginsOperation OperationName = "NodePluginReorderNodePlugins" + NodePluginUpdateConfigOperation OperationName = "NodePluginUpdateConfig" + NodesBulkNodesActionsOperation OperationName = "NodesBulkNodesActions" + NodesBulkNodesUpdateOperation OperationName = "NodesBulkNodesUpdate" + NodesCreateNodeOperation OperationName = "NodesCreateNode" + NodesDeleteNodeOperation OperationName = "NodesDeleteNode" + NodesDisableNodeOperation OperationName = "NodesDisableNode" + NodesEnableNodeOperation OperationName = "NodesEnableNode" + NodesGetAllNodesOperation OperationName = "NodesGetAllNodes" + NodesGetAllNodesTagsOperation OperationName = "NodesGetAllNodesTags" + NodesGetOneNodeOperation OperationName = "NodesGetOneNode" + NodesProfileModificationOperation OperationName = "NodesProfileModification" + NodesReorderNodesOperation OperationName = "NodesReorderNodes" + NodesResetNodeTrafficOperation OperationName = "NodesResetNodeTraffic" + NodesRestartAllNodesOperation OperationName = "NodesRestartAllNodes" + NodesRestartNodeOperation OperationName = "NodesRestartNode" + NodesUpdateNodeOperation OperationName = "NodesUpdateNode" + NodesUsageHistoryGetStatsNodesUsageOperation OperationName = "NodesUsageHistoryGetStatsNodesUsage" + PasskeyDeletePasskeyOperation OperationName = "PasskeyDeletePasskey" + PasskeyGetActivePasskeysOperation OperationName = "PasskeyGetActivePasskeys" + PasskeyPasskeyRegistrationOptionsOperation OperationName = "PasskeyPasskeyRegistrationOptions" + PasskeyPasskeyRegistrationVerifyOperation OperationName = "PasskeyPasskeyRegistrationVerify" + PasskeyUpdatePasskeyOperation OperationName = "PasskeyUpdatePasskey" + RemnawaveSettingsGetSettingsOperation OperationName = "RemnawaveSettingsGetSettings" + RemnawaveSettingsUpdateSettingsOperation OperationName = "RemnawaveSettingsUpdateSettings" + SnippetsCreateSnippetOperation OperationName = "SnippetsCreateSnippet" + SnippetsDeleteSnippetByNameOperation OperationName = "SnippetsDeleteSnippetByName" + SnippetsGetSnippetsOperation OperationName = "SnippetsGetSnippets" + SnippetsUpdateSnippetOperation OperationName = "SnippetsUpdateSnippet" + SubscriptionGetSubscriptionOperation OperationName = "SubscriptionGetSubscription" + SubscriptionGetSubscriptionByClientTypeOperation OperationName = "SubscriptionGetSubscriptionByClientType" + SubscriptionGetSubscriptionInfoByShortUuidOperation OperationName = "SubscriptionGetSubscriptionInfoByShortUuid" + SubscriptionPageConfigCloneSubscriptionPageConfigOperation OperationName = "SubscriptionPageConfigCloneSubscriptionPageConfig" + SubscriptionPageConfigCreateConfigOperation OperationName = "SubscriptionPageConfigCreateConfig" + SubscriptionPageConfigDeleteConfigOperation OperationName = "SubscriptionPageConfigDeleteConfig" + SubscriptionPageConfigGetAllConfigsOperation OperationName = "SubscriptionPageConfigGetAllConfigs" + SubscriptionPageConfigGetConfigByUuidOperation OperationName = "SubscriptionPageConfigGetConfigByUuid" + SubscriptionPageConfigReorderSubscriptionPageConfigsOperation OperationName = "SubscriptionPageConfigReorderSubscriptionPageConfigs" + SubscriptionPageConfigUpdateConfigOperation OperationName = "SubscriptionPageConfigUpdateConfig" + SubscriptionSettingsGetSettingsOperation OperationName = "SubscriptionSettingsGetSettings" + SubscriptionSettingsUpdateSettingsOperation OperationName = "SubscriptionSettingsUpdateSettings" + SubscriptionTemplateCreateTemplateOperation OperationName = "SubscriptionTemplateCreateTemplate" + SubscriptionTemplateDeleteTemplateOperation OperationName = "SubscriptionTemplateDeleteTemplate" + SubscriptionTemplateGetAllTemplatesOperation OperationName = "SubscriptionTemplateGetAllTemplates" + SubscriptionTemplateGetTemplateByUuidOperation OperationName = "SubscriptionTemplateGetTemplateByUuid" + SubscriptionTemplateReorderSubscriptionTemplatesOperation OperationName = "SubscriptionTemplateReorderSubscriptionTemplates" + SubscriptionTemplateUpdateTemplateOperation OperationName = "SubscriptionTemplateUpdateTemplate" + SubscriptionsGetAllSubscriptionsOperation OperationName = "SubscriptionsGetAllSubscriptions" + SubscriptionsGetConnectionKeysByUuidOperation OperationName = "SubscriptionsGetConnectionKeysByUuid" + SubscriptionsGetRawSubscriptionByShortUuidOperation OperationName = "SubscriptionsGetRawSubscriptionByShortUuid" + SubscriptionsGetSubpageConfigByShortUuidOperation OperationName = "SubscriptionsGetSubpageConfigByShortUuid" + SubscriptionsGetSubscriptionByShortUuidProtectedOperation OperationName = "SubscriptionsGetSubscriptionByShortUuidProtected" + SubscriptionsGetSubscriptionByUsernameOperation OperationName = "SubscriptionsGetSubscriptionByUsername" + SubscriptionsGetSubscriptionByUuidOperation OperationName = "SubscriptionsGetSubscriptionByUuid" + SystemDebugSrrMatcherOperation OperationName = "SystemDebugSrrMatcher" + SystemEncryptHappCryptoLinkOperation OperationName = "SystemEncryptHappCryptoLink" + SystemGetBandwidthStatsOperation OperationName = "SystemGetBandwidthStats" + SystemGetMetadataOperation OperationName = "SystemGetMetadata" + SystemGetNodesMetricsOperation OperationName = "SystemGetNodesMetrics" + SystemGetNodesStatisticsOperation OperationName = "SystemGetNodesStatistics" + SystemGetRecapOperation OperationName = "SystemGetRecap" + SystemGetRemnawaveHealthOperation OperationName = "SystemGetRemnawaveHealth" + SystemGetStatsOperation OperationName = "SystemGetStats" + SystemGetX25519KeypairsOperation OperationName = "SystemGetX25519Keypairs" + TorrentBlockerReportsGetTorrentBlockerReportsOperation OperationName = "TorrentBlockerReportsGetTorrentBlockerReports" + TorrentBlockerReportsGetTorrentBlockerReportsStatsOperation OperationName = "TorrentBlockerReportsGetTorrentBlockerReportsStats" + TorrentBlockerReportsTruncateTorrentBlockerReportsOperation OperationName = "TorrentBlockerReportsTruncateTorrentBlockerReports" + UserSubscriptionRequestHistoryGetSubscriptionRequestHistoryOperation OperationName = "UserSubscriptionRequestHistoryGetSubscriptionRequestHistory" + UserSubscriptionRequestHistoryGetSubscriptionRequestHistoryStatsOperation OperationName = "UserSubscriptionRequestHistoryGetSubscriptionRequestHistoryStats" + UsersBulkActionsBulkAllExtendExpirationDateOperation OperationName = "UsersBulkActionsBulkAllExtendExpirationDate" + UsersBulkActionsBulkAllResetUserTrafficOperation OperationName = "UsersBulkActionsBulkAllResetUserTraffic" + UsersBulkActionsBulkDeleteUsersOperation OperationName = "UsersBulkActionsBulkDeleteUsers" + UsersBulkActionsBulkDeleteUsersByStatusOperation OperationName = "UsersBulkActionsBulkDeleteUsersByStatus" + UsersBulkActionsBulkExtendExpirationDateOperation OperationName = "UsersBulkActionsBulkExtendExpirationDate" + UsersBulkActionsBulkResetUserTrafficOperation OperationName = "UsersBulkActionsBulkResetUserTraffic" + UsersBulkActionsBulkRevokeUsersSubscriptionOperation OperationName = "UsersBulkActionsBulkRevokeUsersSubscription" + UsersBulkActionsBulkUpdateAllUsersOperation OperationName = "UsersBulkActionsBulkUpdateAllUsers" + UsersBulkActionsBulkUpdateUsersOperation OperationName = "UsersBulkActionsBulkUpdateUsers" + UsersBulkActionsBulkUpdateUsersInternalSquadsOperation OperationName = "UsersBulkActionsBulkUpdateUsersInternalSquads" + UsersCreateUserOperation OperationName = "UsersCreateUser" + UsersDeleteUserOperation OperationName = "UsersDeleteUser" + UsersDisableUserOperation OperationName = "UsersDisableUser" + UsersEnableUserOperation OperationName = "UsersEnableUser" + UsersGetAllTagsOperation OperationName = "UsersGetAllTags" + UsersGetAllUsersOperation OperationName = "UsersGetAllUsers" + UsersGetUserAccessibleNodesOperation OperationName = "UsersGetUserAccessibleNodes" + UsersGetUserByIdOperation OperationName = "UsersGetUserById" + UsersGetUserByShortUuidOperation OperationName = "UsersGetUserByShortUuid" + UsersGetUserByTelegramIdOperation OperationName = "UsersGetUserByTelegramId" + UsersGetUserByUsernameOperation OperationName = "UsersGetUserByUsername" + UsersGetUserByUuidOperation OperationName = "UsersGetUserByUuid" + UsersGetUserSubscriptionRequestHistoryOperation OperationName = "UsersGetUserSubscriptionRequestHistory" + UsersGetUsersByEmailOperation OperationName = "UsersGetUsersByEmail" + UsersGetUsersByTagOperation OperationName = "UsersGetUsersByTag" + UsersResetUserTrafficOperation OperationName = "UsersResetUserTraffic" + UsersResolveUserOperation OperationName = "UsersResolveUser" + UsersRevokeUserSubscriptionOperation OperationName = "UsersRevokeUserSubscription" + UsersUpdateUserOperation OperationName = "UsersUpdateUser" +) diff --git a/api/oas_parameters_gen.go b/api/oas_parameters_gen.go new file mode 100644 index 0000000..532879b --- /dev/null +++ b/api/oas_parameters_gen.go @@ -0,0 +1,481 @@ +// Code generated by ogen, DO NOT EDIT. + +package api + +import ( + "time" +) + +// ApiTokensDeleteParams is parameters of ApiTokens_delete operation. +type ApiTokensDeleteParams struct { + // UUID of the API token. + UUID string +} + +// BandwidthStatsNodesGetNodeUserUsageParams is parameters of BandwidthStatsNodes_getNodeUserUsage operation. +type BandwidthStatsNodesGetNodeUserUsageParams struct { + // Start date. + Start time.Time + // End date. + End time.Time + // UUID of the node. + UUID string +} + +// BandwidthStatsNodesGetStatsNodeUsersUsageParams is parameters of BandwidthStatsNodes_getStatsNodeUsersUsage operation. +type BandwidthStatsNodesGetStatsNodeUsersUsageParams struct { + // Limit of top users to return. + TopUsersLimit int + // Start date (YYYY-MM-DD). + Start time.Time + // End date (YYYY-MM-DD). + End time.Time + // UUID of the node. + UUID string +} + +// BandwidthStatsUsersGetStatsNodesUsageParams is parameters of BandwidthStatsUsers_getStatsNodesUsage operation. +type BandwidthStatsUsersGetStatsNodesUsageParams struct { + // Limit of top nodes to return. + TopNodesLimit int + // Start date (YYYY-MM-DD). + Start time.Time + // End date (YYYY-MM-DD). + End time.Time + // UUID of the user. + UUID string +} + +// BandwidthStatsUsersGetUserUsageByRangeParams is parameters of BandwidthStatsUsers_getUserUsageByRange operation. +type BandwidthStatsUsersGetUserUsageByRangeParams struct { + // Start date. + Start time.Time + // End date. + End time.Time + // UUID of the user. + UUID string +} + +// ConfigProfileDeleteConfigProfileByUuidParams is parameters of ConfigProfile_deleteConfigProfileByUuid operation. +type ConfigProfileDeleteConfigProfileByUuidParams struct { + UUID string +} + +// ConfigProfileGetComputedConfigProfileByUuidParams is parameters of ConfigProfile_getComputedConfigProfileByUuid operation. +type ConfigProfileGetComputedConfigProfileByUuidParams struct { + UUID string +} + +// ConfigProfileGetConfigProfileByUuidParams is parameters of ConfigProfile_getConfigProfileByUuid operation. +type ConfigProfileGetConfigProfileByUuidParams struct { + UUID string +} + +// ConfigProfileGetInboundsByProfileUuidParams is parameters of ConfigProfile_getInboundsByProfileUuid operation. +type ConfigProfileGetInboundsByProfileUuidParams struct { + UUID string +} + +// ExternalSquadAddUsersToExternalSquadParams is parameters of ExternalSquad_addUsersToExternalSquad operation. +type ExternalSquadAddUsersToExternalSquadParams struct { + UUID string +} + +// ExternalSquadDeleteExternalSquadParams is parameters of ExternalSquad_deleteExternalSquad operation. +type ExternalSquadDeleteExternalSquadParams struct { + UUID string +} + +// ExternalSquadGetExternalSquadByUuidParams is parameters of ExternalSquad_getExternalSquadByUuid operation. +type ExternalSquadGetExternalSquadByUuidParams struct { + UUID string +} + +// ExternalSquadRemoveUsersFromExternalSquadParams is parameters of ExternalSquad_removeUsersFromExternalSquad operation. +type ExternalSquadRemoveUsersFromExternalSquadParams struct { + UUID string +} + +// HostsDeleteHostParams is parameters of Hosts_deleteHost operation. +type HostsDeleteHostParams struct { + // UUID of the host. + UUID string +} + +// HostsGetOneHostParams is parameters of Hosts_getOneHost operation. +type HostsGetOneHostParams struct { + // UUID of the host. + UUID string +} + +// HwidUserDevicesGetAllUsersParams is parameters of HwidUserDevices_getAllUsers operation. +type HwidUserDevicesGetAllUsersParams struct { + // Page size for pagination. + Size OptInt `json:",omitempty,omitzero"` + // Offset for pagination. + Start OptInt `json:",omitempty,omitzero"` +} + +// HwidUserDevicesGetTopUsersByHwidDevicesParams is parameters of HwidUserDevices_getTopUsersByHwidDevices operation. +type HwidUserDevicesGetTopUsersByHwidDevicesParams struct { + // Page size for pagination. + Size OptInt `json:",omitempty,omitzero"` + // Offset for pagination. + Start OptInt `json:",omitempty,omitzero"` +} + +// HwidUserDevicesGetUserHwidDevicesParams is parameters of HwidUserDevices_getUserHwidDevices operation. +type HwidUserDevicesGetUserHwidDevicesParams struct { + // UUID of the user. + UserUuid string +} + +// InfraBillingDeleteInfraBillingHistoryRecordByUuidParams is parameters of InfraBilling_deleteInfraBillingHistoryRecordByUuid operation. +type InfraBillingDeleteInfraBillingHistoryRecordByUuidParams struct { + UUID string +} + +// InfraBillingDeleteInfraBillingNodeByUuidParams is parameters of InfraBilling_deleteInfraBillingNodeByUuid operation. +type InfraBillingDeleteInfraBillingNodeByUuidParams struct { + UUID string +} + +// InfraBillingDeleteInfraProviderByUuidParams is parameters of InfraBilling_deleteInfraProviderByUuid operation. +type InfraBillingDeleteInfraProviderByUuidParams struct { + UUID string +} + +// InfraBillingGetInfraProviderByUuidParams is parameters of InfraBilling_getInfraProviderByUuid operation. +type InfraBillingGetInfraProviderByUuidParams struct { + UUID string +} + +// InternalSquadAddUsersToInternalSquadParams is parameters of InternalSquad_addUsersToInternalSquad operation. +type InternalSquadAddUsersToInternalSquadParams struct { + UUID string +} + +// InternalSquadDeleteInternalSquadParams is parameters of InternalSquad_deleteInternalSquad operation. +type InternalSquadDeleteInternalSquadParams struct { + UUID string +} + +// InternalSquadGetInternalSquadAccessibleNodesParams is parameters of InternalSquad_getInternalSquadAccessibleNodes operation. +type InternalSquadGetInternalSquadAccessibleNodesParams struct { + // UUID of the internal squad. + UUID string +} + +// InternalSquadGetInternalSquadByUuidParams is parameters of InternalSquad_getInternalSquadByUuid operation. +type InternalSquadGetInternalSquadByUuidParams struct { + UUID string +} + +// InternalSquadRemoveUsersFromInternalSquadParams is parameters of InternalSquad_removeUsersFromInternalSquad operation. +type InternalSquadRemoveUsersFromInternalSquadParams struct { + UUID string +} + +// IpControlFetchUserIpsParams is parameters of IpControl_fetchUserIps operation. +type IpControlFetchUserIpsParams struct { + // UUID of the user. + UUID string +} + +// IpControlFetchUsersIpsParams is parameters of IpControl_fetchUsersIps operation. +type IpControlFetchUsersIpsParams struct { + // UUID of the node. + NodeUuid string +} + +// IpControlGetFetchIpsResultParams is parameters of IpControl_getFetchIpsResult operation. +type IpControlGetFetchIpsResultParams struct { + // Job ID. + JobId string +} + +// IpControlGetFetchUsersIpsResultParams is parameters of IpControl_getFetchUsersIpsResult operation. +type IpControlGetFetchUsersIpsResultParams struct { + // Job ID. + JobId string +} + +// MetadataGetNodeMetadataParams is parameters of Metadata_getNodeMetadata operation. +type MetadataGetNodeMetadataParams struct { + // UUID of the node. + UUID string +} + +// MetadataGetUserMetadataParams is parameters of Metadata_getUserMetadata operation. +type MetadataGetUserMetadataParams struct { + // UUID of the user. + UUID string +} + +// MetadataUpsertNodeMetadataParams is parameters of Metadata_upsertNodeMetadata operation. +type MetadataUpsertNodeMetadataParams struct { + // UUID of the node. + UUID string +} + +// MetadataUpsertUserMetadataParams is parameters of Metadata_upsertUserMetadata operation. +type MetadataUpsertUserMetadataParams struct { + // UUID of the user. + UUID string +} + +// NodePluginDeleteConfigParams is parameters of NodePlugin_deleteConfig operation. +type NodePluginDeleteConfigParams struct { + // Node plugin UUID. + UUID string +} + +// NodePluginGetConfigByUuidParams is parameters of NodePlugin_getConfigByUuid operation. +type NodePluginGetConfigByUuidParams struct { + // Node plugin UUID. + UUID string +} + +// NodesDeleteNodeParams is parameters of Nodes_deleteNode operation. +type NodesDeleteNodeParams struct { + // Node UUID. + UUID string +} + +// NodesDisableNodeParams is parameters of Nodes_disableNode operation. +type NodesDisableNodeParams struct { + // Node UUID. + UUID string +} + +// NodesEnableNodeParams is parameters of Nodes_enableNode operation. +type NodesEnableNodeParams struct { + // Node UUID. + UUID string +} + +// NodesGetOneNodeParams is parameters of Nodes_getOneNode operation. +type NodesGetOneNodeParams struct { + // Node UUID. + UUID string +} + +// NodesResetNodeTrafficParams is parameters of Nodes_resetNodeTraffic operation. +type NodesResetNodeTrafficParams struct { + // Node UUID. + UUID string +} + +// NodesRestartNodeParams is parameters of Nodes_restartNode operation. +type NodesRestartNodeParams struct { + // Node UUID. + UUID string +} + +// NodesUsageHistoryGetStatsNodesUsageParams is parameters of NodesUsageHistory_getStatsNodesUsage operation. +type NodesUsageHistoryGetStatsNodesUsageParams struct { + // Limit of top nodes to return. + TopNodesLimit int + // Start date (YYYY-MM-DD). + Start time.Time + // End date (YYYY-MM-DD). + End time.Time +} + +// SubscriptionGetSubscriptionParams is parameters of Subscription_getSubscription operation. +type SubscriptionGetSubscriptionParams struct { + // Short UUID of the user. + ShortUuid string +} + +// SubscriptionGetSubscriptionByClientTypeParams is parameters of Subscription_getSubscriptionByClientType operation. +type SubscriptionGetSubscriptionByClientTypeParams struct { + // Client type. + ClientType SubscriptionGetSubscriptionByClientTypeClientType + // Short UUID of the user. + ShortUuid string +} + +// SubscriptionGetSubscriptionInfoByShortUuidParams is parameters of Subscription_getSubscriptionInfoByShortUuid operation. +type SubscriptionGetSubscriptionInfoByShortUuidParams struct { + // Short UUID of the user. + ShortUuid string +} + +// SubscriptionPageConfigDeleteConfigParams is parameters of SubscriptionPageConfig_deleteConfig operation. +type SubscriptionPageConfigDeleteConfigParams struct { + // Subscription page config UUID. + UUID string +} + +// SubscriptionPageConfigGetConfigByUuidParams is parameters of SubscriptionPageConfig_getConfigByUuid operation. +type SubscriptionPageConfigGetConfigByUuidParams struct { + // Subscription page config UUID. + UUID string +} + +// SubscriptionTemplateDeleteTemplateParams is parameters of SubscriptionTemplate_deleteTemplate operation. +type SubscriptionTemplateDeleteTemplateParams struct { + // Template UUID. + UUID string +} + +// SubscriptionTemplateGetTemplateByUuidParams is parameters of SubscriptionTemplate_getTemplateByUuid operation. +type SubscriptionTemplateGetTemplateByUuidParams struct { + // Template UUID. + UUID string +} + +// SubscriptionsGetAllSubscriptionsParams is parameters of Subscriptions_getAllSubscriptions operation. +type SubscriptionsGetAllSubscriptionsParams struct { + // Number of subscriptions to return, no more than 500. + Size OptInt `json:",omitempty,omitzero"` + // Start index (offset) of the users to return, default is 0. + Start OptInt `json:",omitempty,omitzero"` +} + +// SubscriptionsGetConnectionKeysByUuidParams is parameters of Subscriptions_getConnectionKeysByUuid operation. +type SubscriptionsGetConnectionKeysByUuidParams struct { + // UUID of the user. + UUID string +} + +// SubscriptionsGetRawSubscriptionByShortUuidParams is parameters of Subscriptions_getRawSubscriptionByShortUuid operation. +type SubscriptionsGetRawSubscriptionByShortUuidParams struct { + // Include disabled hosts in the subscription. Default is false. + WithDisabledHosts OptBool `json:",omitempty,omitzero"` + // Short UUID of the user. + ShortUuid string +} + +// SubscriptionsGetSubpageConfigByShortUuidParams is parameters of Subscriptions_getSubpageConfigByShortUuid operation. +type SubscriptionsGetSubpageConfigByShortUuidParams struct { + // Short UUID of the user. + ShortUuid string +} + +// SubscriptionsGetSubscriptionByShortUuidProtectedParams is parameters of Subscriptions_getSubscriptionByShortUuidProtected operation. +type SubscriptionsGetSubscriptionByShortUuidProtectedParams struct { + // Short uuid of the user. + ShortUuid string +} + +// SubscriptionsGetSubscriptionByUsernameParams is parameters of Subscriptions_getSubscriptionByUsername operation. +type SubscriptionsGetSubscriptionByUsernameParams struct { + // Username of the user. + Username string +} + +// SubscriptionsGetSubscriptionByUuidParams is parameters of Subscriptions_getSubscriptionByUuid operation. +type SubscriptionsGetSubscriptionByUuidParams struct { + // Uuid of the user. + UUID string +} + +// TorrentBlockerReportsGetTorrentBlockerReportsParams is parameters of TorrentBlockerReports_getTorrentBlockerReports operation. +type TorrentBlockerReportsGetTorrentBlockerReportsParams struct { + // Page size for pagination. + Size OptInt `json:",omitempty,omitzero"` + // Offset for pagination. + Start OptInt `json:",omitempty,omitzero"` +} + +// UserSubscriptionRequestHistoryGetSubscriptionRequestHistoryParams is parameters of UserSubscriptionRequestHistory_getSubscriptionRequestHistory operation. +type UserSubscriptionRequestHistoryGetSubscriptionRequestHistoryParams struct { + // Page size for pagination. + Size OptInt `json:",omitempty,omitzero"` + // Offset for pagination. + Start OptInt `json:",omitempty,omitzero"` +} + +// UsersDeleteUserParams is parameters of Users_deleteUser operation. +type UsersDeleteUserParams struct { + // UUID of the user. + UUID string +} + +// UsersDisableUserParams is parameters of Users_disableUser operation. +type UsersDisableUserParams struct { + // UUID of the user. + UUID string +} + +// UsersEnableUserParams is parameters of Users_enableUser operation. +type UsersEnableUserParams struct { + // UUID of the user. + UUID string +} + +// UsersGetAllUsersParams is parameters of Users_getAllUsers operation. +type UsersGetAllUsersParams struct { + // Page size for pagination. + Size OptInt `json:",omitempty,omitzero"` + // Offset for pagination. + Start OptInt `json:",omitempty,omitzero"` +} + +// UsersGetUserAccessibleNodesParams is parameters of Users_getUserAccessibleNodes operation. +type UsersGetUserAccessibleNodesParams struct { + // UUID of the user. + UUID string +} + +// UsersGetUserByIdParams is parameters of Users_getUserById operation. +type UsersGetUserByIdParams struct { + // ID of the user. + ID string +} + +// UsersGetUserByShortUuidParams is parameters of Users_getUserByShortUuid operation. +type UsersGetUserByShortUuidParams struct { + // Short UUID of the user. + ShortUuid string +} + +// UsersGetUserByTelegramIdParams is parameters of Users_getUserByTelegramId operation. +type UsersGetUserByTelegramIdParams struct { + // Telegram ID of the user. + TelegramId string +} + +// UsersGetUserByUsernameParams is parameters of Users_getUserByUsername operation. +type UsersGetUserByUsernameParams struct { + // Username of the user. + Username string +} + +// UsersGetUserByUuidParams is parameters of Users_getUserByUuid operation. +type UsersGetUserByUuidParams struct { + // UUID of the user. + UUID string +} + +// UsersGetUserSubscriptionRequestHistoryParams is parameters of Users_getUserSubscriptionRequestHistory operation. +type UsersGetUserSubscriptionRequestHistoryParams struct { + // UUID of the user. + UUID string +} + +// UsersGetUsersByEmailParams is parameters of Users_getUsersByEmail operation. +type UsersGetUsersByEmailParams struct { + // Email of the user. + Email string +} + +// UsersGetUsersByTagParams is parameters of Users_getUsersByTag operation. +type UsersGetUsersByTagParams struct { + // Tag of the user. + Tag string +} + +// UsersResetUserTrafficParams is parameters of Users_resetUserTraffic operation. +type UsersResetUserTrafficParams struct { + // UUID of the user. + UUID string +} + +// UsersRevokeUserSubscriptionParams is parameters of Users_revokeUserSubscription operation. +type UsersRevokeUserSubscriptionParams struct { + // UUID of the user. + UUID string +} diff --git a/api/oas_request_encoders_gen.go b/api/oas_request_encoders_gen.go new file mode 100644 index 0000000..c31e700 --- /dev/null +++ b/api/oas_request_encoders_gen.go @@ -0,0 +1,1089 @@ +// Code generated by ogen, DO NOT EDIT. + +package api + +import ( + "bytes" + "net/http" + + "github.com/go-faster/jx" + ht "github.com/ogen-go/ogen/http" +) + +func encodeApiTokensCreateRequest( + req *CreateApiTokenRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeAuthLoginRequest( + req *LoginRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeAuthOauth2AuthorizeRequest( + req *OAuth2AuthorizeRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeAuthOauth2CallbackRequest( + req *OAuth2CallbackRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeAuthPasskeyAuthenticationVerifyRequest( + req *PasskeyOptions, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeAuthRegisterRequest( + req *RegisterRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeConfigProfileCreateConfigProfileRequest( + req *CreateConfigProfileRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeConfigProfileReorderConfigProfilesRequest( + req *ReorderRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeConfigProfileUpdateConfigProfileRequest( + req *UpdateConfigProfileRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeExternalSquadCreateExternalSquadRequest( + req *CreateExternalSquadRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeExternalSquadReorderExternalSquadsRequest( + req *ReorderRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeExternalSquadUpdateExternalSquadRequest( + req *UpdateExternalSquadRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeHostsBulkActionsDeleteHostsRequest( + req *BulkUuidsRequest2, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeHostsBulkActionsDisableHostsRequest( + req *BulkUuidsRequest2, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeHostsBulkActionsEnableHostsRequest( + req *BulkUuidsRequest2, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeHostsBulkActionsSetInboundToHostsRequest( + req *SetInboundToManyHostsRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeHostsBulkActionsSetPortToHostsRequest( + req *SetPortToManyHostsRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeHostsCreateHostRequest( + req *CreateHostRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeHostsReorderHostsRequest( + req *ReorderHostRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeHostsUpdateHostRequest( + req *UpdateHostRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeHwidUserDevicesCreateUserHwidDeviceRequest( + req *CreateUserHwidDeviceRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeHwidUserDevicesDeleteAllUserHwidDevicesRequest( + req *DeleteAllUserHwidDevicesRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeHwidUserDevicesDeleteUserHwidDeviceRequest( + req *DeleteUserHwidDeviceRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeInfraBillingCreateInfraBillingHistoryRecordRequest( + req *CreateInfraBillingHistoryRecordRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeInfraBillingCreateInfraBillingNodeRequest( + req *CreateInfraBillingNodeRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeInfraBillingCreateInfraProviderRequest( + req *CreateInfraProviderRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeInfraBillingUpdateInfraBillingNodeRequest( + req *UpdateInfraBillingNodeRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeInfraBillingUpdateInfraProviderRequest( + req *UpdateInfraProviderRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeInternalSquadCreateInternalSquadRequest( + req *CreateInternalSquadRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeInternalSquadReorderInternalSquadsRequest( + req *ReorderRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeInternalSquadUpdateInternalSquadRequest( + req *UpdateInternalSquadRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeIpControlDropConnectionsRequest( + req *DropConnectionsRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeMetadataUpsertNodeMetadataRequest( + req *UpsertUserMetadataRequestBodyRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeMetadataUpsertUserMetadataRequest( + req *UpsertUserMetadataRequestBodyRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeNodePluginCloneNodePluginRequest( + req *CloneNodePluginRequestRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeNodePluginCreateConfigRequest( + req *CreateNodePluginRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeNodePluginPluginExecutorRequest( + req *PluginExecutorRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeNodePluginReorderNodePluginsRequest( + req *ReorderRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeNodePluginUpdateConfigRequest( + req *UpdateNodePluginRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeNodesBulkNodesActionsRequest( + req *BulkNodesActionsRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeNodesBulkNodesUpdateRequest( + req *BulkNodesUpdateRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeNodesCreateNodeRequest( + req *CreateNodeRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeNodesProfileModificationRequest( + req *ProfileModificationRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeNodesReorderNodesRequest( + req *ReorderNodeRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeNodesRestartAllNodesRequest( + req *RestartAllNodesRequestBody, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeNodesUpdateNodeRequest( + req *UpdateNodeRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodePasskeyDeletePasskeyRequest( + req *DeletePasskeyRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodePasskeyPasskeyRegistrationVerifyRequest( + req *PasskeyOptions, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodePasskeyUpdatePasskeyRequest( + req *UpdatePasskeyRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeRemnawaveSettingsUpdateSettingsRequest( + req *UpdateRemnawaveSettingsRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeSnippetsCreateSnippetRequest( + req *SnippetRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeSnippetsDeleteSnippetByNameRequest( + req *DeleteSnippetRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeSnippetsUpdateSnippetRequest( + req *SnippetRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeSubscriptionPageConfigCloneSubscriptionPageConfigRequest( + req *CloneNodePluginRequestRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeSubscriptionPageConfigCreateConfigRequest( + req *CreateSubscriptionPageConfigRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeSubscriptionPageConfigReorderSubscriptionPageConfigsRequest( + req *ReorderRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeSubscriptionPageConfigUpdateConfigRequest( + req *UpdateSubscriptionPageConfigRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeSubscriptionSettingsUpdateSettingsRequest( + req *UpdateSubscriptionSettingsRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeSubscriptionTemplateCreateTemplateRequest( + req *CreateSubscriptionTemplateRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeSubscriptionTemplateReorderSubscriptionTemplatesRequest( + req *ReorderRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeSubscriptionTemplateUpdateTemplateRequest( + req *UpdateTemplateRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeSubscriptionsGetSubpageConfigByShortUuidRequest( + req *GetSubpageConfigByShortUuidRequestBody, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeSystemDebugSrrMatcherRequest( + req *DebugSrrMatcherRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeSystemEncryptHappCryptoLinkRequest( + req *EncryptHappCryptoLinkRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeUsersBulkActionsBulkAllExtendExpirationDateRequest( + req *BulkAllExtendExpirationDateRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeUsersBulkActionsBulkDeleteUsersRequest( + req *BulkUuidsRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeUsersBulkActionsBulkDeleteUsersByStatusRequest( + req *BulkDeleteUsersByStatusRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeUsersBulkActionsBulkExtendExpirationDateRequest( + req *BulkExtendExpirationDateRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeUsersBulkActionsBulkResetUserTrafficRequest( + req *BulkUuidsRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeUsersBulkActionsBulkRevokeUsersSubscriptionRequest( + req *BulkUuidsRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeUsersBulkActionsBulkUpdateAllUsersRequest( + req *BulkAllUpdateUsersRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeUsersBulkActionsBulkUpdateUsersRequest( + req *BulkUpdateUsersRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeUsersBulkActionsBulkUpdateUsersInternalSquadsRequest( + req *BulkUpdateUsersSquadsRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeUsersCreateUserRequest( + req *CreateUserRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeUsersResolveUserRequest( + req *ResolveUserRequestBody, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeUsersRevokeUserSubscriptionRequest( + req *RevokeUserSubscriptionBody, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} + +func encodeUsersUpdateUserRequest( + req *UpdateUserRequest, + r *http.Request, +) error { + const contentType = "application/json" + e := new(jx.Encoder) + { + req.Encode(e) + } + encoded := e.Bytes() + ht.SetBody(r, bytes.NewReader(encoded), contentType) + return nil +} diff --git a/api/oas_response_decoders_gen.go b/api/oas_response_decoders_gen.go new file mode 100644 index 0000000..127e2a9 --- /dev/null +++ b/api/oas_response_decoders_gen.go @@ -0,0 +1,25432 @@ +// Code generated by ogen, DO NOT EDIT. + +package api + +import ( + "bytes" + "io" + "mime" + "net/http" + + "github.com/go-faster/errors" + "github.com/go-faster/jx" + "github.com/ogen-go/ogen/ogenerrors" + "github.com/ogen-go/ogen/validate" +) + +func decodeApiTokensCreateResponse(resp *http.Response) (res ApiTokensCreateRes, _ error) { + switch resp.StatusCode { + case 201: + // Code 201. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response CreateApiTokenResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeApiTokensDeleteResponse(resp *http.Response) (res ApiTokensDeleteRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response DeleteApiTokenResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeApiTokensFindAllResponse(resp *http.Response) (res ApiTokensFindAllRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response FindAllApiTokensResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeAuthGetStatusResponse(resp *http.Response) (res AuthGetStatusRes, _ error) { + switch resp.StatusCode { + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + // Default response. + res, err := func() (res AuthGetStatusRes, err error) { + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response GetStatusResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &GetStatusResponseStatusCode{ + StatusCode: resp.StatusCode, + Response: response, + }, nil + default: + return res, validate.InvalidContentType(ct) + } + }() + if err != nil { + return res, errors.Wrapf(err, "default (code %d)", resp.StatusCode) + } + return res, nil +} + +func decodeAuthLoginResponse(resp *http.Response) (res AuthLoginRes, _ error) { + switch resp.StatusCode { + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 401: + // Code 401. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response UnauthorizedError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + // Default response. + res, err := func() (res AuthLoginRes, err error) { + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response TokenResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &TokenResponseStatusCode{ + StatusCode: resp.StatusCode, + Response: response, + }, nil + default: + return res, validate.InvalidContentType(ct) + } + }() + if err != nil { + return res, errors.Wrapf(err, "default (code %d)", resp.StatusCode) + } + return res, nil +} + +func decodeAuthOauth2AuthorizeResponse(resp *http.Response) (res AuthOauth2AuthorizeRes, _ error) { + switch resp.StatusCode { + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + // Default response. + res, err := func() (res AuthOauth2AuthorizeRes, err error) { + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response OAuth2AuthorizeResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &OAuth2AuthorizeResponseStatusCode{ + StatusCode: resp.StatusCode, + Response: response, + }, nil + default: + return res, validate.InvalidContentType(ct) + } + }() + if err != nil { + return res, errors.Wrapf(err, "default (code %d)", resp.StatusCode) + } + return res, nil +} + +func decodeAuthOauth2CallbackResponse(resp *http.Response) (res AuthOauth2CallbackRes, _ error) { + switch resp.StatusCode { + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + // Default response. + res, err := func() (res AuthOauth2CallbackRes, err error) { + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response TokenResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &TokenResponseStatusCode{ + StatusCode: resp.StatusCode, + Response: response, + }, nil + default: + return res, validate.InvalidContentType(ct) + } + }() + if err != nil { + return res, errors.Wrapf(err, "default (code %d)", resp.StatusCode) + } + return res, nil +} + +func decodeAuthPasskeyAuthenticationOptionsResponse(resp *http.Response) (res AuthPasskeyAuthenticationOptionsRes, _ error) { + switch resp.StatusCode { + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + // Default response. + res, err := func() (res AuthPasskeyAuthenticationOptionsRes, err error) { + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response PasskeyOptions + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &PasskeyOptionsStatusCode{ + StatusCode: resp.StatusCode, + Response: response, + }, nil + default: + return res, validate.InvalidContentType(ct) + } + }() + if err != nil { + return res, errors.Wrapf(err, "default (code %d)", resp.StatusCode) + } + return res, nil +} + +func decodeAuthPasskeyAuthenticationVerifyResponse(resp *http.Response) (res AuthPasskeyAuthenticationVerifyRes, _ error) { + switch resp.StatusCode { + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + // Default response. + res, err := func() (res AuthPasskeyAuthenticationVerifyRes, err error) { + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response TokenResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &TokenResponseStatusCode{ + StatusCode: resp.StatusCode, + Response: response, + }, nil + default: + return res, validate.InvalidContentType(ct) + } + }() + if err != nil { + return res, errors.Wrapf(err, "default (code %d)", resp.StatusCode) + } + return res, nil +} + +func decodeAuthRegisterResponse(resp *http.Response) (res AuthRegisterRes, _ error) { + switch resp.StatusCode { + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 403: + // Code 403. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response ForbiddenError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + // Default response. + res, err := func() (res AuthRegisterRes, err error) { + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response TokenResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &TokenResponseStatusCode{ + StatusCode: resp.StatusCode, + Response: response, + }, nil + default: + return res, validate.InvalidContentType(ct) + } + }() + if err != nil { + return res, errors.Wrapf(err, "default (code %d)", resp.StatusCode) + } + return res, nil +} + +func decodeBandwidthStatsNodesGetNodeUserUsageResponse(resp *http.Response) (res BandwidthStatsNodesGetNodeUserUsageRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response GetLegacyStatsNodesUsersUsageResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeBandwidthStatsNodesGetStatsNodeUsersUsageResponse(resp *http.Response) (res BandwidthStatsNodesGetStatsNodeUsersUsageRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response GetStatsNodeUsersUsageResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeBandwidthStatsUsersGetStatsNodesUsageResponse(resp *http.Response) (res BandwidthStatsUsersGetStatsNodesUsageRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response StatsUserUsageResponseResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeBandwidthStatsUsersGetUserUsageByRangeResponse(resp *http.Response) (res BandwidthStatsUsersGetUserUsageByRangeRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response GetLegacyStatsUserUsageResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeConfigProfileCreateConfigProfileResponse(resp *http.Response) (res ConfigProfileCreateConfigProfileRes, _ error) { + switch resp.StatusCode { + case 201: + // Code 201. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response ConfigProfileResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 409: + // Code 409. + return &ConfigProfileCreateConfigProfileConflict{}, nil + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeConfigProfileDeleteConfigProfileByUuidResponse(resp *http.Response) (res ConfigProfileDeleteConfigProfileByUuidRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response DeleteResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeConfigProfileGetAllInboundsResponse(resp *http.Response) (res ConfigProfileGetAllInboundsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InboundsResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeConfigProfileGetComputedConfigProfileByUuidResponse(resp *http.Response) (res ConfigProfileGetComputedConfigProfileByUuidRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response ConfigProfileResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeConfigProfileGetConfigProfileByUuidResponse(resp *http.Response) (res ConfigProfileGetConfigProfileByUuidRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response ConfigProfileResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeConfigProfileGetConfigProfilesResponse(resp *http.Response) (res ConfigProfileGetConfigProfilesRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response ConfigProfilesResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeConfigProfileGetInboundsByProfileUuidResponse(resp *http.Response) (res ConfigProfileGetInboundsByProfileUuidRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InboundsResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeConfigProfileReorderConfigProfilesResponse(resp *http.Response) (res ConfigProfileReorderConfigProfilesRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response ConfigProfilesResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeConfigProfileUpdateConfigProfileResponse(resp *http.Response) (res ConfigProfileUpdateConfigProfileRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response ConfigProfileResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 409: + // Code 409. + return &ConfigProfileUpdateConfigProfileConflict{}, nil + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeExternalSquadAddUsersToExternalSquadResponse(resp *http.Response) (res ExternalSquadAddUsersToExternalSquadRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response EventResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeExternalSquadCreateExternalSquadResponse(resp *http.Response) (res ExternalSquadCreateExternalSquadRes, _ error) { + switch resp.StatusCode { + case 201: + // Code 201. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response ExternalSquadResponseResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 409: + // Code 409. + return &ExternalSquadCreateExternalSquadConflict{}, nil + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeExternalSquadDeleteExternalSquadResponse(resp *http.Response) (res ExternalSquadDeleteExternalSquadRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response DeleteResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeExternalSquadGetExternalSquadByUuidResponse(resp *http.Response) (res ExternalSquadGetExternalSquadByUuidRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response ExternalSquadResponseResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeExternalSquadGetExternalSquadsResponse(resp *http.Response) (res ExternalSquadGetExternalSquadsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response ExternalSquadsResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeExternalSquadRemoveUsersFromExternalSquadResponse(resp *http.Response) (res ExternalSquadRemoveUsersFromExternalSquadRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response EventResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeExternalSquadReorderExternalSquadsResponse(resp *http.Response) (res ExternalSquadReorderExternalSquadsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response ExternalSquadsResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeExternalSquadUpdateExternalSquadResponse(resp *http.Response) (res ExternalSquadUpdateExternalSquadRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response ExternalSquadResponseResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 409: + // Code 409. + return &ExternalSquadUpdateExternalSquadConflict{}, nil + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeHostsBulkActionsDeleteHostsResponse(resp *http.Response) (res HostsBulkActionsDeleteHostsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response HostListResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeHostsBulkActionsDisableHostsResponse(resp *http.Response) (res HostsBulkActionsDisableHostsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response HostListResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeHostsBulkActionsEnableHostsResponse(resp *http.Response) (res HostsBulkActionsEnableHostsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response HostListResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeHostsBulkActionsSetInboundToHostsResponse(resp *http.Response) (res HostsBulkActionsSetInboundToHostsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response HostListResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeHostsBulkActionsSetPortToHostsResponse(resp *http.Response) (res HostsBulkActionsSetPortToHostsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response HostListResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeHostsCreateHostResponse(resp *http.Response) (res HostsCreateHostRes, _ error) { + switch resp.StatusCode { + case 201: + // Code 201. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response HostResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeHostsDeleteHostResponse(resp *http.Response) (res HostsDeleteHostRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response DeleteResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeHostsGetAllHostTagsResponse(resp *http.Response) (res HostsGetAllHostTagsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response TagsResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeHostsGetAllHostsResponse(resp *http.Response) (res HostsGetAllHostsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response HostListResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeHostsGetOneHostResponse(resp *http.Response) (res HostsGetOneHostRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response HostResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeHostsReorderHostsResponse(resp *http.Response) (res HostsReorderHostsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response ReorderHostResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeHostsUpdateHostResponse(resp *http.Response) (res HostsUpdateHostRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response HostResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeHwidUserDevicesCreateUserHwidDeviceResponse(resp *http.Response) (res HwidUserDevicesCreateUserHwidDeviceRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response HwidDevicesResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeHwidUserDevicesDeleteAllUserHwidDevicesResponse(resp *http.Response) (res HwidUserDevicesDeleteAllUserHwidDevicesRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response HwidDevicesResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeHwidUserDevicesDeleteUserHwidDeviceResponse(resp *http.Response) (res HwidUserDevicesDeleteUserHwidDeviceRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response HwidDevicesResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeHwidUserDevicesGetAllUsersResponse(resp *http.Response) (res HwidUserDevicesGetAllUsersRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response GetAllHwidDevicesResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeHwidUserDevicesGetHwidDevicesStatsResponse(resp *http.Response) (res HwidUserDevicesGetHwidDevicesStatsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response GetHwidDevicesStatsResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeHwidUserDevicesGetTopUsersByHwidDevicesResponse(resp *http.Response) (res HwidUserDevicesGetTopUsersByHwidDevicesRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response GetTopUsersByHwidDevicesResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeHwidUserDevicesGetUserHwidDevicesResponse(resp *http.Response) (res HwidUserDevicesGetUserHwidDevicesRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response HwidDevicesResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeInfraBillingCreateInfraBillingHistoryRecordResponse(resp *http.Response) (res InfraBillingCreateInfraBillingHistoryRecordRes, _ error) { + switch resp.StatusCode { + case 201: + // Code 201. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BillingHistoryResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeInfraBillingCreateInfraBillingNodeResponse(resp *http.Response) (res InfraBillingCreateInfraBillingNodeRes, _ error) { + switch resp.StatusCode { + case 201: + // Code 201. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BillingNodesResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeInfraBillingCreateInfraProviderResponse(resp *http.Response) (res InfraBillingCreateInfraProviderRes, _ error) { + switch resp.StatusCode { + case 201: + // Code 201. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InfraProviderResponseResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeInfraBillingDeleteInfraBillingHistoryRecordByUuidResponse(resp *http.Response) (res InfraBillingDeleteInfraBillingHistoryRecordByUuidRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BillingHistoryResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeInfraBillingDeleteInfraBillingNodeByUuidResponse(resp *http.Response) (res InfraBillingDeleteInfraBillingNodeByUuidRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BillingNodesResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeInfraBillingDeleteInfraProviderByUuidResponse(resp *http.Response) (res InfraBillingDeleteInfraProviderByUuidRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response DeleteResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeInfraBillingGetBillingNodesResponse(resp *http.Response) (res InfraBillingGetBillingNodesRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BillingNodesResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeInfraBillingGetInfraBillingHistoryRecordsResponse(resp *http.Response) (res InfraBillingGetInfraBillingHistoryRecordsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BillingHistoryResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeInfraBillingGetInfraProviderByUuidResponse(resp *http.Response) (res InfraBillingGetInfraProviderByUuidRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InfraProviderResponseResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeInfraBillingGetInfraProvidersResponse(resp *http.Response) (res InfraBillingGetInfraProvidersRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response GetInfraProvidersResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeInfraBillingUpdateInfraBillingNodeResponse(resp *http.Response) (res InfraBillingUpdateInfraBillingNodeRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BillingNodesResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeInfraBillingUpdateInfraProviderResponse(resp *http.Response) (res InfraBillingUpdateInfraProviderRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InfraProviderResponseResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeInternalSquadAddUsersToInternalSquadResponse(resp *http.Response) (res InternalSquadAddUsersToInternalSquadRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response EventResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeInternalSquadCreateInternalSquadResponse(resp *http.Response) (res InternalSquadCreateInternalSquadRes, _ error) { + switch resp.StatusCode { + case 201: + // Code 201. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalSquadResponseResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 409: + // Code 409. + return &InternalSquadCreateInternalSquadConflict{}, nil + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeInternalSquadDeleteInternalSquadResponse(resp *http.Response) (res InternalSquadDeleteInternalSquadRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response DeleteResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeInternalSquadGetInternalSquadAccessibleNodesResponse(resp *http.Response) (res InternalSquadGetInternalSquadAccessibleNodesRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response GetInternalSquadAccessibleNodesResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeInternalSquadGetInternalSquadByUuidResponse(resp *http.Response) (res InternalSquadGetInternalSquadByUuidRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalSquadResponseResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeInternalSquadGetInternalSquadsResponse(resp *http.Response) (res InternalSquadGetInternalSquadsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalSquadsResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeInternalSquadRemoveUsersFromInternalSquadResponse(resp *http.Response) (res InternalSquadRemoveUsersFromInternalSquadRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response EventResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeInternalSquadReorderInternalSquadsResponse(resp *http.Response) (res InternalSquadReorderInternalSquadsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalSquadsResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeInternalSquadUpdateInternalSquadResponse(resp *http.Response) (res InternalSquadUpdateInternalSquadRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalSquadResponseResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 409: + // Code 409. + return &InternalSquadUpdateInternalSquadConflict{}, nil + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeIpControlDropConnectionsResponse(resp *http.Response) (res IpControlDropConnectionsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response EventResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeIpControlFetchUserIpsResponse(resp *http.Response) (res IpControlFetchUserIpsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response IpsResponseResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeIpControlFetchUsersIpsResponse(resp *http.Response) (res IpControlFetchUsersIpsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response IpsResponseResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeIpControlGetFetchIpsResultResponse(resp *http.Response) (res IpControlGetFetchIpsResultRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response FetchIpsResultResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeIpControlGetFetchUsersIpsResultResponse(resp *http.Response) (res IpControlGetFetchUsersIpsResultRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response FetchUsersIpsResultResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeKeygenGenerateKeyResponse(resp *http.Response) (res KeygenGenerateKeyRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response GetPubKeyResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeMetadataGetNodeMetadataResponse(resp *http.Response) (res MetadataGetNodeMetadataRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response UserMetadataResponseResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeMetadataGetUserMetadataResponse(resp *http.Response) (res MetadataGetUserMetadataRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response UserMetadataResponseResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeMetadataUpsertNodeMetadataResponse(resp *http.Response) (res MetadataUpsertNodeMetadataRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response UserMetadataResponseResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeMetadataUpsertUserMetadataResponse(resp *http.Response) (res MetadataUpsertUserMetadataRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response UserMetadataResponseResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeNodePluginCloneNodePluginResponse(resp *http.Response) (res NodePluginCloneNodePluginRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NodePluginResponseResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeNodePluginCreateConfigResponse(resp *http.Response) (res NodePluginCreateConfigRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response CreateNodePluginResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeNodePluginDeleteConfigResponse(resp *http.Response) (res NodePluginDeleteConfigRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response DeleteResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeNodePluginGetAllConfigsResponse(resp *http.Response) (res NodePluginGetAllConfigsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NodePluginsResponseResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeNodePluginGetConfigByUuidResponse(resp *http.Response) (res NodePluginGetConfigByUuidRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NodePluginResponseResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeNodePluginPluginExecutorResponse(resp *http.Response) (res NodePluginPluginExecutorRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response EventResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeNodePluginReorderNodePluginsResponse(resp *http.Response) (res NodePluginReorderNodePluginsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NodePluginsResponseResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeNodePluginUpdateConfigResponse(resp *http.Response) (res NodePluginUpdateConfigRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NodePluginResponseResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeNodesBulkNodesActionsResponse(resp *http.Response) (res NodesBulkNodesActionsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response EventResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeNodesBulkNodesUpdateResponse(resp *http.Response) (res NodesBulkNodesUpdateRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response EventResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeNodesCreateNodeResponse(resp *http.Response) (res NodesCreateNodeRes, _ error) { + switch resp.StatusCode { + case 201: + // Code 201. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NodeResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeNodesDeleteNodeResponse(resp *http.Response) (res NodesDeleteNodeRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response DeleteResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeNodesDisableNodeResponse(resp *http.Response) (res NodesDisableNodeRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NodeResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeNodesEnableNodeResponse(resp *http.Response) (res NodesEnableNodeRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NodeResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeNodesGetAllNodesResponse(resp *http.Response) (res NodesGetAllNodesRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NodesResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeNodesGetAllNodesTagsResponse(resp *http.Response) (res NodesGetAllNodesTagsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response TagsResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeNodesGetOneNodeResponse(resp *http.Response) (res NodesGetOneNodeRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NodeResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeNodesProfileModificationResponse(resp *http.Response) (res NodesProfileModificationRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response EventResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeNodesReorderNodesResponse(resp *http.Response) (res NodesReorderNodesRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NodesResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeNodesResetNodeTrafficResponse(resp *http.Response) (res NodesResetNodeTrafficRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response EventResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeNodesRestartAllNodesResponse(resp *http.Response) (res NodesRestartAllNodesRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response EventResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeNodesRestartNodeResponse(resp *http.Response) (res NodesRestartNodeRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response EventResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeNodesUpdateNodeResponse(resp *http.Response) (res NodesUpdateNodeRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NodeResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeNodesUsageHistoryGetStatsNodesUsageResponse(resp *http.Response) (res NodesUsageHistoryGetStatsNodesUsageRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response StatsUserUsageResponseResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodePasskeyDeletePasskeyResponse(resp *http.Response) (res PasskeyDeletePasskeyRes, _ error) { + switch resp.StatusCode { + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + // Default response. + res, err := func() (res PasskeyDeletePasskeyRes, err error) { + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response PasskeysResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &PasskeysResponseStatusCode{ + StatusCode: resp.StatusCode, + Response: response, + }, nil + default: + return res, validate.InvalidContentType(ct) + } + }() + if err != nil { + return res, errors.Wrapf(err, "default (code %d)", resp.StatusCode) + } + return res, nil +} + +func decodePasskeyGetActivePasskeysResponse(resp *http.Response) (res PasskeyGetActivePasskeysRes, _ error) { + switch resp.StatusCode { + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + // Default response. + res, err := func() (res PasskeyGetActivePasskeysRes, err error) { + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response PasskeysResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &PasskeysResponseStatusCode{ + StatusCode: resp.StatusCode, + Response: response, + }, nil + default: + return res, validate.InvalidContentType(ct) + } + }() + if err != nil { + return res, errors.Wrapf(err, "default (code %d)", resp.StatusCode) + } + return res, nil +} + +func decodePasskeyPasskeyRegistrationOptionsResponse(resp *http.Response) (res PasskeyPasskeyRegistrationOptionsRes, _ error) { + switch resp.StatusCode { + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + // Default response. + res, err := func() (res PasskeyPasskeyRegistrationOptionsRes, err error) { + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response PasskeyOptions + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &PasskeyOptionsStatusCode{ + StatusCode: resp.StatusCode, + Response: response, + }, nil + default: + return res, validate.InvalidContentType(ct) + } + }() + if err != nil { + return res, errors.Wrapf(err, "default (code %d)", resp.StatusCode) + } + return res, nil +} + +func decodePasskeyPasskeyRegistrationVerifyResponse(resp *http.Response) (res PasskeyPasskeyRegistrationVerifyRes, _ error) { + switch resp.StatusCode { + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + // Default response. + res, err := func() (res PasskeyPasskeyRegistrationVerifyRes, err error) { + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response VerifyPasskeyRegistrationResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &VerifyPasskeyRegistrationResponseStatusCode{ + StatusCode: resp.StatusCode, + Response: response, + }, nil + default: + return res, validate.InvalidContentType(ct) + } + }() + if err != nil { + return res, errors.Wrapf(err, "default (code %d)", resp.StatusCode) + } + return res, nil +} + +func decodePasskeyUpdatePasskeyResponse(resp *http.Response) (res PasskeyUpdatePasskeyRes, _ error) { + switch resp.StatusCode { + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + // Default response. + res, err := func() (res PasskeyUpdatePasskeyRes, err error) { + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response PasskeysResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &PasskeysResponseStatusCode{ + StatusCode: resp.StatusCode, + Response: response, + }, nil + default: + return res, validate.InvalidContentType(ct) + } + }() + if err != nil { + return res, errors.Wrapf(err, "default (code %d)", resp.StatusCode) + } + return res, nil +} + +func decodeRemnawaveSettingsGetSettingsResponse(resp *http.Response) (res RemnawaveSettingsGetSettingsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response SettingsResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeRemnawaveSettingsUpdateSettingsResponse(resp *http.Response) (res RemnawaveSettingsUpdateSettingsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response SettingsResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSnippetsCreateSnippetResponse(resp *http.Response) (res SnippetsCreateSnippetRes, _ error) { + switch resp.StatusCode { + case 201: + // Code 201. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response SnippetsResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 409: + // Code 409. + return &SnippetsCreateSnippetConflict{}, nil + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSnippetsDeleteSnippetByNameResponse(resp *http.Response) (res SnippetsDeleteSnippetByNameRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response SnippetsResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSnippetsGetSnippetsResponse(resp *http.Response) (res SnippetsGetSnippetsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response SnippetsResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSnippetsUpdateSnippetResponse(resp *http.Response) (res SnippetsUpdateSnippetRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response SnippetsResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 409: + // Code 409. + return &SnippetsUpdateSnippetConflict{}, nil + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSubscriptionGetSubscriptionResponse(resp *http.Response) (res SubscriptionGetSubscriptionOK, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "text/plain": + reader := resp.Body + b, err := io.ReadAll(reader) + if err != nil { + return res, err + } + + response := SubscriptionGetSubscriptionOK{Data: bytes.NewReader(b)} + return response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSubscriptionGetSubscriptionByClientTypeResponse(resp *http.Response) (res SubscriptionGetSubscriptionByClientTypeOK, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "text/plain": + reader := resp.Body + b, err := io.ReadAll(reader) + if err != nil { + return res, err + } + + response := SubscriptionGetSubscriptionByClientTypeOK{Data: bytes.NewReader(b)} + return response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSubscriptionGetSubscriptionInfoByShortUuidResponse(resp *http.Response) (res SubscriptionGetSubscriptionInfoByShortUuidRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response SubscriptionResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSubscriptionPageConfigCloneSubscriptionPageConfigResponse(resp *http.Response) (res SubscriptionPageConfigCloneSubscriptionPageConfigRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response SubscriptionPageConfigResponseResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSubscriptionPageConfigCreateConfigResponse(resp *http.Response) (res SubscriptionPageConfigCreateConfigRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response CreateSubscriptionPageConfigResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSubscriptionPageConfigDeleteConfigResponse(resp *http.Response) (res SubscriptionPageConfigDeleteConfigRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response DeleteResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSubscriptionPageConfigGetAllConfigsResponse(resp *http.Response) (res SubscriptionPageConfigGetAllConfigsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response SubscriptionPageConfigsResponseResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSubscriptionPageConfigGetConfigByUuidResponse(resp *http.Response) (res SubscriptionPageConfigGetConfigByUuidRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response SubscriptionPageConfigResponseResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSubscriptionPageConfigReorderSubscriptionPageConfigsResponse(resp *http.Response) (res SubscriptionPageConfigReorderSubscriptionPageConfigsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response SubscriptionPageConfigsResponseResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSubscriptionPageConfigUpdateConfigResponse(resp *http.Response) (res SubscriptionPageConfigUpdateConfigRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response SubscriptionPageConfigResponseResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSubscriptionSettingsGetSettingsResponse(resp *http.Response) (res SubscriptionSettingsGetSettingsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response SubscriptionSettingsResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSubscriptionSettingsUpdateSettingsResponse(resp *http.Response) (res SubscriptionSettingsUpdateSettingsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response SubscriptionSettingsResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSubscriptionTemplateCreateTemplateResponse(resp *http.Response) (res SubscriptionTemplateCreateTemplateRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response TemplateResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSubscriptionTemplateDeleteTemplateResponse(resp *http.Response) (res SubscriptionTemplateDeleteTemplateRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response DeleteResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSubscriptionTemplateGetAllTemplatesResponse(resp *http.Response) (res SubscriptionTemplateGetAllTemplatesRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response TemplatesResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSubscriptionTemplateGetTemplateByUuidResponse(resp *http.Response) (res SubscriptionTemplateGetTemplateByUuidRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response TemplateResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSubscriptionTemplateReorderSubscriptionTemplatesResponse(resp *http.Response) (res SubscriptionTemplateReorderSubscriptionTemplatesRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response TemplatesResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSubscriptionTemplateUpdateTemplateResponse(resp *http.Response) (res SubscriptionTemplateUpdateTemplateRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response TemplateResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSubscriptionsGetAllSubscriptionsResponse(resp *http.Response) (res SubscriptionsGetAllSubscriptionsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response GetAllSubscriptionsResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSubscriptionsGetConnectionKeysByUuidResponse(resp *http.Response) (res SubscriptionsGetConnectionKeysByUuidRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response GetConnectionKeysByUuidResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSubscriptionsGetRawSubscriptionByShortUuidResponse(resp *http.Response) (res SubscriptionsGetRawSubscriptionByShortUuidRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response GetRawSubscriptionByShortUuidResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSubscriptionsGetSubpageConfigByShortUuidResponse(resp *http.Response) (res SubscriptionsGetSubpageConfigByShortUuidRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response GetSubpageConfigByShortUuidResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSubscriptionsGetSubscriptionByShortUuidProtectedResponse(resp *http.Response) (res SubscriptionsGetSubscriptionByShortUuidProtectedRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response SubscriptionResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSubscriptionsGetSubscriptionByUsernameResponse(resp *http.Response) (res SubscriptionsGetSubscriptionByUsernameRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response SubscriptionResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSubscriptionsGetSubscriptionByUuidResponse(resp *http.Response) (res SubscriptionsGetSubscriptionByUuidRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response SubscriptionResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSystemDebugSrrMatcherResponse(resp *http.Response) (res SystemDebugSrrMatcherRes, _ error) { + switch resp.StatusCode { + case 201: + // Code 201. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response DebugSrrMatcherResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSystemEncryptHappCryptoLinkResponse(resp *http.Response) (res SystemEncryptHappCryptoLinkRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response EncryptHappCryptoLinkResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSystemGetBandwidthStatsResponse(resp *http.Response) (res SystemGetBandwidthStatsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response GetBandwidthStatsResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSystemGetMetadataResponse(resp *http.Response) (res SystemGetMetadataRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response GetMetadataResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSystemGetNodesMetricsResponse(resp *http.Response) (res SystemGetNodesMetricsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response GetNodesMetricsResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSystemGetNodesStatisticsResponse(resp *http.Response) (res SystemGetNodesStatisticsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response GetNodesStatisticsResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSystemGetRecapResponse(resp *http.Response) (res SystemGetRecapRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response GetRecapResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSystemGetRemnawaveHealthResponse(resp *http.Response) (res SystemGetRemnawaveHealthRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response GetRemnawaveHealthResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSystemGetStatsResponse(resp *http.Response) (res SystemGetStatsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response GetStatsResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeSystemGetX25519KeypairsResponse(resp *http.Response) (res SystemGetX25519KeypairsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response GenerateX25519Response + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeTorrentBlockerReportsGetTorrentBlockerReportsResponse(resp *http.Response) (res TorrentBlockerReportsGetTorrentBlockerReportsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response TorrentBlockerReportsResponseResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeTorrentBlockerReportsGetTorrentBlockerReportsStatsResponse(resp *http.Response) (res TorrentBlockerReportsGetTorrentBlockerReportsStatsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response GetTorrentBlockerReportsStatsResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeTorrentBlockerReportsTruncateTorrentBlockerReportsResponse(resp *http.Response) (res TorrentBlockerReportsTruncateTorrentBlockerReportsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response TorrentBlockerReportsResponseResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeUserSubscriptionRequestHistoryGetSubscriptionRequestHistoryResponse(resp *http.Response) (res UserSubscriptionRequestHistoryGetSubscriptionRequestHistoryRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response GetSubscriptionRequestHistoryResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeUserSubscriptionRequestHistoryGetSubscriptionRequestHistoryStatsResponse(resp *http.Response) (res UserSubscriptionRequestHistoryGetSubscriptionRequestHistoryStatsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response GetSubscriptionRequestHistoryStatsResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeUsersBulkActionsBulkAllExtendExpirationDateResponse(resp *http.Response) (res UsersBulkActionsBulkAllExtendExpirationDateRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response EventResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeUsersBulkActionsBulkAllResetUserTrafficResponse(resp *http.Response) (res UsersBulkActionsBulkAllResetUserTrafficRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response EventResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeUsersBulkActionsBulkDeleteUsersResponse(resp *http.Response) (res UsersBulkActionsBulkDeleteUsersRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BulkActionResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeUsersBulkActionsBulkDeleteUsersByStatusResponse(resp *http.Response) (res UsersBulkActionsBulkDeleteUsersByStatusRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BulkActionResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeUsersBulkActionsBulkExtendExpirationDateResponse(resp *http.Response) (res UsersBulkActionsBulkExtendExpirationDateRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BulkActionResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeUsersBulkActionsBulkResetUserTrafficResponse(resp *http.Response) (res UsersBulkActionsBulkResetUserTrafficRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BulkActionResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeUsersBulkActionsBulkRevokeUsersSubscriptionResponse(resp *http.Response) (res UsersBulkActionsBulkRevokeUsersSubscriptionRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BulkActionResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeUsersBulkActionsBulkUpdateAllUsersResponse(resp *http.Response) (res UsersBulkActionsBulkUpdateAllUsersRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response EventResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeUsersBulkActionsBulkUpdateUsersResponse(resp *http.Response) (res UsersBulkActionsBulkUpdateUsersRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BulkActionResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeUsersBulkActionsBulkUpdateUsersInternalSquadsResponse(resp *http.Response) (res UsersBulkActionsBulkUpdateUsersInternalSquadsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BulkActionResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeUsersCreateUserResponse(resp *http.Response) (res UsersCreateUserRes, _ error) { + switch resp.StatusCode { + case 201: + // Code 201. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response UserResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeUsersDeleteUserResponse(resp *http.Response) (res UsersDeleteUserRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response DeleteResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeUsersDisableUserResponse(resp *http.Response) (res UsersDisableUserRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response UserResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeUsersEnableUserResponse(resp *http.Response) (res UsersEnableUserRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response UserResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeUsersGetAllTagsResponse(resp *http.Response) (res UsersGetAllTagsRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response TagsResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeUsersGetAllUsersResponse(resp *http.Response) (res UsersGetAllUsersRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response GetAllUsersResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeUsersGetUserAccessibleNodesResponse(resp *http.Response) (res UsersGetUserAccessibleNodesRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response GetUserAccessibleNodesResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeUsersGetUserByIdResponse(resp *http.Response) (res UsersGetUserByIdRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response UserResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeUsersGetUserByShortUuidResponse(resp *http.Response) (res UsersGetUserByShortUuidRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response UserResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeUsersGetUserByTelegramIdResponse(resp *http.Response) (res UsersGetUserByTelegramIdRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response UsersResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeUsersGetUserByUsernameResponse(resp *http.Response) (res UsersGetUserByUsernameRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response UserResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeUsersGetUserByUuidResponse(resp *http.Response) (res UsersGetUserByUuidRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response UserResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeUsersGetUserSubscriptionRequestHistoryResponse(resp *http.Response) (res UsersGetUserSubscriptionRequestHistoryRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response GetUserSubscriptionRequestHistoryResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeUsersGetUsersByEmailResponse(resp *http.Response) (res UsersGetUsersByEmailRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response UsersResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeUsersGetUsersByTagResponse(resp *http.Response) (res UsersGetUsersByTagRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response UsersResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeUsersResetUserTrafficResponse(resp *http.Response) (res UsersResetUserTrafficRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response UserResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeUsersResolveUserResponse(resp *http.Response) (res UsersResolveUserRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response ResolveUserResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeUsersRevokeUserSubscriptionResponse(resp *http.Response) (res UsersRevokeUserSubscriptionRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response UserResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 404: + // Code 404. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response NotFoundError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} + +func decodeUsersUpdateUserResponse(resp *http.Response) (res UsersUpdateUserRes, _ error) { + switch resp.StatusCode { + case 200: + // Code 200. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response UserResponse + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 400: + // Code 400. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response BadRequestError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + // Validate response. + if err := func() error { + if err := response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return res, errors.Wrap(err, "validate") + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + case 500: + // Code 500. + ct, _, err := mime.ParseMediaType(resp.Header.Get("Content-Type")) + if err != nil { + return res, errors.Wrap(err, "parse media type") + } + switch { + case ct == "application/json": + buf, err := io.ReadAll(resp.Body) + if err != nil { + return res, err + } + d := jx.DecodeBytes(buf) + + var response InternalServerError + if err := func() error { + if err := response.Decode(d); err != nil { + return err + } + if err := d.Skip(); err != io.EOF { + return errors.New("unexpected trailing data") + } + return nil + }(); err != nil { + err = &ogenerrors.DecodeBodyError{ + ContentType: ct, + Body: buf, + Err: err, + } + return res, err + } + return &response, nil + default: + return res, validate.InvalidContentType(ct) + } + } + return res, validate.UnexpectedStatusCodeWithResponse(resp) +} diff --git a/api/oas_schemas_gen.go b/api/oas_schemas_gen.go new file mode 100644 index 0000000..de87a07 --- /dev/null +++ b/api/oas_schemas_gen.go @@ -0,0 +1,23100 @@ +// Code generated by ogen, DO NOT EDIT. + +package api + +import ( + "io" + "net/url" + "time" + + "github.com/go-faster/errors" + "github.com/go-faster/jx" + "github.com/google/uuid" +) + +// Ref: #/components/schemas/ActionReportItem +type ActionReportItem struct { + Blocked bool `json:"blocked"` + IP string `json:"ip"` + BlockDuration float64 `json:"blockDuration"` + WillUnblockAt time.Time `json:"willUnblockAt"` + UserId string `json:"userId"` + ProcessedAt time.Time `json:"processedAt"` +} + +// GetBlocked returns the value of Blocked. +func (s *ActionReportItem) GetBlocked() bool { + return s.Blocked +} + +// GetIP returns the value of IP. +func (s *ActionReportItem) GetIP() string { + return s.IP +} + +// GetBlockDuration returns the value of BlockDuration. +func (s *ActionReportItem) GetBlockDuration() float64 { + return s.BlockDuration +} + +// GetWillUnblockAt returns the value of WillUnblockAt. +func (s *ActionReportItem) GetWillUnblockAt() time.Time { + return s.WillUnblockAt +} + +// GetUserId returns the value of UserId. +func (s *ActionReportItem) GetUserId() string { + return s.UserId +} + +// GetProcessedAt returns the value of ProcessedAt. +func (s *ActionReportItem) GetProcessedAt() time.Time { + return s.ProcessedAt +} + +// SetBlocked sets the value of Blocked. +func (s *ActionReportItem) SetBlocked(val bool) { + s.Blocked = val +} + +// SetIP sets the value of IP. +func (s *ActionReportItem) SetIP(val string) { + s.IP = val +} + +// SetBlockDuration sets the value of BlockDuration. +func (s *ActionReportItem) SetBlockDuration(val float64) { + s.BlockDuration = val +} + +// SetWillUnblockAt sets the value of WillUnblockAt. +func (s *ActionReportItem) SetWillUnblockAt(val time.Time) { + s.WillUnblockAt = val +} + +// SetUserId sets the value of UserId. +func (s *ActionReportItem) SetUserId(val string) { + s.UserId = val +} + +// SetProcessedAt sets the value of ProcessedAt. +func (s *ActionReportItem) SetProcessedAt(val time.Time) { + s.ProcessedAt = val +} + +// Ref: #/components/schemas/ActiveInternalSquad +type ActiveInternalSquad struct { + UUID uuid.UUID `json:"uuid"` + Name string `json:"name"` +} + +// GetUUID returns the value of UUID. +func (s *ActiveInternalSquad) GetUUID() uuid.UUID { + return s.UUID +} + +// GetName returns the value of Name. +func (s *ActiveInternalSquad) GetName() string { + return s.Name +} + +// SetUUID sets the value of UUID. +func (s *ActiveInternalSquad) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetName sets the value of Name. +func (s *ActiveInternalSquad) SetName(val string) { + s.Name = val +} + +// Ref: #/components/schemas/AllHwidDevices +type AllHwidDevices struct { + Devices []Device `json:"devices"` + Total float64 `json:"total"` +} + +// GetDevices returns the value of Devices. +func (s *AllHwidDevices) GetDevices() []Device { + return s.Devices +} + +// GetTotal returns the value of Total. +func (s *AllHwidDevices) GetTotal() float64 { + return s.Total +} + +// SetDevices sets the value of Devices. +func (s *AllHwidDevices) SetDevices(val []Device) { + s.Devices = val +} + +// SetTotal sets the value of Total. +func (s *AllHwidDevices) SetTotal(val float64) { + s.Total = val +} + +type Authorization struct { + Token string + Roles []string +} + +// GetToken returns the value of Token. +func (s *Authorization) GetToken() string { + return s.Token +} + +// GetRoles returns the value of Roles. +func (s *Authorization) GetRoles() []string { + return s.Roles +} + +// SetToken sets the value of Token. +func (s *Authorization) SetToken(val string) { + s.Token = val +} + +// SetRoles sets the value of Roles. +func (s *Authorization) SetRoles(val []string) { + s.Roles = val +} + +// Ref: #/components/schemas/BadRequestError +type BadRequestError struct { + Message string `json:"message"` + StatusCode float64 `json:"statusCode"` + Errors []ValidationError `json:"errors"` +} + +// GetMessage returns the value of Message. +func (s *BadRequestError) GetMessage() string { + return s.Message +} + +// GetStatusCode returns the value of StatusCode. +func (s *BadRequestError) GetStatusCode() float64 { + return s.StatusCode +} + +// GetErrors returns the value of Errors. +func (s *BadRequestError) GetErrors() []ValidationError { + return s.Errors +} + +// SetMessage sets the value of Message. +func (s *BadRequestError) SetMessage(val string) { + s.Message = val +} + +// SetStatusCode sets the value of StatusCode. +func (s *BadRequestError) SetStatusCode(val float64) { + s.StatusCode = val +} + +// SetErrors sets the value of Errors. +func (s *BadRequestError) SetErrors(val []ValidationError) { + s.Errors = val +} + +func (*BadRequestError) apiTokensCreateRes() {} +func (*BadRequestError) apiTokensDeleteRes() {} +func (*BadRequestError) apiTokensFindAllRes() {} +func (*BadRequestError) authGetStatusRes() {} +func (*BadRequestError) authLoginRes() {} +func (*BadRequestError) authOauth2AuthorizeRes() {} +func (*BadRequestError) authOauth2CallbackRes() {} +func (*BadRequestError) authPasskeyAuthenticationOptionsRes() {} +func (*BadRequestError) authPasskeyAuthenticationVerifyRes() {} +func (*BadRequestError) authRegisterRes() {} +func (*BadRequestError) bandwidthStatsNodesGetNodeUserUsageRes() {} +func (*BadRequestError) bandwidthStatsNodesGetStatsNodeUsersUsageRes() {} +func (*BadRequestError) bandwidthStatsUsersGetStatsNodesUsageRes() {} +func (*BadRequestError) bandwidthStatsUsersGetUserUsageByRangeRes() {} +func (*BadRequestError) configProfileCreateConfigProfileRes() {} +func (*BadRequestError) configProfileDeleteConfigProfileByUuidRes() {} +func (*BadRequestError) configProfileGetAllInboundsRes() {} +func (*BadRequestError) configProfileGetComputedConfigProfileByUuidRes() {} +func (*BadRequestError) configProfileGetConfigProfileByUuidRes() {} +func (*BadRequestError) configProfileGetConfigProfilesRes() {} +func (*BadRequestError) configProfileGetInboundsByProfileUuidRes() {} +func (*BadRequestError) configProfileReorderConfigProfilesRes() {} +func (*BadRequestError) configProfileUpdateConfigProfileRes() {} +func (*BadRequestError) externalSquadAddUsersToExternalSquadRes() {} +func (*BadRequestError) externalSquadCreateExternalSquadRes() {} +func (*BadRequestError) externalSquadDeleteExternalSquadRes() {} +func (*BadRequestError) externalSquadGetExternalSquadByUuidRes() {} +func (*BadRequestError) externalSquadGetExternalSquadsRes() {} +func (*BadRequestError) externalSquadRemoveUsersFromExternalSquadRes() {} +func (*BadRequestError) externalSquadReorderExternalSquadsRes() {} +func (*BadRequestError) externalSquadUpdateExternalSquadRes() {} +func (*BadRequestError) hostsBulkActionsDeleteHostsRes() {} +func (*BadRequestError) hostsBulkActionsDisableHostsRes() {} +func (*BadRequestError) hostsBulkActionsEnableHostsRes() {} +func (*BadRequestError) hostsBulkActionsSetInboundToHostsRes() {} +func (*BadRequestError) hostsBulkActionsSetPortToHostsRes() {} +func (*BadRequestError) hostsCreateHostRes() {} +func (*BadRequestError) hostsDeleteHostRes() {} +func (*BadRequestError) hostsGetAllHostTagsRes() {} +func (*BadRequestError) hostsGetAllHostsRes() {} +func (*BadRequestError) hostsGetOneHostRes() {} +func (*BadRequestError) hostsReorderHostsRes() {} +func (*BadRequestError) hostsUpdateHostRes() {} +func (*BadRequestError) hwidUserDevicesCreateUserHwidDeviceRes() {} +func (*BadRequestError) hwidUserDevicesDeleteAllUserHwidDevicesRes() {} +func (*BadRequestError) hwidUserDevicesDeleteUserHwidDeviceRes() {} +func (*BadRequestError) hwidUserDevicesGetAllUsersRes() {} +func (*BadRequestError) hwidUserDevicesGetHwidDevicesStatsRes() {} +func (*BadRequestError) hwidUserDevicesGetTopUsersByHwidDevicesRes() {} +func (*BadRequestError) hwidUserDevicesGetUserHwidDevicesRes() {} +func (*BadRequestError) infraBillingCreateInfraBillingHistoryRecordRes() {} +func (*BadRequestError) infraBillingCreateInfraBillingNodeRes() {} +func (*BadRequestError) infraBillingCreateInfraProviderRes() {} +func (*BadRequestError) infraBillingDeleteInfraBillingHistoryRecordByUuidRes() {} +func (*BadRequestError) infraBillingDeleteInfraBillingNodeByUuidRes() {} +func (*BadRequestError) infraBillingDeleteInfraProviderByUuidRes() {} +func (*BadRequestError) infraBillingGetBillingNodesRes() {} +func (*BadRequestError) infraBillingGetInfraBillingHistoryRecordsRes() {} +func (*BadRequestError) infraBillingGetInfraProviderByUuidRes() {} +func (*BadRequestError) infraBillingGetInfraProvidersRes() {} +func (*BadRequestError) infraBillingUpdateInfraBillingNodeRes() {} +func (*BadRequestError) infraBillingUpdateInfraProviderRes() {} +func (*BadRequestError) internalSquadAddUsersToInternalSquadRes() {} +func (*BadRequestError) internalSquadCreateInternalSquadRes() {} +func (*BadRequestError) internalSquadDeleteInternalSquadRes() {} +func (*BadRequestError) internalSquadGetInternalSquadAccessibleNodesRes() {} +func (*BadRequestError) internalSquadGetInternalSquadByUuidRes() {} +func (*BadRequestError) internalSquadGetInternalSquadsRes() {} +func (*BadRequestError) internalSquadRemoveUsersFromInternalSquadRes() {} +func (*BadRequestError) internalSquadReorderInternalSquadsRes() {} +func (*BadRequestError) internalSquadUpdateInternalSquadRes() {} +func (*BadRequestError) ipControlDropConnectionsRes() {} +func (*BadRequestError) ipControlFetchUserIpsRes() {} +func (*BadRequestError) ipControlFetchUsersIpsRes() {} +func (*BadRequestError) ipControlGetFetchIpsResultRes() {} +func (*BadRequestError) ipControlGetFetchUsersIpsResultRes() {} +func (*BadRequestError) keygenGenerateKeyRes() {} +func (*BadRequestError) metadataGetNodeMetadataRes() {} +func (*BadRequestError) metadataGetUserMetadataRes() {} +func (*BadRequestError) metadataUpsertNodeMetadataRes() {} +func (*BadRequestError) metadataUpsertUserMetadataRes() {} +func (*BadRequestError) nodePluginCloneNodePluginRes() {} +func (*BadRequestError) nodePluginCreateConfigRes() {} +func (*BadRequestError) nodePluginDeleteConfigRes() {} +func (*BadRequestError) nodePluginGetAllConfigsRes() {} +func (*BadRequestError) nodePluginGetConfigByUuidRes() {} +func (*BadRequestError) nodePluginPluginExecutorRes() {} +func (*BadRequestError) nodePluginReorderNodePluginsRes() {} +func (*BadRequestError) nodePluginUpdateConfigRes() {} +func (*BadRequestError) nodesBulkNodesActionsRes() {} +func (*BadRequestError) nodesBulkNodesUpdateRes() {} +func (*BadRequestError) nodesCreateNodeRes() {} +func (*BadRequestError) nodesDeleteNodeRes() {} +func (*BadRequestError) nodesDisableNodeRes() {} +func (*BadRequestError) nodesEnableNodeRes() {} +func (*BadRequestError) nodesGetAllNodesRes() {} +func (*BadRequestError) nodesGetAllNodesTagsRes() {} +func (*BadRequestError) nodesGetOneNodeRes() {} +func (*BadRequestError) nodesProfileModificationRes() {} +func (*BadRequestError) nodesReorderNodesRes() {} +func (*BadRequestError) nodesResetNodeTrafficRes() {} +func (*BadRequestError) nodesRestartAllNodesRes() {} +func (*BadRequestError) nodesRestartNodeRes() {} +func (*BadRequestError) nodesUpdateNodeRes() {} +func (*BadRequestError) nodesUsageHistoryGetStatsNodesUsageRes() {} +func (*BadRequestError) passkeyDeletePasskeyRes() {} +func (*BadRequestError) passkeyGetActivePasskeysRes() {} +func (*BadRequestError) passkeyPasskeyRegistrationOptionsRes() {} +func (*BadRequestError) passkeyPasskeyRegistrationVerifyRes() {} +func (*BadRequestError) passkeyUpdatePasskeyRes() {} +func (*BadRequestError) remnawaveSettingsGetSettingsRes() {} +func (*BadRequestError) remnawaveSettingsUpdateSettingsRes() {} +func (*BadRequestError) snippetsCreateSnippetRes() {} +func (*BadRequestError) snippetsDeleteSnippetByNameRes() {} +func (*BadRequestError) snippetsGetSnippetsRes() {} +func (*BadRequestError) snippetsUpdateSnippetRes() {} +func (*BadRequestError) subscriptionGetSubscriptionInfoByShortUuidRes() {} +func (*BadRequestError) subscriptionPageConfigCloneSubscriptionPageConfigRes() {} +func (*BadRequestError) subscriptionPageConfigCreateConfigRes() {} +func (*BadRequestError) subscriptionPageConfigDeleteConfigRes() {} +func (*BadRequestError) subscriptionPageConfigGetAllConfigsRes() {} +func (*BadRequestError) subscriptionPageConfigGetConfigByUuidRes() {} +func (*BadRequestError) subscriptionPageConfigReorderSubscriptionPageConfigsRes() {} +func (*BadRequestError) subscriptionPageConfigUpdateConfigRes() {} +func (*BadRequestError) subscriptionSettingsGetSettingsRes() {} +func (*BadRequestError) subscriptionSettingsUpdateSettingsRes() {} +func (*BadRequestError) subscriptionTemplateCreateTemplateRes() {} +func (*BadRequestError) subscriptionTemplateDeleteTemplateRes() {} +func (*BadRequestError) subscriptionTemplateGetAllTemplatesRes() {} +func (*BadRequestError) subscriptionTemplateGetTemplateByUuidRes() {} +func (*BadRequestError) subscriptionTemplateReorderSubscriptionTemplatesRes() {} +func (*BadRequestError) subscriptionTemplateUpdateTemplateRes() {} +func (*BadRequestError) subscriptionsGetAllSubscriptionsRes() {} +func (*BadRequestError) subscriptionsGetConnectionKeysByUuidRes() {} +func (*BadRequestError) subscriptionsGetRawSubscriptionByShortUuidRes() {} +func (*BadRequestError) subscriptionsGetSubpageConfigByShortUuidRes() {} +func (*BadRequestError) subscriptionsGetSubscriptionByShortUuidProtectedRes() {} +func (*BadRequestError) subscriptionsGetSubscriptionByUsernameRes() {} +func (*BadRequestError) subscriptionsGetSubscriptionByUuidRes() {} +func (*BadRequestError) systemDebugSrrMatcherRes() {} +func (*BadRequestError) systemEncryptHappCryptoLinkRes() {} +func (*BadRequestError) systemGetBandwidthStatsRes() {} +func (*BadRequestError) systemGetMetadataRes() {} +func (*BadRequestError) systemGetNodesMetricsRes() {} +func (*BadRequestError) systemGetNodesStatisticsRes() {} +func (*BadRequestError) systemGetRecapRes() {} +func (*BadRequestError) systemGetRemnawaveHealthRes() {} +func (*BadRequestError) systemGetStatsRes() {} +func (*BadRequestError) systemGetX25519KeypairsRes() {} +func (*BadRequestError) torrentBlockerReportsGetTorrentBlockerReportsRes() {} +func (*BadRequestError) torrentBlockerReportsGetTorrentBlockerReportsStatsRes() {} +func (*BadRequestError) torrentBlockerReportsTruncateTorrentBlockerReportsRes() {} +func (*BadRequestError) userSubscriptionRequestHistoryGetSubscriptionRequestHistoryRes() {} +func (*BadRequestError) userSubscriptionRequestHistoryGetSubscriptionRequestHistoryStatsRes() {} +func (*BadRequestError) usersBulkActionsBulkAllExtendExpirationDateRes() {} +func (*BadRequestError) usersBulkActionsBulkAllResetUserTrafficRes() {} +func (*BadRequestError) usersBulkActionsBulkDeleteUsersByStatusRes() {} +func (*BadRequestError) usersBulkActionsBulkDeleteUsersRes() {} +func (*BadRequestError) usersBulkActionsBulkExtendExpirationDateRes() {} +func (*BadRequestError) usersBulkActionsBulkResetUserTrafficRes() {} +func (*BadRequestError) usersBulkActionsBulkRevokeUsersSubscriptionRes() {} +func (*BadRequestError) usersBulkActionsBulkUpdateAllUsersRes() {} +func (*BadRequestError) usersBulkActionsBulkUpdateUsersInternalSquadsRes() {} +func (*BadRequestError) usersBulkActionsBulkUpdateUsersRes() {} +func (*BadRequestError) usersCreateUserRes() {} +func (*BadRequestError) usersDeleteUserRes() {} +func (*BadRequestError) usersDisableUserRes() {} +func (*BadRequestError) usersEnableUserRes() {} +func (*BadRequestError) usersGetAllTagsRes() {} +func (*BadRequestError) usersGetAllUsersRes() {} +func (*BadRequestError) usersGetUserAccessibleNodesRes() {} +func (*BadRequestError) usersGetUserByIdRes() {} +func (*BadRequestError) usersGetUserByShortUuidRes() {} +func (*BadRequestError) usersGetUserByTelegramIdRes() {} +func (*BadRequestError) usersGetUserByUsernameRes() {} +func (*BadRequestError) usersGetUserByUuidRes() {} +func (*BadRequestError) usersGetUserSubscriptionRequestHistoryRes() {} +func (*BadRequestError) usersGetUsersByEmailRes() {} +func (*BadRequestError) usersGetUsersByTagRes() {} +func (*BadRequestError) usersResetUserTrafficRes() {} +func (*BadRequestError) usersResolveUserRes() {} +func (*BadRequestError) usersRevokeUserSubscriptionRes() {} +func (*BadRequestError) usersUpdateUserRes() {} + +// Ref: #/components/schemas/BandwidthLastTwoDays +type BandwidthLastTwoDays struct { + Current string `json:"current"` + Previous string `json:"previous"` + Difference string `json:"difference"` +} + +// GetCurrent returns the value of Current. +func (s *BandwidthLastTwoDays) GetCurrent() string { + return s.Current +} + +// GetPrevious returns the value of Previous. +func (s *BandwidthLastTwoDays) GetPrevious() string { + return s.Previous +} + +// GetDifference returns the value of Difference. +func (s *BandwidthLastTwoDays) GetDifference() string { + return s.Difference +} + +// SetCurrent sets the value of Current. +func (s *BandwidthLastTwoDays) SetCurrent(val string) { + s.Current = val +} + +// SetPrevious sets the value of Previous. +func (s *BandwidthLastTwoDays) SetPrevious(val string) { + s.Previous = val +} + +// SetDifference sets the value of Difference. +func (s *BandwidthLastTwoDays) SetDifference(val string) { + s.Difference = val +} + +// Ref: #/components/schemas/BillingHistoryItem +type BillingHistoryItem struct { + TotalAmount float64 `json:"totalAmount"` + TotalBills float64 `json:"totalBills"` +} + +// GetTotalAmount returns the value of TotalAmount. +func (s *BillingHistoryItem) GetTotalAmount() float64 { + return s.TotalAmount +} + +// GetTotalBills returns the value of TotalBills. +func (s *BillingHistoryItem) GetTotalBills() float64 { + return s.TotalBills +} + +// SetTotalAmount sets the value of TotalAmount. +func (s *BillingHistoryItem) SetTotalAmount(val float64) { + s.TotalAmount = val +} + +// SetTotalBills sets the value of TotalBills. +func (s *BillingHistoryItem) SetTotalBills(val float64) { + s.TotalBills = val +} + +// Ref: #/components/schemas/BillingHistoryResponse +type BillingHistoryResponse struct { + Response BillingHistoryResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *BillingHistoryResponse) GetResponse() BillingHistoryResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *BillingHistoryResponse) SetResponse(val BillingHistoryResponseResponse) { + s.Response = val +} + +func (*BillingHistoryResponse) infraBillingCreateInfraBillingHistoryRecordRes() {} +func (*BillingHistoryResponse) infraBillingDeleteInfraBillingHistoryRecordByUuidRes() {} +func (*BillingHistoryResponse) infraBillingGetInfraBillingHistoryRecordsRes() {} + +type BillingHistoryResponseResponse struct { + Records []BillingHistoryResponseResponseRecordsItem `json:"records"` + Total float64 `json:"total"` +} + +// GetRecords returns the value of Records. +func (s *BillingHistoryResponseResponse) GetRecords() []BillingHistoryResponseResponseRecordsItem { + return s.Records +} + +// GetTotal returns the value of Total. +func (s *BillingHistoryResponseResponse) GetTotal() float64 { + return s.Total +} + +// SetRecords sets the value of Records. +func (s *BillingHistoryResponseResponse) SetRecords(val []BillingHistoryResponseResponseRecordsItem) { + s.Records = val +} + +// SetTotal sets the value of Total. +func (s *BillingHistoryResponseResponse) SetTotal(val float64) { + s.Total = val +} + +type BillingHistoryResponseResponseRecordsItem struct { + UUID uuid.UUID `json:"uuid"` + ProviderUuid uuid.UUID `json:"providerUuid"` + Amount float64 `json:"amount"` + BilledAt time.Time `json:"billedAt"` + Provider BillingHistoryResponseResponseRecordsItemProvider `json:"provider"` +} + +// GetUUID returns the value of UUID. +func (s *BillingHistoryResponseResponseRecordsItem) GetUUID() uuid.UUID { + return s.UUID +} + +// GetProviderUuid returns the value of ProviderUuid. +func (s *BillingHistoryResponseResponseRecordsItem) GetProviderUuid() uuid.UUID { + return s.ProviderUuid +} + +// GetAmount returns the value of Amount. +func (s *BillingHistoryResponseResponseRecordsItem) GetAmount() float64 { + return s.Amount +} + +// GetBilledAt returns the value of BilledAt. +func (s *BillingHistoryResponseResponseRecordsItem) GetBilledAt() time.Time { + return s.BilledAt +} + +// GetProvider returns the value of Provider. +func (s *BillingHistoryResponseResponseRecordsItem) GetProvider() BillingHistoryResponseResponseRecordsItemProvider { + return s.Provider +} + +// SetUUID sets the value of UUID. +func (s *BillingHistoryResponseResponseRecordsItem) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetProviderUuid sets the value of ProviderUuid. +func (s *BillingHistoryResponseResponseRecordsItem) SetProviderUuid(val uuid.UUID) { + s.ProviderUuid = val +} + +// SetAmount sets the value of Amount. +func (s *BillingHistoryResponseResponseRecordsItem) SetAmount(val float64) { + s.Amount = val +} + +// SetBilledAt sets the value of BilledAt. +func (s *BillingHistoryResponseResponseRecordsItem) SetBilledAt(val time.Time) { + s.BilledAt = val +} + +// SetProvider sets the value of Provider. +func (s *BillingHistoryResponseResponseRecordsItem) SetProvider(val BillingHistoryResponseResponseRecordsItemProvider) { + s.Provider = val +} + +type BillingHistoryResponseResponseRecordsItemProvider struct { + UUID uuid.UUID `json:"uuid"` + Name string `json:"name"` + FaviconLink NilString `json:"faviconLink"` +} + +// GetUUID returns the value of UUID. +func (s *BillingHistoryResponseResponseRecordsItemProvider) GetUUID() uuid.UUID { + return s.UUID +} + +// GetName returns the value of Name. +func (s *BillingHistoryResponseResponseRecordsItemProvider) GetName() string { + return s.Name +} + +// GetFaviconLink returns the value of FaviconLink. +func (s *BillingHistoryResponseResponseRecordsItemProvider) GetFaviconLink() NilString { + return s.FaviconLink +} + +// SetUUID sets the value of UUID. +func (s *BillingHistoryResponseResponseRecordsItemProvider) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetName sets the value of Name. +func (s *BillingHistoryResponseResponseRecordsItemProvider) SetName(val string) { + s.Name = val +} + +// SetFaviconLink sets the value of FaviconLink. +func (s *BillingHistoryResponseResponseRecordsItemProvider) SetFaviconLink(val NilString) { + s.FaviconLink = val +} + +// Ref: #/components/schemas/BillingNode +type BillingNode struct { + NodeUuid uuid.UUID `json:"nodeUuid"` + Name string `json:"name"` + CountryCode string `json:"countryCode"` +} + +// GetNodeUuid returns the value of NodeUuid. +func (s *BillingNode) GetNodeUuid() uuid.UUID { + return s.NodeUuid +} + +// GetName returns the value of Name. +func (s *BillingNode) GetName() string { + return s.Name +} + +// GetCountryCode returns the value of CountryCode. +func (s *BillingNode) GetCountryCode() string { + return s.CountryCode +} + +// SetNodeUuid sets the value of NodeUuid. +func (s *BillingNode) SetNodeUuid(val uuid.UUID) { + s.NodeUuid = val +} + +// SetName sets the value of Name. +func (s *BillingNode) SetName(val string) { + s.Name = val +} + +// SetCountryCode sets the value of CountryCode. +func (s *BillingNode) SetCountryCode(val string) { + s.CountryCode = val +} + +// Ref: #/components/schemas/BillingNodesResponse +type BillingNodesResponse struct { + Response BillingNodesResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *BillingNodesResponse) GetResponse() BillingNodesResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *BillingNodesResponse) SetResponse(val BillingNodesResponseResponse) { + s.Response = val +} + +func (*BillingNodesResponse) infraBillingCreateInfraBillingNodeRes() {} +func (*BillingNodesResponse) infraBillingDeleteInfraBillingNodeByUuidRes() {} +func (*BillingNodesResponse) infraBillingGetBillingNodesRes() {} +func (*BillingNodesResponse) infraBillingUpdateInfraBillingNodeRes() {} + +type BillingNodesResponseResponse struct { + TotalBillingNodes float64 `json:"totalBillingNodes"` + BillingNodes []BillingNodesResponseResponseBillingNodesItem `json:"billingNodes"` + AvailableBillingNodes []Node `json:"availableBillingNodes"` + TotalAvailableBillingNodes float64 `json:"totalAvailableBillingNodes"` + Stats BillingNodesResponseResponseStats `json:"stats"` +} + +// GetTotalBillingNodes returns the value of TotalBillingNodes. +func (s *BillingNodesResponseResponse) GetTotalBillingNodes() float64 { + return s.TotalBillingNodes +} + +// GetBillingNodes returns the value of BillingNodes. +func (s *BillingNodesResponseResponse) GetBillingNodes() []BillingNodesResponseResponseBillingNodesItem { + return s.BillingNodes +} + +// GetAvailableBillingNodes returns the value of AvailableBillingNodes. +func (s *BillingNodesResponseResponse) GetAvailableBillingNodes() []Node { + return s.AvailableBillingNodes +} + +// GetTotalAvailableBillingNodes returns the value of TotalAvailableBillingNodes. +func (s *BillingNodesResponseResponse) GetTotalAvailableBillingNodes() float64 { + return s.TotalAvailableBillingNodes +} + +// GetStats returns the value of Stats. +func (s *BillingNodesResponseResponse) GetStats() BillingNodesResponseResponseStats { + return s.Stats +} + +// SetTotalBillingNodes sets the value of TotalBillingNodes. +func (s *BillingNodesResponseResponse) SetTotalBillingNodes(val float64) { + s.TotalBillingNodes = val +} + +// SetBillingNodes sets the value of BillingNodes. +func (s *BillingNodesResponseResponse) SetBillingNodes(val []BillingNodesResponseResponseBillingNodesItem) { + s.BillingNodes = val +} + +// SetAvailableBillingNodes sets the value of AvailableBillingNodes. +func (s *BillingNodesResponseResponse) SetAvailableBillingNodes(val []Node) { + s.AvailableBillingNodes = val +} + +// SetTotalAvailableBillingNodes sets the value of TotalAvailableBillingNodes. +func (s *BillingNodesResponseResponse) SetTotalAvailableBillingNodes(val float64) { + s.TotalAvailableBillingNodes = val +} + +// SetStats sets the value of Stats. +func (s *BillingNodesResponseResponse) SetStats(val BillingNodesResponseResponseStats) { + s.Stats = val +} + +type BillingNodesResponseResponseBillingNodesItem struct { + UUID uuid.UUID `json:"uuid"` + NodeUuid uuid.UUID `json:"nodeUuid"` + ProviderUuid uuid.UUID `json:"providerUuid"` + Provider BillingNodesResponseResponseBillingNodesItemProvider `json:"provider"` + Node Node `json:"node"` + NextBillingAt time.Time `json:"nextBillingAt"` + CreatedAt time.Time `json:"createdAt"` + UpdatedAt time.Time `json:"updatedAt"` +} + +// GetUUID returns the value of UUID. +func (s *BillingNodesResponseResponseBillingNodesItem) GetUUID() uuid.UUID { + return s.UUID +} + +// GetNodeUuid returns the value of NodeUuid. +func (s *BillingNodesResponseResponseBillingNodesItem) GetNodeUuid() uuid.UUID { + return s.NodeUuid +} + +// GetProviderUuid returns the value of ProviderUuid. +func (s *BillingNodesResponseResponseBillingNodesItem) GetProviderUuid() uuid.UUID { + return s.ProviderUuid +} + +// GetProvider returns the value of Provider. +func (s *BillingNodesResponseResponseBillingNodesItem) GetProvider() BillingNodesResponseResponseBillingNodesItemProvider { + return s.Provider +} + +// GetNode returns the value of Node. +func (s *BillingNodesResponseResponseBillingNodesItem) GetNode() Node { + return s.Node +} + +// GetNextBillingAt returns the value of NextBillingAt. +func (s *BillingNodesResponseResponseBillingNodesItem) GetNextBillingAt() time.Time { + return s.NextBillingAt +} + +// GetCreatedAt returns the value of CreatedAt. +func (s *BillingNodesResponseResponseBillingNodesItem) GetCreatedAt() time.Time { + return s.CreatedAt +} + +// GetUpdatedAt returns the value of UpdatedAt. +func (s *BillingNodesResponseResponseBillingNodesItem) GetUpdatedAt() time.Time { + return s.UpdatedAt +} + +// SetUUID sets the value of UUID. +func (s *BillingNodesResponseResponseBillingNodesItem) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetNodeUuid sets the value of NodeUuid. +func (s *BillingNodesResponseResponseBillingNodesItem) SetNodeUuid(val uuid.UUID) { + s.NodeUuid = val +} + +// SetProviderUuid sets the value of ProviderUuid. +func (s *BillingNodesResponseResponseBillingNodesItem) SetProviderUuid(val uuid.UUID) { + s.ProviderUuid = val +} + +// SetProvider sets the value of Provider. +func (s *BillingNodesResponseResponseBillingNodesItem) SetProvider(val BillingNodesResponseResponseBillingNodesItemProvider) { + s.Provider = val +} + +// SetNode sets the value of Node. +func (s *BillingNodesResponseResponseBillingNodesItem) SetNode(val Node) { + s.Node = val +} + +// SetNextBillingAt sets the value of NextBillingAt. +func (s *BillingNodesResponseResponseBillingNodesItem) SetNextBillingAt(val time.Time) { + s.NextBillingAt = val +} + +// SetCreatedAt sets the value of CreatedAt. +func (s *BillingNodesResponseResponseBillingNodesItem) SetCreatedAt(val time.Time) { + s.CreatedAt = val +} + +// SetUpdatedAt sets the value of UpdatedAt. +func (s *BillingNodesResponseResponseBillingNodesItem) SetUpdatedAt(val time.Time) { + s.UpdatedAt = val +} + +type BillingNodesResponseResponseBillingNodesItemProvider struct { + UUID uuid.UUID `json:"uuid"` + Name string `json:"name"` + LoginUrl NilString `json:"loginUrl"` + FaviconLink NilString `json:"faviconLink"` +} + +// GetUUID returns the value of UUID. +func (s *BillingNodesResponseResponseBillingNodesItemProvider) GetUUID() uuid.UUID { + return s.UUID +} + +// GetName returns the value of Name. +func (s *BillingNodesResponseResponseBillingNodesItemProvider) GetName() string { + return s.Name +} + +// GetLoginUrl returns the value of LoginUrl. +func (s *BillingNodesResponseResponseBillingNodesItemProvider) GetLoginUrl() NilString { + return s.LoginUrl +} + +// GetFaviconLink returns the value of FaviconLink. +func (s *BillingNodesResponseResponseBillingNodesItemProvider) GetFaviconLink() NilString { + return s.FaviconLink +} + +// SetUUID sets the value of UUID. +func (s *BillingNodesResponseResponseBillingNodesItemProvider) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetName sets the value of Name. +func (s *BillingNodesResponseResponseBillingNodesItemProvider) SetName(val string) { + s.Name = val +} + +// SetLoginUrl sets the value of LoginUrl. +func (s *BillingNodesResponseResponseBillingNodesItemProvider) SetLoginUrl(val NilString) { + s.LoginUrl = val +} + +// SetFaviconLink sets the value of FaviconLink. +func (s *BillingNodesResponseResponseBillingNodesItemProvider) SetFaviconLink(val NilString) { + s.FaviconLink = val +} + +type BillingNodesResponseResponseStats struct { + UpcomingNodesCount float64 `json:"upcomingNodesCount"` + CurrentMonthPayments float64 `json:"currentMonthPayments"` + TotalSpent float64 `json:"totalSpent"` +} + +// GetUpcomingNodesCount returns the value of UpcomingNodesCount. +func (s *BillingNodesResponseResponseStats) GetUpcomingNodesCount() float64 { + return s.UpcomingNodesCount +} + +// GetCurrentMonthPayments returns the value of CurrentMonthPayments. +func (s *BillingNodesResponseResponseStats) GetCurrentMonthPayments() float64 { + return s.CurrentMonthPayments +} + +// GetTotalSpent returns the value of TotalSpent. +func (s *BillingNodesResponseResponseStats) GetTotalSpent() float64 { + return s.TotalSpent +} + +// SetUpcomingNodesCount sets the value of UpcomingNodesCount. +func (s *BillingNodesResponseResponseStats) SetUpcomingNodesCount(val float64) { + s.UpcomingNodesCount = val +} + +// SetCurrentMonthPayments sets the value of CurrentMonthPayments. +func (s *BillingNodesResponseResponseStats) SetCurrentMonthPayments(val float64) { + s.CurrentMonthPayments = val +} + +// SetTotalSpent sets the value of TotalSpent. +func (s *BillingNodesResponseResponseStats) SetTotalSpent(val float64) { + s.TotalSpent = val +} + +// Ref: #/components/schemas/BrandingSettings +type BrandingSettings struct { + Title NilString `json:"title"` + LogoUrl NilURI `json:"logoUrl"` +} + +// GetTitle returns the value of Title. +func (s *BrandingSettings) GetTitle() NilString { + return s.Title +} + +// GetLogoUrl returns the value of LogoUrl. +func (s *BrandingSettings) GetLogoUrl() NilURI { + return s.LogoUrl +} + +// SetTitle sets the value of Title. +func (s *BrandingSettings) SetTitle(val NilString) { + s.Title = val +} + +// SetLogoUrl sets the value of LogoUrl. +func (s *BrandingSettings) SetLogoUrl(val NilURI) { + s.LogoUrl = val +} + +// Ref: #/components/schemas/BulkActionResponse +type BulkActionResponse struct { + Response BulkActionResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *BulkActionResponse) GetResponse() BulkActionResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *BulkActionResponse) SetResponse(val BulkActionResponseResponse) { + s.Response = val +} + +func (*BulkActionResponse) usersBulkActionsBulkDeleteUsersByStatusRes() {} +func (*BulkActionResponse) usersBulkActionsBulkDeleteUsersRes() {} +func (*BulkActionResponse) usersBulkActionsBulkExtendExpirationDateRes() {} +func (*BulkActionResponse) usersBulkActionsBulkResetUserTrafficRes() {} +func (*BulkActionResponse) usersBulkActionsBulkRevokeUsersSubscriptionRes() {} +func (*BulkActionResponse) usersBulkActionsBulkUpdateUsersInternalSquadsRes() {} +func (*BulkActionResponse) usersBulkActionsBulkUpdateUsersRes() {} + +type BulkActionResponseResponse struct { + AffectedRows float64 `json:"affectedRows"` +} + +// GetAffectedRows returns the value of AffectedRows. +func (s *BulkActionResponseResponse) GetAffectedRows() float64 { + return s.AffectedRows +} + +// SetAffectedRows sets the value of AffectedRows. +func (s *BulkActionResponseResponse) SetAffectedRows(val float64) { + s.AffectedRows = val +} + +// Ref: #/components/schemas/BulkAllExtendExpirationDateRequest +type BulkAllExtendExpirationDateRequest struct { + ExtendDays int `json:"extendDays"` +} + +// GetExtendDays returns the value of ExtendDays. +func (s *BulkAllExtendExpirationDateRequest) GetExtendDays() int { + return s.ExtendDays +} + +// SetExtendDays sets the value of ExtendDays. +func (s *BulkAllExtendExpirationDateRequest) SetExtendDays(val int) { + s.ExtendDays = val +} + +// Ref: #/components/schemas/BulkAllUpdateUsersRequest +type BulkAllUpdateUsersRequest struct { + Status OptBulkAllUpdateUsersRequestStatus `json:"status"` + // Traffic limit in bytes. 0 - unlimited. + TrafficLimitBytes OptInt `json:"trafficLimitBytes"` + // Traffic limit reset strategy. + TrafficLimitStrategy OptBulkAllUpdateUsersRequestTrafficLimitStrategy `json:"trafficLimitStrategy"` + // Expiration date: 2025-01-17T15:38:45.065Z. + ExpireAt OptDateTime `json:"expireAt"` + Description OptNilString `json:"description"` + TelegramId OptNilInt `json:"telegramId"` + Email OptNilString `json:"email"` + Tag OptNilString `json:"tag"` + HwidDeviceLimit OptNilInt `json:"hwidDeviceLimit"` +} + +// GetStatus returns the value of Status. +func (s *BulkAllUpdateUsersRequest) GetStatus() OptBulkAllUpdateUsersRequestStatus { + return s.Status +} + +// GetTrafficLimitBytes returns the value of TrafficLimitBytes. +func (s *BulkAllUpdateUsersRequest) GetTrafficLimitBytes() OptInt { + return s.TrafficLimitBytes +} + +// GetTrafficLimitStrategy returns the value of TrafficLimitStrategy. +func (s *BulkAllUpdateUsersRequest) GetTrafficLimitStrategy() OptBulkAllUpdateUsersRequestTrafficLimitStrategy { + return s.TrafficLimitStrategy +} + +// GetExpireAt returns the value of ExpireAt. +func (s *BulkAllUpdateUsersRequest) GetExpireAt() OptDateTime { + return s.ExpireAt +} + +// GetDescription returns the value of Description. +func (s *BulkAllUpdateUsersRequest) GetDescription() OptNilString { + return s.Description +} + +// GetTelegramId returns the value of TelegramId. +func (s *BulkAllUpdateUsersRequest) GetTelegramId() OptNilInt { + return s.TelegramId +} + +// GetEmail returns the value of Email. +func (s *BulkAllUpdateUsersRequest) GetEmail() OptNilString { + return s.Email +} + +// GetTag returns the value of Tag. +func (s *BulkAllUpdateUsersRequest) GetTag() OptNilString { + return s.Tag +} + +// GetHwidDeviceLimit returns the value of HwidDeviceLimit. +func (s *BulkAllUpdateUsersRequest) GetHwidDeviceLimit() OptNilInt { + return s.HwidDeviceLimit +} + +// SetStatus sets the value of Status. +func (s *BulkAllUpdateUsersRequest) SetStatus(val OptBulkAllUpdateUsersRequestStatus) { + s.Status = val +} + +// SetTrafficLimitBytes sets the value of TrafficLimitBytes. +func (s *BulkAllUpdateUsersRequest) SetTrafficLimitBytes(val OptInt) { + s.TrafficLimitBytes = val +} + +// SetTrafficLimitStrategy sets the value of TrafficLimitStrategy. +func (s *BulkAllUpdateUsersRequest) SetTrafficLimitStrategy(val OptBulkAllUpdateUsersRequestTrafficLimitStrategy) { + s.TrafficLimitStrategy = val +} + +// SetExpireAt sets the value of ExpireAt. +func (s *BulkAllUpdateUsersRequest) SetExpireAt(val OptDateTime) { + s.ExpireAt = val +} + +// SetDescription sets the value of Description. +func (s *BulkAllUpdateUsersRequest) SetDescription(val OptNilString) { + s.Description = val +} + +// SetTelegramId sets the value of TelegramId. +func (s *BulkAllUpdateUsersRequest) SetTelegramId(val OptNilInt) { + s.TelegramId = val +} + +// SetEmail sets the value of Email. +func (s *BulkAllUpdateUsersRequest) SetEmail(val OptNilString) { + s.Email = val +} + +// SetTag sets the value of Tag. +func (s *BulkAllUpdateUsersRequest) SetTag(val OptNilString) { + s.Tag = val +} + +// SetHwidDeviceLimit sets the value of HwidDeviceLimit. +func (s *BulkAllUpdateUsersRequest) SetHwidDeviceLimit(val OptNilInt) { + s.HwidDeviceLimit = val +} + +type BulkAllUpdateUsersRequestStatus string + +const ( + BulkAllUpdateUsersRequestStatusACTIVE BulkAllUpdateUsersRequestStatus = "ACTIVE" + BulkAllUpdateUsersRequestStatusDISABLED BulkAllUpdateUsersRequestStatus = "DISABLED" + BulkAllUpdateUsersRequestStatusLIMITED BulkAllUpdateUsersRequestStatus = "LIMITED" + BulkAllUpdateUsersRequestStatusEXPIRED BulkAllUpdateUsersRequestStatus = "EXPIRED" +) + +// AllValues returns all BulkAllUpdateUsersRequestStatus values. +func (BulkAllUpdateUsersRequestStatus) AllValues() []BulkAllUpdateUsersRequestStatus { + return []BulkAllUpdateUsersRequestStatus{ + BulkAllUpdateUsersRequestStatusACTIVE, + BulkAllUpdateUsersRequestStatusDISABLED, + BulkAllUpdateUsersRequestStatusLIMITED, + BulkAllUpdateUsersRequestStatusEXPIRED, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s BulkAllUpdateUsersRequestStatus) MarshalText() ([]byte, error) { + switch s { + case BulkAllUpdateUsersRequestStatusACTIVE: + return []byte(s), nil + case BulkAllUpdateUsersRequestStatusDISABLED: + return []byte(s), nil + case BulkAllUpdateUsersRequestStatusLIMITED: + return []byte(s), nil + case BulkAllUpdateUsersRequestStatusEXPIRED: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *BulkAllUpdateUsersRequestStatus) UnmarshalText(data []byte) error { + switch BulkAllUpdateUsersRequestStatus(data) { + case BulkAllUpdateUsersRequestStatusACTIVE: + *s = BulkAllUpdateUsersRequestStatusACTIVE + return nil + case BulkAllUpdateUsersRequestStatusDISABLED: + *s = BulkAllUpdateUsersRequestStatusDISABLED + return nil + case BulkAllUpdateUsersRequestStatusLIMITED: + *s = BulkAllUpdateUsersRequestStatusLIMITED + return nil + case BulkAllUpdateUsersRequestStatusEXPIRED: + *s = BulkAllUpdateUsersRequestStatusEXPIRED + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Traffic limit reset strategy. +type BulkAllUpdateUsersRequestTrafficLimitStrategy string + +const ( + BulkAllUpdateUsersRequestTrafficLimitStrategyNORESET BulkAllUpdateUsersRequestTrafficLimitStrategy = "NO_RESET" + BulkAllUpdateUsersRequestTrafficLimitStrategyDAY BulkAllUpdateUsersRequestTrafficLimitStrategy = "DAY" + BulkAllUpdateUsersRequestTrafficLimitStrategyWEEK BulkAllUpdateUsersRequestTrafficLimitStrategy = "WEEK" + BulkAllUpdateUsersRequestTrafficLimitStrategyMONTH BulkAllUpdateUsersRequestTrafficLimitStrategy = "MONTH" + BulkAllUpdateUsersRequestTrafficLimitStrategyMONTHROLLING BulkAllUpdateUsersRequestTrafficLimitStrategy = "MONTH_ROLLING" +) + +// AllValues returns all BulkAllUpdateUsersRequestTrafficLimitStrategy values. +func (BulkAllUpdateUsersRequestTrafficLimitStrategy) AllValues() []BulkAllUpdateUsersRequestTrafficLimitStrategy { + return []BulkAllUpdateUsersRequestTrafficLimitStrategy{ + BulkAllUpdateUsersRequestTrafficLimitStrategyNORESET, + BulkAllUpdateUsersRequestTrafficLimitStrategyDAY, + BulkAllUpdateUsersRequestTrafficLimitStrategyWEEK, + BulkAllUpdateUsersRequestTrafficLimitStrategyMONTH, + BulkAllUpdateUsersRequestTrafficLimitStrategyMONTHROLLING, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s BulkAllUpdateUsersRequestTrafficLimitStrategy) MarshalText() ([]byte, error) { + switch s { + case BulkAllUpdateUsersRequestTrafficLimitStrategyNORESET: + return []byte(s), nil + case BulkAllUpdateUsersRequestTrafficLimitStrategyDAY: + return []byte(s), nil + case BulkAllUpdateUsersRequestTrafficLimitStrategyWEEK: + return []byte(s), nil + case BulkAllUpdateUsersRequestTrafficLimitStrategyMONTH: + return []byte(s), nil + case BulkAllUpdateUsersRequestTrafficLimitStrategyMONTHROLLING: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *BulkAllUpdateUsersRequestTrafficLimitStrategy) UnmarshalText(data []byte) error { + switch BulkAllUpdateUsersRequestTrafficLimitStrategy(data) { + case BulkAllUpdateUsersRequestTrafficLimitStrategyNORESET: + *s = BulkAllUpdateUsersRequestTrafficLimitStrategyNORESET + return nil + case BulkAllUpdateUsersRequestTrafficLimitStrategyDAY: + *s = BulkAllUpdateUsersRequestTrafficLimitStrategyDAY + return nil + case BulkAllUpdateUsersRequestTrafficLimitStrategyWEEK: + *s = BulkAllUpdateUsersRequestTrafficLimitStrategyWEEK + return nil + case BulkAllUpdateUsersRequestTrafficLimitStrategyMONTH: + *s = BulkAllUpdateUsersRequestTrafficLimitStrategyMONTH + return nil + case BulkAllUpdateUsersRequestTrafficLimitStrategyMONTHROLLING: + *s = BulkAllUpdateUsersRequestTrafficLimitStrategyMONTHROLLING + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/BulkDeleteUsersByStatusRequest +type BulkDeleteUsersByStatusRequest struct { + Status OptBulkDeleteUsersByStatusRequestStatus `json:"status"` +} + +// GetStatus returns the value of Status. +func (s *BulkDeleteUsersByStatusRequest) GetStatus() OptBulkDeleteUsersByStatusRequestStatus { + return s.Status +} + +// SetStatus sets the value of Status. +func (s *BulkDeleteUsersByStatusRequest) SetStatus(val OptBulkDeleteUsersByStatusRequestStatus) { + s.Status = val +} + +type BulkDeleteUsersByStatusRequestStatus string + +const ( + BulkDeleteUsersByStatusRequestStatusACTIVE BulkDeleteUsersByStatusRequestStatus = "ACTIVE" + BulkDeleteUsersByStatusRequestStatusDISABLED BulkDeleteUsersByStatusRequestStatus = "DISABLED" + BulkDeleteUsersByStatusRequestStatusLIMITED BulkDeleteUsersByStatusRequestStatus = "LIMITED" + BulkDeleteUsersByStatusRequestStatusEXPIRED BulkDeleteUsersByStatusRequestStatus = "EXPIRED" +) + +// AllValues returns all BulkDeleteUsersByStatusRequestStatus values. +func (BulkDeleteUsersByStatusRequestStatus) AllValues() []BulkDeleteUsersByStatusRequestStatus { + return []BulkDeleteUsersByStatusRequestStatus{ + BulkDeleteUsersByStatusRequestStatusACTIVE, + BulkDeleteUsersByStatusRequestStatusDISABLED, + BulkDeleteUsersByStatusRequestStatusLIMITED, + BulkDeleteUsersByStatusRequestStatusEXPIRED, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s BulkDeleteUsersByStatusRequestStatus) MarshalText() ([]byte, error) { + switch s { + case BulkDeleteUsersByStatusRequestStatusACTIVE: + return []byte(s), nil + case BulkDeleteUsersByStatusRequestStatusDISABLED: + return []byte(s), nil + case BulkDeleteUsersByStatusRequestStatusLIMITED: + return []byte(s), nil + case BulkDeleteUsersByStatusRequestStatusEXPIRED: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *BulkDeleteUsersByStatusRequestStatus) UnmarshalText(data []byte) error { + switch BulkDeleteUsersByStatusRequestStatus(data) { + case BulkDeleteUsersByStatusRequestStatusACTIVE: + *s = BulkDeleteUsersByStatusRequestStatusACTIVE + return nil + case BulkDeleteUsersByStatusRequestStatusDISABLED: + *s = BulkDeleteUsersByStatusRequestStatusDISABLED + return nil + case BulkDeleteUsersByStatusRequestStatusLIMITED: + *s = BulkDeleteUsersByStatusRequestStatusLIMITED + return nil + case BulkDeleteUsersByStatusRequestStatusEXPIRED: + *s = BulkDeleteUsersByStatusRequestStatusEXPIRED + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/BulkExtendExpirationDateRequest +type BulkExtendExpirationDateRequest struct { + Uuids []uuid.UUID `json:"uuids"` + ExtendDays int `json:"extendDays"` +} + +// GetUuids returns the value of Uuids. +func (s *BulkExtendExpirationDateRequest) GetUuids() []uuid.UUID { + return s.Uuids +} + +// GetExtendDays returns the value of ExtendDays. +func (s *BulkExtendExpirationDateRequest) GetExtendDays() int { + return s.ExtendDays +} + +// SetUuids sets the value of Uuids. +func (s *BulkExtendExpirationDateRequest) SetUuids(val []uuid.UUID) { + s.Uuids = val +} + +// SetExtendDays sets the value of ExtendDays. +func (s *BulkExtendExpirationDateRequest) SetExtendDays(val int) { + s.ExtendDays = val +} + +// Ref: #/components/schemas/BulkNodesActionsRequest +type BulkNodesActionsRequest struct { + Uuids []uuid.UUID `json:"uuids"` + Action BulkNodesActionsRequestAction `json:"action"` +} + +// GetUuids returns the value of Uuids. +func (s *BulkNodesActionsRequest) GetUuids() []uuid.UUID { + return s.Uuids +} + +// GetAction returns the value of Action. +func (s *BulkNodesActionsRequest) GetAction() BulkNodesActionsRequestAction { + return s.Action +} + +// SetUuids sets the value of Uuids. +func (s *BulkNodesActionsRequest) SetUuids(val []uuid.UUID) { + s.Uuids = val +} + +// SetAction sets the value of Action. +func (s *BulkNodesActionsRequest) SetAction(val BulkNodesActionsRequestAction) { + s.Action = val +} + +type BulkNodesActionsRequestAction string + +const ( + BulkNodesActionsRequestActionENABLE BulkNodesActionsRequestAction = "ENABLE" + BulkNodesActionsRequestActionDISABLE BulkNodesActionsRequestAction = "DISABLE" + BulkNodesActionsRequestActionRESTART BulkNodesActionsRequestAction = "RESTART" + BulkNodesActionsRequestActionRESETTRAFFIC BulkNodesActionsRequestAction = "RESET_TRAFFIC" +) + +// AllValues returns all BulkNodesActionsRequestAction values. +func (BulkNodesActionsRequestAction) AllValues() []BulkNodesActionsRequestAction { + return []BulkNodesActionsRequestAction{ + BulkNodesActionsRequestActionENABLE, + BulkNodesActionsRequestActionDISABLE, + BulkNodesActionsRequestActionRESTART, + BulkNodesActionsRequestActionRESETTRAFFIC, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s BulkNodesActionsRequestAction) MarshalText() ([]byte, error) { + switch s { + case BulkNodesActionsRequestActionENABLE: + return []byte(s), nil + case BulkNodesActionsRequestActionDISABLE: + return []byte(s), nil + case BulkNodesActionsRequestActionRESTART: + return []byte(s), nil + case BulkNodesActionsRequestActionRESETTRAFFIC: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *BulkNodesActionsRequestAction) UnmarshalText(data []byte) error { + switch BulkNodesActionsRequestAction(data) { + case BulkNodesActionsRequestActionENABLE: + *s = BulkNodesActionsRequestActionENABLE + return nil + case BulkNodesActionsRequestActionDISABLE: + *s = BulkNodesActionsRequestActionDISABLE + return nil + case BulkNodesActionsRequestActionRESTART: + *s = BulkNodesActionsRequestActionRESTART + return nil + case BulkNodesActionsRequestActionRESETTRAFFIC: + *s = BulkNodesActionsRequestActionRESETTRAFFIC + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/BulkNodesUpdateRequest +type BulkNodesUpdateRequest struct { + Uuids []uuid.UUID `json:"uuids"` + Fields BulkNodesUpdateRequestFields `json:"fields"` +} + +// GetUuids returns the value of Uuids. +func (s *BulkNodesUpdateRequest) GetUuids() []uuid.UUID { + return s.Uuids +} + +// GetFields returns the value of Fields. +func (s *BulkNodesUpdateRequest) GetFields() BulkNodesUpdateRequestFields { + return s.Fields +} + +// SetUuids sets the value of Uuids. +func (s *BulkNodesUpdateRequest) SetUuids(val []uuid.UUID) { + s.Uuids = val +} + +// SetFields sets the value of Fields. +func (s *BulkNodesUpdateRequest) SetFields(val BulkNodesUpdateRequestFields) { + s.Fields = val +} + +type BulkNodesUpdateRequestFields struct { + CountryCode OptString `json:"countryCode"` + ConsumptionMultiplier OptFloat64 `json:"consumptionMultiplier"` + ProviderUuid OptNilUUID `json:"providerUuid"` + Tags []string `json:"tags"` + ActivePluginUuid OptNilUUID `json:"activePluginUuid"` +} + +// GetCountryCode returns the value of CountryCode. +func (s *BulkNodesUpdateRequestFields) GetCountryCode() OptString { + return s.CountryCode +} + +// GetConsumptionMultiplier returns the value of ConsumptionMultiplier. +func (s *BulkNodesUpdateRequestFields) GetConsumptionMultiplier() OptFloat64 { + return s.ConsumptionMultiplier +} + +// GetProviderUuid returns the value of ProviderUuid. +func (s *BulkNodesUpdateRequestFields) GetProviderUuid() OptNilUUID { + return s.ProviderUuid +} + +// GetTags returns the value of Tags. +func (s *BulkNodesUpdateRequestFields) GetTags() []string { + return s.Tags +} + +// GetActivePluginUuid returns the value of ActivePluginUuid. +func (s *BulkNodesUpdateRequestFields) GetActivePluginUuid() OptNilUUID { + return s.ActivePluginUuid +} + +// SetCountryCode sets the value of CountryCode. +func (s *BulkNodesUpdateRequestFields) SetCountryCode(val OptString) { + s.CountryCode = val +} + +// SetConsumptionMultiplier sets the value of ConsumptionMultiplier. +func (s *BulkNodesUpdateRequestFields) SetConsumptionMultiplier(val OptFloat64) { + s.ConsumptionMultiplier = val +} + +// SetProviderUuid sets the value of ProviderUuid. +func (s *BulkNodesUpdateRequestFields) SetProviderUuid(val OptNilUUID) { + s.ProviderUuid = val +} + +// SetTags sets the value of Tags. +func (s *BulkNodesUpdateRequestFields) SetTags(val []string) { + s.Tags = val +} + +// SetActivePluginUuid sets the value of ActivePluginUuid. +func (s *BulkNodesUpdateRequestFields) SetActivePluginUuid(val OptNilUUID) { + s.ActivePluginUuid = val +} + +// Ref: #/components/schemas/BulkUpdateUsersRequest +type BulkUpdateUsersRequest struct { + Uuids []uuid.UUID `json:"uuids"` + Fields BulkUpdateUsersRequestFields `json:"fields"` +} + +// GetUuids returns the value of Uuids. +func (s *BulkUpdateUsersRequest) GetUuids() []uuid.UUID { + return s.Uuids +} + +// GetFields returns the value of Fields. +func (s *BulkUpdateUsersRequest) GetFields() BulkUpdateUsersRequestFields { + return s.Fields +} + +// SetUuids sets the value of Uuids. +func (s *BulkUpdateUsersRequest) SetUuids(val []uuid.UUID) { + s.Uuids = val +} + +// SetFields sets the value of Fields. +func (s *BulkUpdateUsersRequest) SetFields(val BulkUpdateUsersRequestFields) { + s.Fields = val +} + +type BulkUpdateUsersRequestFields struct { + Status OptBulkUpdateUsersRequestFieldsStatus `json:"status"` + // Traffic limit in bytes. 0 - unlimited. + TrafficLimitBytes OptInt `json:"trafficLimitBytes"` + // Traffic limit reset strategy. + TrafficLimitStrategy OptBulkUpdateUsersRequestFieldsTrafficLimitStrategy `json:"trafficLimitStrategy"` + // Expiration date: 2025-01-17T15:38:45.065Z. + ExpireAt OptDateTime `json:"expireAt"` + Description OptNilString `json:"description"` + TelegramId OptNilInt `json:"telegramId"` + Email OptNilString `json:"email"` + Tag OptNilString `json:"tag"` + HwidDeviceLimit OptNilInt `json:"hwidDeviceLimit"` + // Optional. External squad UUID. + ExternalSquadUuid OptNilUUID `json:"externalSquadUuid"` +} + +// GetStatus returns the value of Status. +func (s *BulkUpdateUsersRequestFields) GetStatus() OptBulkUpdateUsersRequestFieldsStatus { + return s.Status +} + +// GetTrafficLimitBytes returns the value of TrafficLimitBytes. +func (s *BulkUpdateUsersRequestFields) GetTrafficLimitBytes() OptInt { + return s.TrafficLimitBytes +} + +// GetTrafficLimitStrategy returns the value of TrafficLimitStrategy. +func (s *BulkUpdateUsersRequestFields) GetTrafficLimitStrategy() OptBulkUpdateUsersRequestFieldsTrafficLimitStrategy { + return s.TrafficLimitStrategy +} + +// GetExpireAt returns the value of ExpireAt. +func (s *BulkUpdateUsersRequestFields) GetExpireAt() OptDateTime { + return s.ExpireAt +} + +// GetDescription returns the value of Description. +func (s *BulkUpdateUsersRequestFields) GetDescription() OptNilString { + return s.Description +} + +// GetTelegramId returns the value of TelegramId. +func (s *BulkUpdateUsersRequestFields) GetTelegramId() OptNilInt { + return s.TelegramId +} + +// GetEmail returns the value of Email. +func (s *BulkUpdateUsersRequestFields) GetEmail() OptNilString { + return s.Email +} + +// GetTag returns the value of Tag. +func (s *BulkUpdateUsersRequestFields) GetTag() OptNilString { + return s.Tag +} + +// GetHwidDeviceLimit returns the value of HwidDeviceLimit. +func (s *BulkUpdateUsersRequestFields) GetHwidDeviceLimit() OptNilInt { + return s.HwidDeviceLimit +} + +// GetExternalSquadUuid returns the value of ExternalSquadUuid. +func (s *BulkUpdateUsersRequestFields) GetExternalSquadUuid() OptNilUUID { + return s.ExternalSquadUuid +} + +// SetStatus sets the value of Status. +func (s *BulkUpdateUsersRequestFields) SetStatus(val OptBulkUpdateUsersRequestFieldsStatus) { + s.Status = val +} + +// SetTrafficLimitBytes sets the value of TrafficLimitBytes. +func (s *BulkUpdateUsersRequestFields) SetTrafficLimitBytes(val OptInt) { + s.TrafficLimitBytes = val +} + +// SetTrafficLimitStrategy sets the value of TrafficLimitStrategy. +func (s *BulkUpdateUsersRequestFields) SetTrafficLimitStrategy(val OptBulkUpdateUsersRequestFieldsTrafficLimitStrategy) { + s.TrafficLimitStrategy = val +} + +// SetExpireAt sets the value of ExpireAt. +func (s *BulkUpdateUsersRequestFields) SetExpireAt(val OptDateTime) { + s.ExpireAt = val +} + +// SetDescription sets the value of Description. +func (s *BulkUpdateUsersRequestFields) SetDescription(val OptNilString) { + s.Description = val +} + +// SetTelegramId sets the value of TelegramId. +func (s *BulkUpdateUsersRequestFields) SetTelegramId(val OptNilInt) { + s.TelegramId = val +} + +// SetEmail sets the value of Email. +func (s *BulkUpdateUsersRequestFields) SetEmail(val OptNilString) { + s.Email = val +} + +// SetTag sets the value of Tag. +func (s *BulkUpdateUsersRequestFields) SetTag(val OptNilString) { + s.Tag = val +} + +// SetHwidDeviceLimit sets the value of HwidDeviceLimit. +func (s *BulkUpdateUsersRequestFields) SetHwidDeviceLimit(val OptNilInt) { + s.HwidDeviceLimit = val +} + +// SetExternalSquadUuid sets the value of ExternalSquadUuid. +func (s *BulkUpdateUsersRequestFields) SetExternalSquadUuid(val OptNilUUID) { + s.ExternalSquadUuid = val +} + +type BulkUpdateUsersRequestFieldsStatus string + +const ( + BulkUpdateUsersRequestFieldsStatusACTIVE BulkUpdateUsersRequestFieldsStatus = "ACTIVE" + BulkUpdateUsersRequestFieldsStatusDISABLED BulkUpdateUsersRequestFieldsStatus = "DISABLED" + BulkUpdateUsersRequestFieldsStatusLIMITED BulkUpdateUsersRequestFieldsStatus = "LIMITED" + BulkUpdateUsersRequestFieldsStatusEXPIRED BulkUpdateUsersRequestFieldsStatus = "EXPIRED" +) + +// AllValues returns all BulkUpdateUsersRequestFieldsStatus values. +func (BulkUpdateUsersRequestFieldsStatus) AllValues() []BulkUpdateUsersRequestFieldsStatus { + return []BulkUpdateUsersRequestFieldsStatus{ + BulkUpdateUsersRequestFieldsStatusACTIVE, + BulkUpdateUsersRequestFieldsStatusDISABLED, + BulkUpdateUsersRequestFieldsStatusLIMITED, + BulkUpdateUsersRequestFieldsStatusEXPIRED, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s BulkUpdateUsersRequestFieldsStatus) MarshalText() ([]byte, error) { + switch s { + case BulkUpdateUsersRequestFieldsStatusACTIVE: + return []byte(s), nil + case BulkUpdateUsersRequestFieldsStatusDISABLED: + return []byte(s), nil + case BulkUpdateUsersRequestFieldsStatusLIMITED: + return []byte(s), nil + case BulkUpdateUsersRequestFieldsStatusEXPIRED: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *BulkUpdateUsersRequestFieldsStatus) UnmarshalText(data []byte) error { + switch BulkUpdateUsersRequestFieldsStatus(data) { + case BulkUpdateUsersRequestFieldsStatusACTIVE: + *s = BulkUpdateUsersRequestFieldsStatusACTIVE + return nil + case BulkUpdateUsersRequestFieldsStatusDISABLED: + *s = BulkUpdateUsersRequestFieldsStatusDISABLED + return nil + case BulkUpdateUsersRequestFieldsStatusLIMITED: + *s = BulkUpdateUsersRequestFieldsStatusLIMITED + return nil + case BulkUpdateUsersRequestFieldsStatusEXPIRED: + *s = BulkUpdateUsersRequestFieldsStatusEXPIRED + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Traffic limit reset strategy. +type BulkUpdateUsersRequestFieldsTrafficLimitStrategy string + +const ( + BulkUpdateUsersRequestFieldsTrafficLimitStrategyNORESET BulkUpdateUsersRequestFieldsTrafficLimitStrategy = "NO_RESET" + BulkUpdateUsersRequestFieldsTrafficLimitStrategyDAY BulkUpdateUsersRequestFieldsTrafficLimitStrategy = "DAY" + BulkUpdateUsersRequestFieldsTrafficLimitStrategyWEEK BulkUpdateUsersRequestFieldsTrafficLimitStrategy = "WEEK" + BulkUpdateUsersRequestFieldsTrafficLimitStrategyMONTH BulkUpdateUsersRequestFieldsTrafficLimitStrategy = "MONTH" + BulkUpdateUsersRequestFieldsTrafficLimitStrategyMONTHROLLING BulkUpdateUsersRequestFieldsTrafficLimitStrategy = "MONTH_ROLLING" +) + +// AllValues returns all BulkUpdateUsersRequestFieldsTrafficLimitStrategy values. +func (BulkUpdateUsersRequestFieldsTrafficLimitStrategy) AllValues() []BulkUpdateUsersRequestFieldsTrafficLimitStrategy { + return []BulkUpdateUsersRequestFieldsTrafficLimitStrategy{ + BulkUpdateUsersRequestFieldsTrafficLimitStrategyNORESET, + BulkUpdateUsersRequestFieldsTrafficLimitStrategyDAY, + BulkUpdateUsersRequestFieldsTrafficLimitStrategyWEEK, + BulkUpdateUsersRequestFieldsTrafficLimitStrategyMONTH, + BulkUpdateUsersRequestFieldsTrafficLimitStrategyMONTHROLLING, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s BulkUpdateUsersRequestFieldsTrafficLimitStrategy) MarshalText() ([]byte, error) { + switch s { + case BulkUpdateUsersRequestFieldsTrafficLimitStrategyNORESET: + return []byte(s), nil + case BulkUpdateUsersRequestFieldsTrafficLimitStrategyDAY: + return []byte(s), nil + case BulkUpdateUsersRequestFieldsTrafficLimitStrategyWEEK: + return []byte(s), nil + case BulkUpdateUsersRequestFieldsTrafficLimitStrategyMONTH: + return []byte(s), nil + case BulkUpdateUsersRequestFieldsTrafficLimitStrategyMONTHROLLING: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *BulkUpdateUsersRequestFieldsTrafficLimitStrategy) UnmarshalText(data []byte) error { + switch BulkUpdateUsersRequestFieldsTrafficLimitStrategy(data) { + case BulkUpdateUsersRequestFieldsTrafficLimitStrategyNORESET: + *s = BulkUpdateUsersRequestFieldsTrafficLimitStrategyNORESET + return nil + case BulkUpdateUsersRequestFieldsTrafficLimitStrategyDAY: + *s = BulkUpdateUsersRequestFieldsTrafficLimitStrategyDAY + return nil + case BulkUpdateUsersRequestFieldsTrafficLimitStrategyWEEK: + *s = BulkUpdateUsersRequestFieldsTrafficLimitStrategyWEEK + return nil + case BulkUpdateUsersRequestFieldsTrafficLimitStrategyMONTH: + *s = BulkUpdateUsersRequestFieldsTrafficLimitStrategyMONTH + return nil + case BulkUpdateUsersRequestFieldsTrafficLimitStrategyMONTHROLLING: + *s = BulkUpdateUsersRequestFieldsTrafficLimitStrategyMONTHROLLING + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/BulkUpdateUsersSquadsRequest +type BulkUpdateUsersSquadsRequest struct { + Uuids []uuid.UUID `json:"uuids"` + ActiveInternalSquads []uuid.UUID `json:"activeInternalSquads"` +} + +// GetUuids returns the value of Uuids. +func (s *BulkUpdateUsersSquadsRequest) GetUuids() []uuid.UUID { + return s.Uuids +} + +// GetActiveInternalSquads returns the value of ActiveInternalSquads. +func (s *BulkUpdateUsersSquadsRequest) GetActiveInternalSquads() []uuid.UUID { + return s.ActiveInternalSquads +} + +// SetUuids sets the value of Uuids. +func (s *BulkUpdateUsersSquadsRequest) SetUuids(val []uuid.UUID) { + s.Uuids = val +} + +// SetActiveInternalSquads sets the value of ActiveInternalSquads. +func (s *BulkUpdateUsersSquadsRequest) SetActiveInternalSquads(val []uuid.UUID) { + s.ActiveInternalSquads = val +} + +// Ref: #/components/schemas/BulkUuidsRequest +type BulkUuidsRequest struct { + Uuids []uuid.UUID `json:"uuids"` +} + +// GetUuids returns the value of Uuids. +func (s *BulkUuidsRequest) GetUuids() []uuid.UUID { + return s.Uuids +} + +// SetUuids sets the value of Uuids. +func (s *BulkUuidsRequest) SetUuids(val []uuid.UUID) { + s.Uuids = val +} + +// Ref: #/components/schemas/BulkUuidsRequest2 +type BulkUuidsRequest2 struct { + Uuids []uuid.UUID `json:"uuids"` +} + +// GetUuids returns the value of Uuids. +func (s *BulkUuidsRequest2) GetUuids() []uuid.UUID { + return s.Uuids +} + +// SetUuids sets the value of Uuids. +func (s *BulkUuidsRequest2) SetUuids(val []uuid.UUID) { + s.Uuids = val +} + +// Ref: #/components/schemas/ByAppItem +type ByAppItem struct { + App string `json:"app"` + Count float64 `json:"count"` +} + +// GetApp returns the value of App. +func (s *ByAppItem) GetApp() string { + return s.App +} + +// GetCount returns the value of Count. +func (s *ByAppItem) GetCount() float64 { + return s.Count +} + +// SetApp sets the value of App. +func (s *ByAppItem) SetApp(val string) { + s.App = val +} + +// SetCount sets the value of Count. +func (s *ByAppItem) SetCount(val float64) { + s.Count = val +} + +// Ref: #/components/schemas/CloneNodePluginRequestRequest +type CloneNodePluginRequestRequest struct { + CloneFromUuid uuid.UUID `json:"cloneFromUuid"` +} + +// GetCloneFromUuid returns the value of CloneFromUuid. +func (s *CloneNodePluginRequestRequest) GetCloneFromUuid() uuid.UUID { + return s.CloneFromUuid +} + +// SetCloneFromUuid sets the value of CloneFromUuid. +func (s *CloneNodePluginRequestRequest) SetCloneFromUuid(val uuid.UUID) { + s.CloneFromUuid = val +} + +// {"markdownDescription":"Condition to check against the **headerName**.", +// "defaultSnippets":[{"label":"Examples: Check if header contains \"text/html\"", +// "markdownDescription":"Condition to check if **headerName** contains \"text/html\"", +// "body":{"headerName":"accept","operator":"CONTAINS","value":"text/html","caseSensitive":true}}]}. +// Ref: #/components/schemas/Condition +type Condition struct { + // {"markdownDescription":"**Name** of the HTTP header to check. Must comply with RFC 7230."}. + HeaderName string `json:"headerName"` + // {"errorMessage":"Invalid operator. Please select a valid operator.", + // "markdownDescription":"Operator to use for comparing the `headerName` with `value`.", + // "markdownEnumDescriptions":["Performs an exact, comparison between the header value and specified + // string. `string === value`","Ensures the header value does not exactly match the specified string. + // `string !== value`","Checks if the header value contains the specified string as a substring. + // `string.includes()`","Verifies the header value does not contain the specified string as a + // substring. `!string.includes()`","Validates that the header value begins with the specified string. + // `string.startsWith()`","Validates that the header value does not begin with the specified string. + // `!string.startsWith()`","Confirms the header value ends with the specified string. `string. + // endsWith()`","Confirms the header value does not end with the specified string. `!string. + // endsWith()`","Evaluates if the header value matches the specified regular expression pattern. + // `regex.test()`","Evaluates if the header value does not match the specified regular expression + // pattern. `!regex.test()`"]}. + Operator ConditionOperator `json:"operator"` + // {"markdownDescription":"**Value** to check against the **headerName**."}. + Value string `json:"value"` + // {"markdownDescription":"Whether the value is **case sensitive**. \n\n - `true`: the value will be + // compared as is. \n\n - `false`: the value will be lowercased **before** comparison."}. + CaseSensitive bool `json:"caseSensitive"` +} + +// GetHeaderName returns the value of HeaderName. +func (s *Condition) GetHeaderName() string { + return s.HeaderName +} + +// GetOperator returns the value of Operator. +func (s *Condition) GetOperator() ConditionOperator { + return s.Operator +} + +// GetValue returns the value of Value. +func (s *Condition) GetValue() string { + return s.Value +} + +// GetCaseSensitive returns the value of CaseSensitive. +func (s *Condition) GetCaseSensitive() bool { + return s.CaseSensitive +} + +// SetHeaderName sets the value of HeaderName. +func (s *Condition) SetHeaderName(val string) { + s.HeaderName = val +} + +// SetOperator sets the value of Operator. +func (s *Condition) SetOperator(val ConditionOperator) { + s.Operator = val +} + +// SetValue sets the value of Value. +func (s *Condition) SetValue(val string) { + s.Value = val +} + +// SetCaseSensitive sets the value of CaseSensitive. +func (s *Condition) SetCaseSensitive(val bool) { + s.CaseSensitive = val +} + +// {"errorMessage":"Invalid operator. Please select a valid operator.", +// "markdownDescription":"Operator to use for comparing the `headerName` with `value`.", +// "markdownEnumDescriptions":["Performs an exact, comparison between the header value and specified +// string. `string === value`","Ensures the header value does not exactly match the specified string. +// `string !== value`","Checks if the header value contains the specified string as a substring. +// `string.includes()`","Verifies the header value does not contain the specified string as a +// substring. `!string.includes()`","Validates that the header value begins with the specified string. +// +// `string.startsWith()`","Validates that the header value does not begin with the specified string. +// +// `!string.startsWith()`","Confirms the header value ends with the specified string. `string. +// endsWith()`","Confirms the header value does not end with the specified string. `!string. +// endsWith()`","Evaluates if the header value matches the specified regular expression pattern. +// `regex.test()`","Evaluates if the header value does not match the specified regular expression +// pattern. `!regex.test()`"]}. +type ConditionOperator string + +const ( + ConditionOperatorEQUALS ConditionOperator = "EQUALS" + ConditionOperatorNOTEQUALS ConditionOperator = "NOT_EQUALS" + ConditionOperatorCONTAINS ConditionOperator = "CONTAINS" + ConditionOperatorNOTCONTAINS ConditionOperator = "NOT_CONTAINS" + ConditionOperatorSTARTSWITH ConditionOperator = "STARTS_WITH" + ConditionOperatorNOTSTARTSWITH ConditionOperator = "NOT_STARTS_WITH" + ConditionOperatorENDSWITH ConditionOperator = "ENDS_WITH" + ConditionOperatorNOTENDSWITH ConditionOperator = "NOT_ENDS_WITH" + ConditionOperatorREGEX ConditionOperator = "REGEX" + ConditionOperatorNOTREGEX ConditionOperator = "NOT_REGEX" +) + +// AllValues returns all ConditionOperator values. +func (ConditionOperator) AllValues() []ConditionOperator { + return []ConditionOperator{ + ConditionOperatorEQUALS, + ConditionOperatorNOTEQUALS, + ConditionOperatorCONTAINS, + ConditionOperatorNOTCONTAINS, + ConditionOperatorSTARTSWITH, + ConditionOperatorNOTSTARTSWITH, + ConditionOperatorENDSWITH, + ConditionOperatorNOTENDSWITH, + ConditionOperatorREGEX, + ConditionOperatorNOTREGEX, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s ConditionOperator) MarshalText() ([]byte, error) { + switch s { + case ConditionOperatorEQUALS: + return []byte(s), nil + case ConditionOperatorNOTEQUALS: + return []byte(s), nil + case ConditionOperatorCONTAINS: + return []byte(s), nil + case ConditionOperatorNOTCONTAINS: + return []byte(s), nil + case ConditionOperatorSTARTSWITH: + return []byte(s), nil + case ConditionOperatorNOTSTARTSWITH: + return []byte(s), nil + case ConditionOperatorENDSWITH: + return []byte(s), nil + case ConditionOperatorNOTENDSWITH: + return []byte(s), nil + case ConditionOperatorREGEX: + return []byte(s), nil + case ConditionOperatorNOTREGEX: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *ConditionOperator) UnmarshalText(data []byte) error { + switch ConditionOperator(data) { + case ConditionOperatorEQUALS: + *s = ConditionOperatorEQUALS + return nil + case ConditionOperatorNOTEQUALS: + *s = ConditionOperatorNOTEQUALS + return nil + case ConditionOperatorCONTAINS: + *s = ConditionOperatorCONTAINS + return nil + case ConditionOperatorNOTCONTAINS: + *s = ConditionOperatorNOTCONTAINS + return nil + case ConditionOperatorSTARTSWITH: + *s = ConditionOperatorSTARTSWITH + return nil + case ConditionOperatorNOTSTARTSWITH: + *s = ConditionOperatorNOTSTARTSWITH + return nil + case ConditionOperatorENDSWITH: + *s = ConditionOperatorENDSWITH + return nil + case ConditionOperatorNOTENDSWITH: + *s = ConditionOperatorNOTENDSWITH + return nil + case ConditionOperatorREGEX: + *s = ConditionOperatorREGEX + return nil + case ConditionOperatorNOTREGEX: + *s = ConditionOperatorNOTREGEX + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/Config +type Config struct { + UUID uuid.UUID `json:"uuid"` + ViewPosition int `json:"viewPosition"` + Name string `json:"name"` + Config jx.Raw `json:"config"` +} + +// GetUUID returns the value of UUID. +func (s *Config) GetUUID() uuid.UUID { + return s.UUID +} + +// GetViewPosition returns the value of ViewPosition. +func (s *Config) GetViewPosition() int { + return s.ViewPosition +} + +// GetName returns the value of Name. +func (s *Config) GetName() string { + return s.Name +} + +// GetConfig returns the value of Config. +func (s *Config) GetConfig() jx.Raw { + return s.Config +} + +// SetUUID sets the value of UUID. +func (s *Config) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetViewPosition sets the value of ViewPosition. +func (s *Config) SetViewPosition(val int) { + s.ViewPosition = val +} + +// SetName sets the value of Name. +func (s *Config) SetName(val string) { + s.Name = val +} + +// SetConfig sets the value of Config. +func (s *Config) SetConfig(val jx.Raw) { + s.Config = val +} + +// Ref: #/components/schemas/ConfigProfile +type ConfigProfile struct { + UUID uuid.UUID `json:"uuid"` + ViewPosition int `json:"viewPosition"` + Name string `json:"name"` + Config jx.Raw `json:"config"` + Inbounds []Inbound `json:"inbounds"` + Nodes []Node `json:"nodes"` + CreatedAt time.Time `json:"createdAt"` + UpdatedAt time.Time `json:"updatedAt"` +} + +// GetUUID returns the value of UUID. +func (s *ConfigProfile) GetUUID() uuid.UUID { + return s.UUID +} + +// GetViewPosition returns the value of ViewPosition. +func (s *ConfigProfile) GetViewPosition() int { + return s.ViewPosition +} + +// GetName returns the value of Name. +func (s *ConfigProfile) GetName() string { + return s.Name +} + +// GetConfig returns the value of Config. +func (s *ConfigProfile) GetConfig() jx.Raw { + return s.Config +} + +// GetInbounds returns the value of Inbounds. +func (s *ConfigProfile) GetInbounds() []Inbound { + return s.Inbounds +} + +// GetNodes returns the value of Nodes. +func (s *ConfigProfile) GetNodes() []Node { + return s.Nodes +} + +// GetCreatedAt returns the value of CreatedAt. +func (s *ConfigProfile) GetCreatedAt() time.Time { + return s.CreatedAt +} + +// GetUpdatedAt returns the value of UpdatedAt. +func (s *ConfigProfile) GetUpdatedAt() time.Time { + return s.UpdatedAt +} + +// SetUUID sets the value of UUID. +func (s *ConfigProfile) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetViewPosition sets the value of ViewPosition. +func (s *ConfigProfile) SetViewPosition(val int) { + s.ViewPosition = val +} + +// SetName sets the value of Name. +func (s *ConfigProfile) SetName(val string) { + s.Name = val +} + +// SetConfig sets the value of Config. +func (s *ConfigProfile) SetConfig(val jx.Raw) { + s.Config = val +} + +// SetInbounds sets the value of Inbounds. +func (s *ConfigProfile) SetInbounds(val []Inbound) { + s.Inbounds = val +} + +// SetNodes sets the value of Nodes. +func (s *ConfigProfile) SetNodes(val []Node) { + s.Nodes = val +} + +// SetCreatedAt sets the value of CreatedAt. +func (s *ConfigProfile) SetCreatedAt(val time.Time) { + s.CreatedAt = val +} + +// SetUpdatedAt sets the value of UpdatedAt. +func (s *ConfigProfile) SetUpdatedAt(val time.Time) { + s.UpdatedAt = val +} + +// ConfigProfileCreateConfigProfileConflict is response for ConfigProfileCreateConfigProfile operation. +type ConfigProfileCreateConfigProfileConflict struct{} + +func (*ConfigProfileCreateConfigProfileConflict) configProfileCreateConfigProfileRes() {} + +// Ref: #/components/schemas/ConfigProfileItem +type ConfigProfileItem struct { + ActiveConfigProfileUuid NilUUID `json:"activeConfigProfileUuid"` + ActiveInbounds []Inbound `json:"activeInbounds"` +} + +// GetActiveConfigProfileUuid returns the value of ActiveConfigProfileUuid. +func (s *ConfigProfileItem) GetActiveConfigProfileUuid() NilUUID { + return s.ActiveConfigProfileUuid +} + +// GetActiveInbounds returns the value of ActiveInbounds. +func (s *ConfigProfileItem) GetActiveInbounds() []Inbound { + return s.ActiveInbounds +} + +// SetActiveConfigProfileUuid sets the value of ActiveConfigProfileUuid. +func (s *ConfigProfileItem) SetActiveConfigProfileUuid(val NilUUID) { + s.ActiveConfigProfileUuid = val +} + +// SetActiveInbounds sets the value of ActiveInbounds. +func (s *ConfigProfileItem) SetActiveInbounds(val []Inbound) { + s.ActiveInbounds = val +} + +// Ref: #/components/schemas/ConfigProfileRef +type ConfigProfileRef struct { + ActiveConfigProfileUuid uuid.UUID `json:"activeConfigProfileUuid"` + ActiveInbounds []uuid.UUID `json:"activeInbounds"` +} + +// GetActiveConfigProfileUuid returns the value of ActiveConfigProfileUuid. +func (s *ConfigProfileRef) GetActiveConfigProfileUuid() uuid.UUID { + return s.ActiveConfigProfileUuid +} + +// GetActiveInbounds returns the value of ActiveInbounds. +func (s *ConfigProfileRef) GetActiveInbounds() []uuid.UUID { + return s.ActiveInbounds +} + +// SetActiveConfigProfileUuid sets the value of ActiveConfigProfileUuid. +func (s *ConfigProfileRef) SetActiveConfigProfileUuid(val uuid.UUID) { + s.ActiveConfigProfileUuid = val +} + +// SetActiveInbounds sets the value of ActiveInbounds. +func (s *ConfigProfileRef) SetActiveInbounds(val []uuid.UUID) { + s.ActiveInbounds = val +} + +// Ref: #/components/schemas/ConfigProfileResponse +type ConfigProfileResponse struct { + Response ConfigProfile `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *ConfigProfileResponse) GetResponse() ConfigProfile { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *ConfigProfileResponse) SetResponse(val ConfigProfile) { + s.Response = val +} + +func (*ConfigProfileResponse) configProfileCreateConfigProfileRes() {} +func (*ConfigProfileResponse) configProfileGetComputedConfigProfileByUuidRes() {} +func (*ConfigProfileResponse) configProfileGetConfigProfileByUuidRes() {} +func (*ConfigProfileResponse) configProfileUpdateConfigProfileRes() {} + +// ConfigProfileUpdateConfigProfileConflict is response for ConfigProfileUpdateConfigProfile operation. +type ConfigProfileUpdateConfigProfileConflict struct{} + +func (*ConfigProfileUpdateConfigProfileConflict) configProfileUpdateConfigProfileRes() {} + +// Ref: #/components/schemas/ConfigProfilesResponse +type ConfigProfilesResponse struct { + Response ConfigProfilesResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *ConfigProfilesResponse) GetResponse() ConfigProfilesResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *ConfigProfilesResponse) SetResponse(val ConfigProfilesResponseResponse) { + s.Response = val +} + +func (*ConfigProfilesResponse) configProfileGetConfigProfilesRes() {} +func (*ConfigProfilesResponse) configProfileReorderConfigProfilesRes() {} + +type ConfigProfilesResponseResponse struct { + Total float64 `json:"total"` + ConfigProfiles []ConfigProfile `json:"configProfiles"` +} + +// GetTotal returns the value of Total. +func (s *ConfigProfilesResponseResponse) GetTotal() float64 { + return s.Total +} + +// GetConfigProfiles returns the value of ConfigProfiles. +func (s *ConfigProfilesResponseResponse) GetConfigProfiles() []ConfigProfile { + return s.ConfigProfiles +} + +// SetTotal sets the value of Total. +func (s *ConfigProfilesResponseResponse) SetTotal(val float64) { + s.Total = val +} + +// SetConfigProfiles sets the value of ConfigProfiles. +func (s *ConfigProfilesResponseResponse) SetConfigProfiles(val []ConfigProfile) { + s.ConfigProfiles = val +} + +// Ref: #/components/schemas/CreateApiTokenRequest +type CreateApiTokenRequest struct { + TokenName string `json:"tokenName"` +} + +// GetTokenName returns the value of TokenName. +func (s *CreateApiTokenRequest) GetTokenName() string { + return s.TokenName +} + +// SetTokenName sets the value of TokenName. +func (s *CreateApiTokenRequest) SetTokenName(val string) { + s.TokenName = val +} + +// Ref: #/components/schemas/CreateApiTokenResponse +type CreateApiTokenResponse struct { + Response CreateApiTokenResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *CreateApiTokenResponse) GetResponse() CreateApiTokenResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *CreateApiTokenResponse) SetResponse(val CreateApiTokenResponseResponse) { + s.Response = val +} + +func (*CreateApiTokenResponse) apiTokensCreateRes() {} + +type CreateApiTokenResponseResponse struct { + Token string `json:"token"` + UUID string `json:"uuid"` +} + +// GetToken returns the value of Token. +func (s *CreateApiTokenResponseResponse) GetToken() string { + return s.Token +} + +// GetUUID returns the value of UUID. +func (s *CreateApiTokenResponseResponse) GetUUID() string { + return s.UUID +} + +// SetToken sets the value of Token. +func (s *CreateApiTokenResponseResponse) SetToken(val string) { + s.Token = val +} + +// SetUUID sets the value of UUID. +func (s *CreateApiTokenResponseResponse) SetUUID(val string) { + s.UUID = val +} + +// Ref: #/components/schemas/CreateConfigProfileRequest +type CreateConfigProfileRequest struct { + Name string `json:"name"` + Config CreateConfigProfileRequestConfig `json:"config"` +} + +// GetName returns the value of Name. +func (s *CreateConfigProfileRequest) GetName() string { + return s.Name +} + +// GetConfig returns the value of Config. +func (s *CreateConfigProfileRequest) GetConfig() CreateConfigProfileRequestConfig { + return s.Config +} + +// SetName sets the value of Name. +func (s *CreateConfigProfileRequest) SetName(val string) { + s.Name = val +} + +// SetConfig sets the value of Config. +func (s *CreateConfigProfileRequest) SetConfig(val CreateConfigProfileRequestConfig) { + s.Config = val +} + +type CreateConfigProfileRequestConfig struct{} + +// Ref: #/components/schemas/CreateExternalSquadRequest +type CreateExternalSquadRequest struct { + Name string `json:"name"` +} + +// GetName returns the value of Name. +func (s *CreateExternalSquadRequest) GetName() string { + return s.Name +} + +// SetName sets the value of Name. +func (s *CreateExternalSquadRequest) SetName(val string) { + s.Name = val +} + +// Ref: #/components/schemas/CreateHostRequest +type CreateHostRequest struct { + Inbound InboundRef `json:"inbound"` + Remark string `json:"remark"` + Address string `json:"address"` + Port int `json:"port"` + Path OptString `json:"path"` + Sni OptString `json:"sni"` + Host OptString `json:"host"` + Alpn OptNilCreateHostRequestAlpn `json:"alpn"` + Fingerprint OptNilCreateHostRequestFingerprint `json:"fingerprint"` + IsDisabled OptBool `json:"isDisabled"` + SecurityLayer OptCreateHostRequestSecurityLayer `json:"securityLayer"` + XHttpExtraParams jx.Raw `json:"xHttpExtraParams"` + MuxParams jx.Raw `json:"muxParams"` + SockoptParams jx.Raw `json:"sockoptParams"` + FinalMask jx.Raw `json:"finalMask"` + ServerDescription OptNilString `json:"serverDescription"` + // Optional. Host tag for categorization. Max 32 characters, uppercase letters, numbers, underscores + // and colons are allowed. + Tag OptNilString `json:"tag"` + IsHidden OptBool `json:"isHidden"` + OverrideSniFromAddress OptBool `json:"overrideSniFromAddress"` + KeepSniBlank OptBool `json:"keepSniBlank"` + AllowInsecure OptBool `json:"allowInsecure"` + VlessRouteId OptNilInt `json:"vlessRouteId"` + ShuffleHost OptBool `json:"shuffleHost"` + MihomoX25519 OptBool `json:"mihomoX25519"` + Nodes []uuid.UUID `json:"nodes"` + XrayJsonTemplateUuid OptNilUUID `json:"xrayJsonTemplateUuid"` + // Optional. Internal squads from which the host will be excluded. + ExcludedInternalSquads []uuid.UUID `json:"excludedInternalSquads"` + // Optional. Subscription types from which the host will be excluded from. + ExcludeFromSubscriptionTypes []CreateHostRequestExcludeFromSubscriptionTypesItem `json:"excludeFromSubscriptionTypes"` +} + +// GetInbound returns the value of Inbound. +func (s *CreateHostRequest) GetInbound() InboundRef { + return s.Inbound +} + +// GetRemark returns the value of Remark. +func (s *CreateHostRequest) GetRemark() string { + return s.Remark +} + +// GetAddress returns the value of Address. +func (s *CreateHostRequest) GetAddress() string { + return s.Address +} + +// GetPort returns the value of Port. +func (s *CreateHostRequest) GetPort() int { + return s.Port +} + +// GetPath returns the value of Path. +func (s *CreateHostRequest) GetPath() OptString { + return s.Path +} + +// GetSni returns the value of Sni. +func (s *CreateHostRequest) GetSni() OptString { + return s.Sni +} + +// GetHost returns the value of Host. +func (s *CreateHostRequest) GetHost() OptString { + return s.Host +} + +// GetAlpn returns the value of Alpn. +func (s *CreateHostRequest) GetAlpn() OptNilCreateHostRequestAlpn { + return s.Alpn +} + +// GetFingerprint returns the value of Fingerprint. +func (s *CreateHostRequest) GetFingerprint() OptNilCreateHostRequestFingerprint { + return s.Fingerprint +} + +// GetIsDisabled returns the value of IsDisabled. +func (s *CreateHostRequest) GetIsDisabled() OptBool { + return s.IsDisabled +} + +// GetSecurityLayer returns the value of SecurityLayer. +func (s *CreateHostRequest) GetSecurityLayer() OptCreateHostRequestSecurityLayer { + return s.SecurityLayer +} + +// GetXHttpExtraParams returns the value of XHttpExtraParams. +func (s *CreateHostRequest) GetXHttpExtraParams() jx.Raw { + return s.XHttpExtraParams +} + +// GetMuxParams returns the value of MuxParams. +func (s *CreateHostRequest) GetMuxParams() jx.Raw { + return s.MuxParams +} + +// GetSockoptParams returns the value of SockoptParams. +func (s *CreateHostRequest) GetSockoptParams() jx.Raw { + return s.SockoptParams +} + +// GetFinalMask returns the value of FinalMask. +func (s *CreateHostRequest) GetFinalMask() jx.Raw { + return s.FinalMask +} + +// GetServerDescription returns the value of ServerDescription. +func (s *CreateHostRequest) GetServerDescription() OptNilString { + return s.ServerDescription +} + +// GetTag returns the value of Tag. +func (s *CreateHostRequest) GetTag() OptNilString { + return s.Tag +} + +// GetIsHidden returns the value of IsHidden. +func (s *CreateHostRequest) GetIsHidden() OptBool { + return s.IsHidden +} + +// GetOverrideSniFromAddress returns the value of OverrideSniFromAddress. +func (s *CreateHostRequest) GetOverrideSniFromAddress() OptBool { + return s.OverrideSniFromAddress +} + +// GetKeepSniBlank returns the value of KeepSniBlank. +func (s *CreateHostRequest) GetKeepSniBlank() OptBool { + return s.KeepSniBlank +} + +// GetAllowInsecure returns the value of AllowInsecure. +func (s *CreateHostRequest) GetAllowInsecure() OptBool { + return s.AllowInsecure +} + +// GetVlessRouteId returns the value of VlessRouteId. +func (s *CreateHostRequest) GetVlessRouteId() OptNilInt { + return s.VlessRouteId +} + +// GetShuffleHost returns the value of ShuffleHost. +func (s *CreateHostRequest) GetShuffleHost() OptBool { + return s.ShuffleHost +} + +// GetMihomoX25519 returns the value of MihomoX25519. +func (s *CreateHostRequest) GetMihomoX25519() OptBool { + return s.MihomoX25519 +} + +// GetNodes returns the value of Nodes. +func (s *CreateHostRequest) GetNodes() []uuid.UUID { + return s.Nodes +} + +// GetXrayJsonTemplateUuid returns the value of XrayJsonTemplateUuid. +func (s *CreateHostRequest) GetXrayJsonTemplateUuid() OptNilUUID { + return s.XrayJsonTemplateUuid +} + +// GetExcludedInternalSquads returns the value of ExcludedInternalSquads. +func (s *CreateHostRequest) GetExcludedInternalSquads() []uuid.UUID { + return s.ExcludedInternalSquads +} + +// GetExcludeFromSubscriptionTypes returns the value of ExcludeFromSubscriptionTypes. +func (s *CreateHostRequest) GetExcludeFromSubscriptionTypes() []CreateHostRequestExcludeFromSubscriptionTypesItem { + return s.ExcludeFromSubscriptionTypes +} + +// SetInbound sets the value of Inbound. +func (s *CreateHostRequest) SetInbound(val InboundRef) { + s.Inbound = val +} + +// SetRemark sets the value of Remark. +func (s *CreateHostRequest) SetRemark(val string) { + s.Remark = val +} + +// SetAddress sets the value of Address. +func (s *CreateHostRequest) SetAddress(val string) { + s.Address = val +} + +// SetPort sets the value of Port. +func (s *CreateHostRequest) SetPort(val int) { + s.Port = val +} + +// SetPath sets the value of Path. +func (s *CreateHostRequest) SetPath(val OptString) { + s.Path = val +} + +// SetSni sets the value of Sni. +func (s *CreateHostRequest) SetSni(val OptString) { + s.Sni = val +} + +// SetHost sets the value of Host. +func (s *CreateHostRequest) SetHost(val OptString) { + s.Host = val +} + +// SetAlpn sets the value of Alpn. +func (s *CreateHostRequest) SetAlpn(val OptNilCreateHostRequestAlpn) { + s.Alpn = val +} + +// SetFingerprint sets the value of Fingerprint. +func (s *CreateHostRequest) SetFingerprint(val OptNilCreateHostRequestFingerprint) { + s.Fingerprint = val +} + +// SetIsDisabled sets the value of IsDisabled. +func (s *CreateHostRequest) SetIsDisabled(val OptBool) { + s.IsDisabled = val +} + +// SetSecurityLayer sets the value of SecurityLayer. +func (s *CreateHostRequest) SetSecurityLayer(val OptCreateHostRequestSecurityLayer) { + s.SecurityLayer = val +} + +// SetXHttpExtraParams sets the value of XHttpExtraParams. +func (s *CreateHostRequest) SetXHttpExtraParams(val jx.Raw) { + s.XHttpExtraParams = val +} + +// SetMuxParams sets the value of MuxParams. +func (s *CreateHostRequest) SetMuxParams(val jx.Raw) { + s.MuxParams = val +} + +// SetSockoptParams sets the value of SockoptParams. +func (s *CreateHostRequest) SetSockoptParams(val jx.Raw) { + s.SockoptParams = val +} + +// SetFinalMask sets the value of FinalMask. +func (s *CreateHostRequest) SetFinalMask(val jx.Raw) { + s.FinalMask = val +} + +// SetServerDescription sets the value of ServerDescription. +func (s *CreateHostRequest) SetServerDescription(val OptNilString) { + s.ServerDescription = val +} + +// SetTag sets the value of Tag. +func (s *CreateHostRequest) SetTag(val OptNilString) { + s.Tag = val +} + +// SetIsHidden sets the value of IsHidden. +func (s *CreateHostRequest) SetIsHidden(val OptBool) { + s.IsHidden = val +} + +// SetOverrideSniFromAddress sets the value of OverrideSniFromAddress. +func (s *CreateHostRequest) SetOverrideSniFromAddress(val OptBool) { + s.OverrideSniFromAddress = val +} + +// SetKeepSniBlank sets the value of KeepSniBlank. +func (s *CreateHostRequest) SetKeepSniBlank(val OptBool) { + s.KeepSniBlank = val +} + +// SetAllowInsecure sets the value of AllowInsecure. +func (s *CreateHostRequest) SetAllowInsecure(val OptBool) { + s.AllowInsecure = val +} + +// SetVlessRouteId sets the value of VlessRouteId. +func (s *CreateHostRequest) SetVlessRouteId(val OptNilInt) { + s.VlessRouteId = val +} + +// SetShuffleHost sets the value of ShuffleHost. +func (s *CreateHostRequest) SetShuffleHost(val OptBool) { + s.ShuffleHost = val +} + +// SetMihomoX25519 sets the value of MihomoX25519. +func (s *CreateHostRequest) SetMihomoX25519(val OptBool) { + s.MihomoX25519 = val +} + +// SetNodes sets the value of Nodes. +func (s *CreateHostRequest) SetNodes(val []uuid.UUID) { + s.Nodes = val +} + +// SetXrayJsonTemplateUuid sets the value of XrayJsonTemplateUuid. +func (s *CreateHostRequest) SetXrayJsonTemplateUuid(val OptNilUUID) { + s.XrayJsonTemplateUuid = val +} + +// SetExcludedInternalSquads sets the value of ExcludedInternalSquads. +func (s *CreateHostRequest) SetExcludedInternalSquads(val []uuid.UUID) { + s.ExcludedInternalSquads = val +} + +// SetExcludeFromSubscriptionTypes sets the value of ExcludeFromSubscriptionTypes. +func (s *CreateHostRequest) SetExcludeFromSubscriptionTypes(val []CreateHostRequestExcludeFromSubscriptionTypesItem) { + s.ExcludeFromSubscriptionTypes = val +} + +type CreateHostRequestAlpn string + +const ( + CreateHostRequestAlpnH3 CreateHostRequestAlpn = "h3" + CreateHostRequestAlpnH2 CreateHostRequestAlpn = "h2" + CreateHostRequestAlpnHTTP11 CreateHostRequestAlpn = "http/1.1" + CreateHostRequestAlpnH2HTTP11 CreateHostRequestAlpn = "h2,http/1.1" + CreateHostRequestAlpnH3H2HTTP11 CreateHostRequestAlpn = "h3,h2,http/1.1" + CreateHostRequestAlpnH3H2 CreateHostRequestAlpn = "h3,h2" +) + +// AllValues returns all CreateHostRequestAlpn values. +func (CreateHostRequestAlpn) AllValues() []CreateHostRequestAlpn { + return []CreateHostRequestAlpn{ + CreateHostRequestAlpnH3, + CreateHostRequestAlpnH2, + CreateHostRequestAlpnHTTP11, + CreateHostRequestAlpnH2HTTP11, + CreateHostRequestAlpnH3H2HTTP11, + CreateHostRequestAlpnH3H2, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s CreateHostRequestAlpn) MarshalText() ([]byte, error) { + switch s { + case CreateHostRequestAlpnH3: + return []byte(s), nil + case CreateHostRequestAlpnH2: + return []byte(s), nil + case CreateHostRequestAlpnHTTP11: + return []byte(s), nil + case CreateHostRequestAlpnH2HTTP11: + return []byte(s), nil + case CreateHostRequestAlpnH3H2HTTP11: + return []byte(s), nil + case CreateHostRequestAlpnH3H2: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *CreateHostRequestAlpn) UnmarshalText(data []byte) error { + switch CreateHostRequestAlpn(data) { + case CreateHostRequestAlpnH3: + *s = CreateHostRequestAlpnH3 + return nil + case CreateHostRequestAlpnH2: + *s = CreateHostRequestAlpnH2 + return nil + case CreateHostRequestAlpnHTTP11: + *s = CreateHostRequestAlpnHTTP11 + return nil + case CreateHostRequestAlpnH2HTTP11: + *s = CreateHostRequestAlpnH2HTTP11 + return nil + case CreateHostRequestAlpnH3H2HTTP11: + *s = CreateHostRequestAlpnH3H2HTTP11 + return nil + case CreateHostRequestAlpnH3H2: + *s = CreateHostRequestAlpnH3H2 + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +type CreateHostRequestExcludeFromSubscriptionTypesItem string + +const ( + CreateHostRequestExcludeFromSubscriptionTypesItemXRAYJSON CreateHostRequestExcludeFromSubscriptionTypesItem = "XRAY_JSON" + CreateHostRequestExcludeFromSubscriptionTypesItemXRAYBASE64 CreateHostRequestExcludeFromSubscriptionTypesItem = "XRAY_BASE64" + CreateHostRequestExcludeFromSubscriptionTypesItemMIHOMO CreateHostRequestExcludeFromSubscriptionTypesItem = "MIHOMO" + CreateHostRequestExcludeFromSubscriptionTypesItemSTASH CreateHostRequestExcludeFromSubscriptionTypesItem = "STASH" + CreateHostRequestExcludeFromSubscriptionTypesItemCLASH CreateHostRequestExcludeFromSubscriptionTypesItem = "CLASH" + CreateHostRequestExcludeFromSubscriptionTypesItemSINGBOX CreateHostRequestExcludeFromSubscriptionTypesItem = "SINGBOX" +) + +// AllValues returns all CreateHostRequestExcludeFromSubscriptionTypesItem values. +func (CreateHostRequestExcludeFromSubscriptionTypesItem) AllValues() []CreateHostRequestExcludeFromSubscriptionTypesItem { + return []CreateHostRequestExcludeFromSubscriptionTypesItem{ + CreateHostRequestExcludeFromSubscriptionTypesItemXRAYJSON, + CreateHostRequestExcludeFromSubscriptionTypesItemXRAYBASE64, + CreateHostRequestExcludeFromSubscriptionTypesItemMIHOMO, + CreateHostRequestExcludeFromSubscriptionTypesItemSTASH, + CreateHostRequestExcludeFromSubscriptionTypesItemCLASH, + CreateHostRequestExcludeFromSubscriptionTypesItemSINGBOX, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s CreateHostRequestExcludeFromSubscriptionTypesItem) MarshalText() ([]byte, error) { + switch s { + case CreateHostRequestExcludeFromSubscriptionTypesItemXRAYJSON: + return []byte(s), nil + case CreateHostRequestExcludeFromSubscriptionTypesItemXRAYBASE64: + return []byte(s), nil + case CreateHostRequestExcludeFromSubscriptionTypesItemMIHOMO: + return []byte(s), nil + case CreateHostRequestExcludeFromSubscriptionTypesItemSTASH: + return []byte(s), nil + case CreateHostRequestExcludeFromSubscriptionTypesItemCLASH: + return []byte(s), nil + case CreateHostRequestExcludeFromSubscriptionTypesItemSINGBOX: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *CreateHostRequestExcludeFromSubscriptionTypesItem) UnmarshalText(data []byte) error { + switch CreateHostRequestExcludeFromSubscriptionTypesItem(data) { + case CreateHostRequestExcludeFromSubscriptionTypesItemXRAYJSON: + *s = CreateHostRequestExcludeFromSubscriptionTypesItemXRAYJSON + return nil + case CreateHostRequestExcludeFromSubscriptionTypesItemXRAYBASE64: + *s = CreateHostRequestExcludeFromSubscriptionTypesItemXRAYBASE64 + return nil + case CreateHostRequestExcludeFromSubscriptionTypesItemMIHOMO: + *s = CreateHostRequestExcludeFromSubscriptionTypesItemMIHOMO + return nil + case CreateHostRequestExcludeFromSubscriptionTypesItemSTASH: + *s = CreateHostRequestExcludeFromSubscriptionTypesItemSTASH + return nil + case CreateHostRequestExcludeFromSubscriptionTypesItemCLASH: + *s = CreateHostRequestExcludeFromSubscriptionTypesItemCLASH + return nil + case CreateHostRequestExcludeFromSubscriptionTypesItemSINGBOX: + *s = CreateHostRequestExcludeFromSubscriptionTypesItemSINGBOX + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +type CreateHostRequestFingerprint string + +const ( + CreateHostRequestFingerprintChrome CreateHostRequestFingerprint = "chrome" + CreateHostRequestFingerprintFirefox CreateHostRequestFingerprint = "firefox" + CreateHostRequestFingerprintSafari CreateHostRequestFingerprint = "safari" + CreateHostRequestFingerprintIos CreateHostRequestFingerprint = "ios" + CreateHostRequestFingerprintAndroid CreateHostRequestFingerprint = "android" + CreateHostRequestFingerprintEdge CreateHostRequestFingerprint = "edge" + CreateHostRequestFingerprintQq CreateHostRequestFingerprint = "qq" + CreateHostRequestFingerprintRandom CreateHostRequestFingerprint = "random" + CreateHostRequestFingerprintRandomized CreateHostRequestFingerprint = "randomized" +) + +// AllValues returns all CreateHostRequestFingerprint values. +func (CreateHostRequestFingerprint) AllValues() []CreateHostRequestFingerprint { + return []CreateHostRequestFingerprint{ + CreateHostRequestFingerprintChrome, + CreateHostRequestFingerprintFirefox, + CreateHostRequestFingerprintSafari, + CreateHostRequestFingerprintIos, + CreateHostRequestFingerprintAndroid, + CreateHostRequestFingerprintEdge, + CreateHostRequestFingerprintQq, + CreateHostRequestFingerprintRandom, + CreateHostRequestFingerprintRandomized, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s CreateHostRequestFingerprint) MarshalText() ([]byte, error) { + switch s { + case CreateHostRequestFingerprintChrome: + return []byte(s), nil + case CreateHostRequestFingerprintFirefox: + return []byte(s), nil + case CreateHostRequestFingerprintSafari: + return []byte(s), nil + case CreateHostRequestFingerprintIos: + return []byte(s), nil + case CreateHostRequestFingerprintAndroid: + return []byte(s), nil + case CreateHostRequestFingerprintEdge: + return []byte(s), nil + case CreateHostRequestFingerprintQq: + return []byte(s), nil + case CreateHostRequestFingerprintRandom: + return []byte(s), nil + case CreateHostRequestFingerprintRandomized: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *CreateHostRequestFingerprint) UnmarshalText(data []byte) error { + switch CreateHostRequestFingerprint(data) { + case CreateHostRequestFingerprintChrome: + *s = CreateHostRequestFingerprintChrome + return nil + case CreateHostRequestFingerprintFirefox: + *s = CreateHostRequestFingerprintFirefox + return nil + case CreateHostRequestFingerprintSafari: + *s = CreateHostRequestFingerprintSafari + return nil + case CreateHostRequestFingerprintIos: + *s = CreateHostRequestFingerprintIos + return nil + case CreateHostRequestFingerprintAndroid: + *s = CreateHostRequestFingerprintAndroid + return nil + case CreateHostRequestFingerprintEdge: + *s = CreateHostRequestFingerprintEdge + return nil + case CreateHostRequestFingerprintQq: + *s = CreateHostRequestFingerprintQq + return nil + case CreateHostRequestFingerprintRandom: + *s = CreateHostRequestFingerprintRandom + return nil + case CreateHostRequestFingerprintRandomized: + *s = CreateHostRequestFingerprintRandomized + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +type CreateHostRequestSecurityLayer string + +const ( + CreateHostRequestSecurityLayerDEFAULT CreateHostRequestSecurityLayer = "DEFAULT" + CreateHostRequestSecurityLayerTLS CreateHostRequestSecurityLayer = "TLS" + CreateHostRequestSecurityLayerNONE CreateHostRequestSecurityLayer = "NONE" +) + +// AllValues returns all CreateHostRequestSecurityLayer values. +func (CreateHostRequestSecurityLayer) AllValues() []CreateHostRequestSecurityLayer { + return []CreateHostRequestSecurityLayer{ + CreateHostRequestSecurityLayerDEFAULT, + CreateHostRequestSecurityLayerTLS, + CreateHostRequestSecurityLayerNONE, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s CreateHostRequestSecurityLayer) MarshalText() ([]byte, error) { + switch s { + case CreateHostRequestSecurityLayerDEFAULT: + return []byte(s), nil + case CreateHostRequestSecurityLayerTLS: + return []byte(s), nil + case CreateHostRequestSecurityLayerNONE: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *CreateHostRequestSecurityLayer) UnmarshalText(data []byte) error { + switch CreateHostRequestSecurityLayer(data) { + case CreateHostRequestSecurityLayerDEFAULT: + *s = CreateHostRequestSecurityLayerDEFAULT + return nil + case CreateHostRequestSecurityLayerTLS: + *s = CreateHostRequestSecurityLayerTLS + return nil + case CreateHostRequestSecurityLayerNONE: + *s = CreateHostRequestSecurityLayerNONE + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/CreateInfraBillingHistoryRecordRequest +type CreateInfraBillingHistoryRecordRequest struct { + ProviderUuid uuid.UUID `json:"providerUuid"` + Amount float64 `json:"amount"` + // Billing date. Format: 2025-01-17T15:38:45.065Z. + BilledAt time.Time `json:"billedAt"` +} + +// GetProviderUuid returns the value of ProviderUuid. +func (s *CreateInfraBillingHistoryRecordRequest) GetProviderUuid() uuid.UUID { + return s.ProviderUuid +} + +// GetAmount returns the value of Amount. +func (s *CreateInfraBillingHistoryRecordRequest) GetAmount() float64 { + return s.Amount +} + +// GetBilledAt returns the value of BilledAt. +func (s *CreateInfraBillingHistoryRecordRequest) GetBilledAt() time.Time { + return s.BilledAt +} + +// SetProviderUuid sets the value of ProviderUuid. +func (s *CreateInfraBillingHistoryRecordRequest) SetProviderUuid(val uuid.UUID) { + s.ProviderUuid = val +} + +// SetAmount sets the value of Amount. +func (s *CreateInfraBillingHistoryRecordRequest) SetAmount(val float64) { + s.Amount = val +} + +// SetBilledAt sets the value of BilledAt. +func (s *CreateInfraBillingHistoryRecordRequest) SetBilledAt(val time.Time) { + s.BilledAt = val +} + +// Ref: #/components/schemas/CreateInfraBillingNodeRequest +type CreateInfraBillingNodeRequest struct { + ProviderUuid uuid.UUID `json:"providerUuid"` + NodeUuid uuid.UUID `json:"nodeUuid"` + // Next billing date. Format: 2025-01-17T15:38:45.065Z. + NextBillingAt OptDateTime `json:"nextBillingAt"` +} + +// GetProviderUuid returns the value of ProviderUuid. +func (s *CreateInfraBillingNodeRequest) GetProviderUuid() uuid.UUID { + return s.ProviderUuid +} + +// GetNodeUuid returns the value of NodeUuid. +func (s *CreateInfraBillingNodeRequest) GetNodeUuid() uuid.UUID { + return s.NodeUuid +} + +// GetNextBillingAt returns the value of NextBillingAt. +func (s *CreateInfraBillingNodeRequest) GetNextBillingAt() OptDateTime { + return s.NextBillingAt +} + +// SetProviderUuid sets the value of ProviderUuid. +func (s *CreateInfraBillingNodeRequest) SetProviderUuid(val uuid.UUID) { + s.ProviderUuid = val +} + +// SetNodeUuid sets the value of NodeUuid. +func (s *CreateInfraBillingNodeRequest) SetNodeUuid(val uuid.UUID) { + s.NodeUuid = val +} + +// SetNextBillingAt sets the value of NextBillingAt. +func (s *CreateInfraBillingNodeRequest) SetNextBillingAt(val OptDateTime) { + s.NextBillingAt = val +} + +// Ref: #/components/schemas/CreateInfraProviderRequest +type CreateInfraProviderRequest struct { + Name string `json:"name"` + FaviconLink OptURI `json:"faviconLink"` + LoginUrl OptURI `json:"loginUrl"` +} + +// GetName returns the value of Name. +func (s *CreateInfraProviderRequest) GetName() string { + return s.Name +} + +// GetFaviconLink returns the value of FaviconLink. +func (s *CreateInfraProviderRequest) GetFaviconLink() OptURI { + return s.FaviconLink +} + +// GetLoginUrl returns the value of LoginUrl. +func (s *CreateInfraProviderRequest) GetLoginUrl() OptURI { + return s.LoginUrl +} + +// SetName sets the value of Name. +func (s *CreateInfraProviderRequest) SetName(val string) { + s.Name = val +} + +// SetFaviconLink sets the value of FaviconLink. +func (s *CreateInfraProviderRequest) SetFaviconLink(val OptURI) { + s.FaviconLink = val +} + +// SetLoginUrl sets the value of LoginUrl. +func (s *CreateInfraProviderRequest) SetLoginUrl(val OptURI) { + s.LoginUrl = val +} + +// Ref: #/components/schemas/CreateInternalSquadRequest +type CreateInternalSquadRequest struct { + Name string `json:"name"` + Inbounds []uuid.UUID `json:"inbounds"` +} + +// GetName returns the value of Name. +func (s *CreateInternalSquadRequest) GetName() string { + return s.Name +} + +// GetInbounds returns the value of Inbounds. +func (s *CreateInternalSquadRequest) GetInbounds() []uuid.UUID { + return s.Inbounds +} + +// SetName sets the value of Name. +func (s *CreateInternalSquadRequest) SetName(val string) { + s.Name = val +} + +// SetInbounds sets the value of Inbounds. +func (s *CreateInternalSquadRequest) SetInbounds(val []uuid.UUID) { + s.Inbounds = val +} + +// Ref: #/components/schemas/CreateNodePluginRequest +type CreateNodePluginRequest struct { + Name string `json:"name"` +} + +// GetName returns the value of Name. +func (s *CreateNodePluginRequest) GetName() string { + return s.Name +} + +// SetName sets the value of Name. +func (s *CreateNodePluginRequest) SetName(val string) { + s.Name = val +} + +// Ref: #/components/schemas/CreateNodePluginResponse +type CreateNodePluginResponse struct { + Response NodePlugin `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *CreateNodePluginResponse) GetResponse() NodePlugin { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *CreateNodePluginResponse) SetResponse(val NodePlugin) { + s.Response = val +} + +func (*CreateNodePluginResponse) nodePluginCreateConfigRes() {} + +// Ref: #/components/schemas/CreateNodeRequest +type CreateNodeRequest struct { + Name string `json:"name"` + Address string `json:"address"` + Port OptInt `json:"port"` + IsTrafficTrackingActive OptBool `json:"isTrafficTrackingActive"` + TrafficLimitBytes OptInt `json:"trafficLimitBytes"` + NotifyPercent OptInt `json:"notifyPercent"` + TrafficResetDay OptInt `json:"trafficResetDay"` + CountryCode OptString `json:"countryCode"` + ConsumptionMultiplier OptFloat64 `json:"consumptionMultiplier"` + ConfigProfile ConfigProfileRef `json:"configProfile"` + ProviderUuid OptNilUUID `json:"providerUuid"` + Tags []string `json:"tags"` + ActivePluginUuid OptNilUUID `json:"activePluginUuid"` +} + +// GetName returns the value of Name. +func (s *CreateNodeRequest) GetName() string { + return s.Name +} + +// GetAddress returns the value of Address. +func (s *CreateNodeRequest) GetAddress() string { + return s.Address +} + +// GetPort returns the value of Port. +func (s *CreateNodeRequest) GetPort() OptInt { + return s.Port +} + +// GetIsTrafficTrackingActive returns the value of IsTrafficTrackingActive. +func (s *CreateNodeRequest) GetIsTrafficTrackingActive() OptBool { + return s.IsTrafficTrackingActive +} + +// GetTrafficLimitBytes returns the value of TrafficLimitBytes. +func (s *CreateNodeRequest) GetTrafficLimitBytes() OptInt { + return s.TrafficLimitBytes +} + +// GetNotifyPercent returns the value of NotifyPercent. +func (s *CreateNodeRequest) GetNotifyPercent() OptInt { + return s.NotifyPercent +} + +// GetTrafficResetDay returns the value of TrafficResetDay. +func (s *CreateNodeRequest) GetTrafficResetDay() OptInt { + return s.TrafficResetDay +} + +// GetCountryCode returns the value of CountryCode. +func (s *CreateNodeRequest) GetCountryCode() OptString { + return s.CountryCode +} + +// GetConsumptionMultiplier returns the value of ConsumptionMultiplier. +func (s *CreateNodeRequest) GetConsumptionMultiplier() OptFloat64 { + return s.ConsumptionMultiplier +} + +// GetConfigProfile returns the value of ConfigProfile. +func (s *CreateNodeRequest) GetConfigProfile() ConfigProfileRef { + return s.ConfigProfile +} + +// GetProviderUuid returns the value of ProviderUuid. +func (s *CreateNodeRequest) GetProviderUuid() OptNilUUID { + return s.ProviderUuid +} + +// GetTags returns the value of Tags. +func (s *CreateNodeRequest) GetTags() []string { + return s.Tags +} + +// GetActivePluginUuid returns the value of ActivePluginUuid. +func (s *CreateNodeRequest) GetActivePluginUuid() OptNilUUID { + return s.ActivePluginUuid +} + +// SetName sets the value of Name. +func (s *CreateNodeRequest) SetName(val string) { + s.Name = val +} + +// SetAddress sets the value of Address. +func (s *CreateNodeRequest) SetAddress(val string) { + s.Address = val +} + +// SetPort sets the value of Port. +func (s *CreateNodeRequest) SetPort(val OptInt) { + s.Port = val +} + +// SetIsTrafficTrackingActive sets the value of IsTrafficTrackingActive. +func (s *CreateNodeRequest) SetIsTrafficTrackingActive(val OptBool) { + s.IsTrafficTrackingActive = val +} + +// SetTrafficLimitBytes sets the value of TrafficLimitBytes. +func (s *CreateNodeRequest) SetTrafficLimitBytes(val OptInt) { + s.TrafficLimitBytes = val +} + +// SetNotifyPercent sets the value of NotifyPercent. +func (s *CreateNodeRequest) SetNotifyPercent(val OptInt) { + s.NotifyPercent = val +} + +// SetTrafficResetDay sets the value of TrafficResetDay. +func (s *CreateNodeRequest) SetTrafficResetDay(val OptInt) { + s.TrafficResetDay = val +} + +// SetCountryCode sets the value of CountryCode. +func (s *CreateNodeRequest) SetCountryCode(val OptString) { + s.CountryCode = val +} + +// SetConsumptionMultiplier sets the value of ConsumptionMultiplier. +func (s *CreateNodeRequest) SetConsumptionMultiplier(val OptFloat64) { + s.ConsumptionMultiplier = val +} + +// SetConfigProfile sets the value of ConfigProfile. +func (s *CreateNodeRequest) SetConfigProfile(val ConfigProfileRef) { + s.ConfigProfile = val +} + +// SetProviderUuid sets the value of ProviderUuid. +func (s *CreateNodeRequest) SetProviderUuid(val OptNilUUID) { + s.ProviderUuid = val +} + +// SetTags sets the value of Tags. +func (s *CreateNodeRequest) SetTags(val []string) { + s.Tags = val +} + +// SetActivePluginUuid sets the value of ActivePluginUuid. +func (s *CreateNodeRequest) SetActivePluginUuid(val OptNilUUID) { + s.ActivePluginUuid = val +} + +// Ref: #/components/schemas/CreateSubscriptionPageConfigRequest +type CreateSubscriptionPageConfigRequest struct { + Name string `json:"name"` +} + +// GetName returns the value of Name. +func (s *CreateSubscriptionPageConfigRequest) GetName() string { + return s.Name +} + +// SetName sets the value of Name. +func (s *CreateSubscriptionPageConfigRequest) SetName(val string) { + s.Name = val +} + +// Ref: #/components/schemas/CreateSubscriptionPageConfigResponse +type CreateSubscriptionPageConfigResponse struct { + Response Config `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *CreateSubscriptionPageConfigResponse) GetResponse() Config { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *CreateSubscriptionPageConfigResponse) SetResponse(val Config) { + s.Response = val +} + +func (*CreateSubscriptionPageConfigResponse) subscriptionPageConfigCreateConfigRes() {} + +// Ref: #/components/schemas/CreateSubscriptionTemplateRequest +type CreateSubscriptionTemplateRequest struct { + Name string `json:"name"` + TemplateType CreateSubscriptionTemplateRequestTemplateType `json:"templateType"` +} + +// GetName returns the value of Name. +func (s *CreateSubscriptionTemplateRequest) GetName() string { + return s.Name +} + +// GetTemplateType returns the value of TemplateType. +func (s *CreateSubscriptionTemplateRequest) GetTemplateType() CreateSubscriptionTemplateRequestTemplateType { + return s.TemplateType +} + +// SetName sets the value of Name. +func (s *CreateSubscriptionTemplateRequest) SetName(val string) { + s.Name = val +} + +// SetTemplateType sets the value of TemplateType. +func (s *CreateSubscriptionTemplateRequest) SetTemplateType(val CreateSubscriptionTemplateRequestTemplateType) { + s.TemplateType = val +} + +type CreateSubscriptionTemplateRequestTemplateType string + +const ( + CreateSubscriptionTemplateRequestTemplateTypeXRAYJSON CreateSubscriptionTemplateRequestTemplateType = "XRAY_JSON" + CreateSubscriptionTemplateRequestTemplateTypeXRAYBASE64 CreateSubscriptionTemplateRequestTemplateType = "XRAY_BASE64" + CreateSubscriptionTemplateRequestTemplateTypeMIHOMO CreateSubscriptionTemplateRequestTemplateType = "MIHOMO" + CreateSubscriptionTemplateRequestTemplateTypeSTASH CreateSubscriptionTemplateRequestTemplateType = "STASH" + CreateSubscriptionTemplateRequestTemplateTypeCLASH CreateSubscriptionTemplateRequestTemplateType = "CLASH" + CreateSubscriptionTemplateRequestTemplateTypeSINGBOX CreateSubscriptionTemplateRequestTemplateType = "SINGBOX" +) + +// AllValues returns all CreateSubscriptionTemplateRequestTemplateType values. +func (CreateSubscriptionTemplateRequestTemplateType) AllValues() []CreateSubscriptionTemplateRequestTemplateType { + return []CreateSubscriptionTemplateRequestTemplateType{ + CreateSubscriptionTemplateRequestTemplateTypeXRAYJSON, + CreateSubscriptionTemplateRequestTemplateTypeXRAYBASE64, + CreateSubscriptionTemplateRequestTemplateTypeMIHOMO, + CreateSubscriptionTemplateRequestTemplateTypeSTASH, + CreateSubscriptionTemplateRequestTemplateTypeCLASH, + CreateSubscriptionTemplateRequestTemplateTypeSINGBOX, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s CreateSubscriptionTemplateRequestTemplateType) MarshalText() ([]byte, error) { + switch s { + case CreateSubscriptionTemplateRequestTemplateTypeXRAYJSON: + return []byte(s), nil + case CreateSubscriptionTemplateRequestTemplateTypeXRAYBASE64: + return []byte(s), nil + case CreateSubscriptionTemplateRequestTemplateTypeMIHOMO: + return []byte(s), nil + case CreateSubscriptionTemplateRequestTemplateTypeSTASH: + return []byte(s), nil + case CreateSubscriptionTemplateRequestTemplateTypeCLASH: + return []byte(s), nil + case CreateSubscriptionTemplateRequestTemplateTypeSINGBOX: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *CreateSubscriptionTemplateRequestTemplateType) UnmarshalText(data []byte) error { + switch CreateSubscriptionTemplateRequestTemplateType(data) { + case CreateSubscriptionTemplateRequestTemplateTypeXRAYJSON: + *s = CreateSubscriptionTemplateRequestTemplateTypeXRAYJSON + return nil + case CreateSubscriptionTemplateRequestTemplateTypeXRAYBASE64: + *s = CreateSubscriptionTemplateRequestTemplateTypeXRAYBASE64 + return nil + case CreateSubscriptionTemplateRequestTemplateTypeMIHOMO: + *s = CreateSubscriptionTemplateRequestTemplateTypeMIHOMO + return nil + case CreateSubscriptionTemplateRequestTemplateTypeSTASH: + *s = CreateSubscriptionTemplateRequestTemplateTypeSTASH + return nil + case CreateSubscriptionTemplateRequestTemplateTypeCLASH: + *s = CreateSubscriptionTemplateRequestTemplateTypeCLASH + return nil + case CreateSubscriptionTemplateRequestTemplateTypeSINGBOX: + *s = CreateSubscriptionTemplateRequestTemplateTypeSINGBOX + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/CreateUserHwidDeviceRequest +type CreateUserHwidDeviceRequest struct { + Hwid string `json:"hwid"` + UserUuid uuid.UUID `json:"userUuid"` + Platform OptString `json:"platform"` + OsVersion OptString `json:"osVersion"` + DeviceModel OptString `json:"deviceModel"` + UserAgent OptString `json:"userAgent"` +} + +// GetHwid returns the value of Hwid. +func (s *CreateUserHwidDeviceRequest) GetHwid() string { + return s.Hwid +} + +// GetUserUuid returns the value of UserUuid. +func (s *CreateUserHwidDeviceRequest) GetUserUuid() uuid.UUID { + return s.UserUuid +} + +// GetPlatform returns the value of Platform. +func (s *CreateUserHwidDeviceRequest) GetPlatform() OptString { + return s.Platform +} + +// GetOsVersion returns the value of OsVersion. +func (s *CreateUserHwidDeviceRequest) GetOsVersion() OptString { + return s.OsVersion +} + +// GetDeviceModel returns the value of DeviceModel. +func (s *CreateUserHwidDeviceRequest) GetDeviceModel() OptString { + return s.DeviceModel +} + +// GetUserAgent returns the value of UserAgent. +func (s *CreateUserHwidDeviceRequest) GetUserAgent() OptString { + return s.UserAgent +} + +// SetHwid sets the value of Hwid. +func (s *CreateUserHwidDeviceRequest) SetHwid(val string) { + s.Hwid = val +} + +// SetUserUuid sets the value of UserUuid. +func (s *CreateUserHwidDeviceRequest) SetUserUuid(val uuid.UUID) { + s.UserUuid = val +} + +// SetPlatform sets the value of Platform. +func (s *CreateUserHwidDeviceRequest) SetPlatform(val OptString) { + s.Platform = val +} + +// SetOsVersion sets the value of OsVersion. +func (s *CreateUserHwidDeviceRequest) SetOsVersion(val OptString) { + s.OsVersion = val +} + +// SetDeviceModel sets the value of DeviceModel. +func (s *CreateUserHwidDeviceRequest) SetDeviceModel(val OptString) { + s.DeviceModel = val +} + +// SetUserAgent sets the value of UserAgent. +func (s *CreateUserHwidDeviceRequest) SetUserAgent(val OptString) { + s.UserAgent = val +} + +// Ref: #/components/schemas/CreateUserRequest +type CreateUserRequest struct { + // Unique username for the user. Required. Must be 3-36 characters long and contain only letters, + // numbers, underscores and dashes. + Username string `json:"username"` + // Optional. User account status. Defaults to ACTIVE. + Status OptCreateUserRequestStatus `json:"status"` + // Optional. Short UUID identifier for the user. + ShortUuid OptString `json:"shortUuid"` + // Optional. Password for Trojan protocol. Must be 8-32 characters. + TrojanPassword OptString `json:"trojanPassword"` + // Optional. UUID for VLESS protocol. Must be a valid UUID format. + VlessUuid OptUUID `json:"vlessUuid"` + // Optional. Password for Shadowsocks protocol. Must be 8-32 characters. + SsPassword OptString `json:"ssPassword"` + // Optional. Traffic limit in bytes. Set to 0 for unlimited traffic. + TrafficLimitBytes OptInt `json:"trafficLimitBytes"` + // Available reset periods. + TrafficLimitStrategy OptCreateUserRequestTrafficLimitStrategy `json:"trafficLimitStrategy"` + // Account expiration date. Required. Format: 2025-01-17T15:38:45.065Z. + ExpireAt time.Time `json:"expireAt"` + // Optional. Account creation date. Format: 2025-01-17T15:38:45.065Z. + CreatedAt OptDateTime `json:"createdAt"` + // Optional. Date of last traffic reset. Format: 2025-01-17T15:38:45.065Z. + LastTrafficResetAt OptDateTime `json:"lastTrafficResetAt"` + // Optional. Additional notes or description for the user account. + Description OptString `json:"description"` + // Optional. User tag for categorization. Max 16 characters, uppercase letters, numbers and + // underscores only. + Tag OptNilString `json:"tag"` + // Optional. Telegram user ID for notifications. Must be an integer. + TelegramId OptNilInt `json:"telegramId"` + // Optional. User email address. Must be a valid email format. + Email OptNilString `json:"email"` + // Optional. Maximum number of hardware devices allowed. Must be a positive integer. + HwidDeviceLimit OptInt `json:"hwidDeviceLimit"` + // Optional. Array of UUIDs representing enabled internal squads. + ActiveInternalSquads []uuid.UUID `json:"activeInternalSquads"` + // Optional. Pass UUID to create user with specific UUID, otherwise it will be generated + // automatically. + UUID OptUUID `json:"uuid"` + // Optional. External squad UUID. + ExternalSquadUuid OptNilUUID `json:"externalSquadUuid"` +} + +// GetUsername returns the value of Username. +func (s *CreateUserRequest) GetUsername() string { + return s.Username +} + +// GetStatus returns the value of Status. +func (s *CreateUserRequest) GetStatus() OptCreateUserRequestStatus { + return s.Status +} + +// GetShortUuid returns the value of ShortUuid. +func (s *CreateUserRequest) GetShortUuid() OptString { + return s.ShortUuid +} + +// GetTrojanPassword returns the value of TrojanPassword. +func (s *CreateUserRequest) GetTrojanPassword() OptString { + return s.TrojanPassword +} + +// GetVlessUuid returns the value of VlessUuid. +func (s *CreateUserRequest) GetVlessUuid() OptUUID { + return s.VlessUuid +} + +// GetSsPassword returns the value of SsPassword. +func (s *CreateUserRequest) GetSsPassword() OptString { + return s.SsPassword +} + +// GetTrafficLimitBytes returns the value of TrafficLimitBytes. +func (s *CreateUserRequest) GetTrafficLimitBytes() OptInt { + return s.TrafficLimitBytes +} + +// GetTrafficLimitStrategy returns the value of TrafficLimitStrategy. +func (s *CreateUserRequest) GetTrafficLimitStrategy() OptCreateUserRequestTrafficLimitStrategy { + return s.TrafficLimitStrategy +} + +// GetExpireAt returns the value of ExpireAt. +func (s *CreateUserRequest) GetExpireAt() time.Time { + return s.ExpireAt +} + +// GetCreatedAt returns the value of CreatedAt. +func (s *CreateUserRequest) GetCreatedAt() OptDateTime { + return s.CreatedAt +} + +// GetLastTrafficResetAt returns the value of LastTrafficResetAt. +func (s *CreateUserRequest) GetLastTrafficResetAt() OptDateTime { + return s.LastTrafficResetAt +} + +// GetDescription returns the value of Description. +func (s *CreateUserRequest) GetDescription() OptString { + return s.Description +} + +// GetTag returns the value of Tag. +func (s *CreateUserRequest) GetTag() OptNilString { + return s.Tag +} + +// GetTelegramId returns the value of TelegramId. +func (s *CreateUserRequest) GetTelegramId() OptNilInt { + return s.TelegramId +} + +// GetEmail returns the value of Email. +func (s *CreateUserRequest) GetEmail() OptNilString { + return s.Email +} + +// GetHwidDeviceLimit returns the value of HwidDeviceLimit. +func (s *CreateUserRequest) GetHwidDeviceLimit() OptInt { + return s.HwidDeviceLimit +} + +// GetActiveInternalSquads returns the value of ActiveInternalSquads. +func (s *CreateUserRequest) GetActiveInternalSquads() []uuid.UUID { + return s.ActiveInternalSquads +} + +// GetUUID returns the value of UUID. +func (s *CreateUserRequest) GetUUID() OptUUID { + return s.UUID +} + +// GetExternalSquadUuid returns the value of ExternalSquadUuid. +func (s *CreateUserRequest) GetExternalSquadUuid() OptNilUUID { + return s.ExternalSquadUuid +} + +// SetUsername sets the value of Username. +func (s *CreateUserRequest) SetUsername(val string) { + s.Username = val +} + +// SetStatus sets the value of Status. +func (s *CreateUserRequest) SetStatus(val OptCreateUserRequestStatus) { + s.Status = val +} + +// SetShortUuid sets the value of ShortUuid. +func (s *CreateUserRequest) SetShortUuid(val OptString) { + s.ShortUuid = val +} + +// SetTrojanPassword sets the value of TrojanPassword. +func (s *CreateUserRequest) SetTrojanPassword(val OptString) { + s.TrojanPassword = val +} + +// SetVlessUuid sets the value of VlessUuid. +func (s *CreateUserRequest) SetVlessUuid(val OptUUID) { + s.VlessUuid = val +} + +// SetSsPassword sets the value of SsPassword. +func (s *CreateUserRequest) SetSsPassword(val OptString) { + s.SsPassword = val +} + +// SetTrafficLimitBytes sets the value of TrafficLimitBytes. +func (s *CreateUserRequest) SetTrafficLimitBytes(val OptInt) { + s.TrafficLimitBytes = val +} + +// SetTrafficLimitStrategy sets the value of TrafficLimitStrategy. +func (s *CreateUserRequest) SetTrafficLimitStrategy(val OptCreateUserRequestTrafficLimitStrategy) { + s.TrafficLimitStrategy = val +} + +// SetExpireAt sets the value of ExpireAt. +func (s *CreateUserRequest) SetExpireAt(val time.Time) { + s.ExpireAt = val +} + +// SetCreatedAt sets the value of CreatedAt. +func (s *CreateUserRequest) SetCreatedAt(val OptDateTime) { + s.CreatedAt = val +} + +// SetLastTrafficResetAt sets the value of LastTrafficResetAt. +func (s *CreateUserRequest) SetLastTrafficResetAt(val OptDateTime) { + s.LastTrafficResetAt = val +} + +// SetDescription sets the value of Description. +func (s *CreateUserRequest) SetDescription(val OptString) { + s.Description = val +} + +// SetTag sets the value of Tag. +func (s *CreateUserRequest) SetTag(val OptNilString) { + s.Tag = val +} + +// SetTelegramId sets the value of TelegramId. +func (s *CreateUserRequest) SetTelegramId(val OptNilInt) { + s.TelegramId = val +} + +// SetEmail sets the value of Email. +func (s *CreateUserRequest) SetEmail(val OptNilString) { + s.Email = val +} + +// SetHwidDeviceLimit sets the value of HwidDeviceLimit. +func (s *CreateUserRequest) SetHwidDeviceLimit(val OptInt) { + s.HwidDeviceLimit = val +} + +// SetActiveInternalSquads sets the value of ActiveInternalSquads. +func (s *CreateUserRequest) SetActiveInternalSquads(val []uuid.UUID) { + s.ActiveInternalSquads = val +} + +// SetUUID sets the value of UUID. +func (s *CreateUserRequest) SetUUID(val OptUUID) { + s.UUID = val +} + +// SetExternalSquadUuid sets the value of ExternalSquadUuid. +func (s *CreateUserRequest) SetExternalSquadUuid(val OptNilUUID) { + s.ExternalSquadUuid = val +} + +// Optional. User account status. Defaults to ACTIVE. +type CreateUserRequestStatus string + +const ( + CreateUserRequestStatusACTIVE CreateUserRequestStatus = "ACTIVE" + CreateUserRequestStatusDISABLED CreateUserRequestStatus = "DISABLED" + CreateUserRequestStatusLIMITED CreateUserRequestStatus = "LIMITED" + CreateUserRequestStatusEXPIRED CreateUserRequestStatus = "EXPIRED" +) + +// AllValues returns all CreateUserRequestStatus values. +func (CreateUserRequestStatus) AllValues() []CreateUserRequestStatus { + return []CreateUserRequestStatus{ + CreateUserRequestStatusACTIVE, + CreateUserRequestStatusDISABLED, + CreateUserRequestStatusLIMITED, + CreateUserRequestStatusEXPIRED, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s CreateUserRequestStatus) MarshalText() ([]byte, error) { + switch s { + case CreateUserRequestStatusACTIVE: + return []byte(s), nil + case CreateUserRequestStatusDISABLED: + return []byte(s), nil + case CreateUserRequestStatusLIMITED: + return []byte(s), nil + case CreateUserRequestStatusEXPIRED: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *CreateUserRequestStatus) UnmarshalText(data []byte) error { + switch CreateUserRequestStatus(data) { + case CreateUserRequestStatusACTIVE: + *s = CreateUserRequestStatusACTIVE + return nil + case CreateUserRequestStatusDISABLED: + *s = CreateUserRequestStatusDISABLED + return nil + case CreateUserRequestStatusLIMITED: + *s = CreateUserRequestStatusLIMITED + return nil + case CreateUserRequestStatusEXPIRED: + *s = CreateUserRequestStatusEXPIRED + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Available reset periods. +type CreateUserRequestTrafficLimitStrategy string + +const ( + CreateUserRequestTrafficLimitStrategyNORESET CreateUserRequestTrafficLimitStrategy = "NO_RESET" + CreateUserRequestTrafficLimitStrategyDAY CreateUserRequestTrafficLimitStrategy = "DAY" + CreateUserRequestTrafficLimitStrategyWEEK CreateUserRequestTrafficLimitStrategy = "WEEK" + CreateUserRequestTrafficLimitStrategyMONTH CreateUserRequestTrafficLimitStrategy = "MONTH" + CreateUserRequestTrafficLimitStrategyMONTHROLLING CreateUserRequestTrafficLimitStrategy = "MONTH_ROLLING" +) + +// AllValues returns all CreateUserRequestTrafficLimitStrategy values. +func (CreateUserRequestTrafficLimitStrategy) AllValues() []CreateUserRequestTrafficLimitStrategy { + return []CreateUserRequestTrafficLimitStrategy{ + CreateUserRequestTrafficLimitStrategyNORESET, + CreateUserRequestTrafficLimitStrategyDAY, + CreateUserRequestTrafficLimitStrategyWEEK, + CreateUserRequestTrafficLimitStrategyMONTH, + CreateUserRequestTrafficLimitStrategyMONTHROLLING, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s CreateUserRequestTrafficLimitStrategy) MarshalText() ([]byte, error) { + switch s { + case CreateUserRequestTrafficLimitStrategyNORESET: + return []byte(s), nil + case CreateUserRequestTrafficLimitStrategyDAY: + return []byte(s), nil + case CreateUserRequestTrafficLimitStrategyWEEK: + return []byte(s), nil + case CreateUserRequestTrafficLimitStrategyMONTH: + return []byte(s), nil + case CreateUserRequestTrafficLimitStrategyMONTHROLLING: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *CreateUserRequestTrafficLimitStrategy) UnmarshalText(data []byte) error { + switch CreateUserRequestTrafficLimitStrategy(data) { + case CreateUserRequestTrafficLimitStrategyNORESET: + *s = CreateUserRequestTrafficLimitStrategyNORESET + return nil + case CreateUserRequestTrafficLimitStrategyDAY: + *s = CreateUserRequestTrafficLimitStrategyDAY + return nil + case CreateUserRequestTrafficLimitStrategyWEEK: + *s = CreateUserRequestTrafficLimitStrategyWEEK + return nil + case CreateUserRequestTrafficLimitStrategyMONTH: + *s = CreateUserRequestTrafficLimitStrategyMONTH + return nil + case CreateUserRequestTrafficLimitStrategyMONTHROLLING: + *s = CreateUserRequestTrafficLimitStrategyMONTHROLLING + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/CustomRemark +type CustomRemark struct { + ExpiredUsers []string `json:"expiredUsers"` + LimitedUsers []string `json:"limitedUsers"` + DisabledUsers []string `json:"disabledUsers"` + EmptyHosts []string `json:"emptyHosts"` + HWIDMaxDevicesExceeded []string `json:"HWIDMaxDevicesExceeded"` + HWIDNotSupported []string `json:"HWIDNotSupported"` +} + +// GetExpiredUsers returns the value of ExpiredUsers. +func (s *CustomRemark) GetExpiredUsers() []string { + return s.ExpiredUsers +} + +// GetLimitedUsers returns the value of LimitedUsers. +func (s *CustomRemark) GetLimitedUsers() []string { + return s.LimitedUsers +} + +// GetDisabledUsers returns the value of DisabledUsers. +func (s *CustomRemark) GetDisabledUsers() []string { + return s.DisabledUsers +} + +// GetEmptyHosts returns the value of EmptyHosts. +func (s *CustomRemark) GetEmptyHosts() []string { + return s.EmptyHosts +} + +// GetHWIDMaxDevicesExceeded returns the value of HWIDMaxDevicesExceeded. +func (s *CustomRemark) GetHWIDMaxDevicesExceeded() []string { + return s.HWIDMaxDevicesExceeded +} + +// GetHWIDNotSupported returns the value of HWIDNotSupported. +func (s *CustomRemark) GetHWIDNotSupported() []string { + return s.HWIDNotSupported +} + +// SetExpiredUsers sets the value of ExpiredUsers. +func (s *CustomRemark) SetExpiredUsers(val []string) { + s.ExpiredUsers = val +} + +// SetLimitedUsers sets the value of LimitedUsers. +func (s *CustomRemark) SetLimitedUsers(val []string) { + s.LimitedUsers = val +} + +// SetDisabledUsers sets the value of DisabledUsers. +func (s *CustomRemark) SetDisabledUsers(val []string) { + s.DisabledUsers = val +} + +// SetEmptyHosts sets the value of EmptyHosts. +func (s *CustomRemark) SetEmptyHosts(val []string) { + s.EmptyHosts = val +} + +// SetHWIDMaxDevicesExceeded sets the value of HWIDMaxDevicesExceeded. +func (s *CustomRemark) SetHWIDMaxDevicesExceeded(val []string) { + s.HWIDMaxDevicesExceeded = val +} + +// SetHWIDNotSupported sets the value of HWIDNotSupported. +func (s *CustomRemark) SetHWIDNotSupported(val []string) { + s.HWIDNotSupported = val +} + +// Ref: #/components/schemas/DebugSrrMatcherRequest +type DebugSrrMatcherRequest struct { + ResponseRules ResponseRules `json:"responseRules"` +} + +// GetResponseRules returns the value of ResponseRules. +func (s *DebugSrrMatcherRequest) GetResponseRules() ResponseRules { + return s.ResponseRules +} + +// SetResponseRules sets the value of ResponseRules. +func (s *DebugSrrMatcherRequest) SetResponseRules(val ResponseRules) { + s.ResponseRules = val +} + +// Ref: #/components/schemas/DebugSrrMatcherResponse +type DebugSrrMatcherResponse struct { + Response DebugSrrMatcherResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *DebugSrrMatcherResponse) GetResponse() DebugSrrMatcherResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *DebugSrrMatcherResponse) SetResponse(val DebugSrrMatcherResponseResponse) { + s.Response = val +} + +func (*DebugSrrMatcherResponse) systemDebugSrrMatcherRes() {} + +type DebugSrrMatcherResponseResponse struct { + Matched bool `json:"matched"` + ResponseType DebugSrrMatcherResponseResponseResponseType `json:"responseType"` + MatchedRule Rule `json:"matchedRule"` + InputHeaders DebugSrrMatcherResponseResponseInputHeaders `json:"inputHeaders"` + OutputHeaders DebugSrrMatcherResponseResponseOutputHeaders `json:"outputHeaders"` +} + +// GetMatched returns the value of Matched. +func (s *DebugSrrMatcherResponseResponse) GetMatched() bool { + return s.Matched +} + +// GetResponseType returns the value of ResponseType. +func (s *DebugSrrMatcherResponseResponse) GetResponseType() DebugSrrMatcherResponseResponseResponseType { + return s.ResponseType +} + +// GetMatchedRule returns the value of MatchedRule. +func (s *DebugSrrMatcherResponseResponse) GetMatchedRule() Rule { + return s.MatchedRule +} + +// GetInputHeaders returns the value of InputHeaders. +func (s *DebugSrrMatcherResponseResponse) GetInputHeaders() DebugSrrMatcherResponseResponseInputHeaders { + return s.InputHeaders +} + +// GetOutputHeaders returns the value of OutputHeaders. +func (s *DebugSrrMatcherResponseResponse) GetOutputHeaders() DebugSrrMatcherResponseResponseOutputHeaders { + return s.OutputHeaders +} + +// SetMatched sets the value of Matched. +func (s *DebugSrrMatcherResponseResponse) SetMatched(val bool) { + s.Matched = val +} + +// SetResponseType sets the value of ResponseType. +func (s *DebugSrrMatcherResponseResponse) SetResponseType(val DebugSrrMatcherResponseResponseResponseType) { + s.ResponseType = val +} + +// SetMatchedRule sets the value of MatchedRule. +func (s *DebugSrrMatcherResponseResponse) SetMatchedRule(val Rule) { + s.MatchedRule = val +} + +// SetInputHeaders sets the value of InputHeaders. +func (s *DebugSrrMatcherResponseResponse) SetInputHeaders(val DebugSrrMatcherResponseResponseInputHeaders) { + s.InputHeaders = val +} + +// SetOutputHeaders sets the value of OutputHeaders. +func (s *DebugSrrMatcherResponseResponse) SetOutputHeaders(val DebugSrrMatcherResponseResponseOutputHeaders) { + s.OutputHeaders = val +} + +type DebugSrrMatcherResponseResponseInputHeaders map[string]string + +func (s *DebugSrrMatcherResponseResponseInputHeaders) init() DebugSrrMatcherResponseResponseInputHeaders { + m := *s + if m == nil { + m = map[string]string{} + *s = m + } + return m +} + +type DebugSrrMatcherResponseResponseOutputHeaders map[string]string + +func (s *DebugSrrMatcherResponseResponseOutputHeaders) init() DebugSrrMatcherResponseResponseOutputHeaders { + m := *s + if m == nil { + m = map[string]string{} + *s = m + } + return m +} + +type DebugSrrMatcherResponseResponseResponseType string + +const ( + DebugSrrMatcherResponseResponseResponseTypeXRAYJSON DebugSrrMatcherResponseResponseResponseType = "XRAY_JSON" + DebugSrrMatcherResponseResponseResponseTypeXRAYBASE64 DebugSrrMatcherResponseResponseResponseType = "XRAY_BASE64" + DebugSrrMatcherResponseResponseResponseTypeMIHOMO DebugSrrMatcherResponseResponseResponseType = "MIHOMO" + DebugSrrMatcherResponseResponseResponseTypeSTASH DebugSrrMatcherResponseResponseResponseType = "STASH" + DebugSrrMatcherResponseResponseResponseTypeCLASH DebugSrrMatcherResponseResponseResponseType = "CLASH" + DebugSrrMatcherResponseResponseResponseTypeSINGBOX DebugSrrMatcherResponseResponseResponseType = "SINGBOX" + DebugSrrMatcherResponseResponseResponseTypeBROWSER DebugSrrMatcherResponseResponseResponseType = "BROWSER" + DebugSrrMatcherResponseResponseResponseTypeBLOCK DebugSrrMatcherResponseResponseResponseType = "BLOCK" + DebugSrrMatcherResponseResponseResponseTypeSTATUSCODE404 DebugSrrMatcherResponseResponseResponseType = "STATUS_CODE_404" + DebugSrrMatcherResponseResponseResponseTypeSTATUSCODE451 DebugSrrMatcherResponseResponseResponseType = "STATUS_CODE_451" + DebugSrrMatcherResponseResponseResponseTypeSOCKETDROP DebugSrrMatcherResponseResponseResponseType = "SOCKET_DROP" +) + +// AllValues returns all DebugSrrMatcherResponseResponseResponseType values. +func (DebugSrrMatcherResponseResponseResponseType) AllValues() []DebugSrrMatcherResponseResponseResponseType { + return []DebugSrrMatcherResponseResponseResponseType{ + DebugSrrMatcherResponseResponseResponseTypeXRAYJSON, + DebugSrrMatcherResponseResponseResponseTypeXRAYBASE64, + DebugSrrMatcherResponseResponseResponseTypeMIHOMO, + DebugSrrMatcherResponseResponseResponseTypeSTASH, + DebugSrrMatcherResponseResponseResponseTypeCLASH, + DebugSrrMatcherResponseResponseResponseTypeSINGBOX, + DebugSrrMatcherResponseResponseResponseTypeBROWSER, + DebugSrrMatcherResponseResponseResponseTypeBLOCK, + DebugSrrMatcherResponseResponseResponseTypeSTATUSCODE404, + DebugSrrMatcherResponseResponseResponseTypeSTATUSCODE451, + DebugSrrMatcherResponseResponseResponseTypeSOCKETDROP, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s DebugSrrMatcherResponseResponseResponseType) MarshalText() ([]byte, error) { + switch s { + case DebugSrrMatcherResponseResponseResponseTypeXRAYJSON: + return []byte(s), nil + case DebugSrrMatcherResponseResponseResponseTypeXRAYBASE64: + return []byte(s), nil + case DebugSrrMatcherResponseResponseResponseTypeMIHOMO: + return []byte(s), nil + case DebugSrrMatcherResponseResponseResponseTypeSTASH: + return []byte(s), nil + case DebugSrrMatcherResponseResponseResponseTypeCLASH: + return []byte(s), nil + case DebugSrrMatcherResponseResponseResponseTypeSINGBOX: + return []byte(s), nil + case DebugSrrMatcherResponseResponseResponseTypeBROWSER: + return []byte(s), nil + case DebugSrrMatcherResponseResponseResponseTypeBLOCK: + return []byte(s), nil + case DebugSrrMatcherResponseResponseResponseTypeSTATUSCODE404: + return []byte(s), nil + case DebugSrrMatcherResponseResponseResponseTypeSTATUSCODE451: + return []byte(s), nil + case DebugSrrMatcherResponseResponseResponseTypeSOCKETDROP: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *DebugSrrMatcherResponseResponseResponseType) UnmarshalText(data []byte) error { + switch DebugSrrMatcherResponseResponseResponseType(data) { + case DebugSrrMatcherResponseResponseResponseTypeXRAYJSON: + *s = DebugSrrMatcherResponseResponseResponseTypeXRAYJSON + return nil + case DebugSrrMatcherResponseResponseResponseTypeXRAYBASE64: + *s = DebugSrrMatcherResponseResponseResponseTypeXRAYBASE64 + return nil + case DebugSrrMatcherResponseResponseResponseTypeMIHOMO: + *s = DebugSrrMatcherResponseResponseResponseTypeMIHOMO + return nil + case DebugSrrMatcherResponseResponseResponseTypeSTASH: + *s = DebugSrrMatcherResponseResponseResponseTypeSTASH + return nil + case DebugSrrMatcherResponseResponseResponseTypeCLASH: + *s = DebugSrrMatcherResponseResponseResponseTypeCLASH + return nil + case DebugSrrMatcherResponseResponseResponseTypeSINGBOX: + *s = DebugSrrMatcherResponseResponseResponseTypeSINGBOX + return nil + case DebugSrrMatcherResponseResponseResponseTypeBROWSER: + *s = DebugSrrMatcherResponseResponseResponseTypeBROWSER + return nil + case DebugSrrMatcherResponseResponseResponseTypeBLOCK: + *s = DebugSrrMatcherResponseResponseResponseTypeBLOCK + return nil + case DebugSrrMatcherResponseResponseResponseTypeSTATUSCODE404: + *s = DebugSrrMatcherResponseResponseResponseTypeSTATUSCODE404 + return nil + case DebugSrrMatcherResponseResponseResponseTypeSTATUSCODE451: + *s = DebugSrrMatcherResponseResponseResponseTypeSTATUSCODE451 + return nil + case DebugSrrMatcherResponseResponseResponseTypeSOCKETDROP: + *s = DebugSrrMatcherResponseResponseResponseTypeSOCKETDROP + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// {"markdownDescription":"Settings for the **response rules** config. Optional."}. +// Ref: #/components/schemas/DebugSrrMatcherSettings +type DebugSrrMatcherSettings struct { + // {"markdownDescription":"Usually, a user's subscription may also be available via additional paths + // such as **/json**, **/stash**, or **/mihomo**. If this flag is set to **true**, access via these + // additional paths will be disabled."}. + DisableSubscriptionAccessByPath OptBool `json:"disableSubscriptionAccessByPath"` +} + +// GetDisableSubscriptionAccessByPath returns the value of DisableSubscriptionAccessByPath. +func (s *DebugSrrMatcherSettings) GetDisableSubscriptionAccessByPath() OptBool { + return s.DisableSubscriptionAccessByPath +} + +// SetDisableSubscriptionAccessByPath sets the value of DisableSubscriptionAccessByPath. +func (s *DebugSrrMatcherSettings) SetDisableSubscriptionAccessByPath(val OptBool) { + s.DisableSubscriptionAccessByPath = val +} + +// Ref: #/components/schemas/DeleteAllUserHwidDevicesRequest +type DeleteAllUserHwidDevicesRequest struct { + UserUuid uuid.UUID `json:"userUuid"` +} + +// GetUserUuid returns the value of UserUuid. +func (s *DeleteAllUserHwidDevicesRequest) GetUserUuid() uuid.UUID { + return s.UserUuid +} + +// SetUserUuid sets the value of UserUuid. +func (s *DeleteAllUserHwidDevicesRequest) SetUserUuid(val uuid.UUID) { + s.UserUuid = val +} + +// Ref: #/components/schemas/DeleteApiTokenResponse +type DeleteApiTokenResponse struct { + Response bool `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *DeleteApiTokenResponse) GetResponse() bool { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *DeleteApiTokenResponse) SetResponse(val bool) { + s.Response = val +} + +func (*DeleteApiTokenResponse) apiTokensDeleteRes() {} + +// Ref: #/components/schemas/DeletePasskeyRequest +type DeletePasskeyRequest struct { + ID string `json:"id"` +} + +// GetID returns the value of ID. +func (s *DeletePasskeyRequest) GetID() string { + return s.ID +} + +// SetID sets the value of ID. +func (s *DeletePasskeyRequest) SetID(val string) { + s.ID = val +} + +// Ref: #/components/schemas/DeleteResponse +type DeleteResponse struct { + Response DeleteResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *DeleteResponse) GetResponse() DeleteResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *DeleteResponse) SetResponse(val DeleteResponseResponse) { + s.Response = val +} + +func (*DeleteResponse) configProfileDeleteConfigProfileByUuidRes() {} +func (*DeleteResponse) externalSquadDeleteExternalSquadRes() {} +func (*DeleteResponse) hostsDeleteHostRes() {} +func (*DeleteResponse) infraBillingDeleteInfraProviderByUuidRes() {} +func (*DeleteResponse) internalSquadDeleteInternalSquadRes() {} +func (*DeleteResponse) nodePluginDeleteConfigRes() {} +func (*DeleteResponse) nodesDeleteNodeRes() {} +func (*DeleteResponse) subscriptionPageConfigDeleteConfigRes() {} +func (*DeleteResponse) subscriptionTemplateDeleteTemplateRes() {} +func (*DeleteResponse) usersDeleteUserRes() {} + +type DeleteResponseResponse struct { + IsDeleted bool `json:"isDeleted"` +} + +// GetIsDeleted returns the value of IsDeleted. +func (s *DeleteResponseResponse) GetIsDeleted() bool { + return s.IsDeleted +} + +// SetIsDeleted sets the value of IsDeleted. +func (s *DeleteResponseResponse) SetIsDeleted(val bool) { + s.IsDeleted = val +} + +// Ref: #/components/schemas/DeleteSnippetRequest +type DeleteSnippetRequest struct { + Name string `json:"name"` +} + +// GetName returns the value of Name. +func (s *DeleteSnippetRequest) GetName() string { + return s.Name +} + +// SetName sets the value of Name. +func (s *DeleteSnippetRequest) SetName(val string) { + s.Name = val +} + +// Ref: #/components/schemas/DeleteUserHwidDeviceRequest +type DeleteUserHwidDeviceRequest struct { + UserUuid uuid.UUID `json:"userUuid"` + Hwid string `json:"hwid"` +} + +// GetUserUuid returns the value of UserUuid. +func (s *DeleteUserHwidDeviceRequest) GetUserUuid() uuid.UUID { + return s.UserUuid +} + +// GetHwid returns the value of Hwid. +func (s *DeleteUserHwidDeviceRequest) GetHwid() string { + return s.Hwid +} + +// SetUserUuid sets the value of UserUuid. +func (s *DeleteUserHwidDeviceRequest) SetUserUuid(val uuid.UUID) { + s.UserUuid = val +} + +// SetHwid sets the value of Hwid. +func (s *DeleteUserHwidDeviceRequest) SetHwid(val string) { + s.Hwid = val +} + +// Ref: #/components/schemas/Device +type Device struct { + Hwid string `json:"hwid"` + UserUuid uuid.UUID `json:"userUuid"` + Platform NilString `json:"platform"` + OsVersion NilString `json:"osVersion"` + DeviceModel NilString `json:"deviceModel"` + UserAgent NilString `json:"userAgent"` + CreatedAt time.Time `json:"createdAt"` + UpdatedAt time.Time `json:"updatedAt"` +} + +// GetHwid returns the value of Hwid. +func (s *Device) GetHwid() string { + return s.Hwid +} + +// GetUserUuid returns the value of UserUuid. +func (s *Device) GetUserUuid() uuid.UUID { + return s.UserUuid +} + +// GetPlatform returns the value of Platform. +func (s *Device) GetPlatform() NilString { + return s.Platform +} + +// GetOsVersion returns the value of OsVersion. +func (s *Device) GetOsVersion() NilString { + return s.OsVersion +} + +// GetDeviceModel returns the value of DeviceModel. +func (s *Device) GetDeviceModel() NilString { + return s.DeviceModel +} + +// GetUserAgent returns the value of UserAgent. +func (s *Device) GetUserAgent() NilString { + return s.UserAgent +} + +// GetCreatedAt returns the value of CreatedAt. +func (s *Device) GetCreatedAt() time.Time { + return s.CreatedAt +} + +// GetUpdatedAt returns the value of UpdatedAt. +func (s *Device) GetUpdatedAt() time.Time { + return s.UpdatedAt +} + +// SetHwid sets the value of Hwid. +func (s *Device) SetHwid(val string) { + s.Hwid = val +} + +// SetUserUuid sets the value of UserUuid. +func (s *Device) SetUserUuid(val uuid.UUID) { + s.UserUuid = val +} + +// SetPlatform sets the value of Platform. +func (s *Device) SetPlatform(val NilString) { + s.Platform = val +} + +// SetOsVersion sets the value of OsVersion. +func (s *Device) SetOsVersion(val NilString) { + s.OsVersion = val +} + +// SetDeviceModel sets the value of DeviceModel. +func (s *Device) SetDeviceModel(val NilString) { + s.DeviceModel = val +} + +// SetUserAgent sets the value of UserAgent. +func (s *Device) SetUserAgent(val NilString) { + s.UserAgent = val +} + +// SetCreatedAt sets the value of CreatedAt. +func (s *Device) SetCreatedAt(val time.Time) { + s.CreatedAt = val +} + +// SetUpdatedAt sets the value of UpdatedAt. +func (s *Device) SetUpdatedAt(val time.Time) { + s.UpdatedAt = val +} + +// Ref: #/components/schemas/DropConnectionsRequest +type DropConnectionsRequest struct { + DropBy DropConnectionsRequestDropBy `json:"dropBy"` + TargetNodes DropConnectionsRequestTargetNodes `json:"targetNodes"` +} + +// GetDropBy returns the value of DropBy. +func (s *DropConnectionsRequest) GetDropBy() DropConnectionsRequestDropBy { + return s.DropBy +} + +// GetTargetNodes returns the value of TargetNodes. +func (s *DropConnectionsRequest) GetTargetNodes() DropConnectionsRequestTargetNodes { + return s.TargetNodes +} + +// SetDropBy sets the value of DropBy. +func (s *DropConnectionsRequest) SetDropBy(val DropConnectionsRequestDropBy) { + s.DropBy = val +} + +// SetTargetNodes sets the value of TargetNodes. +func (s *DropConnectionsRequest) SetTargetNodes(val DropConnectionsRequestTargetNodes) { + s.TargetNodes = val +} + +// DropConnectionsRequestDropBy represents sum type. +type DropConnectionsRequestDropBy struct { + Type DropConnectionsRequestDropByType // switch on this field + DropConnectionsRequestDropBy0 DropConnectionsRequestDropBy0 + DropConnectionsRequestDropBy1 DropConnectionsRequestDropBy1 +} + +// DropConnectionsRequestDropByType is oneOf type of DropConnectionsRequestDropBy. +type DropConnectionsRequestDropByType string + +// Possible values for DropConnectionsRequestDropByType. +const ( + DropConnectionsRequestDropBy0DropConnectionsRequestDropBy DropConnectionsRequestDropByType = "DropConnectionsRequestDropBy0" + DropConnectionsRequestDropBy1DropConnectionsRequestDropBy DropConnectionsRequestDropByType = "DropConnectionsRequestDropBy1" +) + +// IsDropConnectionsRequestDropBy0 reports whether DropConnectionsRequestDropBy is DropConnectionsRequestDropBy0. +func (s DropConnectionsRequestDropBy) IsDropConnectionsRequestDropBy0() bool { + return s.Type == DropConnectionsRequestDropBy0DropConnectionsRequestDropBy +} + +// IsDropConnectionsRequestDropBy1 reports whether DropConnectionsRequestDropBy is DropConnectionsRequestDropBy1. +func (s DropConnectionsRequestDropBy) IsDropConnectionsRequestDropBy1() bool { + return s.Type == DropConnectionsRequestDropBy1DropConnectionsRequestDropBy +} + +// SetDropConnectionsRequestDropBy0 sets DropConnectionsRequestDropBy to DropConnectionsRequestDropBy0. +func (s *DropConnectionsRequestDropBy) SetDropConnectionsRequestDropBy0(v DropConnectionsRequestDropBy0) { + s.Type = DropConnectionsRequestDropBy0DropConnectionsRequestDropBy + s.DropConnectionsRequestDropBy0 = v +} + +// GetDropConnectionsRequestDropBy0 returns DropConnectionsRequestDropBy0 and true boolean if DropConnectionsRequestDropBy is DropConnectionsRequestDropBy0. +func (s DropConnectionsRequestDropBy) GetDropConnectionsRequestDropBy0() (v DropConnectionsRequestDropBy0, ok bool) { + if !s.IsDropConnectionsRequestDropBy0() { + return v, false + } + return s.DropConnectionsRequestDropBy0, true +} + +// NewDropConnectionsRequestDropBy0DropConnectionsRequestDropBy returns new DropConnectionsRequestDropBy from DropConnectionsRequestDropBy0. +func NewDropConnectionsRequestDropBy0DropConnectionsRequestDropBy(v DropConnectionsRequestDropBy0) DropConnectionsRequestDropBy { + var s DropConnectionsRequestDropBy + s.SetDropConnectionsRequestDropBy0(v) + return s +} + +// SetDropConnectionsRequestDropBy1 sets DropConnectionsRequestDropBy to DropConnectionsRequestDropBy1. +func (s *DropConnectionsRequestDropBy) SetDropConnectionsRequestDropBy1(v DropConnectionsRequestDropBy1) { + s.Type = DropConnectionsRequestDropBy1DropConnectionsRequestDropBy + s.DropConnectionsRequestDropBy1 = v +} + +// GetDropConnectionsRequestDropBy1 returns DropConnectionsRequestDropBy1 and true boolean if DropConnectionsRequestDropBy is DropConnectionsRequestDropBy1. +func (s DropConnectionsRequestDropBy) GetDropConnectionsRequestDropBy1() (v DropConnectionsRequestDropBy1, ok bool) { + if !s.IsDropConnectionsRequestDropBy1() { + return v, false + } + return s.DropConnectionsRequestDropBy1, true +} + +// NewDropConnectionsRequestDropBy1DropConnectionsRequestDropBy returns new DropConnectionsRequestDropBy from DropConnectionsRequestDropBy1. +func NewDropConnectionsRequestDropBy1DropConnectionsRequestDropBy(v DropConnectionsRequestDropBy1) DropConnectionsRequestDropBy { + var s DropConnectionsRequestDropBy + s.SetDropConnectionsRequestDropBy1(v) + return s +} + +// Drop by user UUIDs. +type DropConnectionsRequestDropBy0 struct { + By DropConnectionsRequestDropBy0By `json:"by"` + UserUuids []uuid.UUID `json:"userUuids"` +} + +// GetBy returns the value of By. +func (s *DropConnectionsRequestDropBy0) GetBy() DropConnectionsRequestDropBy0By { + return s.By +} + +// GetUserUuids returns the value of UserUuids. +func (s *DropConnectionsRequestDropBy0) GetUserUuids() []uuid.UUID { + return s.UserUuids +} + +// SetBy sets the value of By. +func (s *DropConnectionsRequestDropBy0) SetBy(val DropConnectionsRequestDropBy0By) { + s.By = val +} + +// SetUserUuids sets the value of UserUuids. +func (s *DropConnectionsRequestDropBy0) SetUserUuids(val []uuid.UUID) { + s.UserUuids = val +} + +type DropConnectionsRequestDropBy0By string + +const ( + DropConnectionsRequestDropBy0ByUserUuids DropConnectionsRequestDropBy0By = "userUuids" +) + +// AllValues returns all DropConnectionsRequestDropBy0By values. +func (DropConnectionsRequestDropBy0By) AllValues() []DropConnectionsRequestDropBy0By { + return []DropConnectionsRequestDropBy0By{ + DropConnectionsRequestDropBy0ByUserUuids, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s DropConnectionsRequestDropBy0By) MarshalText() ([]byte, error) { + switch s { + case DropConnectionsRequestDropBy0ByUserUuids: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *DropConnectionsRequestDropBy0By) UnmarshalText(data []byte) error { + switch DropConnectionsRequestDropBy0By(data) { + case DropConnectionsRequestDropBy0ByUserUuids: + *s = DropConnectionsRequestDropBy0ByUserUuids + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Drop by IP addresses. +type DropConnectionsRequestDropBy1 struct { + By DropConnectionsRequestDropBy1By `json:"by"` + IpAddresses []string `json:"ipAddresses"` +} + +// GetBy returns the value of By. +func (s *DropConnectionsRequestDropBy1) GetBy() DropConnectionsRequestDropBy1By { + return s.By +} + +// GetIpAddresses returns the value of IpAddresses. +func (s *DropConnectionsRequestDropBy1) GetIpAddresses() []string { + return s.IpAddresses +} + +// SetBy sets the value of By. +func (s *DropConnectionsRequestDropBy1) SetBy(val DropConnectionsRequestDropBy1By) { + s.By = val +} + +// SetIpAddresses sets the value of IpAddresses. +func (s *DropConnectionsRequestDropBy1) SetIpAddresses(val []string) { + s.IpAddresses = val +} + +type DropConnectionsRequestDropBy1By string + +const ( + DropConnectionsRequestDropBy1ByIpAddresses DropConnectionsRequestDropBy1By = "ipAddresses" +) + +// AllValues returns all DropConnectionsRequestDropBy1By values. +func (DropConnectionsRequestDropBy1By) AllValues() []DropConnectionsRequestDropBy1By { + return []DropConnectionsRequestDropBy1By{ + DropConnectionsRequestDropBy1ByIpAddresses, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s DropConnectionsRequestDropBy1By) MarshalText() ([]byte, error) { + switch s { + case DropConnectionsRequestDropBy1ByIpAddresses: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *DropConnectionsRequestDropBy1By) UnmarshalText(data []byte) error { + switch DropConnectionsRequestDropBy1By(data) { + case DropConnectionsRequestDropBy1ByIpAddresses: + *s = DropConnectionsRequestDropBy1ByIpAddresses + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// DropConnectionsRequestTargetNodes represents sum type. +type DropConnectionsRequestTargetNodes struct { + Type DropConnectionsRequestTargetNodesType // switch on this field + DropConnectionsRequestTargetNodes0 DropConnectionsRequestTargetNodes0 + DropConnectionsRequestTargetNodes1 DropConnectionsRequestTargetNodes1 +} + +// DropConnectionsRequestTargetNodesType is oneOf type of DropConnectionsRequestTargetNodes. +type DropConnectionsRequestTargetNodesType string + +// Possible values for DropConnectionsRequestTargetNodesType. +const ( + DropConnectionsRequestTargetNodes0DropConnectionsRequestTargetNodes DropConnectionsRequestTargetNodesType = "DropConnectionsRequestTargetNodes0" + DropConnectionsRequestTargetNodes1DropConnectionsRequestTargetNodes DropConnectionsRequestTargetNodesType = "DropConnectionsRequestTargetNodes1" +) + +// IsDropConnectionsRequestTargetNodes0 reports whether DropConnectionsRequestTargetNodes is DropConnectionsRequestTargetNodes0. +func (s DropConnectionsRequestTargetNodes) IsDropConnectionsRequestTargetNodes0() bool { + return s.Type == DropConnectionsRequestTargetNodes0DropConnectionsRequestTargetNodes +} + +// IsDropConnectionsRequestTargetNodes1 reports whether DropConnectionsRequestTargetNodes is DropConnectionsRequestTargetNodes1. +func (s DropConnectionsRequestTargetNodes) IsDropConnectionsRequestTargetNodes1() bool { + return s.Type == DropConnectionsRequestTargetNodes1DropConnectionsRequestTargetNodes +} + +// SetDropConnectionsRequestTargetNodes0 sets DropConnectionsRequestTargetNodes to DropConnectionsRequestTargetNodes0. +func (s *DropConnectionsRequestTargetNodes) SetDropConnectionsRequestTargetNodes0(v DropConnectionsRequestTargetNodes0) { + s.Type = DropConnectionsRequestTargetNodes0DropConnectionsRequestTargetNodes + s.DropConnectionsRequestTargetNodes0 = v +} + +// GetDropConnectionsRequestTargetNodes0 returns DropConnectionsRequestTargetNodes0 and true boolean if DropConnectionsRequestTargetNodes is DropConnectionsRequestTargetNodes0. +func (s DropConnectionsRequestTargetNodes) GetDropConnectionsRequestTargetNodes0() (v DropConnectionsRequestTargetNodes0, ok bool) { + if !s.IsDropConnectionsRequestTargetNodes0() { + return v, false + } + return s.DropConnectionsRequestTargetNodes0, true +} + +// NewDropConnectionsRequestTargetNodes0DropConnectionsRequestTargetNodes returns new DropConnectionsRequestTargetNodes from DropConnectionsRequestTargetNodes0. +func NewDropConnectionsRequestTargetNodes0DropConnectionsRequestTargetNodes(v DropConnectionsRequestTargetNodes0) DropConnectionsRequestTargetNodes { + var s DropConnectionsRequestTargetNodes + s.SetDropConnectionsRequestTargetNodes0(v) + return s +} + +// SetDropConnectionsRequestTargetNodes1 sets DropConnectionsRequestTargetNodes to DropConnectionsRequestTargetNodes1. +func (s *DropConnectionsRequestTargetNodes) SetDropConnectionsRequestTargetNodes1(v DropConnectionsRequestTargetNodes1) { + s.Type = DropConnectionsRequestTargetNodes1DropConnectionsRequestTargetNodes + s.DropConnectionsRequestTargetNodes1 = v +} + +// GetDropConnectionsRequestTargetNodes1 returns DropConnectionsRequestTargetNodes1 and true boolean if DropConnectionsRequestTargetNodes is DropConnectionsRequestTargetNodes1. +func (s DropConnectionsRequestTargetNodes) GetDropConnectionsRequestTargetNodes1() (v DropConnectionsRequestTargetNodes1, ok bool) { + if !s.IsDropConnectionsRequestTargetNodes1() { + return v, false + } + return s.DropConnectionsRequestTargetNodes1, true +} + +// NewDropConnectionsRequestTargetNodes1DropConnectionsRequestTargetNodes returns new DropConnectionsRequestTargetNodes from DropConnectionsRequestTargetNodes1. +func NewDropConnectionsRequestTargetNodes1DropConnectionsRequestTargetNodes(v DropConnectionsRequestTargetNodes1) DropConnectionsRequestTargetNodes { + var s DropConnectionsRequestTargetNodes + s.SetDropConnectionsRequestTargetNodes1(v) + return s +} + +// Target all connected nodes. +type DropConnectionsRequestTargetNodes0 struct { + Target DropConnectionsRequestTargetNodes0Target `json:"target"` +} + +// GetTarget returns the value of Target. +func (s *DropConnectionsRequestTargetNodes0) GetTarget() DropConnectionsRequestTargetNodes0Target { + return s.Target +} + +// SetTarget sets the value of Target. +func (s *DropConnectionsRequestTargetNodes0) SetTarget(val DropConnectionsRequestTargetNodes0Target) { + s.Target = val +} + +type DropConnectionsRequestTargetNodes0Target string + +const ( + DropConnectionsRequestTargetNodes0TargetAllNodes DropConnectionsRequestTargetNodes0Target = "allNodes" +) + +// AllValues returns all DropConnectionsRequestTargetNodes0Target values. +func (DropConnectionsRequestTargetNodes0Target) AllValues() []DropConnectionsRequestTargetNodes0Target { + return []DropConnectionsRequestTargetNodes0Target{ + DropConnectionsRequestTargetNodes0TargetAllNodes, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s DropConnectionsRequestTargetNodes0Target) MarshalText() ([]byte, error) { + switch s { + case DropConnectionsRequestTargetNodes0TargetAllNodes: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *DropConnectionsRequestTargetNodes0Target) UnmarshalText(data []byte) error { + switch DropConnectionsRequestTargetNodes0Target(data) { + case DropConnectionsRequestTargetNodes0TargetAllNodes: + *s = DropConnectionsRequestTargetNodes0TargetAllNodes + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Target specific nodes. +type DropConnectionsRequestTargetNodes1 struct { + Target DropConnectionsRequestTargetNodes1Target `json:"target"` + NodeUuids []uuid.UUID `json:"nodeUuids"` +} + +// GetTarget returns the value of Target. +func (s *DropConnectionsRequestTargetNodes1) GetTarget() DropConnectionsRequestTargetNodes1Target { + return s.Target +} + +// GetNodeUuids returns the value of NodeUuids. +func (s *DropConnectionsRequestTargetNodes1) GetNodeUuids() []uuid.UUID { + return s.NodeUuids +} + +// SetTarget sets the value of Target. +func (s *DropConnectionsRequestTargetNodes1) SetTarget(val DropConnectionsRequestTargetNodes1Target) { + s.Target = val +} + +// SetNodeUuids sets the value of NodeUuids. +func (s *DropConnectionsRequestTargetNodes1) SetNodeUuids(val []uuid.UUID) { + s.NodeUuids = val +} + +type DropConnectionsRequestTargetNodes1Target string + +const ( + DropConnectionsRequestTargetNodes1TargetSpecificNodes DropConnectionsRequestTargetNodes1Target = "specificNodes" +) + +// AllValues returns all DropConnectionsRequestTargetNodes1Target values. +func (DropConnectionsRequestTargetNodes1Target) AllValues() []DropConnectionsRequestTargetNodes1Target { + return []DropConnectionsRequestTargetNodes1Target{ + DropConnectionsRequestTargetNodes1TargetSpecificNodes, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s DropConnectionsRequestTargetNodes1Target) MarshalText() ([]byte, error) { + switch s { + case DropConnectionsRequestTargetNodes1TargetSpecificNodes: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *DropConnectionsRequestTargetNodes1Target) UnmarshalText(data []byte) error { + switch DropConnectionsRequestTargetNodes1Target(data) { + case DropConnectionsRequestTargetNodes1TargetSpecificNodes: + *s = DropConnectionsRequestTargetNodes1TargetSpecificNodes + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/EncryptHappCryptoLinkRequest +type EncryptHappCryptoLinkRequest struct { + LinkToEncrypt url.URL `json:"linkToEncrypt"` +} + +// GetLinkToEncrypt returns the value of LinkToEncrypt. +func (s *EncryptHappCryptoLinkRequest) GetLinkToEncrypt() url.URL { + return s.LinkToEncrypt +} + +// SetLinkToEncrypt sets the value of LinkToEncrypt. +func (s *EncryptHappCryptoLinkRequest) SetLinkToEncrypt(val url.URL) { + s.LinkToEncrypt = val +} + +// Ref: #/components/schemas/EncryptHappCryptoLinkResponse +type EncryptHappCryptoLinkResponse struct { + Response EncryptHappCryptoLinkResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *EncryptHappCryptoLinkResponse) GetResponse() EncryptHappCryptoLinkResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *EncryptHappCryptoLinkResponse) SetResponse(val EncryptHappCryptoLinkResponseResponse) { + s.Response = val +} + +func (*EncryptHappCryptoLinkResponse) systemEncryptHappCryptoLinkRes() {} + +type EncryptHappCryptoLinkResponseResponse struct { + EncryptedLink string `json:"encryptedLink"` +} + +// GetEncryptedLink returns the value of EncryptedLink. +func (s *EncryptHappCryptoLinkResponseResponse) GetEncryptedLink() string { + return s.EncryptedLink +} + +// SetEncryptedLink sets the value of EncryptedLink. +func (s *EncryptHappCryptoLinkResponseResponse) SetEncryptedLink(val string) { + s.EncryptedLink = val +} + +// Ref: #/components/schemas/EventResponse +type EventResponse struct { + Response EventResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *EventResponse) GetResponse() EventResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *EventResponse) SetResponse(val EventResponseResponse) { + s.Response = val +} + +func (*EventResponse) externalSquadAddUsersToExternalSquadRes() {} +func (*EventResponse) externalSquadRemoveUsersFromExternalSquadRes() {} +func (*EventResponse) internalSquadAddUsersToInternalSquadRes() {} +func (*EventResponse) internalSquadRemoveUsersFromInternalSquadRes() {} +func (*EventResponse) ipControlDropConnectionsRes() {} +func (*EventResponse) nodePluginPluginExecutorRes() {} +func (*EventResponse) nodesBulkNodesActionsRes() {} +func (*EventResponse) nodesBulkNodesUpdateRes() {} +func (*EventResponse) nodesProfileModificationRes() {} +func (*EventResponse) nodesResetNodeTrafficRes() {} +func (*EventResponse) nodesRestartAllNodesRes() {} +func (*EventResponse) nodesRestartNodeRes() {} +func (*EventResponse) usersBulkActionsBulkAllExtendExpirationDateRes() {} +func (*EventResponse) usersBulkActionsBulkAllResetUserTrafficRes() {} +func (*EventResponse) usersBulkActionsBulkUpdateAllUsersRes() {} + +type EventResponseResponse struct { + EventSent bool `json:"eventSent"` +} + +// GetEventSent returns the value of EventSent. +func (s *EventResponseResponse) GetEventSent() bool { + return s.EventSent +} + +// SetEventSent sets the value of EventSent. +func (s *EventResponseResponse) SetEventSent(val bool) { + s.EventSent = val +} + +// Ref: #/components/schemas/ExternalSquad +type ExternalSquad struct { + UUID uuid.UUID `json:"uuid"` + ViewPosition int `json:"viewPosition"` + Name string `json:"name"` + Info ExternalSquadsResponInfoItem `json:"info"` + Templates []TemplateRef `json:"templates"` + SubscriptionSettings NilSubscriptionSettings `json:"subscriptionSettings"` + HostOverrides NilHostOverride `json:"hostOverrides"` + ResponseHeaders NilExternalSquadResponseHeaders `json:"responseHeaders"` + HwidSettings NilHwidSettings `json:"hwidSettings"` + CustomRemarks NilCustomRemark `json:"customRemarks"` + SubpageConfigUuid NilUUID `json:"subpageConfigUuid"` + CreatedAt time.Time `json:"createdAt"` + UpdatedAt time.Time `json:"updatedAt"` +} + +// GetUUID returns the value of UUID. +func (s *ExternalSquad) GetUUID() uuid.UUID { + return s.UUID +} + +// GetViewPosition returns the value of ViewPosition. +func (s *ExternalSquad) GetViewPosition() int { + return s.ViewPosition +} + +// GetName returns the value of Name. +func (s *ExternalSquad) GetName() string { + return s.Name +} + +// GetInfo returns the value of Info. +func (s *ExternalSquad) GetInfo() ExternalSquadsResponInfoItem { + return s.Info +} + +// GetTemplates returns the value of Templates. +func (s *ExternalSquad) GetTemplates() []TemplateRef { + return s.Templates +} + +// GetSubscriptionSettings returns the value of SubscriptionSettings. +func (s *ExternalSquad) GetSubscriptionSettings() NilSubscriptionSettings { + return s.SubscriptionSettings +} + +// GetHostOverrides returns the value of HostOverrides. +func (s *ExternalSquad) GetHostOverrides() NilHostOverride { + return s.HostOverrides +} + +// GetResponseHeaders returns the value of ResponseHeaders. +func (s *ExternalSquad) GetResponseHeaders() NilExternalSquadResponseHeaders { + return s.ResponseHeaders +} + +// GetHwidSettings returns the value of HwidSettings. +func (s *ExternalSquad) GetHwidSettings() NilHwidSettings { + return s.HwidSettings +} + +// GetCustomRemarks returns the value of CustomRemarks. +func (s *ExternalSquad) GetCustomRemarks() NilCustomRemark { + return s.CustomRemarks +} + +// GetSubpageConfigUuid returns the value of SubpageConfigUuid. +func (s *ExternalSquad) GetSubpageConfigUuid() NilUUID { + return s.SubpageConfigUuid +} + +// GetCreatedAt returns the value of CreatedAt. +func (s *ExternalSquad) GetCreatedAt() time.Time { + return s.CreatedAt +} + +// GetUpdatedAt returns the value of UpdatedAt. +func (s *ExternalSquad) GetUpdatedAt() time.Time { + return s.UpdatedAt +} + +// SetUUID sets the value of UUID. +func (s *ExternalSquad) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetViewPosition sets the value of ViewPosition. +func (s *ExternalSquad) SetViewPosition(val int) { + s.ViewPosition = val +} + +// SetName sets the value of Name. +func (s *ExternalSquad) SetName(val string) { + s.Name = val +} + +// SetInfo sets the value of Info. +func (s *ExternalSquad) SetInfo(val ExternalSquadsResponInfoItem) { + s.Info = val +} + +// SetTemplates sets the value of Templates. +func (s *ExternalSquad) SetTemplates(val []TemplateRef) { + s.Templates = val +} + +// SetSubscriptionSettings sets the value of SubscriptionSettings. +func (s *ExternalSquad) SetSubscriptionSettings(val NilSubscriptionSettings) { + s.SubscriptionSettings = val +} + +// SetHostOverrides sets the value of HostOverrides. +func (s *ExternalSquad) SetHostOverrides(val NilHostOverride) { + s.HostOverrides = val +} + +// SetResponseHeaders sets the value of ResponseHeaders. +func (s *ExternalSquad) SetResponseHeaders(val NilExternalSquadResponseHeaders) { + s.ResponseHeaders = val +} + +// SetHwidSettings sets the value of HwidSettings. +func (s *ExternalSquad) SetHwidSettings(val NilHwidSettings) { + s.HwidSettings = val +} + +// SetCustomRemarks sets the value of CustomRemarks. +func (s *ExternalSquad) SetCustomRemarks(val NilCustomRemark) { + s.CustomRemarks = val +} + +// SetSubpageConfigUuid sets the value of SubpageConfigUuid. +func (s *ExternalSquad) SetSubpageConfigUuid(val NilUUID) { + s.SubpageConfigUuid = val +} + +// SetCreatedAt sets the value of CreatedAt. +func (s *ExternalSquad) SetCreatedAt(val time.Time) { + s.CreatedAt = val +} + +// SetUpdatedAt sets the value of UpdatedAt. +func (s *ExternalSquad) SetUpdatedAt(val time.Time) { + s.UpdatedAt = val +} + +// ExternalSquadCreateExternalSquadConflict is response for ExternalSquadCreateExternalSquad operation. +type ExternalSquadCreateExternalSquadConflict struct{} + +func (*ExternalSquadCreateExternalSquadConflict) externalSquadCreateExternalSquadRes() {} + +type ExternalSquadResponseHeaders map[string]string + +func (s *ExternalSquadResponseHeaders) init() ExternalSquadResponseHeaders { + m := *s + if m == nil { + m = map[string]string{} + *s = m + } + return m +} + +// Ref: #/components/schemas/ExternalSquadResponseResponse +type ExternalSquadResponseResponse struct { + Response ExternalSquad `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *ExternalSquadResponseResponse) GetResponse() ExternalSquad { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *ExternalSquadResponseResponse) SetResponse(val ExternalSquad) { + s.Response = val +} + +func (*ExternalSquadResponseResponse) externalSquadCreateExternalSquadRes() {} +func (*ExternalSquadResponseResponse) externalSquadGetExternalSquadByUuidRes() {} +func (*ExternalSquadResponseResponse) externalSquadUpdateExternalSquadRes() {} + +// ExternalSquadUpdateExternalSquadConflict is response for ExternalSquadUpdateExternalSquad operation. +type ExternalSquadUpdateExternalSquadConflict struct{} + +func (*ExternalSquadUpdateExternalSquadConflict) externalSquadUpdateExternalSquadRes() {} + +// Ref: #/components/schemas/ExternalSquadsResponInfoItem +type ExternalSquadsResponInfoItem struct { + MembersCount float64 `json:"membersCount"` +} + +// GetMembersCount returns the value of MembersCount. +func (s *ExternalSquadsResponInfoItem) GetMembersCount() float64 { + return s.MembersCount +} + +// SetMembersCount sets the value of MembersCount. +func (s *ExternalSquadsResponInfoItem) SetMembersCount(val float64) { + s.MembersCount = val +} + +// Ref: #/components/schemas/ExternalSquadsResponse +type ExternalSquadsResponse struct { + Response ExternalSquadsResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *ExternalSquadsResponse) GetResponse() ExternalSquadsResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *ExternalSquadsResponse) SetResponse(val ExternalSquadsResponseResponse) { + s.Response = val +} + +func (*ExternalSquadsResponse) externalSquadGetExternalSquadsRes() {} +func (*ExternalSquadsResponse) externalSquadReorderExternalSquadsRes() {} + +type ExternalSquadsResponseResponse struct { + Total float64 `json:"total"` + ExternalSquads []ExternalSquad `json:"externalSquads"` +} + +// GetTotal returns the value of Total. +func (s *ExternalSquadsResponseResponse) GetTotal() float64 { + return s.Total +} + +// GetExternalSquads returns the value of ExternalSquads. +func (s *ExternalSquadsResponseResponse) GetExternalSquads() []ExternalSquad { + return s.ExternalSquads +} + +// SetTotal sets the value of Total. +func (s *ExternalSquadsResponseResponse) SetTotal(val float64) { + s.Total = val +} + +// SetExternalSquads sets the value of ExternalSquads. +func (s *ExternalSquadsResponseResponse) SetExternalSquads(val []ExternalSquad) { + s.ExternalSquads = val +} + +// Ref: #/components/schemas/FetchIpsResultResponse +type FetchIpsResultResponse struct { + Response FetchIpsResultResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *FetchIpsResultResponse) GetResponse() FetchIpsResultResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *FetchIpsResultResponse) SetResponse(val FetchIpsResultResponseResponse) { + s.Response = val +} + +func (*FetchIpsResultResponse) ipControlGetFetchIpsResultRes() {} + +type FetchIpsResultResponseResponse struct { + IsCompleted bool `json:"isCompleted"` + IsFailed bool `json:"isFailed"` + Progress FetchIpsResultResponseResponseProgress `json:"progress"` + Result NilFetchIpsResultResponseResponseResult `json:"result"` +} + +// GetIsCompleted returns the value of IsCompleted. +func (s *FetchIpsResultResponseResponse) GetIsCompleted() bool { + return s.IsCompleted +} + +// GetIsFailed returns the value of IsFailed. +func (s *FetchIpsResultResponseResponse) GetIsFailed() bool { + return s.IsFailed +} + +// GetProgress returns the value of Progress. +func (s *FetchIpsResultResponseResponse) GetProgress() FetchIpsResultResponseResponseProgress { + return s.Progress +} + +// GetResult returns the value of Result. +func (s *FetchIpsResultResponseResponse) GetResult() NilFetchIpsResultResponseResponseResult { + return s.Result +} + +// SetIsCompleted sets the value of IsCompleted. +func (s *FetchIpsResultResponseResponse) SetIsCompleted(val bool) { + s.IsCompleted = val +} + +// SetIsFailed sets the value of IsFailed. +func (s *FetchIpsResultResponseResponse) SetIsFailed(val bool) { + s.IsFailed = val +} + +// SetProgress sets the value of Progress. +func (s *FetchIpsResultResponseResponse) SetProgress(val FetchIpsResultResponseResponseProgress) { + s.Progress = val +} + +// SetResult sets the value of Result. +func (s *FetchIpsResultResponseResponse) SetResult(val NilFetchIpsResultResponseResponseResult) { + s.Result = val +} + +type FetchIpsResultResponseResponseProgress struct { + Total float64 `json:"total"` + Completed float64 `json:"completed"` + Percent float64 `json:"percent"` +} + +// GetTotal returns the value of Total. +func (s *FetchIpsResultResponseResponseProgress) GetTotal() float64 { + return s.Total +} + +// GetCompleted returns the value of Completed. +func (s *FetchIpsResultResponseResponseProgress) GetCompleted() float64 { + return s.Completed +} + +// GetPercent returns the value of Percent. +func (s *FetchIpsResultResponseResponseProgress) GetPercent() float64 { + return s.Percent +} + +// SetTotal sets the value of Total. +func (s *FetchIpsResultResponseResponseProgress) SetTotal(val float64) { + s.Total = val +} + +// SetCompleted sets the value of Completed. +func (s *FetchIpsResultResponseResponseProgress) SetCompleted(val float64) { + s.Completed = val +} + +// SetPercent sets the value of Percent. +func (s *FetchIpsResultResponseResponseProgress) SetPercent(val float64) { + s.Percent = val +} + +type FetchIpsResultResponseResponseResult struct { + Success bool `json:"success"` + UserUuid uuid.UUID `json:"userUuid"` + UserId string `json:"userId"` + Nodes []FetchIpsResultResponseResponseResultNodesItem `json:"nodes"` +} + +// GetSuccess returns the value of Success. +func (s *FetchIpsResultResponseResponseResult) GetSuccess() bool { + return s.Success +} + +// GetUserUuid returns the value of UserUuid. +func (s *FetchIpsResultResponseResponseResult) GetUserUuid() uuid.UUID { + return s.UserUuid +} + +// GetUserId returns the value of UserId. +func (s *FetchIpsResultResponseResponseResult) GetUserId() string { + return s.UserId +} + +// GetNodes returns the value of Nodes. +func (s *FetchIpsResultResponseResponseResult) GetNodes() []FetchIpsResultResponseResponseResultNodesItem { + return s.Nodes +} + +// SetSuccess sets the value of Success. +func (s *FetchIpsResultResponseResponseResult) SetSuccess(val bool) { + s.Success = val +} + +// SetUserUuid sets the value of UserUuid. +func (s *FetchIpsResultResponseResponseResult) SetUserUuid(val uuid.UUID) { + s.UserUuid = val +} + +// SetUserId sets the value of UserId. +func (s *FetchIpsResultResponseResponseResult) SetUserId(val string) { + s.UserId = val +} + +// SetNodes sets the value of Nodes. +func (s *FetchIpsResultResponseResponseResult) SetNodes(val []FetchIpsResultResponseResponseResultNodesItem) { + s.Nodes = val +} + +type FetchIpsResultResponseResponseResultNodesItem struct { + NodeUuid uuid.UUID `json:"nodeUuid"` + NodeName string `json:"nodeName"` + CountryCode string `json:"countryCode"` + Ips []Ips `json:"ips"` +} + +// GetNodeUuid returns the value of NodeUuid. +func (s *FetchIpsResultResponseResponseResultNodesItem) GetNodeUuid() uuid.UUID { + return s.NodeUuid +} + +// GetNodeName returns the value of NodeName. +func (s *FetchIpsResultResponseResponseResultNodesItem) GetNodeName() string { + return s.NodeName +} + +// GetCountryCode returns the value of CountryCode. +func (s *FetchIpsResultResponseResponseResultNodesItem) GetCountryCode() string { + return s.CountryCode +} + +// GetIps returns the value of Ips. +func (s *FetchIpsResultResponseResponseResultNodesItem) GetIps() []Ips { + return s.Ips +} + +// SetNodeUuid sets the value of NodeUuid. +func (s *FetchIpsResultResponseResponseResultNodesItem) SetNodeUuid(val uuid.UUID) { + s.NodeUuid = val +} + +// SetNodeName sets the value of NodeName. +func (s *FetchIpsResultResponseResponseResultNodesItem) SetNodeName(val string) { + s.NodeName = val +} + +// SetCountryCode sets the value of CountryCode. +func (s *FetchIpsResultResponseResponseResultNodesItem) SetCountryCode(val string) { + s.CountryCode = val +} + +// SetIps sets the value of Ips. +func (s *FetchIpsResultResponseResponseResultNodesItem) SetIps(val []Ips) { + s.Ips = val +} + +// Ref: #/components/schemas/FetchUsersIpsResultResponse +type FetchUsersIpsResultResponse struct { + Response FetchUsersIpsResultResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *FetchUsersIpsResultResponse) GetResponse() FetchUsersIpsResultResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *FetchUsersIpsResultResponse) SetResponse(val FetchUsersIpsResultResponseResponse) { + s.Response = val +} + +func (*FetchUsersIpsResultResponse) ipControlGetFetchUsersIpsResultRes() {} + +type FetchUsersIpsResultResponseResponse struct { + IsCompleted bool `json:"isCompleted"` + IsFailed bool `json:"isFailed"` + Result NilFetchUsersIpsResultResponseResponseResult `json:"result"` +} + +// GetIsCompleted returns the value of IsCompleted. +func (s *FetchUsersIpsResultResponseResponse) GetIsCompleted() bool { + return s.IsCompleted +} + +// GetIsFailed returns the value of IsFailed. +func (s *FetchUsersIpsResultResponseResponse) GetIsFailed() bool { + return s.IsFailed +} + +// GetResult returns the value of Result. +func (s *FetchUsersIpsResultResponseResponse) GetResult() NilFetchUsersIpsResultResponseResponseResult { + return s.Result +} + +// SetIsCompleted sets the value of IsCompleted. +func (s *FetchUsersIpsResultResponseResponse) SetIsCompleted(val bool) { + s.IsCompleted = val +} + +// SetIsFailed sets the value of IsFailed. +func (s *FetchUsersIpsResultResponseResponse) SetIsFailed(val bool) { + s.IsFailed = val +} + +// SetResult sets the value of Result. +func (s *FetchUsersIpsResultResponseResponse) SetResult(val NilFetchUsersIpsResultResponseResponseResult) { + s.Result = val +} + +type FetchUsersIpsResultResponseResponseResult struct { + Success bool `json:"success"` + NodeUuid uuid.UUID `json:"nodeUuid"` + Users []FetchUsersIpsResultResponseResponseResultUsersItem `json:"users"` +} + +// GetSuccess returns the value of Success. +func (s *FetchUsersIpsResultResponseResponseResult) GetSuccess() bool { + return s.Success +} + +// GetNodeUuid returns the value of NodeUuid. +func (s *FetchUsersIpsResultResponseResponseResult) GetNodeUuid() uuid.UUID { + return s.NodeUuid +} + +// GetUsers returns the value of Users. +func (s *FetchUsersIpsResultResponseResponseResult) GetUsers() []FetchUsersIpsResultResponseResponseResultUsersItem { + return s.Users +} + +// SetSuccess sets the value of Success. +func (s *FetchUsersIpsResultResponseResponseResult) SetSuccess(val bool) { + s.Success = val +} + +// SetNodeUuid sets the value of NodeUuid. +func (s *FetchUsersIpsResultResponseResponseResult) SetNodeUuid(val uuid.UUID) { + s.NodeUuid = val +} + +// SetUsers sets the value of Users. +func (s *FetchUsersIpsResultResponseResponseResult) SetUsers(val []FetchUsersIpsResultResponseResponseResultUsersItem) { + s.Users = val +} + +type FetchUsersIpsResultResponseResponseResultUsersItem struct { + UserId string `json:"userId"` + Ips []Ips `json:"ips"` +} + +// GetUserId returns the value of UserId. +func (s *FetchUsersIpsResultResponseResponseResultUsersItem) GetUserId() string { + return s.UserId +} + +// GetIps returns the value of Ips. +func (s *FetchUsersIpsResultResponseResponseResultUsersItem) GetIps() []Ips { + return s.Ips +} + +// SetUserId sets the value of UserId. +func (s *FetchUsersIpsResultResponseResponseResultUsersItem) SetUserId(val string) { + s.UserId = val +} + +// SetIps sets the value of Ips. +func (s *FetchUsersIpsResultResponseResponseResultUsersItem) SetIps(val []Ips) { + s.Ips = val +} + +// Ref: #/components/schemas/FindAllApiTokensResponse +type FindAllApiTokensResponse struct { + Response FindAllApiTokensResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *FindAllApiTokensResponse) GetResponse() FindAllApiTokensResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *FindAllApiTokensResponse) SetResponse(val FindAllApiTokensResponseResponse) { + s.Response = val +} + +func (*FindAllApiTokensResponse) apiTokensFindAllRes() {} + +type FindAllApiTokensResponseResponse struct { + ApiKeys []FindAllApiTokensResponseResponseApiKeysItem `json:"apiKeys"` + Docs FindAllApiTokensResponseResponseDocs `json:"docs"` +} + +// GetApiKeys returns the value of ApiKeys. +func (s *FindAllApiTokensResponseResponse) GetApiKeys() []FindAllApiTokensResponseResponseApiKeysItem { + return s.ApiKeys +} + +// GetDocs returns the value of Docs. +func (s *FindAllApiTokensResponseResponse) GetDocs() FindAllApiTokensResponseResponseDocs { + return s.Docs +} + +// SetApiKeys sets the value of ApiKeys. +func (s *FindAllApiTokensResponseResponse) SetApiKeys(val []FindAllApiTokensResponseResponseApiKeysItem) { + s.ApiKeys = val +} + +// SetDocs sets the value of Docs. +func (s *FindAllApiTokensResponseResponse) SetDocs(val FindAllApiTokensResponseResponseDocs) { + s.Docs = val +} + +type FindAllApiTokensResponseResponseApiKeysItem struct { + UUID uuid.UUID `json:"uuid"` + Token string `json:"token"` + TokenName string `json:"tokenName"` + CreatedAt time.Time `json:"createdAt"` + UpdatedAt time.Time `json:"updatedAt"` +} + +// GetUUID returns the value of UUID. +func (s *FindAllApiTokensResponseResponseApiKeysItem) GetUUID() uuid.UUID { + return s.UUID +} + +// GetToken returns the value of Token. +func (s *FindAllApiTokensResponseResponseApiKeysItem) GetToken() string { + return s.Token +} + +// GetTokenName returns the value of TokenName. +func (s *FindAllApiTokensResponseResponseApiKeysItem) GetTokenName() string { + return s.TokenName +} + +// GetCreatedAt returns the value of CreatedAt. +func (s *FindAllApiTokensResponseResponseApiKeysItem) GetCreatedAt() time.Time { + return s.CreatedAt +} + +// GetUpdatedAt returns the value of UpdatedAt. +func (s *FindAllApiTokensResponseResponseApiKeysItem) GetUpdatedAt() time.Time { + return s.UpdatedAt +} + +// SetUUID sets the value of UUID. +func (s *FindAllApiTokensResponseResponseApiKeysItem) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetToken sets the value of Token. +func (s *FindAllApiTokensResponseResponseApiKeysItem) SetToken(val string) { + s.Token = val +} + +// SetTokenName sets the value of TokenName. +func (s *FindAllApiTokensResponseResponseApiKeysItem) SetTokenName(val string) { + s.TokenName = val +} + +// SetCreatedAt sets the value of CreatedAt. +func (s *FindAllApiTokensResponseResponseApiKeysItem) SetCreatedAt(val time.Time) { + s.CreatedAt = val +} + +// SetUpdatedAt sets the value of UpdatedAt. +func (s *FindAllApiTokensResponseResponseApiKeysItem) SetUpdatedAt(val time.Time) { + s.UpdatedAt = val +} + +type FindAllApiTokensResponseResponseDocs struct { + IsDocsEnabled bool `json:"isDocsEnabled"` + ScalarPath NilString `json:"scalarPath"` + SwaggerPath NilString `json:"swaggerPath"` +} + +// GetIsDocsEnabled returns the value of IsDocsEnabled. +func (s *FindAllApiTokensResponseResponseDocs) GetIsDocsEnabled() bool { + return s.IsDocsEnabled +} + +// GetScalarPath returns the value of ScalarPath. +func (s *FindAllApiTokensResponseResponseDocs) GetScalarPath() NilString { + return s.ScalarPath +} + +// GetSwaggerPath returns the value of SwaggerPath. +func (s *FindAllApiTokensResponseResponseDocs) GetSwaggerPath() NilString { + return s.SwaggerPath +} + +// SetIsDocsEnabled sets the value of IsDocsEnabled. +func (s *FindAllApiTokensResponseResponseDocs) SetIsDocsEnabled(val bool) { + s.IsDocsEnabled = val +} + +// SetScalarPath sets the value of ScalarPath. +func (s *FindAllApiTokensResponseResponseDocs) SetScalarPath(val NilString) { + s.ScalarPath = val +} + +// SetSwaggerPath sets the value of SwaggerPath. +func (s *FindAllApiTokensResponseResponseDocs) SetSwaggerPath(val NilString) { + s.SwaggerPath = val +} + +// Ref: #/components/schemas/ForbiddenError +type ForbiddenError struct { + Message string `json:"message"` + StatusCode float64 `json:"statusCode"` +} + +// GetMessage returns the value of Message. +func (s *ForbiddenError) GetMessage() string { + return s.Message +} + +// GetStatusCode returns the value of StatusCode. +func (s *ForbiddenError) GetStatusCode() float64 { + return s.StatusCode +} + +// SetMessage sets the value of Message. +func (s *ForbiddenError) SetMessage(val string) { + s.Message = val +} + +// SetStatusCode sets the value of StatusCode. +func (s *ForbiddenError) SetStatusCode(val float64) { + s.StatusCode = val +} + +func (*ForbiddenError) authRegisterRes() {} + +// Ref: #/components/schemas/GenerateX25519Response +type GenerateX25519Response struct { + Response GenerateX25519ResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *GenerateX25519Response) GetResponse() GenerateX25519ResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *GenerateX25519Response) SetResponse(val GenerateX25519ResponseResponse) { + s.Response = val +} + +func (*GenerateX25519Response) systemGetX25519KeypairsRes() {} + +type GenerateX25519ResponseResponse struct { + Keypairs []GenerateX25519ResponseResponseKeypairsItem `json:"keypairs"` +} + +// GetKeypairs returns the value of Keypairs. +func (s *GenerateX25519ResponseResponse) GetKeypairs() []GenerateX25519ResponseResponseKeypairsItem { + return s.Keypairs +} + +// SetKeypairs sets the value of Keypairs. +func (s *GenerateX25519ResponseResponse) SetKeypairs(val []GenerateX25519ResponseResponseKeypairsItem) { + s.Keypairs = val +} + +type GenerateX25519ResponseResponseKeypairsItem struct { + PublicKey string `json:"publicKey"` + PrivateKey string `json:"privateKey"` +} + +// GetPublicKey returns the value of PublicKey. +func (s *GenerateX25519ResponseResponseKeypairsItem) GetPublicKey() string { + return s.PublicKey +} + +// GetPrivateKey returns the value of PrivateKey. +func (s *GenerateX25519ResponseResponseKeypairsItem) GetPrivateKey() string { + return s.PrivateKey +} + +// SetPublicKey sets the value of PublicKey. +func (s *GenerateX25519ResponseResponseKeypairsItem) SetPublicKey(val string) { + s.PublicKey = val +} + +// SetPrivateKey sets the value of PrivateKey. +func (s *GenerateX25519ResponseResponseKeypairsItem) SetPrivateKey(val string) { + s.PrivateKey = val +} + +// Ref: #/components/schemas/Generic +type Generic struct { + Enabled bool `json:"enabled"` + ClientId NilString `json:"clientId"` + ClientSecret NilString `json:"clientSecret"` + WithPkce bool `json:"withPkce"` + AuthorizationUrl NilString `json:"authorizationUrl"` + TokenUrl NilString `json:"tokenUrl"` + FrontendDomain NilString `json:"frontendDomain"` + AllowedEmails []string `json:"allowedEmails"` +} + +// GetEnabled returns the value of Enabled. +func (s *Generic) GetEnabled() bool { + return s.Enabled +} + +// GetClientId returns the value of ClientId. +func (s *Generic) GetClientId() NilString { + return s.ClientId +} + +// GetClientSecret returns the value of ClientSecret. +func (s *Generic) GetClientSecret() NilString { + return s.ClientSecret +} + +// GetWithPkce returns the value of WithPkce. +func (s *Generic) GetWithPkce() bool { + return s.WithPkce +} + +// GetAuthorizationUrl returns the value of AuthorizationUrl. +func (s *Generic) GetAuthorizationUrl() NilString { + return s.AuthorizationUrl +} + +// GetTokenUrl returns the value of TokenUrl. +func (s *Generic) GetTokenUrl() NilString { + return s.TokenUrl +} + +// GetFrontendDomain returns the value of FrontendDomain. +func (s *Generic) GetFrontendDomain() NilString { + return s.FrontendDomain +} + +// GetAllowedEmails returns the value of AllowedEmails. +func (s *Generic) GetAllowedEmails() []string { + return s.AllowedEmails +} + +// SetEnabled sets the value of Enabled. +func (s *Generic) SetEnabled(val bool) { + s.Enabled = val +} + +// SetClientId sets the value of ClientId. +func (s *Generic) SetClientId(val NilString) { + s.ClientId = val +} + +// SetClientSecret sets the value of ClientSecret. +func (s *Generic) SetClientSecret(val NilString) { + s.ClientSecret = val +} + +// SetWithPkce sets the value of WithPkce. +func (s *Generic) SetWithPkce(val bool) { + s.WithPkce = val +} + +// SetAuthorizationUrl sets the value of AuthorizationUrl. +func (s *Generic) SetAuthorizationUrl(val NilString) { + s.AuthorizationUrl = val +} + +// SetTokenUrl sets the value of TokenUrl. +func (s *Generic) SetTokenUrl(val NilString) { + s.TokenUrl = val +} + +// SetFrontendDomain sets the value of FrontendDomain. +func (s *Generic) SetFrontendDomain(val NilString) { + s.FrontendDomain = val +} + +// SetAllowedEmails sets the value of AllowedEmails. +func (s *Generic) SetAllowedEmails(val []string) { + s.AllowedEmails = val +} + +// Ref: #/components/schemas/GetAllHwidDevicesResponse +type GetAllHwidDevicesResponse struct { + Response AllHwidDevices `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *GetAllHwidDevicesResponse) GetResponse() AllHwidDevices { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *GetAllHwidDevicesResponse) SetResponse(val AllHwidDevices) { + s.Response = val +} + +func (*GetAllHwidDevicesResponse) hwidUserDevicesGetAllUsersRes() {} + +// Ref: #/components/schemas/GetAllSubscriptionsResponse +type GetAllSubscriptionsResponse struct { + Response GetAllSubscriptionsResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *GetAllSubscriptionsResponse) GetResponse() GetAllSubscriptionsResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *GetAllSubscriptionsResponse) SetResponse(val GetAllSubscriptionsResponseResponse) { + s.Response = val +} + +func (*GetAllSubscriptionsResponse) subscriptionsGetAllSubscriptionsRes() {} + +type GetAllSubscriptionsResponseResponse struct { + Subscriptions []Subscription `json:"subscriptions"` + Total float64 `json:"total"` +} + +// GetSubscriptions returns the value of Subscriptions. +func (s *GetAllSubscriptionsResponseResponse) GetSubscriptions() []Subscription { + return s.Subscriptions +} + +// GetTotal returns the value of Total. +func (s *GetAllSubscriptionsResponseResponse) GetTotal() float64 { + return s.Total +} + +// SetSubscriptions sets the value of Subscriptions. +func (s *GetAllSubscriptionsResponseResponse) SetSubscriptions(val []Subscription) { + s.Subscriptions = val +} + +// SetTotal sets the value of Total. +func (s *GetAllSubscriptionsResponseResponse) SetTotal(val float64) { + s.Total = val +} + +// Ref: #/components/schemas/GetAllUsersResponse +type GetAllUsersResponse struct { + Response GetAllUsersResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *GetAllUsersResponse) GetResponse() GetAllUsersResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *GetAllUsersResponse) SetResponse(val GetAllUsersResponseResponse) { + s.Response = val +} + +func (*GetAllUsersResponse) usersGetAllUsersRes() {} + +type GetAllUsersResponseResponse struct { + Users []UserItemInfo `json:"users"` + Total float64 `json:"total"` +} + +// GetUsers returns the value of Users. +func (s *GetAllUsersResponseResponse) GetUsers() []UserItemInfo { + return s.Users +} + +// GetTotal returns the value of Total. +func (s *GetAllUsersResponseResponse) GetTotal() float64 { + return s.Total +} + +// SetUsers sets the value of Users. +func (s *GetAllUsersResponseResponse) SetUsers(val []UserItemInfo) { + s.Users = val +} + +// SetTotal sets the value of Total. +func (s *GetAllUsersResponseResponse) SetTotal(val float64) { + s.Total = val +} + +// Ref: #/components/schemas/GetBandwidthStatsResponse +type GetBandwidthStatsResponse struct { + Response GetBandwidthStatsResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *GetBandwidthStatsResponse) GetResponse() GetBandwidthStatsResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *GetBandwidthStatsResponse) SetResponse(val GetBandwidthStatsResponseResponse) { + s.Response = val +} + +func (*GetBandwidthStatsResponse) systemGetBandwidthStatsRes() {} + +type GetBandwidthStatsResponseResponse struct { + BandwidthLastTwoDays BandwidthLastTwoDays `json:"bandwidthLastTwoDays"` + BandwidthLastSevenDays BandwidthLastTwoDays `json:"bandwidthLastSevenDays"` + BandwidthLast30Days BandwidthLastTwoDays `json:"bandwidthLast30Days"` + BandwidthCalendarMonth BandwidthLastTwoDays `json:"bandwidthCalendarMonth"` + BandwidthCurrentYear BandwidthLastTwoDays `json:"bandwidthCurrentYear"` +} + +// GetBandwidthLastTwoDays returns the value of BandwidthLastTwoDays. +func (s *GetBandwidthStatsResponseResponse) GetBandwidthLastTwoDays() BandwidthLastTwoDays { + return s.BandwidthLastTwoDays +} + +// GetBandwidthLastSevenDays returns the value of BandwidthLastSevenDays. +func (s *GetBandwidthStatsResponseResponse) GetBandwidthLastSevenDays() BandwidthLastTwoDays { + return s.BandwidthLastSevenDays +} + +// GetBandwidthLast30Days returns the value of BandwidthLast30Days. +func (s *GetBandwidthStatsResponseResponse) GetBandwidthLast30Days() BandwidthLastTwoDays { + return s.BandwidthLast30Days +} + +// GetBandwidthCalendarMonth returns the value of BandwidthCalendarMonth. +func (s *GetBandwidthStatsResponseResponse) GetBandwidthCalendarMonth() BandwidthLastTwoDays { + return s.BandwidthCalendarMonth +} + +// GetBandwidthCurrentYear returns the value of BandwidthCurrentYear. +func (s *GetBandwidthStatsResponseResponse) GetBandwidthCurrentYear() BandwidthLastTwoDays { + return s.BandwidthCurrentYear +} + +// SetBandwidthLastTwoDays sets the value of BandwidthLastTwoDays. +func (s *GetBandwidthStatsResponseResponse) SetBandwidthLastTwoDays(val BandwidthLastTwoDays) { + s.BandwidthLastTwoDays = val +} + +// SetBandwidthLastSevenDays sets the value of BandwidthLastSevenDays. +func (s *GetBandwidthStatsResponseResponse) SetBandwidthLastSevenDays(val BandwidthLastTwoDays) { + s.BandwidthLastSevenDays = val +} + +// SetBandwidthLast30Days sets the value of BandwidthLast30Days. +func (s *GetBandwidthStatsResponseResponse) SetBandwidthLast30Days(val BandwidthLastTwoDays) { + s.BandwidthLast30Days = val +} + +// SetBandwidthCalendarMonth sets the value of BandwidthCalendarMonth. +func (s *GetBandwidthStatsResponseResponse) SetBandwidthCalendarMonth(val BandwidthLastTwoDays) { + s.BandwidthCalendarMonth = val +} + +// SetBandwidthCurrentYear sets the value of BandwidthCurrentYear. +func (s *GetBandwidthStatsResponseResponse) SetBandwidthCurrentYear(val BandwidthLastTwoDays) { + s.BandwidthCurrentYear = val +} + +// Ref: #/components/schemas/GetConnectionKeysByUuidResponse +type GetConnectionKeysByUuidResponse struct { + Response GetConnectionKeysByUuidResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *GetConnectionKeysByUuidResponse) GetResponse() GetConnectionKeysByUuidResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *GetConnectionKeysByUuidResponse) SetResponse(val GetConnectionKeysByUuidResponseResponse) { + s.Response = val +} + +func (*GetConnectionKeysByUuidResponse) subscriptionsGetConnectionKeysByUuidRes() {} + +type GetConnectionKeysByUuidResponseResponse struct { + EnabledKeys []string `json:"enabledKeys"` + HiddenKeys []string `json:"hiddenKeys"` + DisabledKeys []string `json:"disabledKeys"` +} + +// GetEnabledKeys returns the value of EnabledKeys. +func (s *GetConnectionKeysByUuidResponseResponse) GetEnabledKeys() []string { + return s.EnabledKeys +} + +// GetHiddenKeys returns the value of HiddenKeys. +func (s *GetConnectionKeysByUuidResponseResponse) GetHiddenKeys() []string { + return s.HiddenKeys +} + +// GetDisabledKeys returns the value of DisabledKeys. +func (s *GetConnectionKeysByUuidResponseResponse) GetDisabledKeys() []string { + return s.DisabledKeys +} + +// SetEnabledKeys sets the value of EnabledKeys. +func (s *GetConnectionKeysByUuidResponseResponse) SetEnabledKeys(val []string) { + s.EnabledKeys = val +} + +// SetHiddenKeys sets the value of HiddenKeys. +func (s *GetConnectionKeysByUuidResponseResponse) SetHiddenKeys(val []string) { + s.HiddenKeys = val +} + +// SetDisabledKeys sets the value of DisabledKeys. +func (s *GetConnectionKeysByUuidResponseResponse) SetDisabledKeys(val []string) { + s.DisabledKeys = val +} + +// Ref: #/components/schemas/GetHwidDevicesStatsResponse +type GetHwidDevicesStatsResponse struct { + Response GetHwidDevicesStatsResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *GetHwidDevicesStatsResponse) GetResponse() GetHwidDevicesStatsResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *GetHwidDevicesStatsResponse) SetResponse(val GetHwidDevicesStatsResponseResponse) { + s.Response = val +} + +func (*GetHwidDevicesStatsResponse) hwidUserDevicesGetHwidDevicesStatsRes() {} + +type GetHwidDevicesStatsResponseResponse struct { + ByPlatform []GetHwidDevicesStatsResponseResponseByPlatformItem `json:"byPlatform"` + ByApp []ByAppItem `json:"byApp"` + Stats GetHwidDevicesStatsResponseResponseStats `json:"stats"` +} + +// GetByPlatform returns the value of ByPlatform. +func (s *GetHwidDevicesStatsResponseResponse) GetByPlatform() []GetHwidDevicesStatsResponseResponseByPlatformItem { + return s.ByPlatform +} + +// GetByApp returns the value of ByApp. +func (s *GetHwidDevicesStatsResponseResponse) GetByApp() []ByAppItem { + return s.ByApp +} + +// GetStats returns the value of Stats. +func (s *GetHwidDevicesStatsResponseResponse) GetStats() GetHwidDevicesStatsResponseResponseStats { + return s.Stats +} + +// SetByPlatform sets the value of ByPlatform. +func (s *GetHwidDevicesStatsResponseResponse) SetByPlatform(val []GetHwidDevicesStatsResponseResponseByPlatformItem) { + s.ByPlatform = val +} + +// SetByApp sets the value of ByApp. +func (s *GetHwidDevicesStatsResponseResponse) SetByApp(val []ByAppItem) { + s.ByApp = val +} + +// SetStats sets the value of Stats. +func (s *GetHwidDevicesStatsResponseResponse) SetStats(val GetHwidDevicesStatsResponseResponseStats) { + s.Stats = val +} + +type GetHwidDevicesStatsResponseResponseByPlatformItem struct { + Platform string `json:"platform"` + Count float64 `json:"count"` +} + +// GetPlatform returns the value of Platform. +func (s *GetHwidDevicesStatsResponseResponseByPlatformItem) GetPlatform() string { + return s.Platform +} + +// GetCount returns the value of Count. +func (s *GetHwidDevicesStatsResponseResponseByPlatformItem) GetCount() float64 { + return s.Count +} + +// SetPlatform sets the value of Platform. +func (s *GetHwidDevicesStatsResponseResponseByPlatformItem) SetPlatform(val string) { + s.Platform = val +} + +// SetCount sets the value of Count. +func (s *GetHwidDevicesStatsResponseResponseByPlatformItem) SetCount(val float64) { + s.Count = val +} + +type GetHwidDevicesStatsResponseResponseStats struct { + TotalUniqueDevices float64 `json:"totalUniqueDevices"` + TotalHwidDevices float64 `json:"totalHwidDevices"` + AverageHwidDevicesPerUser float64 `json:"averageHwidDevicesPerUser"` +} + +// GetTotalUniqueDevices returns the value of TotalUniqueDevices. +func (s *GetHwidDevicesStatsResponseResponseStats) GetTotalUniqueDevices() float64 { + return s.TotalUniqueDevices +} + +// GetTotalHwidDevices returns the value of TotalHwidDevices. +func (s *GetHwidDevicesStatsResponseResponseStats) GetTotalHwidDevices() float64 { + return s.TotalHwidDevices +} + +// GetAverageHwidDevicesPerUser returns the value of AverageHwidDevicesPerUser. +func (s *GetHwidDevicesStatsResponseResponseStats) GetAverageHwidDevicesPerUser() float64 { + return s.AverageHwidDevicesPerUser +} + +// SetTotalUniqueDevices sets the value of TotalUniqueDevices. +func (s *GetHwidDevicesStatsResponseResponseStats) SetTotalUniqueDevices(val float64) { + s.TotalUniqueDevices = val +} + +// SetTotalHwidDevices sets the value of TotalHwidDevices. +func (s *GetHwidDevicesStatsResponseResponseStats) SetTotalHwidDevices(val float64) { + s.TotalHwidDevices = val +} + +// SetAverageHwidDevicesPerUser sets the value of AverageHwidDevicesPerUser. +func (s *GetHwidDevicesStatsResponseResponseStats) SetAverageHwidDevicesPerUser(val float64) { + s.AverageHwidDevicesPerUser = val +} + +// Ref: #/components/schemas/GetInfraProvidersResponse +type GetInfraProvidersResponse struct { + Response GetInfraProvidersResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *GetInfraProvidersResponse) GetResponse() GetInfraProvidersResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *GetInfraProvidersResponse) SetResponse(val GetInfraProvidersResponseResponse) { + s.Response = val +} + +func (*GetInfraProvidersResponse) infraBillingGetInfraProvidersRes() {} + +type GetInfraProvidersResponseResponse struct { + Total float64 `json:"total"` + Providers []Provider `json:"providers"` +} + +// GetTotal returns the value of Total. +func (s *GetInfraProvidersResponseResponse) GetTotal() float64 { + return s.Total +} + +// GetProviders returns the value of Providers. +func (s *GetInfraProvidersResponseResponse) GetProviders() []Provider { + return s.Providers +} + +// SetTotal sets the value of Total. +func (s *GetInfraProvidersResponseResponse) SetTotal(val float64) { + s.Total = val +} + +// SetProviders sets the value of Providers. +func (s *GetInfraProvidersResponseResponse) SetProviders(val []Provider) { + s.Providers = val +} + +// Ref: #/components/schemas/GetInternalSquadAccessibleNodesResponse +type GetInternalSquadAccessibleNodesResponse struct { + Response GetInternalSquadAccessibleNodesResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *GetInternalSquadAccessibleNodesResponse) GetResponse() GetInternalSquadAccessibleNodesResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *GetInternalSquadAccessibleNodesResponse) SetResponse(val GetInternalSquadAccessibleNodesResponseResponse) { + s.Response = val +} + +func (*GetInternalSquadAccessibleNodesResponse) internalSquadGetInternalSquadAccessibleNodesRes() {} + +type GetInternalSquadAccessibleNodesResponseResponse struct { + SquadUuid uuid.UUID `json:"squadUuid"` + AccessibleNodes []GetInternalSquadAccessibleNodesResponseResponseAccessibleNodesItem `json:"accessibleNodes"` +} + +// GetSquadUuid returns the value of SquadUuid. +func (s *GetInternalSquadAccessibleNodesResponseResponse) GetSquadUuid() uuid.UUID { + return s.SquadUuid +} + +// GetAccessibleNodes returns the value of AccessibleNodes. +func (s *GetInternalSquadAccessibleNodesResponseResponse) GetAccessibleNodes() []GetInternalSquadAccessibleNodesResponseResponseAccessibleNodesItem { + return s.AccessibleNodes +} + +// SetSquadUuid sets the value of SquadUuid. +func (s *GetInternalSquadAccessibleNodesResponseResponse) SetSquadUuid(val uuid.UUID) { + s.SquadUuid = val +} + +// SetAccessibleNodes sets the value of AccessibleNodes. +func (s *GetInternalSquadAccessibleNodesResponseResponse) SetAccessibleNodes(val []GetInternalSquadAccessibleNodesResponseResponseAccessibleNodesItem) { + s.AccessibleNodes = val +} + +type GetInternalSquadAccessibleNodesResponseResponseAccessibleNodesItem struct { + UUID uuid.UUID `json:"uuid"` + NodeName string `json:"nodeName"` + CountryCode string `json:"countryCode"` + ConfigProfileUuid uuid.UUID `json:"configProfileUuid"` + ConfigProfileName string `json:"configProfileName"` + ActiveInbounds []string `json:"activeInbounds"` +} + +// GetUUID returns the value of UUID. +func (s *GetInternalSquadAccessibleNodesResponseResponseAccessibleNodesItem) GetUUID() uuid.UUID { + return s.UUID +} + +// GetNodeName returns the value of NodeName. +func (s *GetInternalSquadAccessibleNodesResponseResponseAccessibleNodesItem) GetNodeName() string { + return s.NodeName +} + +// GetCountryCode returns the value of CountryCode. +func (s *GetInternalSquadAccessibleNodesResponseResponseAccessibleNodesItem) GetCountryCode() string { + return s.CountryCode +} + +// GetConfigProfileUuid returns the value of ConfigProfileUuid. +func (s *GetInternalSquadAccessibleNodesResponseResponseAccessibleNodesItem) GetConfigProfileUuid() uuid.UUID { + return s.ConfigProfileUuid +} + +// GetConfigProfileName returns the value of ConfigProfileName. +func (s *GetInternalSquadAccessibleNodesResponseResponseAccessibleNodesItem) GetConfigProfileName() string { + return s.ConfigProfileName +} + +// GetActiveInbounds returns the value of ActiveInbounds. +func (s *GetInternalSquadAccessibleNodesResponseResponseAccessibleNodesItem) GetActiveInbounds() []string { + return s.ActiveInbounds +} + +// SetUUID sets the value of UUID. +func (s *GetInternalSquadAccessibleNodesResponseResponseAccessibleNodesItem) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetNodeName sets the value of NodeName. +func (s *GetInternalSquadAccessibleNodesResponseResponseAccessibleNodesItem) SetNodeName(val string) { + s.NodeName = val +} + +// SetCountryCode sets the value of CountryCode. +func (s *GetInternalSquadAccessibleNodesResponseResponseAccessibleNodesItem) SetCountryCode(val string) { + s.CountryCode = val +} + +// SetConfigProfileUuid sets the value of ConfigProfileUuid. +func (s *GetInternalSquadAccessibleNodesResponseResponseAccessibleNodesItem) SetConfigProfileUuid(val uuid.UUID) { + s.ConfigProfileUuid = val +} + +// SetConfigProfileName sets the value of ConfigProfileName. +func (s *GetInternalSquadAccessibleNodesResponseResponseAccessibleNodesItem) SetConfigProfileName(val string) { + s.ConfigProfileName = val +} + +// SetActiveInbounds sets the value of ActiveInbounds. +func (s *GetInternalSquadAccessibleNodesResponseResponseAccessibleNodesItem) SetActiveInbounds(val []string) { + s.ActiveInbounds = val +} + +// Ref: #/components/schemas/GetLegacyStatsNodesUsersUsageResponse +type GetLegacyStatsNodesUsersUsageResponse struct { + Response []GetLegacyStatsNodesUsersUsageResponseResponseItem `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *GetLegacyStatsNodesUsersUsageResponse) GetResponse() []GetLegacyStatsNodesUsersUsageResponseResponseItem { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *GetLegacyStatsNodesUsersUsageResponse) SetResponse(val []GetLegacyStatsNodesUsersUsageResponseResponseItem) { + s.Response = val +} + +func (*GetLegacyStatsNodesUsersUsageResponse) bandwidthStatsNodesGetNodeUserUsageRes() {} + +type GetLegacyStatsNodesUsersUsageResponseResponseItem struct { + UserUuid uuid.UUID `json:"userUuid"` + Username string `json:"username"` + NodeUuid uuid.UUID `json:"nodeUuid"` + Total float64 `json:"total"` + Date string `json:"date"` +} + +// GetUserUuid returns the value of UserUuid. +func (s *GetLegacyStatsNodesUsersUsageResponseResponseItem) GetUserUuid() uuid.UUID { + return s.UserUuid +} + +// GetUsername returns the value of Username. +func (s *GetLegacyStatsNodesUsersUsageResponseResponseItem) GetUsername() string { + return s.Username +} + +// GetNodeUuid returns the value of NodeUuid. +func (s *GetLegacyStatsNodesUsersUsageResponseResponseItem) GetNodeUuid() uuid.UUID { + return s.NodeUuid +} + +// GetTotal returns the value of Total. +func (s *GetLegacyStatsNodesUsersUsageResponseResponseItem) GetTotal() float64 { + return s.Total +} + +// GetDate returns the value of Date. +func (s *GetLegacyStatsNodesUsersUsageResponseResponseItem) GetDate() string { + return s.Date +} + +// SetUserUuid sets the value of UserUuid. +func (s *GetLegacyStatsNodesUsersUsageResponseResponseItem) SetUserUuid(val uuid.UUID) { + s.UserUuid = val +} + +// SetUsername sets the value of Username. +func (s *GetLegacyStatsNodesUsersUsageResponseResponseItem) SetUsername(val string) { + s.Username = val +} + +// SetNodeUuid sets the value of NodeUuid. +func (s *GetLegacyStatsNodesUsersUsageResponseResponseItem) SetNodeUuid(val uuid.UUID) { + s.NodeUuid = val +} + +// SetTotal sets the value of Total. +func (s *GetLegacyStatsNodesUsersUsageResponseResponseItem) SetTotal(val float64) { + s.Total = val +} + +// SetDate sets the value of Date. +func (s *GetLegacyStatsNodesUsersUsageResponseResponseItem) SetDate(val string) { + s.Date = val +} + +// Ref: #/components/schemas/GetLegacyStatsUserUsageResponse +type GetLegacyStatsUserUsageResponse struct { + Response []GetLegacyStatsUserUsageResponseResponseItem `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *GetLegacyStatsUserUsageResponse) GetResponse() []GetLegacyStatsUserUsageResponseResponseItem { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *GetLegacyStatsUserUsageResponse) SetResponse(val []GetLegacyStatsUserUsageResponseResponseItem) { + s.Response = val +} + +func (*GetLegacyStatsUserUsageResponse) bandwidthStatsUsersGetUserUsageByRangeRes() {} + +type GetLegacyStatsUserUsageResponseResponseItem struct { + UserUuid uuid.UUID `json:"userUuid"` + NodeUuid uuid.UUID `json:"nodeUuid"` + NodeName string `json:"nodeName"` + CountryCode string `json:"countryCode"` + Total float64 `json:"total"` + Date string `json:"date"` +} + +// GetUserUuid returns the value of UserUuid. +func (s *GetLegacyStatsUserUsageResponseResponseItem) GetUserUuid() uuid.UUID { + return s.UserUuid +} + +// GetNodeUuid returns the value of NodeUuid. +func (s *GetLegacyStatsUserUsageResponseResponseItem) GetNodeUuid() uuid.UUID { + return s.NodeUuid +} + +// GetNodeName returns the value of NodeName. +func (s *GetLegacyStatsUserUsageResponseResponseItem) GetNodeName() string { + return s.NodeName +} + +// GetCountryCode returns the value of CountryCode. +func (s *GetLegacyStatsUserUsageResponseResponseItem) GetCountryCode() string { + return s.CountryCode +} + +// GetTotal returns the value of Total. +func (s *GetLegacyStatsUserUsageResponseResponseItem) GetTotal() float64 { + return s.Total +} + +// GetDate returns the value of Date. +func (s *GetLegacyStatsUserUsageResponseResponseItem) GetDate() string { + return s.Date +} + +// SetUserUuid sets the value of UserUuid. +func (s *GetLegacyStatsUserUsageResponseResponseItem) SetUserUuid(val uuid.UUID) { + s.UserUuid = val +} + +// SetNodeUuid sets the value of NodeUuid. +func (s *GetLegacyStatsUserUsageResponseResponseItem) SetNodeUuid(val uuid.UUID) { + s.NodeUuid = val +} + +// SetNodeName sets the value of NodeName. +func (s *GetLegacyStatsUserUsageResponseResponseItem) SetNodeName(val string) { + s.NodeName = val +} + +// SetCountryCode sets the value of CountryCode. +func (s *GetLegacyStatsUserUsageResponseResponseItem) SetCountryCode(val string) { + s.CountryCode = val +} + +// SetTotal sets the value of Total. +func (s *GetLegacyStatsUserUsageResponseResponseItem) SetTotal(val float64) { + s.Total = val +} + +// SetDate sets the value of Date. +func (s *GetLegacyStatsUserUsageResponseResponseItem) SetDate(val string) { + s.Date = val +} + +// Ref: #/components/schemas/GetMetadataResponse +type GetMetadataResponse struct { + Response GetMetadataResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *GetMetadataResponse) GetResponse() GetMetadataResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *GetMetadataResponse) SetResponse(val GetMetadataResponseResponse) { + s.Response = val +} + +func (*GetMetadataResponse) systemGetMetadataRes() {} + +type GetMetadataResponseResponse struct { + Version string `json:"version"` + Build GetMetadataResponseResponseBuild `json:"build"` + Git GetMetadataResponseResponseGit `json:"git"` +} + +// GetVersion returns the value of Version. +func (s *GetMetadataResponseResponse) GetVersion() string { + return s.Version +} + +// GetBuild returns the value of Build. +func (s *GetMetadataResponseResponse) GetBuild() GetMetadataResponseResponseBuild { + return s.Build +} + +// GetGit returns the value of Git. +func (s *GetMetadataResponseResponse) GetGit() GetMetadataResponseResponseGit { + return s.Git +} + +// SetVersion sets the value of Version. +func (s *GetMetadataResponseResponse) SetVersion(val string) { + s.Version = val +} + +// SetBuild sets the value of Build. +func (s *GetMetadataResponseResponse) SetBuild(val GetMetadataResponseResponseBuild) { + s.Build = val +} + +// SetGit sets the value of Git. +func (s *GetMetadataResponseResponse) SetGit(val GetMetadataResponseResponseGit) { + s.Git = val +} + +type GetMetadataResponseResponseBuild struct { + Time string `json:"time"` + Number string `json:"number"` +} + +// GetTime returns the value of Time. +func (s *GetMetadataResponseResponseBuild) GetTime() string { + return s.Time +} + +// GetNumber returns the value of Number. +func (s *GetMetadataResponseResponseBuild) GetNumber() string { + return s.Number +} + +// SetTime sets the value of Time. +func (s *GetMetadataResponseResponseBuild) SetTime(val string) { + s.Time = val +} + +// SetNumber sets the value of Number. +func (s *GetMetadataResponseResponseBuild) SetNumber(val string) { + s.Number = val +} + +type GetMetadataResponseResponseGit struct { + Backend GetMetadataResponseResponseGitBackend `json:"backend"` + Frontend GetMetadataResponseResponseGitFrontend `json:"frontend"` +} + +// GetBackend returns the value of Backend. +func (s *GetMetadataResponseResponseGit) GetBackend() GetMetadataResponseResponseGitBackend { + return s.Backend +} + +// GetFrontend returns the value of Frontend. +func (s *GetMetadataResponseResponseGit) GetFrontend() GetMetadataResponseResponseGitFrontend { + return s.Frontend +} + +// SetBackend sets the value of Backend. +func (s *GetMetadataResponseResponseGit) SetBackend(val GetMetadataResponseResponseGitBackend) { + s.Backend = val +} + +// SetFrontend sets the value of Frontend. +func (s *GetMetadataResponseResponseGit) SetFrontend(val GetMetadataResponseResponseGitFrontend) { + s.Frontend = val +} + +type GetMetadataResponseResponseGitBackend struct { + CommitSha string `json:"commitSha"` + Branch string `json:"branch"` + CommitUrl string `json:"commitUrl"` +} + +// GetCommitSha returns the value of CommitSha. +func (s *GetMetadataResponseResponseGitBackend) GetCommitSha() string { + return s.CommitSha +} + +// GetBranch returns the value of Branch. +func (s *GetMetadataResponseResponseGitBackend) GetBranch() string { + return s.Branch +} + +// GetCommitUrl returns the value of CommitUrl. +func (s *GetMetadataResponseResponseGitBackend) GetCommitUrl() string { + return s.CommitUrl +} + +// SetCommitSha sets the value of CommitSha. +func (s *GetMetadataResponseResponseGitBackend) SetCommitSha(val string) { + s.CommitSha = val +} + +// SetBranch sets the value of Branch. +func (s *GetMetadataResponseResponseGitBackend) SetBranch(val string) { + s.Branch = val +} + +// SetCommitUrl sets the value of CommitUrl. +func (s *GetMetadataResponseResponseGitBackend) SetCommitUrl(val string) { + s.CommitUrl = val +} + +type GetMetadataResponseResponseGitFrontend struct { + CommitSha string `json:"commitSha"` + CommitUrl string `json:"commitUrl"` +} + +// GetCommitSha returns the value of CommitSha. +func (s *GetMetadataResponseResponseGitFrontend) GetCommitSha() string { + return s.CommitSha +} + +// GetCommitUrl returns the value of CommitUrl. +func (s *GetMetadataResponseResponseGitFrontend) GetCommitUrl() string { + return s.CommitUrl +} + +// SetCommitSha sets the value of CommitSha. +func (s *GetMetadataResponseResponseGitFrontend) SetCommitSha(val string) { + s.CommitSha = val +} + +// SetCommitUrl sets the value of CommitUrl. +func (s *GetMetadataResponseResponseGitFrontend) SetCommitUrl(val string) { + s.CommitUrl = val +} + +// Ref: #/components/schemas/GetNodesMetricsResponse +type GetNodesMetricsResponse struct { + Response GetNodesMetricsResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *GetNodesMetricsResponse) GetResponse() GetNodesMetricsResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *GetNodesMetricsResponse) SetResponse(val GetNodesMetricsResponseResponse) { + s.Response = val +} + +func (*GetNodesMetricsResponse) systemGetNodesMetricsRes() {} + +type GetNodesMetricsResponseResponse struct { + Nodes []GetNodesMetricsResponseResponseNodesItem `json:"nodes"` +} + +// GetNodes returns the value of Nodes. +func (s *GetNodesMetricsResponseResponse) GetNodes() []GetNodesMetricsResponseResponseNodesItem { + return s.Nodes +} + +// SetNodes sets the value of Nodes. +func (s *GetNodesMetricsResponseResponse) SetNodes(val []GetNodesMetricsResponseResponseNodesItem) { + s.Nodes = val +} + +type GetNodesMetricsResponseResponseNodesItem struct { + NodeUuid string `json:"nodeUuid"` + NodeName string `json:"nodeName"` + CountryEmoji string `json:"countryEmoji"` + ProviderName string `json:"providerName"` + UsersOnline float64 `json:"usersOnline"` + InboundsStats []InboundsStat `json:"inboundsStats"` + OutboundsStats []InboundsStat `json:"outboundsStats"` +} + +// GetNodeUuid returns the value of NodeUuid. +func (s *GetNodesMetricsResponseResponseNodesItem) GetNodeUuid() string { + return s.NodeUuid +} + +// GetNodeName returns the value of NodeName. +func (s *GetNodesMetricsResponseResponseNodesItem) GetNodeName() string { + return s.NodeName +} + +// GetCountryEmoji returns the value of CountryEmoji. +func (s *GetNodesMetricsResponseResponseNodesItem) GetCountryEmoji() string { + return s.CountryEmoji +} + +// GetProviderName returns the value of ProviderName. +func (s *GetNodesMetricsResponseResponseNodesItem) GetProviderName() string { + return s.ProviderName +} + +// GetUsersOnline returns the value of UsersOnline. +func (s *GetNodesMetricsResponseResponseNodesItem) GetUsersOnline() float64 { + return s.UsersOnline +} + +// GetInboundsStats returns the value of InboundsStats. +func (s *GetNodesMetricsResponseResponseNodesItem) GetInboundsStats() []InboundsStat { + return s.InboundsStats +} + +// GetOutboundsStats returns the value of OutboundsStats. +func (s *GetNodesMetricsResponseResponseNodesItem) GetOutboundsStats() []InboundsStat { + return s.OutboundsStats +} + +// SetNodeUuid sets the value of NodeUuid. +func (s *GetNodesMetricsResponseResponseNodesItem) SetNodeUuid(val string) { + s.NodeUuid = val +} + +// SetNodeName sets the value of NodeName. +func (s *GetNodesMetricsResponseResponseNodesItem) SetNodeName(val string) { + s.NodeName = val +} + +// SetCountryEmoji sets the value of CountryEmoji. +func (s *GetNodesMetricsResponseResponseNodesItem) SetCountryEmoji(val string) { + s.CountryEmoji = val +} + +// SetProviderName sets the value of ProviderName. +func (s *GetNodesMetricsResponseResponseNodesItem) SetProviderName(val string) { + s.ProviderName = val +} + +// SetUsersOnline sets the value of UsersOnline. +func (s *GetNodesMetricsResponseResponseNodesItem) SetUsersOnline(val float64) { + s.UsersOnline = val +} + +// SetInboundsStats sets the value of InboundsStats. +func (s *GetNodesMetricsResponseResponseNodesItem) SetInboundsStats(val []InboundsStat) { + s.InboundsStats = val +} + +// SetOutboundsStats sets the value of OutboundsStats. +func (s *GetNodesMetricsResponseResponseNodesItem) SetOutboundsStats(val []InboundsStat) { + s.OutboundsStats = val +} + +// Ref: #/components/schemas/GetNodesStatisticsResponse +type GetNodesStatisticsResponse struct { + Response GetNodesStatisticsResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *GetNodesStatisticsResponse) GetResponse() GetNodesStatisticsResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *GetNodesStatisticsResponse) SetResponse(val GetNodesStatisticsResponseResponse) { + s.Response = val +} + +func (*GetNodesStatisticsResponse) systemGetNodesStatisticsRes() {} + +type GetNodesStatisticsResponseResponse struct { + LastSevenDays []GetNodesStatisticsResponseResponseLastSevenDaysItem `json:"lastSevenDays"` +} + +// GetLastSevenDays returns the value of LastSevenDays. +func (s *GetNodesStatisticsResponseResponse) GetLastSevenDays() []GetNodesStatisticsResponseResponseLastSevenDaysItem { + return s.LastSevenDays +} + +// SetLastSevenDays sets the value of LastSevenDays. +func (s *GetNodesStatisticsResponseResponse) SetLastSevenDays(val []GetNodesStatisticsResponseResponseLastSevenDaysItem) { + s.LastSevenDays = val +} + +type GetNodesStatisticsResponseResponseLastSevenDaysItem struct { + NodeName string `json:"nodeName"` + Date string `json:"date"` + TotalBytes string `json:"totalBytes"` +} + +// GetNodeName returns the value of NodeName. +func (s *GetNodesStatisticsResponseResponseLastSevenDaysItem) GetNodeName() string { + return s.NodeName +} + +// GetDate returns the value of Date. +func (s *GetNodesStatisticsResponseResponseLastSevenDaysItem) GetDate() string { + return s.Date +} + +// GetTotalBytes returns the value of TotalBytes. +func (s *GetNodesStatisticsResponseResponseLastSevenDaysItem) GetTotalBytes() string { + return s.TotalBytes +} + +// SetNodeName sets the value of NodeName. +func (s *GetNodesStatisticsResponseResponseLastSevenDaysItem) SetNodeName(val string) { + s.NodeName = val +} + +// SetDate sets the value of Date. +func (s *GetNodesStatisticsResponseResponseLastSevenDaysItem) SetDate(val string) { + s.Date = val +} + +// SetTotalBytes sets the value of TotalBytes. +func (s *GetNodesStatisticsResponseResponseLastSevenDaysItem) SetTotalBytes(val string) { + s.TotalBytes = val +} + +// Ref: #/components/schemas/GetPubKeyResponse +type GetPubKeyResponse struct { + Response GetPubKeyResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *GetPubKeyResponse) GetResponse() GetPubKeyResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *GetPubKeyResponse) SetResponse(val GetPubKeyResponseResponse) { + s.Response = val +} + +func (*GetPubKeyResponse) keygenGenerateKeyRes() {} + +type GetPubKeyResponseResponse struct { + PubKey string `json:"pubKey"` +} + +// GetPubKey returns the value of PubKey. +func (s *GetPubKeyResponseResponse) GetPubKey() string { + return s.PubKey +} + +// SetPubKey sets the value of PubKey. +func (s *GetPubKeyResponseResponse) SetPubKey(val string) { + s.PubKey = val +} + +// Ref: #/components/schemas/GetRawSubscriptionByShortUuidResponse +type GetRawSubscriptionByShortUuidResponse struct { + Response GetRawSubscriptionByShortUuidResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *GetRawSubscriptionByShortUuidResponse) GetResponse() GetRawSubscriptionByShortUuidResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *GetRawSubscriptionByShortUuidResponse) SetResponse(val GetRawSubscriptionByShortUuidResponseResponse) { + s.Response = val +} + +func (*GetRawSubscriptionByShortUuidResponse) subscriptionsGetRawSubscriptionByShortUuidRes() {} + +type GetRawSubscriptionByShortUuidResponseResponse struct { + User UserItemInfo `json:"user"` + ConvertedUserInfo GetRawSubscriptionByShortUuidResponseResponseConvertedUserInfo `json:"convertedUserInfo"` + Headers GetRawSubscriptionByShortUuidResponseResponseHeaders `json:"headers"` + ResolvedProxyConfigs []GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem `json:"resolvedProxyConfigs"` +} + +// GetUser returns the value of User. +func (s *GetRawSubscriptionByShortUuidResponseResponse) GetUser() UserItemInfo { + return s.User +} + +// GetConvertedUserInfo returns the value of ConvertedUserInfo. +func (s *GetRawSubscriptionByShortUuidResponseResponse) GetConvertedUserInfo() GetRawSubscriptionByShortUuidResponseResponseConvertedUserInfo { + return s.ConvertedUserInfo +} + +// GetHeaders returns the value of Headers. +func (s *GetRawSubscriptionByShortUuidResponseResponse) GetHeaders() GetRawSubscriptionByShortUuidResponseResponseHeaders { + return s.Headers +} + +// GetResolvedProxyConfigs returns the value of ResolvedProxyConfigs. +func (s *GetRawSubscriptionByShortUuidResponseResponse) GetResolvedProxyConfigs() []GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem { + return s.ResolvedProxyConfigs +} + +// SetUser sets the value of User. +func (s *GetRawSubscriptionByShortUuidResponseResponse) SetUser(val UserItemInfo) { + s.User = val +} + +// SetConvertedUserInfo sets the value of ConvertedUserInfo. +func (s *GetRawSubscriptionByShortUuidResponseResponse) SetConvertedUserInfo(val GetRawSubscriptionByShortUuidResponseResponseConvertedUserInfo) { + s.ConvertedUserInfo = val +} + +// SetHeaders sets the value of Headers. +func (s *GetRawSubscriptionByShortUuidResponseResponse) SetHeaders(val GetRawSubscriptionByShortUuidResponseResponseHeaders) { + s.Headers = val +} + +// SetResolvedProxyConfigs sets the value of ResolvedProxyConfigs. +func (s *GetRawSubscriptionByShortUuidResponseResponse) SetResolvedProxyConfigs(val []GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem) { + s.ResolvedProxyConfigs = val +} + +type GetRawSubscriptionByShortUuidResponseResponseConvertedUserInfo struct { + DaysLeft float64 `json:"daysLeft"` + TrafficLimit string `json:"trafficLimit"` + TrafficUsed string `json:"trafficUsed"` + LifetimeTrafficUsed string `json:"lifetimeTrafficUsed"` + IsHwidLimited bool `json:"isHwidLimited"` +} + +// GetDaysLeft returns the value of DaysLeft. +func (s *GetRawSubscriptionByShortUuidResponseResponseConvertedUserInfo) GetDaysLeft() float64 { + return s.DaysLeft +} + +// GetTrafficLimit returns the value of TrafficLimit. +func (s *GetRawSubscriptionByShortUuidResponseResponseConvertedUserInfo) GetTrafficLimit() string { + return s.TrafficLimit +} + +// GetTrafficUsed returns the value of TrafficUsed. +func (s *GetRawSubscriptionByShortUuidResponseResponseConvertedUserInfo) GetTrafficUsed() string { + return s.TrafficUsed +} + +// GetLifetimeTrafficUsed returns the value of LifetimeTrafficUsed. +func (s *GetRawSubscriptionByShortUuidResponseResponseConvertedUserInfo) GetLifetimeTrafficUsed() string { + return s.LifetimeTrafficUsed +} + +// GetIsHwidLimited returns the value of IsHwidLimited. +func (s *GetRawSubscriptionByShortUuidResponseResponseConvertedUserInfo) GetIsHwidLimited() bool { + return s.IsHwidLimited +} + +// SetDaysLeft sets the value of DaysLeft. +func (s *GetRawSubscriptionByShortUuidResponseResponseConvertedUserInfo) SetDaysLeft(val float64) { + s.DaysLeft = val +} + +// SetTrafficLimit sets the value of TrafficLimit. +func (s *GetRawSubscriptionByShortUuidResponseResponseConvertedUserInfo) SetTrafficLimit(val string) { + s.TrafficLimit = val +} + +// SetTrafficUsed sets the value of TrafficUsed. +func (s *GetRawSubscriptionByShortUuidResponseResponseConvertedUserInfo) SetTrafficUsed(val string) { + s.TrafficUsed = val +} + +// SetLifetimeTrafficUsed sets the value of LifetimeTrafficUsed. +func (s *GetRawSubscriptionByShortUuidResponseResponseConvertedUserInfo) SetLifetimeTrafficUsed(val string) { + s.LifetimeTrafficUsed = val +} + +// SetIsHwidLimited sets the value of IsHwidLimited. +func (s *GetRawSubscriptionByShortUuidResponseResponseConvertedUserInfo) SetIsHwidLimited(val bool) { + s.IsHwidLimited = val +} + +type GetRawSubscriptionByShortUuidResponseResponseHeaders map[string]string + +func (s *GetRawSubscriptionByShortUuidResponseResponseHeaders) init() GetRawSubscriptionByShortUuidResponseResponseHeaders { + m := *s + if m == nil { + m = map[string]string{} + *s = m + } + return m +} + +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem struct { + FinalRemark string `json:"finalRemark"` + Address string `json:"address"` + Port int `json:"port"` + Protocol GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocol `json:"protocol"` + ProtocolOptions GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions `json:"protocolOptions"` + Transport GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransport `json:"transport"` + TransportOptions GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions `json:"transportOptions"` + Security GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurity `json:"security"` + SecurityOptions OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions `json:"securityOptions"` + StreamOverrides GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemStreamOverrides `json:"streamOverrides"` + Mux jx.Raw `json:"mux"` + ClientOverrides GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemClientOverrides `json:"clientOverrides"` + Metadata GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata `json:"metadata"` +} + +// GetFinalRemark returns the value of FinalRemark. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem) GetFinalRemark() string { + return s.FinalRemark +} + +// GetAddress returns the value of Address. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem) GetAddress() string { + return s.Address +} + +// GetPort returns the value of Port. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem) GetPort() int { + return s.Port +} + +// GetProtocol returns the value of Protocol. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem) GetProtocol() GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocol { + return s.Protocol +} + +// GetProtocolOptions returns the value of ProtocolOptions. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem) GetProtocolOptions() GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions { + return s.ProtocolOptions +} + +// GetTransport returns the value of Transport. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem) GetTransport() GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransport { + return s.Transport +} + +// GetTransportOptions returns the value of TransportOptions. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem) GetTransportOptions() GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions { + return s.TransportOptions +} + +// GetSecurity returns the value of Security. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem) GetSecurity() GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurity { + return s.Security +} + +// GetSecurityOptions returns the value of SecurityOptions. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem) GetSecurityOptions() OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions { + return s.SecurityOptions +} + +// GetStreamOverrides returns the value of StreamOverrides. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem) GetStreamOverrides() GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemStreamOverrides { + return s.StreamOverrides +} + +// GetMux returns the value of Mux. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem) GetMux() jx.Raw { + return s.Mux +} + +// GetClientOverrides returns the value of ClientOverrides. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem) GetClientOverrides() GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemClientOverrides { + return s.ClientOverrides +} + +// GetMetadata returns the value of Metadata. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem) GetMetadata() GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata { + return s.Metadata +} + +// SetFinalRemark sets the value of FinalRemark. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem) SetFinalRemark(val string) { + s.FinalRemark = val +} + +// SetAddress sets the value of Address. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem) SetAddress(val string) { + s.Address = val +} + +// SetPort sets the value of Port. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem) SetPort(val int) { + s.Port = val +} + +// SetProtocol sets the value of Protocol. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem) SetProtocol(val GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocol) { + s.Protocol = val +} + +// SetProtocolOptions sets the value of ProtocolOptions. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem) SetProtocolOptions(val GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions) { + s.ProtocolOptions = val +} + +// SetTransport sets the value of Transport. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem) SetTransport(val GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransport) { + s.Transport = val +} + +// SetTransportOptions sets the value of TransportOptions. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem) SetTransportOptions(val GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions) { + s.TransportOptions = val +} + +// SetSecurity sets the value of Security. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem) SetSecurity(val GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurity) { + s.Security = val +} + +// SetSecurityOptions sets the value of SecurityOptions. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem) SetSecurityOptions(val OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions) { + s.SecurityOptions = val +} + +// SetStreamOverrides sets the value of StreamOverrides. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem) SetStreamOverrides(val GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemStreamOverrides) { + s.StreamOverrides = val +} + +// SetMux sets the value of Mux. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem) SetMux(val jx.Raw) { + s.Mux = val +} + +// SetClientOverrides sets the value of ClientOverrides. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem) SetClientOverrides(val GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemClientOverrides) { + s.ClientOverrides = val +} + +// SetMetadata sets the value of Metadata. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem) SetMetadata(val GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata) { + s.Metadata = val +} + +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemClientOverrides struct { + ShuffleHost bool `json:"shuffleHost"` + MihomoX25519 bool `json:"mihomoX25519"` + ServerDescription NilString `json:"serverDescription"` + XrayJsonTemplate jx.Raw `json:"xrayJsonTemplate"` +} + +// GetShuffleHost returns the value of ShuffleHost. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemClientOverrides) GetShuffleHost() bool { + return s.ShuffleHost +} + +// GetMihomoX25519 returns the value of MihomoX25519. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemClientOverrides) GetMihomoX25519() bool { + return s.MihomoX25519 +} + +// GetServerDescription returns the value of ServerDescription. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemClientOverrides) GetServerDescription() NilString { + return s.ServerDescription +} + +// GetXrayJsonTemplate returns the value of XrayJsonTemplate. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemClientOverrides) GetXrayJsonTemplate() jx.Raw { + return s.XrayJsonTemplate +} + +// SetShuffleHost sets the value of ShuffleHost. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemClientOverrides) SetShuffleHost(val bool) { + s.ShuffleHost = val +} + +// SetMihomoX25519 sets the value of MihomoX25519. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemClientOverrides) SetMihomoX25519(val bool) { + s.MihomoX25519 = val +} + +// SetServerDescription sets the value of ServerDescription. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemClientOverrides) SetServerDescription(val NilString) { + s.ServerDescription = val +} + +// SetXrayJsonTemplate sets the value of XrayJsonTemplate. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemClientOverrides) SetXrayJsonTemplate(val jx.Raw) { + s.XrayJsonTemplate = val +} + +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata struct { + UUID uuid.UUID `json:"uuid"` + Tag NilString `json:"tag"` + ExcludeFromSubscriptionTypes []GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItem `json:"excludeFromSubscriptionTypes"` + InboundTag string `json:"inboundTag"` + ConfigProfileUuid NilUUID `json:"configProfileUuid"` + ConfigProfileInboundUuid NilUUID `json:"configProfileInboundUuid"` + IsDisabled bool `json:"isDisabled"` + IsHidden bool `json:"isHidden"` + ViewPosition int `json:"viewPosition"` + Remark string `json:"remark"` + VlessRouteId NilInt `json:"vlessRouteId"` + RawInbound jx.Raw `json:"rawInbound"` +} + +// GetUUID returns the value of UUID. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata) GetUUID() uuid.UUID { + return s.UUID +} + +// GetTag returns the value of Tag. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata) GetTag() NilString { + return s.Tag +} + +// GetExcludeFromSubscriptionTypes returns the value of ExcludeFromSubscriptionTypes. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata) GetExcludeFromSubscriptionTypes() []GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItem { + return s.ExcludeFromSubscriptionTypes +} + +// GetInboundTag returns the value of InboundTag. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata) GetInboundTag() string { + return s.InboundTag +} + +// GetConfigProfileUuid returns the value of ConfigProfileUuid. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata) GetConfigProfileUuid() NilUUID { + return s.ConfigProfileUuid +} + +// GetConfigProfileInboundUuid returns the value of ConfigProfileInboundUuid. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata) GetConfigProfileInboundUuid() NilUUID { + return s.ConfigProfileInboundUuid +} + +// GetIsDisabled returns the value of IsDisabled. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata) GetIsDisabled() bool { + return s.IsDisabled +} + +// GetIsHidden returns the value of IsHidden. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata) GetIsHidden() bool { + return s.IsHidden +} + +// GetViewPosition returns the value of ViewPosition. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata) GetViewPosition() int { + return s.ViewPosition +} + +// GetRemark returns the value of Remark. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata) GetRemark() string { + return s.Remark +} + +// GetVlessRouteId returns the value of VlessRouteId. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata) GetVlessRouteId() NilInt { + return s.VlessRouteId +} + +// GetRawInbound returns the value of RawInbound. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata) GetRawInbound() jx.Raw { + return s.RawInbound +} + +// SetUUID sets the value of UUID. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetTag sets the value of Tag. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata) SetTag(val NilString) { + s.Tag = val +} + +// SetExcludeFromSubscriptionTypes sets the value of ExcludeFromSubscriptionTypes. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata) SetExcludeFromSubscriptionTypes(val []GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItem) { + s.ExcludeFromSubscriptionTypes = val +} + +// SetInboundTag sets the value of InboundTag. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata) SetInboundTag(val string) { + s.InboundTag = val +} + +// SetConfigProfileUuid sets the value of ConfigProfileUuid. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata) SetConfigProfileUuid(val NilUUID) { + s.ConfigProfileUuid = val +} + +// SetConfigProfileInboundUuid sets the value of ConfigProfileInboundUuid. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata) SetConfigProfileInboundUuid(val NilUUID) { + s.ConfigProfileInboundUuid = val +} + +// SetIsDisabled sets the value of IsDisabled. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata) SetIsDisabled(val bool) { + s.IsDisabled = val +} + +// SetIsHidden sets the value of IsHidden. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata) SetIsHidden(val bool) { + s.IsHidden = val +} + +// SetViewPosition sets the value of ViewPosition. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata) SetViewPosition(val int) { + s.ViewPosition = val +} + +// SetRemark sets the value of Remark. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata) SetRemark(val string) { + s.Remark = val +} + +// SetVlessRouteId sets the value of VlessRouteId. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata) SetVlessRouteId(val NilInt) { + s.VlessRouteId = val +} + +// SetRawInbound sets the value of RawInbound. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata) SetRawInbound(val jx.Raw) { + s.RawInbound = val +} + +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItem string + +const ( + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemXRAYJSON GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItem = "XRAY_JSON" + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemXRAYBASE64 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItem = "XRAY_BASE64" + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemMIHOMO GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItem = "MIHOMO" + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemSTASH GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItem = "STASH" + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemCLASH GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItem = "CLASH" + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemSINGBOX GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItem = "SINGBOX" +) + +// AllValues returns all GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItem values. +func (GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItem) AllValues() []GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItem { + return []GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItem{ + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemXRAYJSON, + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemXRAYBASE64, + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemMIHOMO, + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemSTASH, + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemCLASH, + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemSINGBOX, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItem) MarshalText() ([]byte, error) { + switch s { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemXRAYJSON: + return []byte(s), nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemXRAYBASE64: + return []byte(s), nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemMIHOMO: + return []byte(s), nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemSTASH: + return []byte(s), nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemCLASH: + return []byte(s), nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemSINGBOX: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItem) UnmarshalText(data []byte) error { + switch GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItem(data) { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemXRAYJSON: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemXRAYJSON + return nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemXRAYBASE64: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemXRAYBASE64 + return nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemMIHOMO: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemMIHOMO + return nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemSTASH: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemSTASH + return nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemCLASH: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemCLASH + return nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemSINGBOX: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItemSINGBOX + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocol string + +const ( + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolVless GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocol = "vless" + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolTrojan GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocol = "trojan" + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolShadowsocks GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocol = "shadowsocks" + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolHysteria GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocol = "hysteria" +) + +// AllValues returns all GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocol values. +func (GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocol) AllValues() []GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocol { + return []GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocol{ + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolVless, + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolTrojan, + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolShadowsocks, + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolHysteria, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocol) MarshalText() ([]byte, error) { + switch s { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolVless: + return []byte(s), nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolTrojan: + return []byte(s), nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolShadowsocks: + return []byte(s), nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolHysteria: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocol) UnmarshalText(data []byte) error { + switch GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocol(data) { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolVless: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolVless + return nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolTrojan: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolTrojan + return nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolShadowsocks: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolShadowsocks + return nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolHysteria: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolHysteria + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions represents sum type. +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions struct { + Type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptionsType // switch on this field + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0 + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1 + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2 + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3 +} + +// GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptionsType is oneOf type of GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions. +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptionsType string + +// Possible values for GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptionsType. +const ( + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptionsType = "GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0" + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptionsType = "GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1" + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptionsType = "GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2" + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptionsType = "GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3" +) + +// IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0 reports whether GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions is GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions) IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0() bool { + return s.Type == GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions +} + +// IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1 reports whether GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions is GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions) IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1() bool { + return s.Type == GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions +} + +// IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2 reports whether GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions is GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions) IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2() bool { + return s.Type == GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions +} + +// IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3 reports whether GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions is GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions) IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3() bool { + return s.Type == GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions +} + +// SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0 sets GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions to GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions) SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0) { + s.Type = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0 = v +} + +// GetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0 returns GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0 and true boolean if GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions is GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions) GetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0() (v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0, ok bool) { + if !s.IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0() { + return v, false + } + return s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0, true +} + +// NewGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions returns new GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions from GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0. +func NewGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0) GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions { + var s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions + s.SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0(v) + return s +} + +// SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1 sets GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions to GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions) SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1) { + s.Type = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1 = v +} + +// GetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1 returns GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1 and true boolean if GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions is GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions) GetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1() (v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1, ok bool) { + if !s.IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1() { + return v, false + } + return s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1, true +} + +// NewGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions returns new GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions from GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1. +func NewGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1) GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions { + var s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions + s.SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1(v) + return s +} + +// SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2 sets GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions to GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions) SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2) { + s.Type = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2 = v +} + +// GetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2 returns GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2 and true boolean if GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions is GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions) GetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2() (v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2, ok bool) { + if !s.IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2() { + return v, false + } + return s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2, true +} + +// NewGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions returns new GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions from GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2. +func NewGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2) GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions { + var s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions + s.SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2(v) + return s +} + +// SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3 sets GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions to GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions) SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3) { + s.Type = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3 = v +} + +// GetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3 returns GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3 and true boolean if GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions is GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions) GetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3() (v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3, ok bool) { + if !s.IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3() { + return v, false + } + return s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3, true +} + +// NewGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions returns new GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions from GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3. +func NewGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3) GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions { + var s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions + s.SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3(v) + return s +} + +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0 struct { + Encryption string `json:"encryption"` + ID string `json:"id"` + Flow GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0Flow `json:"flow"` +} + +// GetEncryption returns the value of Encryption. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0) GetEncryption() string { + return s.Encryption +} + +// GetID returns the value of ID. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0) GetID() string { + return s.ID +} + +// GetFlow returns the value of Flow. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0) GetFlow() GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0Flow { + return s.Flow +} + +// SetEncryption sets the value of Encryption. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0) SetEncryption(val string) { + s.Encryption = val +} + +// SetID sets the value of ID. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0) SetID(val string) { + s.ID = val +} + +// SetFlow sets the value of Flow. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0) SetFlow(val GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0Flow) { + s.Flow = val +} + +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0Flow string + +const ( + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0FlowEmpty GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0Flow = "" + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0FlowXtlsRprxVision GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0Flow = "xtls-rprx-vision" + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0FlowXtlsRprxVisionUdp443 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0Flow = "xtls-rprx-vision-udp443" +) + +// AllValues returns all GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0Flow values. +func (GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0Flow) AllValues() []GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0Flow { + return []GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0Flow{ + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0FlowEmpty, + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0FlowXtlsRprxVision, + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0FlowXtlsRprxVisionUdp443, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0Flow) MarshalText() ([]byte, error) { + switch s { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0FlowEmpty: + return []byte(s), nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0FlowXtlsRprxVision: + return []byte(s), nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0FlowXtlsRprxVisionUdp443: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0Flow) UnmarshalText(data []byte) error { + switch GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0Flow(data) { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0FlowEmpty: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0FlowEmpty + return nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0FlowXtlsRprxVision: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0FlowXtlsRprxVision + return nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0FlowXtlsRprxVisionUdp443: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0FlowXtlsRprxVisionUdp443 + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1 struct { + Password string `json:"password"` +} + +// GetPassword returns the value of Password. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1) GetPassword() string { + return s.Password +} + +// SetPassword sets the value of Password. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1) SetPassword(val string) { + s.Password = val +} + +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2 struct { + Method string `json:"method"` + Password string `json:"password"` + Uot bool `json:"uot"` + UotVersion int `json:"uotVersion"` +} + +// GetMethod returns the value of Method. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2) GetMethod() string { + return s.Method +} + +// GetPassword returns the value of Password. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2) GetPassword() string { + return s.Password +} + +// GetUot returns the value of Uot. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2) GetUot() bool { + return s.Uot +} + +// GetUotVersion returns the value of UotVersion. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2) GetUotVersion() int { + return s.UotVersion +} + +// SetMethod sets the value of Method. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2) SetMethod(val string) { + s.Method = val +} + +// SetPassword sets the value of Password. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2) SetPassword(val string) { + s.Password = val +} + +// SetUot sets the value of Uot. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2) SetUot(val bool) { + s.Uot = val +} + +// SetUotVersion sets the value of UotVersion. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2) SetUotVersion(val int) { + s.UotVersion = val +} + +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3 struct { + Version int `json:"version"` +} + +// GetVersion returns the value of Version. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3) GetVersion() int { + return s.Version +} + +// SetVersion sets the value of Version. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3) SetVersion(val int) { + s.Version = val +} + +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurity string + +const ( + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityTLS GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurity = "tls" + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityReality GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurity = "reality" + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityNone GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurity = "none" +) + +// AllValues returns all GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurity values. +func (GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurity) AllValues() []GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurity { + return []GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurity{ + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityTLS, + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityReality, + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityNone, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurity) MarshalText() ([]byte, error) { + switch s { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityTLS: + return []byte(s), nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityReality: + return []byte(s), nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityNone: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurity) UnmarshalText(data []byte) error { + switch GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurity(data) { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityTLS: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityTLS + return nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityReality: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityReality + return nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityNone: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityNone + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions represents sum type. +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions struct { + Type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptionsType // switch on this field + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0 + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1 +} + +// GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptionsType is oneOf type of GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions. +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptionsType string + +// Possible values for GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptionsType. +const ( + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptionsType = "GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0" + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptionsType = "GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1" +) + +// IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0 reports whether GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions is GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions) IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0() bool { + return s.Type == GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions +} + +// IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1 reports whether GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions is GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions) IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1() bool { + return s.Type == GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions +} + +// SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0 sets GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions to GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions) SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0) { + s.Type = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0 = v +} + +// GetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0 returns GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0 and true boolean if GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions is GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions) GetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0() (v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0, ok bool) { + if !s.IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0() { + return v, false + } + return s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0, true +} + +// NewGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions returns new GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions from GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0. +func NewGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0) GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions { + var s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions + s.SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0(v) + return s +} + +// SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1 sets GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions to GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions) SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1) { + s.Type = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1 = v +} + +// GetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1 returns GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1 and true boolean if GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions is GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions) GetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1() (v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1, ok bool) { + if !s.IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1() { + return v, false + } + return s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1, true +} + +// NewGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions returns new GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions from GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1. +func NewGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1) GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions { + var s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions + s.SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1(v) + return s +} + +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0 struct { + AllowInsecure bool `json:"allowInsecure"` + Alpn NilString `json:"alpn"` + EnableSessionResumption bool `json:"enableSessionResumption"` + Fingerprint NilString `json:"fingerprint"` + ServerName NilString `json:"serverName"` + EchConfigList NilString `json:"echConfigList"` + EchForceQuery NilString `json:"echForceQuery"` +} + +// GetAllowInsecure returns the value of AllowInsecure. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0) GetAllowInsecure() bool { + return s.AllowInsecure +} + +// GetAlpn returns the value of Alpn. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0) GetAlpn() NilString { + return s.Alpn +} + +// GetEnableSessionResumption returns the value of EnableSessionResumption. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0) GetEnableSessionResumption() bool { + return s.EnableSessionResumption +} + +// GetFingerprint returns the value of Fingerprint. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0) GetFingerprint() NilString { + return s.Fingerprint +} + +// GetServerName returns the value of ServerName. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0) GetServerName() NilString { + return s.ServerName +} + +// GetEchConfigList returns the value of EchConfigList. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0) GetEchConfigList() NilString { + return s.EchConfigList +} + +// GetEchForceQuery returns the value of EchForceQuery. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0) GetEchForceQuery() NilString { + return s.EchForceQuery +} + +// SetAllowInsecure sets the value of AllowInsecure. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0) SetAllowInsecure(val bool) { + s.AllowInsecure = val +} + +// SetAlpn sets the value of Alpn. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0) SetAlpn(val NilString) { + s.Alpn = val +} + +// SetEnableSessionResumption sets the value of EnableSessionResumption. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0) SetEnableSessionResumption(val bool) { + s.EnableSessionResumption = val +} + +// SetFingerprint sets the value of Fingerprint. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0) SetFingerprint(val NilString) { + s.Fingerprint = val +} + +// SetServerName sets the value of ServerName. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0) SetServerName(val NilString) { + s.ServerName = val +} + +// SetEchConfigList sets the value of EchConfigList. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0) SetEchConfigList(val NilString) { + s.EchConfigList = val +} + +// SetEchForceQuery sets the value of EchForceQuery. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0) SetEchForceQuery(val NilString) { + s.EchForceQuery = val +} + +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1 struct { + Fingerprint string `json:"fingerprint"` + PublicKey string `json:"publicKey"` + ShortId NilString `json:"shortId"` + ServerName string `json:"serverName"` + SpiderX NilString `json:"spiderX"` + Mldsa65Verify NilString `json:"mldsa65Verify"` +} + +// GetFingerprint returns the value of Fingerprint. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1) GetFingerprint() string { + return s.Fingerprint +} + +// GetPublicKey returns the value of PublicKey. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1) GetPublicKey() string { + return s.PublicKey +} + +// GetShortId returns the value of ShortId. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1) GetShortId() NilString { + return s.ShortId +} + +// GetServerName returns the value of ServerName. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1) GetServerName() string { + return s.ServerName +} + +// GetSpiderX returns the value of SpiderX. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1) GetSpiderX() NilString { + return s.SpiderX +} + +// GetMldsa65Verify returns the value of Mldsa65Verify. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1) GetMldsa65Verify() NilString { + return s.Mldsa65Verify +} + +// SetFingerprint sets the value of Fingerprint. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1) SetFingerprint(val string) { + s.Fingerprint = val +} + +// SetPublicKey sets the value of PublicKey. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1) SetPublicKey(val string) { + s.PublicKey = val +} + +// SetShortId sets the value of ShortId. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1) SetShortId(val NilString) { + s.ShortId = val +} + +// SetServerName sets the value of ServerName. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1) SetServerName(val string) { + s.ServerName = val +} + +// SetSpiderX sets the value of SpiderX. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1) SetSpiderX(val NilString) { + s.SpiderX = val +} + +// SetMldsa65Verify sets the value of Mldsa65Verify. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1) SetMldsa65Verify(val NilString) { + s.Mldsa65Verify = val +} + +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemStreamOverrides struct { + FinalMask jx.Raw `json:"finalMask"` + Sockopt jx.Raw `json:"sockopt"` +} + +// GetFinalMask returns the value of FinalMask. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemStreamOverrides) GetFinalMask() jx.Raw { + return s.FinalMask +} + +// GetSockopt returns the value of Sockopt. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemStreamOverrides) GetSockopt() jx.Raw { + return s.Sockopt +} + +// SetFinalMask sets the value of FinalMask. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemStreamOverrides) SetFinalMask(val jx.Raw) { + s.FinalMask = val +} + +// SetSockopt sets the value of Sockopt. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemStreamOverrides) SetSockopt(val jx.Raw) { + s.Sockopt = val +} + +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransport string + +const ( + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportTCP GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransport = "tcp" + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportXhttp GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransport = "xhttp" + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportWs GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransport = "ws" + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportHttpupgrade GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransport = "httpupgrade" + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportGrpc GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransport = "grpc" + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportKcp GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransport = "kcp" + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportHysteria GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransport = "hysteria" +) + +// AllValues returns all GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransport values. +func (GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransport) AllValues() []GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransport { + return []GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransport{ + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportTCP, + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportXhttp, + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportWs, + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportHttpupgrade, + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportGrpc, + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportKcp, + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportHysteria, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransport) MarshalText() ([]byte, error) { + switch s { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportTCP: + return []byte(s), nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportXhttp: + return []byte(s), nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportWs: + return []byte(s), nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportHttpupgrade: + return []byte(s), nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportGrpc: + return []byte(s), nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportKcp: + return []byte(s), nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportHysteria: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransport) UnmarshalText(data []byte) error { + switch GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransport(data) { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportTCP: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportTCP + return nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportXhttp: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportXhttp + return nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportWs: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportWs + return nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportHttpupgrade: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportHttpupgrade + return nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportGrpc: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportGrpc + return nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportKcp: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportKcp + return nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportHysteria: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportHysteria + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions represents sum type. +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions struct { + Type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptionsType // switch on this field + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0 + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1 + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2 + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3 + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4 + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5 + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6 +} + +// GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptionsType is oneOf type of GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions. +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptionsType string + +// Possible values for GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptionsType. +const ( + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptionsType = "GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0" + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptionsType = "GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1" + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptionsType = "GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2" + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptionsType = "GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3" + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptionsType = "GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4" + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptionsType = "GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5" + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptionsType = "GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6" +) + +// IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0 reports whether GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions is GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions) IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0() bool { + return s.Type == GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions +} + +// IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1 reports whether GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions is GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions) IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1() bool { + return s.Type == GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions +} + +// IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2 reports whether GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions is GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions) IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2() bool { + return s.Type == GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions +} + +// IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3 reports whether GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions is GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions) IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3() bool { + return s.Type == GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions +} + +// IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4 reports whether GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions is GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions) IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4() bool { + return s.Type == GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions +} + +// IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5 reports whether GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions is GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions) IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5() bool { + return s.Type == GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions +} + +// IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6 reports whether GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions is GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions) IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6() bool { + return s.Type == GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions +} + +// SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0 sets GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions to GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions) SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0) { + s.Type = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0 = v +} + +// GetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0 returns GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0 and true boolean if GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions is GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions) GetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0() (v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0, ok bool) { + if !s.IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0() { + return v, false + } + return s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0, true +} + +// NewGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions returns new GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions from GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0. +func NewGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0) GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions { + var s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions + s.SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0(v) + return s +} + +// SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1 sets GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions to GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions) SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1) { + s.Type = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1 = v +} + +// GetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1 returns GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1 and true boolean if GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions is GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions) GetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1() (v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1, ok bool) { + if !s.IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1() { + return v, false + } + return s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1, true +} + +// NewGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions returns new GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions from GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1. +func NewGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1) GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions { + var s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions + s.SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1(v) + return s +} + +// SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2 sets GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions to GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions) SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2) { + s.Type = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2 = v +} + +// GetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2 returns GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2 and true boolean if GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions is GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions) GetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2() (v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2, ok bool) { + if !s.IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2() { + return v, false + } + return s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2, true +} + +// NewGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions returns new GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions from GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2. +func NewGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2) GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions { + var s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions + s.SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2(v) + return s +} + +// SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3 sets GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions to GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions) SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3) { + s.Type = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3 = v +} + +// GetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3 returns GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3 and true boolean if GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions is GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions) GetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3() (v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3, ok bool) { + if !s.IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3() { + return v, false + } + return s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3, true +} + +// NewGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions returns new GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions from GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3. +func NewGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3) GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions { + var s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions + s.SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3(v) + return s +} + +// SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4 sets GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions to GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions) SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4) { + s.Type = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4 = v +} + +// GetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4 returns GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4 and true boolean if GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions is GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions) GetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4() (v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4, ok bool) { + if !s.IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4() { + return v, false + } + return s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4, true +} + +// NewGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions returns new GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions from GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4. +func NewGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4) GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions { + var s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions + s.SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4(v) + return s +} + +// SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5 sets GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions to GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions) SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5) { + s.Type = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5 = v +} + +// GetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5 returns GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5 and true boolean if GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions is GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions) GetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5() (v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5, ok bool) { + if !s.IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5() { + return v, false + } + return s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5, true +} + +// NewGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions returns new GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions from GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5. +func NewGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5) GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions { + var s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions + s.SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5(v) + return s +} + +// SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6 sets GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions to GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions) SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6) { + s.Type = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6 = v +} + +// GetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6 returns GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6 and true boolean if GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions is GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions) GetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6() (v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6, ok bool) { + if !s.IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6() { + return v, false + } + return s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6, true +} + +// NewGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions returns new GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions from GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6. +func NewGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6) GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions { + var s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions + s.SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6(v) + return s +} + +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0 struct { + Header NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header `json:"header"` +} + +// GetHeader returns the value of Header. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0) GetHeader() NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header { + return s.Header +} + +// SetHeader sets the value of Header. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0) SetHeader(val NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header) { + s.Header = val +} + +// GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header represents sum type. +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header struct { + Type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0HeaderType // switch on this field + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0 + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1 +} + +// GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0HeaderType is oneOf type of GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header. +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0HeaderType string + +// Possible values for GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0HeaderType. +const ( + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0HeaderType = "GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0" + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0HeaderType = "GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1" +) + +// IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0 reports whether GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header is GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header) IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0() bool { + return s.Type == GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header +} + +// IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1 reports whether GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header is GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header) IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1() bool { + return s.Type == GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header +} + +// SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0 sets GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header to GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header) SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0) { + s.Type = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0 = v +} + +// GetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0 returns GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0 and true boolean if GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header is GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header) GetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0() (v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0, ok bool) { + if !s.IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0() { + return v, false + } + return s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0, true +} + +// NewGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header returns new GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header from GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0. +func NewGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0) GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header { + var s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header + s.SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0(v) + return s +} + +// SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1 sets GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header to GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header) SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1) { + s.Type = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header + s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1 = v +} + +// GetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1 returns GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1 and true boolean if GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header is GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header) GetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1() (v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1, ok bool) { + if !s.IsGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1() { + return v, false + } + return s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1, true +} + +// NewGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header returns new GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header from GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1. +func NewGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1) GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header { + var s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header + s.SetGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1(v) + return s +} + +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0 struct { + Type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0Type `json:"type"` +} + +// GetType returns the value of Type. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0) GetType() GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0Type { + return s.Type +} + +// SetType sets the value of Type. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0) SetType(val GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0Type) { + s.Type = val +} + +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0Type string + +const ( + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0TypeNone GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0Type = "none" +) + +// AllValues returns all GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0Type values. +func (GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0Type) AllValues() []GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0Type { + return []GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0Type{ + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0TypeNone, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0Type) MarshalText() ([]byte, error) { + switch s { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0TypeNone: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0Type) UnmarshalText(data []byte) error { + switch GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0Type(data) { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0TypeNone: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0TypeNone + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1 struct { + Type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Type `json:"type"` + Request OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request `json:"request"` + Response OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response `json:"response"` +} + +// GetType returns the value of Type. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1) GetType() GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Type { + return s.Type +} + +// GetRequest returns the value of Request. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1) GetRequest() OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request { + return s.Request +} + +// GetResponse returns the value of Response. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1) GetResponse() OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response { + return s.Response +} + +// SetType sets the value of Type. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1) SetType(val GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Type) { + s.Type = val +} + +// SetRequest sets the value of Request. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1) SetRequest(val OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request) { + s.Request = val +} + +// SetResponse sets the value of Response. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1) SetResponse(val OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response) { + s.Response = val +} + +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request struct { + Version OptString `json:"version"` + Method OptString `json:"method"` + Path []string `json:"path"` + Headers OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders `json:"headers"` +} + +// GetVersion returns the value of Version. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request) GetVersion() OptString { + return s.Version +} + +// GetMethod returns the value of Method. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request) GetMethod() OptString { + return s.Method +} + +// GetPath returns the value of Path. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request) GetPath() []string { + return s.Path +} + +// GetHeaders returns the value of Headers. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request) GetHeaders() OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders { + return s.Headers +} + +// SetVersion sets the value of Version. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request) SetVersion(val OptString) { + s.Version = val +} + +// SetMethod sets the value of Method. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request) SetMethod(val OptString) { + s.Method = val +} + +// SetPath sets the value of Path. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request) SetPath(val []string) { + s.Path = val +} + +// SetHeaders sets the value of Headers. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request) SetHeaders(val OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders) { + s.Headers = val +} + +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders map[string]jx.Raw + +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders) init() GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders { + m := *s + if m == nil { + m = map[string]jx.Raw{} + *s = m + } + return m +} + +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response struct { + Version OptString `json:"version"` + Status OptString `json:"status"` + Reason OptString `json:"reason"` + Headers OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders `json:"headers"` +} + +// GetVersion returns the value of Version. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response) GetVersion() OptString { + return s.Version +} + +// GetStatus returns the value of Status. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response) GetStatus() OptString { + return s.Status +} + +// GetReason returns the value of Reason. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response) GetReason() OptString { + return s.Reason +} + +// GetHeaders returns the value of Headers. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response) GetHeaders() OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders { + return s.Headers +} + +// SetVersion sets the value of Version. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response) SetVersion(val OptString) { + s.Version = val +} + +// SetStatus sets the value of Status. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response) SetStatus(val OptString) { + s.Status = val +} + +// SetReason sets the value of Reason. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response) SetReason(val OptString) { + s.Reason = val +} + +// SetHeaders sets the value of Headers. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response) SetHeaders(val OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders) { + s.Headers = val +} + +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders map[string]jx.Raw + +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders) init() GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders { + m := *s + if m == nil { + m = map[string]jx.Raw{} + *s = m + } + return m +} + +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Type string + +const ( + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1TypeHTTP GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Type = "http" +) + +// AllValues returns all GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Type values. +func (GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Type) AllValues() []GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Type { + return []GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Type{ + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1TypeHTTP, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Type) MarshalText() ([]byte, error) { + switch s { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1TypeHTTP: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Type) UnmarshalText(data []byte) error { + switch GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Type(data) { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1TypeHTTP: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1TypeHTTP + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1 struct { + Path NilString `json:"path"` + Host NilString `json:"host"` + Mode GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Mode `json:"mode"` + Extra NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra `json:"extra"` +} + +// GetPath returns the value of Path. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1) GetPath() NilString { + return s.Path +} + +// GetHost returns the value of Host. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1) GetHost() NilString { + return s.Host +} + +// GetMode returns the value of Mode. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1) GetMode() GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Mode { + return s.Mode +} + +// GetExtra returns the value of Extra. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1) GetExtra() NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra { + return s.Extra +} + +// SetPath sets the value of Path. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1) SetPath(val NilString) { + s.Path = val +} + +// SetHost sets the value of Host. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1) SetHost(val NilString) { + s.Host = val +} + +// SetMode sets the value of Mode. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1) SetMode(val GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Mode) { + s.Mode = val +} + +// SetExtra sets the value of Extra. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1) SetExtra(val NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra) { + s.Extra = val +} + +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra map[string]jx.Raw + +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra) init() GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra { + m := *s + if m == nil { + m = map[string]jx.Raw{} + *s = m + } + return m +} + +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Mode string + +const ( + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1ModeAuto GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Mode = "auto" + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1ModePacketUp GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Mode = "packet-up" + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1ModeStreamUp GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Mode = "stream-up" + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1ModeStreamOne GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Mode = "stream-one" +) + +// AllValues returns all GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Mode values. +func (GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Mode) AllValues() []GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Mode { + return []GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Mode{ + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1ModeAuto, + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1ModePacketUp, + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1ModeStreamUp, + GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1ModeStreamOne, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Mode) MarshalText() ([]byte, error) { + switch s { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1ModeAuto: + return []byte(s), nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1ModePacketUp: + return []byte(s), nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1ModeStreamUp: + return []byte(s), nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1ModeStreamOne: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Mode) UnmarshalText(data []byte) error { + switch GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Mode(data) { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1ModeAuto: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1ModeAuto + return nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1ModePacketUp: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1ModePacketUp + return nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1ModeStreamUp: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1ModeStreamUp + return nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1ModeStreamOne: + *s = GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1ModeStreamOne + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2 struct { + Path NilString `json:"path"` + Host NilString `json:"host"` + Headers NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers `json:"headers"` + HeartbeatPeriod NilFloat64 `json:"heartbeatPeriod"` +} + +// GetPath returns the value of Path. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2) GetPath() NilString { + return s.Path +} + +// GetHost returns the value of Host. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2) GetHost() NilString { + return s.Host +} + +// GetHeaders returns the value of Headers. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2) GetHeaders() NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers { + return s.Headers +} + +// GetHeartbeatPeriod returns the value of HeartbeatPeriod. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2) GetHeartbeatPeriod() NilFloat64 { + return s.HeartbeatPeriod +} + +// SetPath sets the value of Path. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2) SetPath(val NilString) { + s.Path = val +} + +// SetHost sets the value of Host. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2) SetHost(val NilString) { + s.Host = val +} + +// SetHeaders sets the value of Headers. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2) SetHeaders(val NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers) { + s.Headers = val +} + +// SetHeartbeatPeriod sets the value of HeartbeatPeriod. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2) SetHeartbeatPeriod(val NilFloat64) { + s.HeartbeatPeriod = val +} + +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers map[string]string + +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers) init() GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers { + m := *s + if m == nil { + m = map[string]string{} + *s = m + } + return m +} + +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3 struct { + Path NilString `json:"path"` + Host NilString `json:"host"` + Headers NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers `json:"headers"` +} + +// GetPath returns the value of Path. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3) GetPath() NilString { + return s.Path +} + +// GetHost returns the value of Host. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3) GetHost() NilString { + return s.Host +} + +// GetHeaders returns the value of Headers. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3) GetHeaders() NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers { + return s.Headers +} + +// SetPath sets the value of Path. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3) SetPath(val NilString) { + s.Path = val +} + +// SetHost sets the value of Host. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3) SetHost(val NilString) { + s.Host = val +} + +// SetHeaders sets the value of Headers. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3) SetHeaders(val NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers) { + s.Headers = val +} + +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers map[string]string + +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers) init() GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers { + m := *s + if m == nil { + m = map[string]string{} + *s = m + } + return m +} + +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4 struct { + Authority NilString `json:"authority"` + ServiceName NilString `json:"serviceName"` + MultiMode bool `json:"multiMode"` +} + +// GetAuthority returns the value of Authority. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4) GetAuthority() NilString { + return s.Authority +} + +// GetServiceName returns the value of ServiceName. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4) GetServiceName() NilString { + return s.ServiceName +} + +// GetMultiMode returns the value of MultiMode. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4) GetMultiMode() bool { + return s.MultiMode +} + +// SetAuthority sets the value of Authority. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4) SetAuthority(val NilString) { + s.Authority = val +} + +// SetServiceName sets the value of ServiceName. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4) SetServiceName(val NilString) { + s.ServiceName = val +} + +// SetMultiMode sets the value of MultiMode. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4) SetMultiMode(val bool) { + s.MultiMode = val +} + +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5 struct { + ClientMtu int `json:"clientMtu"` + Tti int `json:"tti"` + Congestion bool `json:"congestion"` +} + +// GetClientMtu returns the value of ClientMtu. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5) GetClientMtu() int { + return s.ClientMtu +} + +// GetTti returns the value of Tti. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5) GetTti() int { + return s.Tti +} + +// GetCongestion returns the value of Congestion. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5) GetCongestion() bool { + return s.Congestion +} + +// SetClientMtu sets the value of ClientMtu. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5) SetClientMtu(val int) { + s.ClientMtu = val +} + +// SetTti sets the value of Tti. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5) SetTti(val int) { + s.Tti = val +} + +// SetCongestion sets the value of Congestion. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5) SetCongestion(val bool) { + s.Congestion = val +} + +type GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6 struct { + Version int `json:"version"` + Auth string `json:"auth"` +} + +// GetVersion returns the value of Version. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6) GetVersion() int { + return s.Version +} + +// GetAuth returns the value of Auth. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6) GetAuth() string { + return s.Auth +} + +// SetVersion sets the value of Version. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6) SetVersion(val int) { + s.Version = val +} + +// SetAuth sets the value of Auth. +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6) SetAuth(val string) { + s.Auth = val +} + +// Ref: #/components/schemas/GetRecapResponse +type GetRecapResponse struct { + Response GetRecapResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *GetRecapResponse) GetResponse() GetRecapResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *GetRecapResponse) SetResponse(val GetRecapResponseResponse) { + s.Response = val +} + +func (*GetRecapResponse) systemGetRecapRes() {} + +type GetRecapResponseResponse struct { + ThisMonth GetRecapResponseResponseThisMonth `json:"thisMonth"` + Total GetRecapResponseResponseTotal `json:"total"` + Version string `json:"version"` + InitDate time.Time `json:"initDate"` +} + +// GetThisMonth returns the value of ThisMonth. +func (s *GetRecapResponseResponse) GetThisMonth() GetRecapResponseResponseThisMonth { + return s.ThisMonth +} + +// GetTotal returns the value of Total. +func (s *GetRecapResponseResponse) GetTotal() GetRecapResponseResponseTotal { + return s.Total +} + +// GetVersion returns the value of Version. +func (s *GetRecapResponseResponse) GetVersion() string { + return s.Version +} + +// GetInitDate returns the value of InitDate. +func (s *GetRecapResponseResponse) GetInitDate() time.Time { + return s.InitDate +} + +// SetThisMonth sets the value of ThisMonth. +func (s *GetRecapResponseResponse) SetThisMonth(val GetRecapResponseResponseThisMonth) { + s.ThisMonth = val +} + +// SetTotal sets the value of Total. +func (s *GetRecapResponseResponse) SetTotal(val GetRecapResponseResponseTotal) { + s.Total = val +} + +// SetVersion sets the value of Version. +func (s *GetRecapResponseResponse) SetVersion(val string) { + s.Version = val +} + +// SetInitDate sets the value of InitDate. +func (s *GetRecapResponseResponse) SetInitDate(val time.Time) { + s.InitDate = val +} + +type GetRecapResponseResponseThisMonth struct { + Users float64 `json:"users"` + Traffic string `json:"traffic"` +} + +// GetUsers returns the value of Users. +func (s *GetRecapResponseResponseThisMonth) GetUsers() float64 { + return s.Users +} + +// GetTraffic returns the value of Traffic. +func (s *GetRecapResponseResponseThisMonth) GetTraffic() string { + return s.Traffic +} + +// SetUsers sets the value of Users. +func (s *GetRecapResponseResponseThisMonth) SetUsers(val float64) { + s.Users = val +} + +// SetTraffic sets the value of Traffic. +func (s *GetRecapResponseResponseThisMonth) SetTraffic(val string) { + s.Traffic = val +} + +type GetRecapResponseResponseTotal struct { + Users float64 `json:"users"` + Nodes float64 `json:"nodes"` + Traffic string `json:"traffic"` + NodesRam string `json:"nodesRam"` + NodesCpuCores float64 `json:"nodesCpuCores"` + DistinctCountries float64 `json:"distinctCountries"` +} + +// GetUsers returns the value of Users. +func (s *GetRecapResponseResponseTotal) GetUsers() float64 { + return s.Users +} + +// GetNodes returns the value of Nodes. +func (s *GetRecapResponseResponseTotal) GetNodes() float64 { + return s.Nodes +} + +// GetTraffic returns the value of Traffic. +func (s *GetRecapResponseResponseTotal) GetTraffic() string { + return s.Traffic +} + +// GetNodesRam returns the value of NodesRam. +func (s *GetRecapResponseResponseTotal) GetNodesRam() string { + return s.NodesRam +} + +// GetNodesCpuCores returns the value of NodesCpuCores. +func (s *GetRecapResponseResponseTotal) GetNodesCpuCores() float64 { + return s.NodesCpuCores +} + +// GetDistinctCountries returns the value of DistinctCountries. +func (s *GetRecapResponseResponseTotal) GetDistinctCountries() float64 { + return s.DistinctCountries +} + +// SetUsers sets the value of Users. +func (s *GetRecapResponseResponseTotal) SetUsers(val float64) { + s.Users = val +} + +// SetNodes sets the value of Nodes. +func (s *GetRecapResponseResponseTotal) SetNodes(val float64) { + s.Nodes = val +} + +// SetTraffic sets the value of Traffic. +func (s *GetRecapResponseResponseTotal) SetTraffic(val string) { + s.Traffic = val +} + +// SetNodesRam sets the value of NodesRam. +func (s *GetRecapResponseResponseTotal) SetNodesRam(val string) { + s.NodesRam = val +} + +// SetNodesCpuCores sets the value of NodesCpuCores. +func (s *GetRecapResponseResponseTotal) SetNodesCpuCores(val float64) { + s.NodesCpuCores = val +} + +// SetDistinctCountries sets the value of DistinctCountries. +func (s *GetRecapResponseResponseTotal) SetDistinctCountries(val float64) { + s.DistinctCountries = val +} + +// Ref: #/components/schemas/GetRemnawaveHealthResponse +type GetRemnawaveHealthResponse struct { + Response GetRemnawaveHealthResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *GetRemnawaveHealthResponse) GetResponse() GetRemnawaveHealthResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *GetRemnawaveHealthResponse) SetResponse(val GetRemnawaveHealthResponseResponse) { + s.Response = val +} + +func (*GetRemnawaveHealthResponse) systemGetRemnawaveHealthRes() {} + +type GetRemnawaveHealthResponseResponse struct { + RuntimeMetrics []GetRemnawaveHealthResponseResponseRuntimeMetricsItem `json:"runtimeMetrics"` +} + +// GetRuntimeMetrics returns the value of RuntimeMetrics. +func (s *GetRemnawaveHealthResponseResponse) GetRuntimeMetrics() []GetRemnawaveHealthResponseResponseRuntimeMetricsItem { + return s.RuntimeMetrics +} + +// SetRuntimeMetrics sets the value of RuntimeMetrics. +func (s *GetRemnawaveHealthResponseResponse) SetRuntimeMetrics(val []GetRemnawaveHealthResponseResponseRuntimeMetricsItem) { + s.RuntimeMetrics = val +} + +type GetRemnawaveHealthResponseResponseRuntimeMetricsItem struct { + Rss float64 `json:"rss"` + HeapUsed float64 `json:"heapUsed"` + HeapTotal float64 `json:"heapTotal"` + External float64 `json:"external"` + ArrayBuffers float64 `json:"arrayBuffers"` + EventLoopDelayMs float64 `json:"eventLoopDelayMs"` + EventLoopP99Ms float64 `json:"eventLoopP99Ms"` + ActiveHandles float64 `json:"activeHandles"` + Uptime float64 `json:"uptime"` + Pid float64 `json:"pid"` + Timestamp float64 `json:"timestamp"` + InstanceId string `json:"instanceId"` + InstanceType string `json:"instanceType"` +} + +// GetRss returns the value of Rss. +func (s *GetRemnawaveHealthResponseResponseRuntimeMetricsItem) GetRss() float64 { + return s.Rss +} + +// GetHeapUsed returns the value of HeapUsed. +func (s *GetRemnawaveHealthResponseResponseRuntimeMetricsItem) GetHeapUsed() float64 { + return s.HeapUsed +} + +// GetHeapTotal returns the value of HeapTotal. +func (s *GetRemnawaveHealthResponseResponseRuntimeMetricsItem) GetHeapTotal() float64 { + return s.HeapTotal +} + +// GetExternal returns the value of External. +func (s *GetRemnawaveHealthResponseResponseRuntimeMetricsItem) GetExternal() float64 { + return s.External +} + +// GetArrayBuffers returns the value of ArrayBuffers. +func (s *GetRemnawaveHealthResponseResponseRuntimeMetricsItem) GetArrayBuffers() float64 { + return s.ArrayBuffers +} + +// GetEventLoopDelayMs returns the value of EventLoopDelayMs. +func (s *GetRemnawaveHealthResponseResponseRuntimeMetricsItem) GetEventLoopDelayMs() float64 { + return s.EventLoopDelayMs +} + +// GetEventLoopP99Ms returns the value of EventLoopP99Ms. +func (s *GetRemnawaveHealthResponseResponseRuntimeMetricsItem) GetEventLoopP99Ms() float64 { + return s.EventLoopP99Ms +} + +// GetActiveHandles returns the value of ActiveHandles. +func (s *GetRemnawaveHealthResponseResponseRuntimeMetricsItem) GetActiveHandles() float64 { + return s.ActiveHandles +} + +// GetUptime returns the value of Uptime. +func (s *GetRemnawaveHealthResponseResponseRuntimeMetricsItem) GetUptime() float64 { + return s.Uptime +} + +// GetPid returns the value of Pid. +func (s *GetRemnawaveHealthResponseResponseRuntimeMetricsItem) GetPid() float64 { + return s.Pid +} + +// GetTimestamp returns the value of Timestamp. +func (s *GetRemnawaveHealthResponseResponseRuntimeMetricsItem) GetTimestamp() float64 { + return s.Timestamp +} + +// GetInstanceId returns the value of InstanceId. +func (s *GetRemnawaveHealthResponseResponseRuntimeMetricsItem) GetInstanceId() string { + return s.InstanceId +} + +// GetInstanceType returns the value of InstanceType. +func (s *GetRemnawaveHealthResponseResponseRuntimeMetricsItem) GetInstanceType() string { + return s.InstanceType +} + +// SetRss sets the value of Rss. +func (s *GetRemnawaveHealthResponseResponseRuntimeMetricsItem) SetRss(val float64) { + s.Rss = val +} + +// SetHeapUsed sets the value of HeapUsed. +func (s *GetRemnawaveHealthResponseResponseRuntimeMetricsItem) SetHeapUsed(val float64) { + s.HeapUsed = val +} + +// SetHeapTotal sets the value of HeapTotal. +func (s *GetRemnawaveHealthResponseResponseRuntimeMetricsItem) SetHeapTotal(val float64) { + s.HeapTotal = val +} + +// SetExternal sets the value of External. +func (s *GetRemnawaveHealthResponseResponseRuntimeMetricsItem) SetExternal(val float64) { + s.External = val +} + +// SetArrayBuffers sets the value of ArrayBuffers. +func (s *GetRemnawaveHealthResponseResponseRuntimeMetricsItem) SetArrayBuffers(val float64) { + s.ArrayBuffers = val +} + +// SetEventLoopDelayMs sets the value of EventLoopDelayMs. +func (s *GetRemnawaveHealthResponseResponseRuntimeMetricsItem) SetEventLoopDelayMs(val float64) { + s.EventLoopDelayMs = val +} + +// SetEventLoopP99Ms sets the value of EventLoopP99Ms. +func (s *GetRemnawaveHealthResponseResponseRuntimeMetricsItem) SetEventLoopP99Ms(val float64) { + s.EventLoopP99Ms = val +} + +// SetActiveHandles sets the value of ActiveHandles. +func (s *GetRemnawaveHealthResponseResponseRuntimeMetricsItem) SetActiveHandles(val float64) { + s.ActiveHandles = val +} + +// SetUptime sets the value of Uptime. +func (s *GetRemnawaveHealthResponseResponseRuntimeMetricsItem) SetUptime(val float64) { + s.Uptime = val +} + +// SetPid sets the value of Pid. +func (s *GetRemnawaveHealthResponseResponseRuntimeMetricsItem) SetPid(val float64) { + s.Pid = val +} + +// SetTimestamp sets the value of Timestamp. +func (s *GetRemnawaveHealthResponseResponseRuntimeMetricsItem) SetTimestamp(val float64) { + s.Timestamp = val +} + +// SetInstanceId sets the value of InstanceId. +func (s *GetRemnawaveHealthResponseResponseRuntimeMetricsItem) SetInstanceId(val string) { + s.InstanceId = val +} + +// SetInstanceType sets the value of InstanceType. +func (s *GetRemnawaveHealthResponseResponseRuntimeMetricsItem) SetInstanceType(val string) { + s.InstanceType = val +} + +// Ref: #/components/schemas/GetStatsNodeUsersUsageResponse +type GetStatsNodeUsersUsageResponse struct { + Response GetStatsNodeUsersUsageResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *GetStatsNodeUsersUsageResponse) GetResponse() GetStatsNodeUsersUsageResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *GetStatsNodeUsersUsageResponse) SetResponse(val GetStatsNodeUsersUsageResponseResponse) { + s.Response = val +} + +func (*GetStatsNodeUsersUsageResponse) bandwidthStatsNodesGetStatsNodeUsersUsageRes() {} + +type GetStatsNodeUsersUsageResponseResponse struct { + Categories []string `json:"categories"` + SparklineData []float64 `json:"sparklineData"` + TopUsers []GetStatsNodeUsersUsageResponseResponseTopUsersItem `json:"topUsers"` +} + +// GetCategories returns the value of Categories. +func (s *GetStatsNodeUsersUsageResponseResponse) GetCategories() []string { + return s.Categories +} + +// GetSparklineData returns the value of SparklineData. +func (s *GetStatsNodeUsersUsageResponseResponse) GetSparklineData() []float64 { + return s.SparklineData +} + +// GetTopUsers returns the value of TopUsers. +func (s *GetStatsNodeUsersUsageResponseResponse) GetTopUsers() []GetStatsNodeUsersUsageResponseResponseTopUsersItem { + return s.TopUsers +} + +// SetCategories sets the value of Categories. +func (s *GetStatsNodeUsersUsageResponseResponse) SetCategories(val []string) { + s.Categories = val +} + +// SetSparklineData sets the value of SparklineData. +func (s *GetStatsNodeUsersUsageResponseResponse) SetSparklineData(val []float64) { + s.SparklineData = val +} + +// SetTopUsers sets the value of TopUsers. +func (s *GetStatsNodeUsersUsageResponseResponse) SetTopUsers(val []GetStatsNodeUsersUsageResponseResponseTopUsersItem) { + s.TopUsers = val +} + +type GetStatsNodeUsersUsageResponseResponseTopUsersItem struct { + Color string `json:"color"` + Username string `json:"username"` + Total float64 `json:"total"` +} + +// GetColor returns the value of Color. +func (s *GetStatsNodeUsersUsageResponseResponseTopUsersItem) GetColor() string { + return s.Color +} + +// GetUsername returns the value of Username. +func (s *GetStatsNodeUsersUsageResponseResponseTopUsersItem) GetUsername() string { + return s.Username +} + +// GetTotal returns the value of Total. +func (s *GetStatsNodeUsersUsageResponseResponseTopUsersItem) GetTotal() float64 { + return s.Total +} + +// SetColor sets the value of Color. +func (s *GetStatsNodeUsersUsageResponseResponseTopUsersItem) SetColor(val string) { + s.Color = val +} + +// SetUsername sets the value of Username. +func (s *GetStatsNodeUsersUsageResponseResponseTopUsersItem) SetUsername(val string) { + s.Username = val +} + +// SetTotal sets the value of Total. +func (s *GetStatsNodeUsersUsageResponseResponseTopUsersItem) SetTotal(val float64) { + s.Total = val +} + +// Ref: #/components/schemas/GetStatsResponse +type GetStatsResponse struct { + Response GetStatsResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *GetStatsResponse) GetResponse() GetStatsResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *GetStatsResponse) SetResponse(val GetStatsResponseResponse) { + s.Response = val +} + +func (*GetStatsResponse) systemGetStatsRes() {} + +type GetStatsResponseResponse struct { + CPU GetStatsResponseResponseCPU `json:"cpu"` + Memory GetStatsResponseResponseMemory `json:"memory"` + Uptime float64 `json:"uptime"` + Timestamp float64 `json:"timestamp"` + Users GetStatsResponseResponseUsers `json:"users"` + OnlineStats GetStatsResponseResponseOnlineStats `json:"onlineStats"` + Nodes GetStatsResponseResponseNodes `json:"nodes"` +} + +// GetCPU returns the value of CPU. +func (s *GetStatsResponseResponse) GetCPU() GetStatsResponseResponseCPU { + return s.CPU +} + +// GetMemory returns the value of Memory. +func (s *GetStatsResponseResponse) GetMemory() GetStatsResponseResponseMemory { + return s.Memory +} + +// GetUptime returns the value of Uptime. +func (s *GetStatsResponseResponse) GetUptime() float64 { + return s.Uptime +} + +// GetTimestamp returns the value of Timestamp. +func (s *GetStatsResponseResponse) GetTimestamp() float64 { + return s.Timestamp +} + +// GetUsers returns the value of Users. +func (s *GetStatsResponseResponse) GetUsers() GetStatsResponseResponseUsers { + return s.Users +} + +// GetOnlineStats returns the value of OnlineStats. +func (s *GetStatsResponseResponse) GetOnlineStats() GetStatsResponseResponseOnlineStats { + return s.OnlineStats +} + +// GetNodes returns the value of Nodes. +func (s *GetStatsResponseResponse) GetNodes() GetStatsResponseResponseNodes { + return s.Nodes +} + +// SetCPU sets the value of CPU. +func (s *GetStatsResponseResponse) SetCPU(val GetStatsResponseResponseCPU) { + s.CPU = val +} + +// SetMemory sets the value of Memory. +func (s *GetStatsResponseResponse) SetMemory(val GetStatsResponseResponseMemory) { + s.Memory = val +} + +// SetUptime sets the value of Uptime. +func (s *GetStatsResponseResponse) SetUptime(val float64) { + s.Uptime = val +} + +// SetTimestamp sets the value of Timestamp. +func (s *GetStatsResponseResponse) SetTimestamp(val float64) { + s.Timestamp = val +} + +// SetUsers sets the value of Users. +func (s *GetStatsResponseResponse) SetUsers(val GetStatsResponseResponseUsers) { + s.Users = val +} + +// SetOnlineStats sets the value of OnlineStats. +func (s *GetStatsResponseResponse) SetOnlineStats(val GetStatsResponseResponseOnlineStats) { + s.OnlineStats = val +} + +// SetNodes sets the value of Nodes. +func (s *GetStatsResponseResponse) SetNodes(val GetStatsResponseResponseNodes) { + s.Nodes = val +} + +type GetStatsResponseResponseCPU struct { + Cores float64 `json:"cores"` +} + +// GetCores returns the value of Cores. +func (s *GetStatsResponseResponseCPU) GetCores() float64 { + return s.Cores +} + +// SetCores sets the value of Cores. +func (s *GetStatsResponseResponseCPU) SetCores(val float64) { + s.Cores = val +} + +type GetStatsResponseResponseMemory struct { + Total float64 `json:"total"` + Free float64 `json:"free"` + Used float64 `json:"used"` +} + +// GetTotal returns the value of Total. +func (s *GetStatsResponseResponseMemory) GetTotal() float64 { + return s.Total +} + +// GetFree returns the value of Free. +func (s *GetStatsResponseResponseMemory) GetFree() float64 { + return s.Free +} + +// GetUsed returns the value of Used. +func (s *GetStatsResponseResponseMemory) GetUsed() float64 { + return s.Used +} + +// SetTotal sets the value of Total. +func (s *GetStatsResponseResponseMemory) SetTotal(val float64) { + s.Total = val +} + +// SetFree sets the value of Free. +func (s *GetStatsResponseResponseMemory) SetFree(val float64) { + s.Free = val +} + +// SetUsed sets the value of Used. +func (s *GetStatsResponseResponseMemory) SetUsed(val float64) { + s.Used = val +} + +type GetStatsResponseResponseNodes struct { + TotalOnline float64 `json:"totalOnline"` + TotalBytesLifetime string `json:"totalBytesLifetime"` +} + +// GetTotalOnline returns the value of TotalOnline. +func (s *GetStatsResponseResponseNodes) GetTotalOnline() float64 { + return s.TotalOnline +} + +// GetTotalBytesLifetime returns the value of TotalBytesLifetime. +func (s *GetStatsResponseResponseNodes) GetTotalBytesLifetime() string { + return s.TotalBytesLifetime +} + +// SetTotalOnline sets the value of TotalOnline. +func (s *GetStatsResponseResponseNodes) SetTotalOnline(val float64) { + s.TotalOnline = val +} + +// SetTotalBytesLifetime sets the value of TotalBytesLifetime. +func (s *GetStatsResponseResponseNodes) SetTotalBytesLifetime(val string) { + s.TotalBytesLifetime = val +} + +type GetStatsResponseResponseOnlineStats struct { + LastDay float64 `json:"lastDay"` + LastWeek float64 `json:"lastWeek"` + NeverOnline float64 `json:"neverOnline"` + OnlineNow float64 `json:"onlineNow"` +} + +// GetLastDay returns the value of LastDay. +func (s *GetStatsResponseResponseOnlineStats) GetLastDay() float64 { + return s.LastDay +} + +// GetLastWeek returns the value of LastWeek. +func (s *GetStatsResponseResponseOnlineStats) GetLastWeek() float64 { + return s.LastWeek +} + +// GetNeverOnline returns the value of NeverOnline. +func (s *GetStatsResponseResponseOnlineStats) GetNeverOnline() float64 { + return s.NeverOnline +} + +// GetOnlineNow returns the value of OnlineNow. +func (s *GetStatsResponseResponseOnlineStats) GetOnlineNow() float64 { + return s.OnlineNow +} + +// SetLastDay sets the value of LastDay. +func (s *GetStatsResponseResponseOnlineStats) SetLastDay(val float64) { + s.LastDay = val +} + +// SetLastWeek sets the value of LastWeek. +func (s *GetStatsResponseResponseOnlineStats) SetLastWeek(val float64) { + s.LastWeek = val +} + +// SetNeverOnline sets the value of NeverOnline. +func (s *GetStatsResponseResponseOnlineStats) SetNeverOnline(val float64) { + s.NeverOnline = val +} + +// SetOnlineNow sets the value of OnlineNow. +func (s *GetStatsResponseResponseOnlineStats) SetOnlineNow(val float64) { + s.OnlineNow = val +} + +type GetStatsResponseResponseUsers struct { + StatusCounts GetStatsResponseResponseUsersStatusCounts `json:"statusCounts"` + TotalUsers float64 `json:"totalUsers"` +} + +// GetStatusCounts returns the value of StatusCounts. +func (s *GetStatsResponseResponseUsers) GetStatusCounts() GetStatsResponseResponseUsersStatusCounts { + return s.StatusCounts +} + +// GetTotalUsers returns the value of TotalUsers. +func (s *GetStatsResponseResponseUsers) GetTotalUsers() float64 { + return s.TotalUsers +} + +// SetStatusCounts sets the value of StatusCounts. +func (s *GetStatsResponseResponseUsers) SetStatusCounts(val GetStatsResponseResponseUsersStatusCounts) { + s.StatusCounts = val +} + +// SetTotalUsers sets the value of TotalUsers. +func (s *GetStatsResponseResponseUsers) SetTotalUsers(val float64) { + s.TotalUsers = val +} + +type GetStatsResponseResponseUsersStatusCounts map[string]float64 + +func (s *GetStatsResponseResponseUsersStatusCounts) init() GetStatsResponseResponseUsersStatusCounts { + m := *s + if m == nil { + m = map[string]float64{} + *s = m + } + return m +} + +// Ref: #/components/schemas/GetStatusResponse +type GetStatusResponse struct { + Response GetStatusResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *GetStatusResponse) GetResponse() GetStatusResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *GetStatusResponse) SetResponse(val GetStatusResponseResponse) { + s.Response = val +} + +type GetStatusResponseResponse struct { + IsLoginAllowed bool `json:"isLoginAllowed"` + IsRegisterAllowed bool `json:"isRegisterAllowed"` + Authentication NilGetStatusResponseResponseAuthentication `json:"authentication"` + Branding GetStatusResponseResponseBranding `json:"branding"` +} + +// GetIsLoginAllowed returns the value of IsLoginAllowed. +func (s *GetStatusResponseResponse) GetIsLoginAllowed() bool { + return s.IsLoginAllowed +} + +// GetIsRegisterAllowed returns the value of IsRegisterAllowed. +func (s *GetStatusResponseResponse) GetIsRegisterAllowed() bool { + return s.IsRegisterAllowed +} + +// GetAuthentication returns the value of Authentication. +func (s *GetStatusResponseResponse) GetAuthentication() NilGetStatusResponseResponseAuthentication { + return s.Authentication +} + +// GetBranding returns the value of Branding. +func (s *GetStatusResponseResponse) GetBranding() GetStatusResponseResponseBranding { + return s.Branding +} + +// SetIsLoginAllowed sets the value of IsLoginAllowed. +func (s *GetStatusResponseResponse) SetIsLoginAllowed(val bool) { + s.IsLoginAllowed = val +} + +// SetIsRegisterAllowed sets the value of IsRegisterAllowed. +func (s *GetStatusResponseResponse) SetIsRegisterAllowed(val bool) { + s.IsRegisterAllowed = val +} + +// SetAuthentication sets the value of Authentication. +func (s *GetStatusResponseResponse) SetAuthentication(val NilGetStatusResponseResponseAuthentication) { + s.Authentication = val +} + +// SetBranding sets the value of Branding. +func (s *GetStatusResponseResponse) SetBranding(val GetStatusResponseResponseBranding) { + s.Branding = val +} + +type GetStatusResponseResponseAuthentication struct { + Passkey NilPasswordSettings `json:"passkey"` + OAuth2 GetStatusResponseResponseAuthenticationOAuth2 `json:"oauth2"` + Password NilPasswordSettings `json:"password"` +} + +// GetPasskey returns the value of Passkey. +func (s *GetStatusResponseResponseAuthentication) GetPasskey() NilPasswordSettings { + return s.Passkey +} + +// GetOAuth2 returns the value of OAuth2. +func (s *GetStatusResponseResponseAuthentication) GetOAuth2() GetStatusResponseResponseAuthenticationOAuth2 { + return s.OAuth2 +} + +// GetPassword returns the value of Password. +func (s *GetStatusResponseResponseAuthentication) GetPassword() NilPasswordSettings { + return s.Password +} + +// SetPasskey sets the value of Passkey. +func (s *GetStatusResponseResponseAuthentication) SetPasskey(val NilPasswordSettings) { + s.Passkey = val +} + +// SetOAuth2 sets the value of OAuth2. +func (s *GetStatusResponseResponseAuthentication) SetOAuth2(val GetStatusResponseResponseAuthenticationOAuth2) { + s.OAuth2 = val +} + +// SetPassword sets the value of Password. +func (s *GetStatusResponseResponseAuthentication) SetPassword(val NilPasswordSettings) { + s.Password = val +} + +type GetStatusResponseResponseAuthenticationOAuth2 struct { + Providers GetStatusResponseResponseAuthenticationOAuth2Providers `json:"providers"` +} + +// GetProviders returns the value of Providers. +func (s *GetStatusResponseResponseAuthenticationOAuth2) GetProviders() GetStatusResponseResponseAuthenticationOAuth2Providers { + return s.Providers +} + +// SetProviders sets the value of Providers. +func (s *GetStatusResponseResponseAuthenticationOAuth2) SetProviders(val GetStatusResponseResponseAuthenticationOAuth2Providers) { + s.Providers = val +} + +type GetStatusResponseResponseAuthenticationOAuth2Providers map[string]bool + +func (s *GetStatusResponseResponseAuthenticationOAuth2Providers) init() GetStatusResponseResponseAuthenticationOAuth2Providers { + m := *s + if m == nil { + m = map[string]bool{} + *s = m + } + return m +} + +type GetStatusResponseResponseBranding struct { + Title NilString `json:"title"` + LogoUrl NilString `json:"logoUrl"` +} + +// GetTitle returns the value of Title. +func (s *GetStatusResponseResponseBranding) GetTitle() NilString { + return s.Title +} + +// GetLogoUrl returns the value of LogoUrl. +func (s *GetStatusResponseResponseBranding) GetLogoUrl() NilString { + return s.LogoUrl +} + +// SetTitle sets the value of Title. +func (s *GetStatusResponseResponseBranding) SetTitle(val NilString) { + s.Title = val +} + +// SetLogoUrl sets the value of LogoUrl. +func (s *GetStatusResponseResponseBranding) SetLogoUrl(val NilString) { + s.LogoUrl = val +} + +// GetStatusResponseStatusCode wraps GetStatusResponse with StatusCode. +type GetStatusResponseStatusCode struct { + StatusCode int + Response GetStatusResponse +} + +// GetStatusCode returns the value of StatusCode. +func (s *GetStatusResponseStatusCode) GetStatusCode() int { + return s.StatusCode +} + +// GetResponse returns the value of Response. +func (s *GetStatusResponseStatusCode) GetResponse() GetStatusResponse { + return s.Response +} + +// SetStatusCode sets the value of StatusCode. +func (s *GetStatusResponseStatusCode) SetStatusCode(val int) { + s.StatusCode = val +} + +// SetResponse sets the value of Response. +func (s *GetStatusResponseStatusCode) SetResponse(val GetStatusResponse) { + s.Response = val +} + +func (*GetStatusResponseStatusCode) authGetStatusRes() {} + +// Ref: #/components/schemas/GetSubpageConfigByShortUuidRequestBody +type GetSubpageConfigByShortUuidRequestBody struct { + RequestHeaders GetSubpageConfigByShortUuidRequestBodyRequestHeaders `json:"requestHeaders"` +} + +// GetRequestHeaders returns the value of RequestHeaders. +func (s *GetSubpageConfigByShortUuidRequestBody) GetRequestHeaders() GetSubpageConfigByShortUuidRequestBodyRequestHeaders { + return s.RequestHeaders +} + +// SetRequestHeaders sets the value of RequestHeaders. +func (s *GetSubpageConfigByShortUuidRequestBody) SetRequestHeaders(val GetSubpageConfigByShortUuidRequestBodyRequestHeaders) { + s.RequestHeaders = val +} + +type GetSubpageConfigByShortUuidRequestBodyRequestHeaders map[string]string + +func (s *GetSubpageConfigByShortUuidRequestBodyRequestHeaders) init() GetSubpageConfigByShortUuidRequestBodyRequestHeaders { + m := *s + if m == nil { + m = map[string]string{} + *s = m + } + return m +} + +// Ref: #/components/schemas/GetSubpageConfigByShortUuidResponse +type GetSubpageConfigByShortUuidResponse struct { + Response GetSubpageConfigByShortUuidResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *GetSubpageConfigByShortUuidResponse) GetResponse() GetSubpageConfigByShortUuidResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *GetSubpageConfigByShortUuidResponse) SetResponse(val GetSubpageConfigByShortUuidResponseResponse) { + s.Response = val +} + +func (*GetSubpageConfigByShortUuidResponse) subscriptionsGetSubpageConfigByShortUuidRes() {} + +type GetSubpageConfigByShortUuidResponseResponse struct { + SubpageConfigUuid NilUUID `json:"subpageConfigUuid"` + WebpageAllowed bool `json:"webpageAllowed"` +} + +// GetSubpageConfigUuid returns the value of SubpageConfigUuid. +func (s *GetSubpageConfigByShortUuidResponseResponse) GetSubpageConfigUuid() NilUUID { + return s.SubpageConfigUuid +} + +// GetWebpageAllowed returns the value of WebpageAllowed. +func (s *GetSubpageConfigByShortUuidResponseResponse) GetWebpageAllowed() bool { + return s.WebpageAllowed +} + +// SetSubpageConfigUuid sets the value of SubpageConfigUuid. +func (s *GetSubpageConfigByShortUuidResponseResponse) SetSubpageConfigUuid(val NilUUID) { + s.SubpageConfigUuid = val +} + +// SetWebpageAllowed sets the value of WebpageAllowed. +func (s *GetSubpageConfigByShortUuidResponseResponse) SetWebpageAllowed(val bool) { + s.WebpageAllowed = val +} + +// Ref: #/components/schemas/GetSubscriptionRequestHistoryResponse +type GetSubscriptionRequestHistoryResponse struct { + Response UserSubscriptionHistory `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *GetSubscriptionRequestHistoryResponse) GetResponse() UserSubscriptionHistory { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *GetSubscriptionRequestHistoryResponse) SetResponse(val UserSubscriptionHistory) { + s.Response = val +} + +func (*GetSubscriptionRequestHistoryResponse) userSubscriptionRequestHistoryGetSubscriptionRequestHistoryRes() { +} + +// Ref: #/components/schemas/GetSubscriptionRequestHistoryStatsResponse +type GetSubscriptionRequestHistoryStatsResponse struct { + Response GetSubscriptionRequestHistoryStatsResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *GetSubscriptionRequestHistoryStatsResponse) GetResponse() GetSubscriptionRequestHistoryStatsResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *GetSubscriptionRequestHistoryStatsResponse) SetResponse(val GetSubscriptionRequestHistoryStatsResponseResponse) { + s.Response = val +} + +func (*GetSubscriptionRequestHistoryStatsResponse) userSubscriptionRequestHistoryGetSubscriptionRequestHistoryStatsRes() { +} + +type GetSubscriptionRequestHistoryStatsResponseResponse struct { + ByParsedApp []ByAppItem `json:"byParsedApp"` + HourlyRequestStats []GetSubscriptionRequestHistoryStatsResponseResponseHourlyRequestStatsItem `json:"hourlyRequestStats"` +} + +// GetByParsedApp returns the value of ByParsedApp. +func (s *GetSubscriptionRequestHistoryStatsResponseResponse) GetByParsedApp() []ByAppItem { + return s.ByParsedApp +} + +// GetHourlyRequestStats returns the value of HourlyRequestStats. +func (s *GetSubscriptionRequestHistoryStatsResponseResponse) GetHourlyRequestStats() []GetSubscriptionRequestHistoryStatsResponseResponseHourlyRequestStatsItem { + return s.HourlyRequestStats +} + +// SetByParsedApp sets the value of ByParsedApp. +func (s *GetSubscriptionRequestHistoryStatsResponseResponse) SetByParsedApp(val []ByAppItem) { + s.ByParsedApp = val +} + +// SetHourlyRequestStats sets the value of HourlyRequestStats. +func (s *GetSubscriptionRequestHistoryStatsResponseResponse) SetHourlyRequestStats(val []GetSubscriptionRequestHistoryStatsResponseResponseHourlyRequestStatsItem) { + s.HourlyRequestStats = val +} + +type GetSubscriptionRequestHistoryStatsResponseResponseHourlyRequestStatsItem struct { + DateTime time.Time `json:"dateTime"` + RequestCount float64 `json:"requestCount"` +} + +// GetDateTime returns the value of DateTime. +func (s *GetSubscriptionRequestHistoryStatsResponseResponseHourlyRequestStatsItem) GetDateTime() time.Time { + return s.DateTime +} + +// GetRequestCount returns the value of RequestCount. +func (s *GetSubscriptionRequestHistoryStatsResponseResponseHourlyRequestStatsItem) GetRequestCount() float64 { + return s.RequestCount +} + +// SetDateTime sets the value of DateTime. +func (s *GetSubscriptionRequestHistoryStatsResponseResponseHourlyRequestStatsItem) SetDateTime(val time.Time) { + s.DateTime = val +} + +// SetRequestCount sets the value of RequestCount. +func (s *GetSubscriptionRequestHistoryStatsResponseResponseHourlyRequestStatsItem) SetRequestCount(val float64) { + s.RequestCount = val +} + +// Ref: #/components/schemas/GetTopUsersByHwidDevicesResponse +type GetTopUsersByHwidDevicesResponse struct { + Response GetTopUsersByHwidDevicesResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *GetTopUsersByHwidDevicesResponse) GetResponse() GetTopUsersByHwidDevicesResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *GetTopUsersByHwidDevicesResponse) SetResponse(val GetTopUsersByHwidDevicesResponseResponse) { + s.Response = val +} + +func (*GetTopUsersByHwidDevicesResponse) hwidUserDevicesGetTopUsersByHwidDevicesRes() {} + +type GetTopUsersByHwidDevicesResponseResponse struct { + Users []GetTopUsersByHwidDevicesResponseResponseUsersItem `json:"users"` + Total float64 `json:"total"` +} + +// GetUsers returns the value of Users. +func (s *GetTopUsersByHwidDevicesResponseResponse) GetUsers() []GetTopUsersByHwidDevicesResponseResponseUsersItem { + return s.Users +} + +// GetTotal returns the value of Total. +func (s *GetTopUsersByHwidDevicesResponseResponse) GetTotal() float64 { + return s.Total +} + +// SetUsers sets the value of Users. +func (s *GetTopUsersByHwidDevicesResponseResponse) SetUsers(val []GetTopUsersByHwidDevicesResponseResponseUsersItem) { + s.Users = val +} + +// SetTotal sets the value of Total. +func (s *GetTopUsersByHwidDevicesResponseResponse) SetTotal(val float64) { + s.Total = val +} + +type GetTopUsersByHwidDevicesResponseResponseUsersItem struct { + UserUuid uuid.UUID `json:"userUuid"` + ID float64 `json:"id"` + Username string `json:"username"` + DevicesCount float64 `json:"devicesCount"` +} + +// GetUserUuid returns the value of UserUuid. +func (s *GetTopUsersByHwidDevicesResponseResponseUsersItem) GetUserUuid() uuid.UUID { + return s.UserUuid +} + +// GetID returns the value of ID. +func (s *GetTopUsersByHwidDevicesResponseResponseUsersItem) GetID() float64 { + return s.ID +} + +// GetUsername returns the value of Username. +func (s *GetTopUsersByHwidDevicesResponseResponseUsersItem) GetUsername() string { + return s.Username +} + +// GetDevicesCount returns the value of DevicesCount. +func (s *GetTopUsersByHwidDevicesResponseResponseUsersItem) GetDevicesCount() float64 { + return s.DevicesCount +} + +// SetUserUuid sets the value of UserUuid. +func (s *GetTopUsersByHwidDevicesResponseResponseUsersItem) SetUserUuid(val uuid.UUID) { + s.UserUuid = val +} + +// SetID sets the value of ID. +func (s *GetTopUsersByHwidDevicesResponseResponseUsersItem) SetID(val float64) { + s.ID = val +} + +// SetUsername sets the value of Username. +func (s *GetTopUsersByHwidDevicesResponseResponseUsersItem) SetUsername(val string) { + s.Username = val +} + +// SetDevicesCount sets the value of DevicesCount. +func (s *GetTopUsersByHwidDevicesResponseResponseUsersItem) SetDevicesCount(val float64) { + s.DevicesCount = val +} + +// Ref: #/components/schemas/GetTorrentBlockerReportsStatsResponse +type GetTorrentBlockerReportsStatsResponse struct { + Response GetTorrentBlockerReportsStatsResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *GetTorrentBlockerReportsStatsResponse) GetResponse() GetTorrentBlockerReportsStatsResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *GetTorrentBlockerReportsStatsResponse) SetResponse(val GetTorrentBlockerReportsStatsResponseResponse) { + s.Response = val +} + +func (*GetTorrentBlockerReportsStatsResponse) torrentBlockerReportsGetTorrentBlockerReportsStatsRes() { +} + +type GetTorrentBlockerReportsStatsResponseResponse struct { + Stats GetTorrentBlockerReportsStatsResponseResponseStats `json:"stats"` + TopUsers []GetTorrentBlockerReportsStatsResponseResponseTopUsersItem `json:"topUsers"` + TopNodes []TopNode `json:"topNodes"` +} + +// GetStats returns the value of Stats. +func (s *GetTorrentBlockerReportsStatsResponseResponse) GetStats() GetTorrentBlockerReportsStatsResponseResponseStats { + return s.Stats +} + +// GetTopUsers returns the value of TopUsers. +func (s *GetTorrentBlockerReportsStatsResponseResponse) GetTopUsers() []GetTorrentBlockerReportsStatsResponseResponseTopUsersItem { + return s.TopUsers +} + +// GetTopNodes returns the value of TopNodes. +func (s *GetTorrentBlockerReportsStatsResponseResponse) GetTopNodes() []TopNode { + return s.TopNodes +} + +// SetStats sets the value of Stats. +func (s *GetTorrentBlockerReportsStatsResponseResponse) SetStats(val GetTorrentBlockerReportsStatsResponseResponseStats) { + s.Stats = val +} + +// SetTopUsers sets the value of TopUsers. +func (s *GetTorrentBlockerReportsStatsResponseResponse) SetTopUsers(val []GetTorrentBlockerReportsStatsResponseResponseTopUsersItem) { + s.TopUsers = val +} + +// SetTopNodes sets the value of TopNodes. +func (s *GetTorrentBlockerReportsStatsResponseResponse) SetTopNodes(val []TopNode) { + s.TopNodes = val +} + +type GetTorrentBlockerReportsStatsResponseResponseStats struct { + DistinctNodes float64 `json:"distinctNodes"` + DistinctUsers float64 `json:"distinctUsers"` + TotalReports float64 `json:"totalReports"` + ReportsLast24Hours float64 `json:"reportsLast24Hours"` +} + +// GetDistinctNodes returns the value of DistinctNodes. +func (s *GetTorrentBlockerReportsStatsResponseResponseStats) GetDistinctNodes() float64 { + return s.DistinctNodes +} + +// GetDistinctUsers returns the value of DistinctUsers. +func (s *GetTorrentBlockerReportsStatsResponseResponseStats) GetDistinctUsers() float64 { + return s.DistinctUsers +} + +// GetTotalReports returns the value of TotalReports. +func (s *GetTorrentBlockerReportsStatsResponseResponseStats) GetTotalReports() float64 { + return s.TotalReports +} + +// GetReportsLast24Hours returns the value of ReportsLast24Hours. +func (s *GetTorrentBlockerReportsStatsResponseResponseStats) GetReportsLast24Hours() float64 { + return s.ReportsLast24Hours +} + +// SetDistinctNodes sets the value of DistinctNodes. +func (s *GetTorrentBlockerReportsStatsResponseResponseStats) SetDistinctNodes(val float64) { + s.DistinctNodes = val +} + +// SetDistinctUsers sets the value of DistinctUsers. +func (s *GetTorrentBlockerReportsStatsResponseResponseStats) SetDistinctUsers(val float64) { + s.DistinctUsers = val +} + +// SetTotalReports sets the value of TotalReports. +func (s *GetTorrentBlockerReportsStatsResponseResponseStats) SetTotalReports(val float64) { + s.TotalReports = val +} + +// SetReportsLast24Hours sets the value of ReportsLast24Hours. +func (s *GetTorrentBlockerReportsStatsResponseResponseStats) SetReportsLast24Hours(val float64) { + s.ReportsLast24Hours = val +} + +type GetTorrentBlockerReportsStatsResponseResponseTopUsersItem struct { + UUID uuid.UUID `json:"uuid"` + Color string `json:"color"` + Username string `json:"username"` + Total float64 `json:"total"` +} + +// GetUUID returns the value of UUID. +func (s *GetTorrentBlockerReportsStatsResponseResponseTopUsersItem) GetUUID() uuid.UUID { + return s.UUID +} + +// GetColor returns the value of Color. +func (s *GetTorrentBlockerReportsStatsResponseResponseTopUsersItem) GetColor() string { + return s.Color +} + +// GetUsername returns the value of Username. +func (s *GetTorrentBlockerReportsStatsResponseResponseTopUsersItem) GetUsername() string { + return s.Username +} + +// GetTotal returns the value of Total. +func (s *GetTorrentBlockerReportsStatsResponseResponseTopUsersItem) GetTotal() float64 { + return s.Total +} + +// SetUUID sets the value of UUID. +func (s *GetTorrentBlockerReportsStatsResponseResponseTopUsersItem) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetColor sets the value of Color. +func (s *GetTorrentBlockerReportsStatsResponseResponseTopUsersItem) SetColor(val string) { + s.Color = val +} + +// SetUsername sets the value of Username. +func (s *GetTorrentBlockerReportsStatsResponseResponseTopUsersItem) SetUsername(val string) { + s.Username = val +} + +// SetTotal sets the value of Total. +func (s *GetTorrentBlockerReportsStatsResponseResponseTopUsersItem) SetTotal(val float64) { + s.Total = val +} + +// Ref: #/components/schemas/GetUserAccessibleNodesResponse +type GetUserAccessibleNodesResponse struct { + Response GetUserAccessibleNodesResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *GetUserAccessibleNodesResponse) GetResponse() GetUserAccessibleNodesResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *GetUserAccessibleNodesResponse) SetResponse(val GetUserAccessibleNodesResponseResponse) { + s.Response = val +} + +func (*GetUserAccessibleNodesResponse) usersGetUserAccessibleNodesRes() {} + +type GetUserAccessibleNodesResponseResponse struct { + UserUuid uuid.UUID `json:"userUuid"` + ActiveNodes []GetUserAccessibleNodesResponseResponseActiveNodesItem `json:"activeNodes"` +} + +// GetUserUuid returns the value of UserUuid. +func (s *GetUserAccessibleNodesResponseResponse) GetUserUuid() uuid.UUID { + return s.UserUuid +} + +// GetActiveNodes returns the value of ActiveNodes. +func (s *GetUserAccessibleNodesResponseResponse) GetActiveNodes() []GetUserAccessibleNodesResponseResponseActiveNodesItem { + return s.ActiveNodes +} + +// SetUserUuid sets the value of UserUuid. +func (s *GetUserAccessibleNodesResponseResponse) SetUserUuid(val uuid.UUID) { + s.UserUuid = val +} + +// SetActiveNodes sets the value of ActiveNodes. +func (s *GetUserAccessibleNodesResponseResponse) SetActiveNodes(val []GetUserAccessibleNodesResponseResponseActiveNodesItem) { + s.ActiveNodes = val +} + +type GetUserAccessibleNodesResponseResponseActiveNodesItem struct { + UUID uuid.UUID `json:"uuid"` + NodeName string `json:"nodeName"` + CountryCode string `json:"countryCode"` + ConfigProfileUuid uuid.UUID `json:"configProfileUuid"` + ConfigProfileName string `json:"configProfileName"` + ActiveSquads []GetUserAccessibleNodesResponseResponseActiveNodesItemActiveSquadsItem `json:"activeSquads"` +} + +// GetUUID returns the value of UUID. +func (s *GetUserAccessibleNodesResponseResponseActiveNodesItem) GetUUID() uuid.UUID { + return s.UUID +} + +// GetNodeName returns the value of NodeName. +func (s *GetUserAccessibleNodesResponseResponseActiveNodesItem) GetNodeName() string { + return s.NodeName +} + +// GetCountryCode returns the value of CountryCode. +func (s *GetUserAccessibleNodesResponseResponseActiveNodesItem) GetCountryCode() string { + return s.CountryCode +} + +// GetConfigProfileUuid returns the value of ConfigProfileUuid. +func (s *GetUserAccessibleNodesResponseResponseActiveNodesItem) GetConfigProfileUuid() uuid.UUID { + return s.ConfigProfileUuid +} + +// GetConfigProfileName returns the value of ConfigProfileName. +func (s *GetUserAccessibleNodesResponseResponseActiveNodesItem) GetConfigProfileName() string { + return s.ConfigProfileName +} + +// GetActiveSquads returns the value of ActiveSquads. +func (s *GetUserAccessibleNodesResponseResponseActiveNodesItem) GetActiveSquads() []GetUserAccessibleNodesResponseResponseActiveNodesItemActiveSquadsItem { + return s.ActiveSquads +} + +// SetUUID sets the value of UUID. +func (s *GetUserAccessibleNodesResponseResponseActiveNodesItem) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetNodeName sets the value of NodeName. +func (s *GetUserAccessibleNodesResponseResponseActiveNodesItem) SetNodeName(val string) { + s.NodeName = val +} + +// SetCountryCode sets the value of CountryCode. +func (s *GetUserAccessibleNodesResponseResponseActiveNodesItem) SetCountryCode(val string) { + s.CountryCode = val +} + +// SetConfigProfileUuid sets the value of ConfigProfileUuid. +func (s *GetUserAccessibleNodesResponseResponseActiveNodesItem) SetConfigProfileUuid(val uuid.UUID) { + s.ConfigProfileUuid = val +} + +// SetConfigProfileName sets the value of ConfigProfileName. +func (s *GetUserAccessibleNodesResponseResponseActiveNodesItem) SetConfigProfileName(val string) { + s.ConfigProfileName = val +} + +// SetActiveSquads sets the value of ActiveSquads. +func (s *GetUserAccessibleNodesResponseResponseActiveNodesItem) SetActiveSquads(val []GetUserAccessibleNodesResponseResponseActiveNodesItemActiveSquadsItem) { + s.ActiveSquads = val +} + +type GetUserAccessibleNodesResponseResponseActiveNodesItemActiveSquadsItem struct { + SquadName string `json:"squadName"` + ActiveInbounds []string `json:"activeInbounds"` +} + +// GetSquadName returns the value of SquadName. +func (s *GetUserAccessibleNodesResponseResponseActiveNodesItemActiveSquadsItem) GetSquadName() string { + return s.SquadName +} + +// GetActiveInbounds returns the value of ActiveInbounds. +func (s *GetUserAccessibleNodesResponseResponseActiveNodesItemActiveSquadsItem) GetActiveInbounds() []string { + return s.ActiveInbounds +} + +// SetSquadName sets the value of SquadName. +func (s *GetUserAccessibleNodesResponseResponseActiveNodesItemActiveSquadsItem) SetSquadName(val string) { + s.SquadName = val +} + +// SetActiveInbounds sets the value of ActiveInbounds. +func (s *GetUserAccessibleNodesResponseResponseActiveNodesItemActiveSquadsItem) SetActiveInbounds(val []string) { + s.ActiveInbounds = val +} + +// Ref: #/components/schemas/GetUserSubscriptionRequestHistoryResponse +type GetUserSubscriptionRequestHistoryResponse struct { + Response UserSubscriptionHistory `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *GetUserSubscriptionRequestHistoryResponse) GetResponse() UserSubscriptionHistory { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *GetUserSubscriptionRequestHistoryResponse) SetResponse(val UserSubscriptionHistory) { + s.Response = val +} + +func (*GetUserSubscriptionRequestHistoryResponse) usersGetUserSubscriptionRequestHistoryRes() {} + +// Ref: #/components/schemas/Github +type Github struct { + Enabled bool `json:"enabled"` + ClientId NilString `json:"clientId"` + ClientSecret NilString `json:"clientSecret"` + AllowedEmails []string `json:"allowedEmails"` +} + +// GetEnabled returns the value of Enabled. +func (s *Github) GetEnabled() bool { + return s.Enabled +} + +// GetClientId returns the value of ClientId. +func (s *Github) GetClientId() NilString { + return s.ClientId +} + +// GetClientSecret returns the value of ClientSecret. +func (s *Github) GetClientSecret() NilString { + return s.ClientSecret +} + +// GetAllowedEmails returns the value of AllowedEmails. +func (s *Github) GetAllowedEmails() []string { + return s.AllowedEmails +} + +// SetEnabled sets the value of Enabled. +func (s *Github) SetEnabled(val bool) { + s.Enabled = val +} + +// SetClientId sets the value of ClientId. +func (s *Github) SetClientId(val NilString) { + s.ClientId = val +} + +// SetClientSecret sets the value of ClientSecret. +func (s *Github) SetClientSecret(val NilString) { + s.ClientSecret = val +} + +// SetAllowedEmails sets the value of AllowedEmails. +func (s *Github) SetAllowedEmails(val []string) { + s.AllowedEmails = val +} + +// {"markdownDescription":"**Key** and **value** of the response header will be added to the response. +// "}. +// Ref: #/components/schemas/Header +type Header struct { + // {"markdownDescription":"Key of the response header. Must comply with RFC 7230."}. + Key string `json:"key"` + // {"markdownDescription":"Value of the response header. "}. + Value string `json:"value"` +} + +// GetKey returns the value of Key. +func (s *Header) GetKey() string { + return s.Key +} + +// GetValue returns the value of Value. +func (s *Header) GetValue() string { + return s.Value +} + +// SetKey sets the value of Key. +func (s *Header) SetKey(val string) { + s.Key = val +} + +// SetValue sets the value of Value. +func (s *Header) SetValue(val string) { + s.Value = val +} + +// Ref: #/components/schemas/HostItem +type HostItem struct { + UUID uuid.UUID `json:"uuid"` + ViewPosition int `json:"viewPosition"` + Remark string `json:"remark"` + Address string `json:"address"` + Port int `json:"port"` + Path NilString `json:"path"` + Sni NilString `json:"sni"` + Host NilString `json:"host"` + Alpn NilString `json:"alpn"` + Fingerprint NilString `json:"fingerprint"` + IsDisabled OptBool `json:"isDisabled"` + SecurityLayer OptHostItemSecurityLayer `json:"securityLayer"` + XHttpExtraParams jx.Raw `json:"xHttpExtraParams"` + MuxParams jx.Raw `json:"muxParams"` + SockoptParams jx.Raw `json:"sockoptParams"` + FinalMask jx.Raw `json:"finalMask"` + Inbound InboundItem `json:"inbound"` + ServerDescription NilString `json:"serverDescription"` + Tag NilString `json:"tag"` + IsHidden OptBool `json:"isHidden"` + OverrideSniFromAddress OptBool `json:"overrideSniFromAddress"` + KeepSniBlank OptBool `json:"keepSniBlank"` + VlessRouteId NilInt `json:"vlessRouteId"` + AllowInsecure OptBool `json:"allowInsecure"` + ShuffleHost bool `json:"shuffleHost"` + MihomoX25519 bool `json:"mihomoX25519"` + Nodes []uuid.UUID `json:"nodes"` + XrayJsonTemplateUuid NilUUID `json:"xrayJsonTemplateUuid"` + ExcludedInternalSquads []uuid.UUID `json:"excludedInternalSquads"` + ExcludeFromSubscriptionTypes []HostItemExcludeFromSubscriptionTypesItem `json:"excludeFromSubscriptionTypes"` +} + +// GetUUID returns the value of UUID. +func (s *HostItem) GetUUID() uuid.UUID { + return s.UUID +} + +// GetViewPosition returns the value of ViewPosition. +func (s *HostItem) GetViewPosition() int { + return s.ViewPosition +} + +// GetRemark returns the value of Remark. +func (s *HostItem) GetRemark() string { + return s.Remark +} + +// GetAddress returns the value of Address. +func (s *HostItem) GetAddress() string { + return s.Address +} + +// GetPort returns the value of Port. +func (s *HostItem) GetPort() int { + return s.Port +} + +// GetPath returns the value of Path. +func (s *HostItem) GetPath() NilString { + return s.Path +} + +// GetSni returns the value of Sni. +func (s *HostItem) GetSni() NilString { + return s.Sni +} + +// GetHost returns the value of Host. +func (s *HostItem) GetHost() NilString { + return s.Host +} + +// GetAlpn returns the value of Alpn. +func (s *HostItem) GetAlpn() NilString { + return s.Alpn +} + +// GetFingerprint returns the value of Fingerprint. +func (s *HostItem) GetFingerprint() NilString { + return s.Fingerprint +} + +// GetIsDisabled returns the value of IsDisabled. +func (s *HostItem) GetIsDisabled() OptBool { + return s.IsDisabled +} + +// GetSecurityLayer returns the value of SecurityLayer. +func (s *HostItem) GetSecurityLayer() OptHostItemSecurityLayer { + return s.SecurityLayer +} + +// GetXHttpExtraParams returns the value of XHttpExtraParams. +func (s *HostItem) GetXHttpExtraParams() jx.Raw { + return s.XHttpExtraParams +} + +// GetMuxParams returns the value of MuxParams. +func (s *HostItem) GetMuxParams() jx.Raw { + return s.MuxParams +} + +// GetSockoptParams returns the value of SockoptParams. +func (s *HostItem) GetSockoptParams() jx.Raw { + return s.SockoptParams +} + +// GetFinalMask returns the value of FinalMask. +func (s *HostItem) GetFinalMask() jx.Raw { + return s.FinalMask +} + +// GetInbound returns the value of Inbound. +func (s *HostItem) GetInbound() InboundItem { + return s.Inbound +} + +// GetServerDescription returns the value of ServerDescription. +func (s *HostItem) GetServerDescription() NilString { + return s.ServerDescription +} + +// GetTag returns the value of Tag. +func (s *HostItem) GetTag() NilString { + return s.Tag +} + +// GetIsHidden returns the value of IsHidden. +func (s *HostItem) GetIsHidden() OptBool { + return s.IsHidden +} + +// GetOverrideSniFromAddress returns the value of OverrideSniFromAddress. +func (s *HostItem) GetOverrideSniFromAddress() OptBool { + return s.OverrideSniFromAddress +} + +// GetKeepSniBlank returns the value of KeepSniBlank. +func (s *HostItem) GetKeepSniBlank() OptBool { + return s.KeepSniBlank +} + +// GetVlessRouteId returns the value of VlessRouteId. +func (s *HostItem) GetVlessRouteId() NilInt { + return s.VlessRouteId +} + +// GetAllowInsecure returns the value of AllowInsecure. +func (s *HostItem) GetAllowInsecure() OptBool { + return s.AllowInsecure +} + +// GetShuffleHost returns the value of ShuffleHost. +func (s *HostItem) GetShuffleHost() bool { + return s.ShuffleHost +} + +// GetMihomoX25519 returns the value of MihomoX25519. +func (s *HostItem) GetMihomoX25519() bool { + return s.MihomoX25519 +} + +// GetNodes returns the value of Nodes. +func (s *HostItem) GetNodes() []uuid.UUID { + return s.Nodes +} + +// GetXrayJsonTemplateUuid returns the value of XrayJsonTemplateUuid. +func (s *HostItem) GetXrayJsonTemplateUuid() NilUUID { + return s.XrayJsonTemplateUuid +} + +// GetExcludedInternalSquads returns the value of ExcludedInternalSquads. +func (s *HostItem) GetExcludedInternalSquads() []uuid.UUID { + return s.ExcludedInternalSquads +} + +// GetExcludeFromSubscriptionTypes returns the value of ExcludeFromSubscriptionTypes. +func (s *HostItem) GetExcludeFromSubscriptionTypes() []HostItemExcludeFromSubscriptionTypesItem { + return s.ExcludeFromSubscriptionTypes +} + +// SetUUID sets the value of UUID. +func (s *HostItem) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetViewPosition sets the value of ViewPosition. +func (s *HostItem) SetViewPosition(val int) { + s.ViewPosition = val +} + +// SetRemark sets the value of Remark. +func (s *HostItem) SetRemark(val string) { + s.Remark = val +} + +// SetAddress sets the value of Address. +func (s *HostItem) SetAddress(val string) { + s.Address = val +} + +// SetPort sets the value of Port. +func (s *HostItem) SetPort(val int) { + s.Port = val +} + +// SetPath sets the value of Path. +func (s *HostItem) SetPath(val NilString) { + s.Path = val +} + +// SetSni sets the value of Sni. +func (s *HostItem) SetSni(val NilString) { + s.Sni = val +} + +// SetHost sets the value of Host. +func (s *HostItem) SetHost(val NilString) { + s.Host = val +} + +// SetAlpn sets the value of Alpn. +func (s *HostItem) SetAlpn(val NilString) { + s.Alpn = val +} + +// SetFingerprint sets the value of Fingerprint. +func (s *HostItem) SetFingerprint(val NilString) { + s.Fingerprint = val +} + +// SetIsDisabled sets the value of IsDisabled. +func (s *HostItem) SetIsDisabled(val OptBool) { + s.IsDisabled = val +} + +// SetSecurityLayer sets the value of SecurityLayer. +func (s *HostItem) SetSecurityLayer(val OptHostItemSecurityLayer) { + s.SecurityLayer = val +} + +// SetXHttpExtraParams sets the value of XHttpExtraParams. +func (s *HostItem) SetXHttpExtraParams(val jx.Raw) { + s.XHttpExtraParams = val +} + +// SetMuxParams sets the value of MuxParams. +func (s *HostItem) SetMuxParams(val jx.Raw) { + s.MuxParams = val +} + +// SetSockoptParams sets the value of SockoptParams. +func (s *HostItem) SetSockoptParams(val jx.Raw) { + s.SockoptParams = val +} + +// SetFinalMask sets the value of FinalMask. +func (s *HostItem) SetFinalMask(val jx.Raw) { + s.FinalMask = val +} + +// SetInbound sets the value of Inbound. +func (s *HostItem) SetInbound(val InboundItem) { + s.Inbound = val +} + +// SetServerDescription sets the value of ServerDescription. +func (s *HostItem) SetServerDescription(val NilString) { + s.ServerDescription = val +} + +// SetTag sets the value of Tag. +func (s *HostItem) SetTag(val NilString) { + s.Tag = val +} + +// SetIsHidden sets the value of IsHidden. +func (s *HostItem) SetIsHidden(val OptBool) { + s.IsHidden = val +} + +// SetOverrideSniFromAddress sets the value of OverrideSniFromAddress. +func (s *HostItem) SetOverrideSniFromAddress(val OptBool) { + s.OverrideSniFromAddress = val +} + +// SetKeepSniBlank sets the value of KeepSniBlank. +func (s *HostItem) SetKeepSniBlank(val OptBool) { + s.KeepSniBlank = val +} + +// SetVlessRouteId sets the value of VlessRouteId. +func (s *HostItem) SetVlessRouteId(val NilInt) { + s.VlessRouteId = val +} + +// SetAllowInsecure sets the value of AllowInsecure. +func (s *HostItem) SetAllowInsecure(val OptBool) { + s.AllowInsecure = val +} + +// SetShuffleHost sets the value of ShuffleHost. +func (s *HostItem) SetShuffleHost(val bool) { + s.ShuffleHost = val +} + +// SetMihomoX25519 sets the value of MihomoX25519. +func (s *HostItem) SetMihomoX25519(val bool) { + s.MihomoX25519 = val +} + +// SetNodes sets the value of Nodes. +func (s *HostItem) SetNodes(val []uuid.UUID) { + s.Nodes = val +} + +// SetXrayJsonTemplateUuid sets the value of XrayJsonTemplateUuid. +func (s *HostItem) SetXrayJsonTemplateUuid(val NilUUID) { + s.XrayJsonTemplateUuid = val +} + +// SetExcludedInternalSquads sets the value of ExcludedInternalSquads. +func (s *HostItem) SetExcludedInternalSquads(val []uuid.UUID) { + s.ExcludedInternalSquads = val +} + +// SetExcludeFromSubscriptionTypes sets the value of ExcludeFromSubscriptionTypes. +func (s *HostItem) SetExcludeFromSubscriptionTypes(val []HostItemExcludeFromSubscriptionTypesItem) { + s.ExcludeFromSubscriptionTypes = val +} + +type HostItemExcludeFromSubscriptionTypesItem string + +const ( + HostItemExcludeFromSubscriptionTypesItemXRAYJSON HostItemExcludeFromSubscriptionTypesItem = "XRAY_JSON" + HostItemExcludeFromSubscriptionTypesItemXRAYBASE64 HostItemExcludeFromSubscriptionTypesItem = "XRAY_BASE64" + HostItemExcludeFromSubscriptionTypesItemMIHOMO HostItemExcludeFromSubscriptionTypesItem = "MIHOMO" + HostItemExcludeFromSubscriptionTypesItemSTASH HostItemExcludeFromSubscriptionTypesItem = "STASH" + HostItemExcludeFromSubscriptionTypesItemCLASH HostItemExcludeFromSubscriptionTypesItem = "CLASH" + HostItemExcludeFromSubscriptionTypesItemSINGBOX HostItemExcludeFromSubscriptionTypesItem = "SINGBOX" +) + +// AllValues returns all HostItemExcludeFromSubscriptionTypesItem values. +func (HostItemExcludeFromSubscriptionTypesItem) AllValues() []HostItemExcludeFromSubscriptionTypesItem { + return []HostItemExcludeFromSubscriptionTypesItem{ + HostItemExcludeFromSubscriptionTypesItemXRAYJSON, + HostItemExcludeFromSubscriptionTypesItemXRAYBASE64, + HostItemExcludeFromSubscriptionTypesItemMIHOMO, + HostItemExcludeFromSubscriptionTypesItemSTASH, + HostItemExcludeFromSubscriptionTypesItemCLASH, + HostItemExcludeFromSubscriptionTypesItemSINGBOX, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s HostItemExcludeFromSubscriptionTypesItem) MarshalText() ([]byte, error) { + switch s { + case HostItemExcludeFromSubscriptionTypesItemXRAYJSON: + return []byte(s), nil + case HostItemExcludeFromSubscriptionTypesItemXRAYBASE64: + return []byte(s), nil + case HostItemExcludeFromSubscriptionTypesItemMIHOMO: + return []byte(s), nil + case HostItemExcludeFromSubscriptionTypesItemSTASH: + return []byte(s), nil + case HostItemExcludeFromSubscriptionTypesItemCLASH: + return []byte(s), nil + case HostItemExcludeFromSubscriptionTypesItemSINGBOX: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *HostItemExcludeFromSubscriptionTypesItem) UnmarshalText(data []byte) error { + switch HostItemExcludeFromSubscriptionTypesItem(data) { + case HostItemExcludeFromSubscriptionTypesItemXRAYJSON: + *s = HostItemExcludeFromSubscriptionTypesItemXRAYJSON + return nil + case HostItemExcludeFromSubscriptionTypesItemXRAYBASE64: + *s = HostItemExcludeFromSubscriptionTypesItemXRAYBASE64 + return nil + case HostItemExcludeFromSubscriptionTypesItemMIHOMO: + *s = HostItemExcludeFromSubscriptionTypesItemMIHOMO + return nil + case HostItemExcludeFromSubscriptionTypesItemSTASH: + *s = HostItemExcludeFromSubscriptionTypesItemSTASH + return nil + case HostItemExcludeFromSubscriptionTypesItemCLASH: + *s = HostItemExcludeFromSubscriptionTypesItemCLASH + return nil + case HostItemExcludeFromSubscriptionTypesItemSINGBOX: + *s = HostItemExcludeFromSubscriptionTypesItemSINGBOX + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +type HostItemSecurityLayer string + +const ( + HostItemSecurityLayerDEFAULT HostItemSecurityLayer = "DEFAULT" + HostItemSecurityLayerTLS HostItemSecurityLayer = "TLS" + HostItemSecurityLayerNONE HostItemSecurityLayer = "NONE" +) + +// AllValues returns all HostItemSecurityLayer values. +func (HostItemSecurityLayer) AllValues() []HostItemSecurityLayer { + return []HostItemSecurityLayer{ + HostItemSecurityLayerDEFAULT, + HostItemSecurityLayerTLS, + HostItemSecurityLayerNONE, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s HostItemSecurityLayer) MarshalText() ([]byte, error) { + switch s { + case HostItemSecurityLayerDEFAULT: + return []byte(s), nil + case HostItemSecurityLayerTLS: + return []byte(s), nil + case HostItemSecurityLayerNONE: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *HostItemSecurityLayer) UnmarshalText(data []byte) error { + switch HostItemSecurityLayer(data) { + case HostItemSecurityLayerDEFAULT: + *s = HostItemSecurityLayerDEFAULT + return nil + case HostItemSecurityLayerTLS: + *s = HostItemSecurityLayerTLS + return nil + case HostItemSecurityLayerNONE: + *s = HostItemSecurityLayerNONE + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/HostListResponse +type HostListResponse struct { + Response []HostItem `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *HostListResponse) GetResponse() []HostItem { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *HostListResponse) SetResponse(val []HostItem) { + s.Response = val +} + +func (*HostListResponse) hostsBulkActionsDeleteHostsRes() {} +func (*HostListResponse) hostsBulkActionsDisableHostsRes() {} +func (*HostListResponse) hostsBulkActionsEnableHostsRes() {} +func (*HostListResponse) hostsBulkActionsSetInboundToHostsRes() {} +func (*HostListResponse) hostsBulkActionsSetPortToHostsRes() {} +func (*HostListResponse) hostsGetAllHostsRes() {} + +// Ref: #/components/schemas/HostOverride +type HostOverride struct { + ServerDescription OptNilString `json:"serverDescription"` + VlessRouteId OptNilInt `json:"vlessRouteId"` +} + +// GetServerDescription returns the value of ServerDescription. +func (s *HostOverride) GetServerDescription() OptNilString { + return s.ServerDescription +} + +// GetVlessRouteId returns the value of VlessRouteId. +func (s *HostOverride) GetVlessRouteId() OptNilInt { + return s.VlessRouteId +} + +// SetServerDescription sets the value of ServerDescription. +func (s *HostOverride) SetServerDescription(val OptNilString) { + s.ServerDescription = val +} + +// SetVlessRouteId sets the value of VlessRouteId. +func (s *HostOverride) SetVlessRouteId(val OptNilInt) { + s.VlessRouteId = val +} + +// Ref: #/components/schemas/HostResponse +type HostResponse struct { + Response HostItem `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *HostResponse) GetResponse() HostItem { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *HostResponse) SetResponse(val HostItem) { + s.Response = val +} + +func (*HostResponse) hostsCreateHostRes() {} +func (*HostResponse) hostsGetOneHostRes() {} +func (*HostResponse) hostsUpdateHostRes() {} + +// Ref: #/components/schemas/HwidDevicesResponse +type HwidDevicesResponse struct { + Response AllHwidDevices `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *HwidDevicesResponse) GetResponse() AllHwidDevices { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *HwidDevicesResponse) SetResponse(val AllHwidDevices) { + s.Response = val +} + +func (*HwidDevicesResponse) hwidUserDevicesCreateUserHwidDeviceRes() {} +func (*HwidDevicesResponse) hwidUserDevicesDeleteAllUserHwidDevicesRes() {} +func (*HwidDevicesResponse) hwidUserDevicesDeleteUserHwidDeviceRes() {} +func (*HwidDevicesResponse) hwidUserDevicesGetUserHwidDevicesRes() {} + +// Ref: #/components/schemas/HwidSettings +type HwidSettings struct { + Enabled bool `json:"enabled"` + FallbackDeviceLimit float64 `json:"fallbackDeviceLimit"` + MaxDevicesAnnounce NilString `json:"maxDevicesAnnounce"` +} + +// GetEnabled returns the value of Enabled. +func (s *HwidSettings) GetEnabled() bool { + return s.Enabled +} + +// GetFallbackDeviceLimit returns the value of FallbackDeviceLimit. +func (s *HwidSettings) GetFallbackDeviceLimit() float64 { + return s.FallbackDeviceLimit +} + +// GetMaxDevicesAnnounce returns the value of MaxDevicesAnnounce. +func (s *HwidSettings) GetMaxDevicesAnnounce() NilString { + return s.MaxDevicesAnnounce +} + +// SetEnabled sets the value of Enabled. +func (s *HwidSettings) SetEnabled(val bool) { + s.Enabled = val +} + +// SetFallbackDeviceLimit sets the value of FallbackDeviceLimit. +func (s *HwidSettings) SetFallbackDeviceLimit(val float64) { + s.FallbackDeviceLimit = val +} + +// SetMaxDevicesAnnounce sets the value of MaxDevicesAnnounce. +func (s *HwidSettings) SetMaxDevicesAnnounce(val NilString) { + s.MaxDevicesAnnounce = val +} + +// Ref: #/components/schemas/Inbound +type Inbound struct { + UUID uuid.UUID `json:"uuid"` + ProfileUuid uuid.UUID `json:"profileUuid"` + Tag string `json:"tag"` + Type string `json:"type"` + Network NilString `json:"network"` + Security NilString `json:"security"` + Port NilFloat64 `json:"port"` + RawInbound jx.Raw `json:"rawInbound"` +} + +// GetUUID returns the value of UUID. +func (s *Inbound) GetUUID() uuid.UUID { + return s.UUID +} + +// GetProfileUuid returns the value of ProfileUuid. +func (s *Inbound) GetProfileUuid() uuid.UUID { + return s.ProfileUuid +} + +// GetTag returns the value of Tag. +func (s *Inbound) GetTag() string { + return s.Tag +} + +// GetType returns the value of Type. +func (s *Inbound) GetType() string { + return s.Type +} + +// GetNetwork returns the value of Network. +func (s *Inbound) GetNetwork() NilString { + return s.Network +} + +// GetSecurity returns the value of Security. +func (s *Inbound) GetSecurity() NilString { + return s.Security +} + +// GetPort returns the value of Port. +func (s *Inbound) GetPort() NilFloat64 { + return s.Port +} + +// GetRawInbound returns the value of RawInbound. +func (s *Inbound) GetRawInbound() jx.Raw { + return s.RawInbound +} + +// SetUUID sets the value of UUID. +func (s *Inbound) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetProfileUuid sets the value of ProfileUuid. +func (s *Inbound) SetProfileUuid(val uuid.UUID) { + s.ProfileUuid = val +} + +// SetTag sets the value of Tag. +func (s *Inbound) SetTag(val string) { + s.Tag = val +} + +// SetType sets the value of Type. +func (s *Inbound) SetType(val string) { + s.Type = val +} + +// SetNetwork sets the value of Network. +func (s *Inbound) SetNetwork(val NilString) { + s.Network = val +} + +// SetSecurity sets the value of Security. +func (s *Inbound) SetSecurity(val NilString) { + s.Security = val +} + +// SetPort sets the value of Port. +func (s *Inbound) SetPort(val NilFloat64) { + s.Port = val +} + +// SetRawInbound sets the value of RawInbound. +func (s *Inbound) SetRawInbound(val jx.Raw) { + s.RawInbound = val +} + +// Ref: #/components/schemas/InboundItem +type InboundItem struct { + ConfigProfileUuid NilUUID `json:"configProfileUuid"` + ConfigProfileInboundUuid NilUUID `json:"configProfileInboundUuid"` +} + +// GetConfigProfileUuid returns the value of ConfigProfileUuid. +func (s *InboundItem) GetConfigProfileUuid() NilUUID { + return s.ConfigProfileUuid +} + +// GetConfigProfileInboundUuid returns the value of ConfigProfileInboundUuid. +func (s *InboundItem) GetConfigProfileInboundUuid() NilUUID { + return s.ConfigProfileInboundUuid +} + +// SetConfigProfileUuid sets the value of ConfigProfileUuid. +func (s *InboundItem) SetConfigProfileUuid(val NilUUID) { + s.ConfigProfileUuid = val +} + +// SetConfigProfileInboundUuid sets the value of ConfigProfileInboundUuid. +func (s *InboundItem) SetConfigProfileInboundUuid(val NilUUID) { + s.ConfigProfileInboundUuid = val +} + +// Ref: #/components/schemas/InboundRef +type InboundRef struct { + ConfigProfileUuid uuid.UUID `json:"configProfileUuid"` + ConfigProfileInboundUuid uuid.UUID `json:"configProfileInboundUuid"` +} + +// GetConfigProfileUuid returns the value of ConfigProfileUuid. +func (s *InboundRef) GetConfigProfileUuid() uuid.UUID { + return s.ConfigProfileUuid +} + +// GetConfigProfileInboundUuid returns the value of ConfigProfileInboundUuid. +func (s *InboundRef) GetConfigProfileInboundUuid() uuid.UUID { + return s.ConfigProfileInboundUuid +} + +// SetConfigProfileUuid sets the value of ConfigProfileUuid. +func (s *InboundRef) SetConfigProfileUuid(val uuid.UUID) { + s.ConfigProfileUuid = val +} + +// SetConfigProfileInboundUuid sets the value of ConfigProfileInboundUuid. +func (s *InboundRef) SetConfigProfileInboundUuid(val uuid.UUID) { + s.ConfigProfileInboundUuid = val +} + +// Ref: #/components/schemas/InboundsResponse +type InboundsResponse struct { + Response InboundsResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *InboundsResponse) GetResponse() InboundsResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *InboundsResponse) SetResponse(val InboundsResponseResponse) { + s.Response = val +} + +func (*InboundsResponse) configProfileGetAllInboundsRes() {} +func (*InboundsResponse) configProfileGetInboundsByProfileUuidRes() {} + +type InboundsResponseResponse struct { + Total float64 `json:"total"` + Inbounds []InboundsResponseResponseInboundsItem `json:"inbounds"` +} + +// GetTotal returns the value of Total. +func (s *InboundsResponseResponse) GetTotal() float64 { + return s.Total +} + +// GetInbounds returns the value of Inbounds. +func (s *InboundsResponseResponse) GetInbounds() []InboundsResponseResponseInboundsItem { + return s.Inbounds +} + +// SetTotal sets the value of Total. +func (s *InboundsResponseResponse) SetTotal(val float64) { + s.Total = val +} + +// SetInbounds sets the value of Inbounds. +func (s *InboundsResponseResponse) SetInbounds(val []InboundsResponseResponseInboundsItem) { + s.Inbounds = val +} + +type InboundsResponseResponseInboundsItem struct { + UUID uuid.UUID `json:"uuid"` + ProfileUuid uuid.UUID `json:"profileUuid"` + Tag string `json:"tag"` + Type string `json:"type"` + Network NilString `json:"network"` + Security NilString `json:"security"` + Port NilFloat64 `json:"port"` + RawInbound jx.Raw `json:"rawInbound"` + ActiveSquads []uuid.UUID `json:"activeSquads"` +} + +// GetUUID returns the value of UUID. +func (s *InboundsResponseResponseInboundsItem) GetUUID() uuid.UUID { + return s.UUID +} + +// GetProfileUuid returns the value of ProfileUuid. +func (s *InboundsResponseResponseInboundsItem) GetProfileUuid() uuid.UUID { + return s.ProfileUuid +} + +// GetTag returns the value of Tag. +func (s *InboundsResponseResponseInboundsItem) GetTag() string { + return s.Tag +} + +// GetType returns the value of Type. +func (s *InboundsResponseResponseInboundsItem) GetType() string { + return s.Type +} + +// GetNetwork returns the value of Network. +func (s *InboundsResponseResponseInboundsItem) GetNetwork() NilString { + return s.Network +} + +// GetSecurity returns the value of Security. +func (s *InboundsResponseResponseInboundsItem) GetSecurity() NilString { + return s.Security +} + +// GetPort returns the value of Port. +func (s *InboundsResponseResponseInboundsItem) GetPort() NilFloat64 { + return s.Port +} + +// GetRawInbound returns the value of RawInbound. +func (s *InboundsResponseResponseInboundsItem) GetRawInbound() jx.Raw { + return s.RawInbound +} + +// GetActiveSquads returns the value of ActiveSquads. +func (s *InboundsResponseResponseInboundsItem) GetActiveSquads() []uuid.UUID { + return s.ActiveSquads +} + +// SetUUID sets the value of UUID. +func (s *InboundsResponseResponseInboundsItem) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetProfileUuid sets the value of ProfileUuid. +func (s *InboundsResponseResponseInboundsItem) SetProfileUuid(val uuid.UUID) { + s.ProfileUuid = val +} + +// SetTag sets the value of Tag. +func (s *InboundsResponseResponseInboundsItem) SetTag(val string) { + s.Tag = val +} + +// SetType sets the value of Type. +func (s *InboundsResponseResponseInboundsItem) SetType(val string) { + s.Type = val +} + +// SetNetwork sets the value of Network. +func (s *InboundsResponseResponseInboundsItem) SetNetwork(val NilString) { + s.Network = val +} + +// SetSecurity sets the value of Security. +func (s *InboundsResponseResponseInboundsItem) SetSecurity(val NilString) { + s.Security = val +} + +// SetPort sets the value of Port. +func (s *InboundsResponseResponseInboundsItem) SetPort(val NilFloat64) { + s.Port = val +} + +// SetRawInbound sets the value of RawInbound. +func (s *InboundsResponseResponseInboundsItem) SetRawInbound(val jx.Raw) { + s.RawInbound = val +} + +// SetActiveSquads sets the value of ActiveSquads. +func (s *InboundsResponseResponseInboundsItem) SetActiveSquads(val []uuid.UUID) { + s.ActiveSquads = val +} + +// Ref: #/components/schemas/InboundsStat +type InboundsStat struct { + Tag string `json:"tag"` + Upload string `json:"upload"` + Download string `json:"download"` +} + +// GetTag returns the value of Tag. +func (s *InboundsStat) GetTag() string { + return s.Tag +} + +// GetUpload returns the value of Upload. +func (s *InboundsStat) GetUpload() string { + return s.Upload +} + +// GetDownload returns the value of Download. +func (s *InboundsStat) GetDownload() string { + return s.Download +} + +// SetTag sets the value of Tag. +func (s *InboundsStat) SetTag(val string) { + s.Tag = val +} + +// SetUpload sets the value of Upload. +func (s *InboundsStat) SetUpload(val string) { + s.Upload = val +} + +// SetDownload sets the value of Download. +func (s *InboundsStat) SetDownload(val string) { + s.Download = val +} + +// Ref: #/components/schemas/InfraProviderResponseResponse +type InfraProviderResponseResponse struct { + Response Provider `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *InfraProviderResponseResponse) GetResponse() Provider { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *InfraProviderResponseResponse) SetResponse(val Provider) { + s.Response = val +} + +func (*InfraProviderResponseResponse) infraBillingCreateInfraProviderRes() {} +func (*InfraProviderResponseResponse) infraBillingGetInfraProviderByUuidRes() {} +func (*InfraProviderResponseResponse) infraBillingUpdateInfraProviderRes() {} + +// Ref: #/components/schemas/InterfaceItem +type InterfaceItem struct { + Interface string `json:"interface"` + RxBytesPerSec float64 `json:"rxBytesPerSec"` + TxBytesPerSec float64 `json:"txBytesPerSec"` + RxTotal float64 `json:"rxTotal"` + TxTotal float64 `json:"txTotal"` +} + +// GetInterface returns the value of Interface. +func (s *InterfaceItem) GetInterface() string { + return s.Interface +} + +// GetRxBytesPerSec returns the value of RxBytesPerSec. +func (s *InterfaceItem) GetRxBytesPerSec() float64 { + return s.RxBytesPerSec +} + +// GetTxBytesPerSec returns the value of TxBytesPerSec. +func (s *InterfaceItem) GetTxBytesPerSec() float64 { + return s.TxBytesPerSec +} + +// GetRxTotal returns the value of RxTotal. +func (s *InterfaceItem) GetRxTotal() float64 { + return s.RxTotal +} + +// GetTxTotal returns the value of TxTotal. +func (s *InterfaceItem) GetTxTotal() float64 { + return s.TxTotal +} + +// SetInterface sets the value of Interface. +func (s *InterfaceItem) SetInterface(val string) { + s.Interface = val +} + +// SetRxBytesPerSec sets the value of RxBytesPerSec. +func (s *InterfaceItem) SetRxBytesPerSec(val float64) { + s.RxBytesPerSec = val +} + +// SetTxBytesPerSec sets the value of TxBytesPerSec. +func (s *InterfaceItem) SetTxBytesPerSec(val float64) { + s.TxBytesPerSec = val +} + +// SetRxTotal sets the value of RxTotal. +func (s *InterfaceItem) SetRxTotal(val float64) { + s.RxTotal = val +} + +// SetTxTotal sets the value of TxTotal. +func (s *InterfaceItem) SetTxTotal(val float64) { + s.TxTotal = val +} + +// Ref: #/components/schemas/InternalServerError +type InternalServerError struct { + Timestamp OptString `json:"timestamp"` + Path OptString `json:"path"` + Message OptString `json:"message"` + ErrorCode OptString `json:"errorCode"` +} + +// GetTimestamp returns the value of Timestamp. +func (s *InternalServerError) GetTimestamp() OptString { + return s.Timestamp +} + +// GetPath returns the value of Path. +func (s *InternalServerError) GetPath() OptString { + return s.Path +} + +// GetMessage returns the value of Message. +func (s *InternalServerError) GetMessage() OptString { + return s.Message +} + +// GetErrorCode returns the value of ErrorCode. +func (s *InternalServerError) GetErrorCode() OptString { + return s.ErrorCode +} + +// SetTimestamp sets the value of Timestamp. +func (s *InternalServerError) SetTimestamp(val OptString) { + s.Timestamp = val +} + +// SetPath sets the value of Path. +func (s *InternalServerError) SetPath(val OptString) { + s.Path = val +} + +// SetMessage sets the value of Message. +func (s *InternalServerError) SetMessage(val OptString) { + s.Message = val +} + +// SetErrorCode sets the value of ErrorCode. +func (s *InternalServerError) SetErrorCode(val OptString) { + s.ErrorCode = val +} + +func (*InternalServerError) apiTokensCreateRes() {} +func (*InternalServerError) apiTokensDeleteRes() {} +func (*InternalServerError) apiTokensFindAllRes() {} +func (*InternalServerError) authGetStatusRes() {} +func (*InternalServerError) authLoginRes() {} +func (*InternalServerError) authOauth2AuthorizeRes() {} +func (*InternalServerError) authOauth2CallbackRes() {} +func (*InternalServerError) authPasskeyAuthenticationOptionsRes() {} +func (*InternalServerError) authPasskeyAuthenticationVerifyRes() {} +func (*InternalServerError) authRegisterRes() {} +func (*InternalServerError) bandwidthStatsNodesGetNodeUserUsageRes() {} +func (*InternalServerError) bandwidthStatsNodesGetStatsNodeUsersUsageRes() {} +func (*InternalServerError) bandwidthStatsUsersGetStatsNodesUsageRes() {} +func (*InternalServerError) bandwidthStatsUsersGetUserUsageByRangeRes() {} +func (*InternalServerError) configProfileCreateConfigProfileRes() {} +func (*InternalServerError) configProfileDeleteConfigProfileByUuidRes() {} +func (*InternalServerError) configProfileGetAllInboundsRes() {} +func (*InternalServerError) configProfileGetComputedConfigProfileByUuidRes() {} +func (*InternalServerError) configProfileGetConfigProfileByUuidRes() {} +func (*InternalServerError) configProfileGetConfigProfilesRes() {} +func (*InternalServerError) configProfileGetInboundsByProfileUuidRes() {} +func (*InternalServerError) configProfileReorderConfigProfilesRes() {} +func (*InternalServerError) configProfileUpdateConfigProfileRes() {} +func (*InternalServerError) externalSquadAddUsersToExternalSquadRes() {} +func (*InternalServerError) externalSquadCreateExternalSquadRes() {} +func (*InternalServerError) externalSquadDeleteExternalSquadRes() {} +func (*InternalServerError) externalSquadGetExternalSquadByUuidRes() {} +func (*InternalServerError) externalSquadGetExternalSquadsRes() {} +func (*InternalServerError) externalSquadRemoveUsersFromExternalSquadRes() {} +func (*InternalServerError) externalSquadReorderExternalSquadsRes() {} +func (*InternalServerError) externalSquadUpdateExternalSquadRes() {} +func (*InternalServerError) hostsBulkActionsDeleteHostsRes() {} +func (*InternalServerError) hostsBulkActionsDisableHostsRes() {} +func (*InternalServerError) hostsBulkActionsEnableHostsRes() {} +func (*InternalServerError) hostsBulkActionsSetInboundToHostsRes() {} +func (*InternalServerError) hostsBulkActionsSetPortToHostsRes() {} +func (*InternalServerError) hostsCreateHostRes() {} +func (*InternalServerError) hostsDeleteHostRes() {} +func (*InternalServerError) hostsGetAllHostTagsRes() {} +func (*InternalServerError) hostsGetAllHostsRes() {} +func (*InternalServerError) hostsGetOneHostRes() {} +func (*InternalServerError) hostsReorderHostsRes() {} +func (*InternalServerError) hostsUpdateHostRes() {} +func (*InternalServerError) hwidUserDevicesCreateUserHwidDeviceRes() {} +func (*InternalServerError) hwidUserDevicesDeleteAllUserHwidDevicesRes() {} +func (*InternalServerError) hwidUserDevicesDeleteUserHwidDeviceRes() {} +func (*InternalServerError) hwidUserDevicesGetAllUsersRes() {} +func (*InternalServerError) hwidUserDevicesGetHwidDevicesStatsRes() {} +func (*InternalServerError) hwidUserDevicesGetTopUsersByHwidDevicesRes() {} +func (*InternalServerError) hwidUserDevicesGetUserHwidDevicesRes() {} +func (*InternalServerError) infraBillingCreateInfraBillingHistoryRecordRes() {} +func (*InternalServerError) infraBillingCreateInfraBillingNodeRes() {} +func (*InternalServerError) infraBillingCreateInfraProviderRes() {} +func (*InternalServerError) infraBillingDeleteInfraBillingHistoryRecordByUuidRes() {} +func (*InternalServerError) infraBillingDeleteInfraBillingNodeByUuidRes() {} +func (*InternalServerError) infraBillingDeleteInfraProviderByUuidRes() {} +func (*InternalServerError) infraBillingGetBillingNodesRes() {} +func (*InternalServerError) infraBillingGetInfraBillingHistoryRecordsRes() {} +func (*InternalServerError) infraBillingGetInfraProviderByUuidRes() {} +func (*InternalServerError) infraBillingGetInfraProvidersRes() {} +func (*InternalServerError) infraBillingUpdateInfraBillingNodeRes() {} +func (*InternalServerError) infraBillingUpdateInfraProviderRes() {} +func (*InternalServerError) internalSquadAddUsersToInternalSquadRes() {} +func (*InternalServerError) internalSquadCreateInternalSquadRes() {} +func (*InternalServerError) internalSquadDeleteInternalSquadRes() {} +func (*InternalServerError) internalSquadGetInternalSquadAccessibleNodesRes() {} +func (*InternalServerError) internalSquadGetInternalSquadByUuidRes() {} +func (*InternalServerError) internalSquadGetInternalSquadsRes() {} +func (*InternalServerError) internalSquadRemoveUsersFromInternalSquadRes() {} +func (*InternalServerError) internalSquadReorderInternalSquadsRes() {} +func (*InternalServerError) internalSquadUpdateInternalSquadRes() {} +func (*InternalServerError) ipControlDropConnectionsRes() {} +func (*InternalServerError) ipControlFetchUserIpsRes() {} +func (*InternalServerError) ipControlFetchUsersIpsRes() {} +func (*InternalServerError) ipControlGetFetchIpsResultRes() {} +func (*InternalServerError) ipControlGetFetchUsersIpsResultRes() {} +func (*InternalServerError) keygenGenerateKeyRes() {} +func (*InternalServerError) metadataGetNodeMetadataRes() {} +func (*InternalServerError) metadataGetUserMetadataRes() {} +func (*InternalServerError) metadataUpsertNodeMetadataRes() {} +func (*InternalServerError) metadataUpsertUserMetadataRes() {} +func (*InternalServerError) nodePluginCloneNodePluginRes() {} +func (*InternalServerError) nodePluginCreateConfigRes() {} +func (*InternalServerError) nodePluginDeleteConfigRes() {} +func (*InternalServerError) nodePluginGetAllConfigsRes() {} +func (*InternalServerError) nodePluginGetConfigByUuidRes() {} +func (*InternalServerError) nodePluginPluginExecutorRes() {} +func (*InternalServerError) nodePluginReorderNodePluginsRes() {} +func (*InternalServerError) nodePluginUpdateConfigRes() {} +func (*InternalServerError) nodesBulkNodesActionsRes() {} +func (*InternalServerError) nodesBulkNodesUpdateRes() {} +func (*InternalServerError) nodesCreateNodeRes() {} +func (*InternalServerError) nodesDeleteNodeRes() {} +func (*InternalServerError) nodesDisableNodeRes() {} +func (*InternalServerError) nodesEnableNodeRes() {} +func (*InternalServerError) nodesGetAllNodesRes() {} +func (*InternalServerError) nodesGetAllNodesTagsRes() {} +func (*InternalServerError) nodesGetOneNodeRes() {} +func (*InternalServerError) nodesProfileModificationRes() {} +func (*InternalServerError) nodesReorderNodesRes() {} +func (*InternalServerError) nodesResetNodeTrafficRes() {} +func (*InternalServerError) nodesRestartAllNodesRes() {} +func (*InternalServerError) nodesRestartNodeRes() {} +func (*InternalServerError) nodesUpdateNodeRes() {} +func (*InternalServerError) nodesUsageHistoryGetStatsNodesUsageRes() {} +func (*InternalServerError) passkeyDeletePasskeyRes() {} +func (*InternalServerError) passkeyGetActivePasskeysRes() {} +func (*InternalServerError) passkeyPasskeyRegistrationOptionsRes() {} +func (*InternalServerError) passkeyPasskeyRegistrationVerifyRes() {} +func (*InternalServerError) passkeyUpdatePasskeyRes() {} +func (*InternalServerError) remnawaveSettingsGetSettingsRes() {} +func (*InternalServerError) remnawaveSettingsUpdateSettingsRes() {} +func (*InternalServerError) snippetsCreateSnippetRes() {} +func (*InternalServerError) snippetsDeleteSnippetByNameRes() {} +func (*InternalServerError) snippetsGetSnippetsRes() {} +func (*InternalServerError) snippetsUpdateSnippetRes() {} +func (*InternalServerError) subscriptionGetSubscriptionInfoByShortUuidRes() {} +func (*InternalServerError) subscriptionPageConfigCloneSubscriptionPageConfigRes() {} +func (*InternalServerError) subscriptionPageConfigCreateConfigRes() {} +func (*InternalServerError) subscriptionPageConfigDeleteConfigRes() {} +func (*InternalServerError) subscriptionPageConfigGetAllConfigsRes() {} +func (*InternalServerError) subscriptionPageConfigGetConfigByUuidRes() {} +func (*InternalServerError) subscriptionPageConfigReorderSubscriptionPageConfigsRes() {} +func (*InternalServerError) subscriptionPageConfigUpdateConfigRes() {} +func (*InternalServerError) subscriptionSettingsGetSettingsRes() {} +func (*InternalServerError) subscriptionSettingsUpdateSettingsRes() {} +func (*InternalServerError) subscriptionTemplateCreateTemplateRes() {} +func (*InternalServerError) subscriptionTemplateDeleteTemplateRes() {} +func (*InternalServerError) subscriptionTemplateGetAllTemplatesRes() {} +func (*InternalServerError) subscriptionTemplateGetTemplateByUuidRes() {} +func (*InternalServerError) subscriptionTemplateReorderSubscriptionTemplatesRes() {} +func (*InternalServerError) subscriptionTemplateUpdateTemplateRes() {} +func (*InternalServerError) subscriptionsGetAllSubscriptionsRes() {} +func (*InternalServerError) subscriptionsGetConnectionKeysByUuidRes() {} +func (*InternalServerError) subscriptionsGetRawSubscriptionByShortUuidRes() {} +func (*InternalServerError) subscriptionsGetSubpageConfigByShortUuidRes() {} +func (*InternalServerError) subscriptionsGetSubscriptionByShortUuidProtectedRes() {} +func (*InternalServerError) subscriptionsGetSubscriptionByUsernameRes() {} +func (*InternalServerError) subscriptionsGetSubscriptionByUuidRes() {} +func (*InternalServerError) systemDebugSrrMatcherRes() {} +func (*InternalServerError) systemEncryptHappCryptoLinkRes() {} +func (*InternalServerError) systemGetBandwidthStatsRes() {} +func (*InternalServerError) systemGetMetadataRes() {} +func (*InternalServerError) systemGetNodesMetricsRes() {} +func (*InternalServerError) systemGetNodesStatisticsRes() {} +func (*InternalServerError) systemGetRecapRes() {} +func (*InternalServerError) systemGetRemnawaveHealthRes() {} +func (*InternalServerError) systemGetStatsRes() {} +func (*InternalServerError) systemGetX25519KeypairsRes() {} +func (*InternalServerError) torrentBlockerReportsGetTorrentBlockerReportsRes() {} +func (*InternalServerError) torrentBlockerReportsGetTorrentBlockerReportsStatsRes() {} +func (*InternalServerError) torrentBlockerReportsTruncateTorrentBlockerReportsRes() {} +func (*InternalServerError) userSubscriptionRequestHistoryGetSubscriptionRequestHistoryRes() {} +func (*InternalServerError) userSubscriptionRequestHistoryGetSubscriptionRequestHistoryStatsRes() {} +func (*InternalServerError) usersBulkActionsBulkAllExtendExpirationDateRes() {} +func (*InternalServerError) usersBulkActionsBulkAllResetUserTrafficRes() {} +func (*InternalServerError) usersBulkActionsBulkDeleteUsersByStatusRes() {} +func (*InternalServerError) usersBulkActionsBulkDeleteUsersRes() {} +func (*InternalServerError) usersBulkActionsBulkExtendExpirationDateRes() {} +func (*InternalServerError) usersBulkActionsBulkResetUserTrafficRes() {} +func (*InternalServerError) usersBulkActionsBulkRevokeUsersSubscriptionRes() {} +func (*InternalServerError) usersBulkActionsBulkUpdateAllUsersRes() {} +func (*InternalServerError) usersBulkActionsBulkUpdateUsersInternalSquadsRes() {} +func (*InternalServerError) usersBulkActionsBulkUpdateUsersRes() {} +func (*InternalServerError) usersCreateUserRes() {} +func (*InternalServerError) usersDeleteUserRes() {} +func (*InternalServerError) usersDisableUserRes() {} +func (*InternalServerError) usersEnableUserRes() {} +func (*InternalServerError) usersGetAllTagsRes() {} +func (*InternalServerError) usersGetAllUsersRes() {} +func (*InternalServerError) usersGetUserAccessibleNodesRes() {} +func (*InternalServerError) usersGetUserByIdRes() {} +func (*InternalServerError) usersGetUserByShortUuidRes() {} +func (*InternalServerError) usersGetUserByTelegramIdRes() {} +func (*InternalServerError) usersGetUserByUsernameRes() {} +func (*InternalServerError) usersGetUserByUuidRes() {} +func (*InternalServerError) usersGetUserSubscriptionRequestHistoryRes() {} +func (*InternalServerError) usersGetUsersByEmailRes() {} +func (*InternalServerError) usersGetUsersByTagRes() {} +func (*InternalServerError) usersResetUserTrafficRes() {} +func (*InternalServerError) usersResolveUserRes() {} +func (*InternalServerError) usersRevokeUserSubscriptionRes() {} +func (*InternalServerError) usersUpdateUserRes() {} + +// Ref: #/components/schemas/InternalSquad +type InternalSquad struct { + UUID uuid.UUID `json:"uuid"` + ViewPosition int `json:"viewPosition"` + Name string `json:"name"` + Info InternalSquadsResponInfoItem `json:"info"` + Inbounds []Inbound `json:"inbounds"` + CreatedAt time.Time `json:"createdAt"` + UpdatedAt time.Time `json:"updatedAt"` +} + +// GetUUID returns the value of UUID. +func (s *InternalSquad) GetUUID() uuid.UUID { + return s.UUID +} + +// GetViewPosition returns the value of ViewPosition. +func (s *InternalSquad) GetViewPosition() int { + return s.ViewPosition +} + +// GetName returns the value of Name. +func (s *InternalSquad) GetName() string { + return s.Name +} + +// GetInfo returns the value of Info. +func (s *InternalSquad) GetInfo() InternalSquadsResponInfoItem { + return s.Info +} + +// GetInbounds returns the value of Inbounds. +func (s *InternalSquad) GetInbounds() []Inbound { + return s.Inbounds +} + +// GetCreatedAt returns the value of CreatedAt. +func (s *InternalSquad) GetCreatedAt() time.Time { + return s.CreatedAt +} + +// GetUpdatedAt returns the value of UpdatedAt. +func (s *InternalSquad) GetUpdatedAt() time.Time { + return s.UpdatedAt +} + +// SetUUID sets the value of UUID. +func (s *InternalSquad) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetViewPosition sets the value of ViewPosition. +func (s *InternalSquad) SetViewPosition(val int) { + s.ViewPosition = val +} + +// SetName sets the value of Name. +func (s *InternalSquad) SetName(val string) { + s.Name = val +} + +// SetInfo sets the value of Info. +func (s *InternalSquad) SetInfo(val InternalSquadsResponInfoItem) { + s.Info = val +} + +// SetInbounds sets the value of Inbounds. +func (s *InternalSquad) SetInbounds(val []Inbound) { + s.Inbounds = val +} + +// SetCreatedAt sets the value of CreatedAt. +func (s *InternalSquad) SetCreatedAt(val time.Time) { + s.CreatedAt = val +} + +// SetUpdatedAt sets the value of UpdatedAt. +func (s *InternalSquad) SetUpdatedAt(val time.Time) { + s.UpdatedAt = val +} + +// InternalSquadCreateInternalSquadConflict is response for InternalSquadCreateInternalSquad operation. +type InternalSquadCreateInternalSquadConflict struct{} + +func (*InternalSquadCreateInternalSquadConflict) internalSquadCreateInternalSquadRes() {} + +// Ref: #/components/schemas/InternalSquadResponseResponse +type InternalSquadResponseResponse struct { + Response InternalSquad `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *InternalSquadResponseResponse) GetResponse() InternalSquad { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *InternalSquadResponseResponse) SetResponse(val InternalSquad) { + s.Response = val +} + +func (*InternalSquadResponseResponse) internalSquadCreateInternalSquadRes() {} +func (*InternalSquadResponseResponse) internalSquadGetInternalSquadByUuidRes() {} +func (*InternalSquadResponseResponse) internalSquadUpdateInternalSquadRes() {} + +// InternalSquadUpdateInternalSquadConflict is response for InternalSquadUpdateInternalSquad operation. +type InternalSquadUpdateInternalSquadConflict struct{} + +func (*InternalSquadUpdateInternalSquadConflict) internalSquadUpdateInternalSquadRes() {} + +// Ref: #/components/schemas/InternalSquadsResponInfoItem +type InternalSquadsResponInfoItem struct { + MembersCount float64 `json:"membersCount"` + InboundsCount float64 `json:"inboundsCount"` +} + +// GetMembersCount returns the value of MembersCount. +func (s *InternalSquadsResponInfoItem) GetMembersCount() float64 { + return s.MembersCount +} + +// GetInboundsCount returns the value of InboundsCount. +func (s *InternalSquadsResponInfoItem) GetInboundsCount() float64 { + return s.InboundsCount +} + +// SetMembersCount sets the value of MembersCount. +func (s *InternalSquadsResponInfoItem) SetMembersCount(val float64) { + s.MembersCount = val +} + +// SetInboundsCount sets the value of InboundsCount. +func (s *InternalSquadsResponInfoItem) SetInboundsCount(val float64) { + s.InboundsCount = val +} + +// Ref: #/components/schemas/InternalSquadsResponse +type InternalSquadsResponse struct { + Response InternalSquadsResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *InternalSquadsResponse) GetResponse() InternalSquadsResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *InternalSquadsResponse) SetResponse(val InternalSquadsResponseResponse) { + s.Response = val +} + +func (*InternalSquadsResponse) internalSquadGetInternalSquadsRes() {} +func (*InternalSquadsResponse) internalSquadReorderInternalSquadsRes() {} + +type InternalSquadsResponseResponse struct { + Total float64 `json:"total"` + InternalSquads []InternalSquad `json:"internalSquads"` +} + +// GetTotal returns the value of Total. +func (s *InternalSquadsResponseResponse) GetTotal() float64 { + return s.Total +} + +// GetInternalSquads returns the value of InternalSquads. +func (s *InternalSquadsResponseResponse) GetInternalSquads() []InternalSquad { + return s.InternalSquads +} + +// SetTotal sets the value of Total. +func (s *InternalSquadsResponseResponse) SetTotal(val float64) { + s.Total = val +} + +// SetInternalSquads sets the value of InternalSquads. +func (s *InternalSquadsResponseResponse) SetInternalSquads(val []InternalSquad) { + s.InternalSquads = val +} + +// Ref: #/components/schemas/Ips +type Ips struct { + IP string `json:"ip"` + LastSeen time.Time `json:"lastSeen"` +} + +// GetIP returns the value of IP. +func (s *Ips) GetIP() string { + return s.IP +} + +// GetLastSeen returns the value of LastSeen. +func (s *Ips) GetLastSeen() time.Time { + return s.LastSeen +} + +// SetIP sets the value of IP. +func (s *Ips) SetIP(val string) { + s.IP = val +} + +// SetLastSeen sets the value of LastSeen. +func (s *Ips) SetLastSeen(val time.Time) { + s.LastSeen = val +} + +// Ref: #/components/schemas/IpsResponseResponse +type IpsResponseResponse struct { + Response IpsResponseResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *IpsResponseResponse) GetResponse() IpsResponseResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *IpsResponseResponse) SetResponse(val IpsResponseResponseResponse) { + s.Response = val +} + +func (*IpsResponseResponse) ipControlFetchUserIpsRes() {} +func (*IpsResponseResponse) ipControlFetchUsersIpsRes() {} + +type IpsResponseResponseResponse struct { + JobId string `json:"jobId"` +} + +// GetJobId returns the value of JobId. +func (s *IpsResponseResponseResponse) GetJobId() string { + return s.JobId +} + +// SetJobId sets the value of JobId. +func (s *IpsResponseResponseResponse) SetJobId(val string) { + s.JobId = val +} + +// Ref: #/components/schemas/Keycloak +type Keycloak struct { + Enabled bool `json:"enabled"` + Realm NilString `json:"realm"` + ClientId NilString `json:"clientId"` + ClientSecret NilString `json:"clientSecret"` + FrontendDomain NilString `json:"frontendDomain"` + KeycloakDomain NilString `json:"keycloakDomain"` + AllowedEmails []string `json:"allowedEmails"` +} + +// GetEnabled returns the value of Enabled. +func (s *Keycloak) GetEnabled() bool { + return s.Enabled +} + +// GetRealm returns the value of Realm. +func (s *Keycloak) GetRealm() NilString { + return s.Realm +} + +// GetClientId returns the value of ClientId. +func (s *Keycloak) GetClientId() NilString { + return s.ClientId +} + +// GetClientSecret returns the value of ClientSecret. +func (s *Keycloak) GetClientSecret() NilString { + return s.ClientSecret +} + +// GetFrontendDomain returns the value of FrontendDomain. +func (s *Keycloak) GetFrontendDomain() NilString { + return s.FrontendDomain +} + +// GetKeycloakDomain returns the value of KeycloakDomain. +func (s *Keycloak) GetKeycloakDomain() NilString { + return s.KeycloakDomain +} + +// GetAllowedEmails returns the value of AllowedEmails. +func (s *Keycloak) GetAllowedEmails() []string { + return s.AllowedEmails +} + +// SetEnabled sets the value of Enabled. +func (s *Keycloak) SetEnabled(val bool) { + s.Enabled = val +} + +// SetRealm sets the value of Realm. +func (s *Keycloak) SetRealm(val NilString) { + s.Realm = val +} + +// SetClientId sets the value of ClientId. +func (s *Keycloak) SetClientId(val NilString) { + s.ClientId = val +} + +// SetClientSecret sets the value of ClientSecret. +func (s *Keycloak) SetClientSecret(val NilString) { + s.ClientSecret = val +} + +// SetFrontendDomain sets the value of FrontendDomain. +func (s *Keycloak) SetFrontendDomain(val NilString) { + s.FrontendDomain = val +} + +// SetKeycloakDomain sets the value of KeycloakDomain. +func (s *Keycloak) SetKeycloakDomain(val NilString) { + s.KeycloakDomain = val +} + +// SetAllowedEmails sets the value of AllowedEmails. +func (s *Keycloak) SetAllowedEmails(val []string) { + s.AllowedEmails = val +} + +// Ref: #/components/schemas/LoginRequest +type LoginRequest struct { + Username string `json:"username"` + Password string `json:"password"` +} + +// GetUsername returns the value of Username. +func (s *LoginRequest) GetUsername() string { + return s.Username +} + +// GetPassword returns the value of Password. +func (s *LoginRequest) GetPassword() string { + return s.Password +} + +// SetUsername sets the value of Username. +func (s *LoginRequest) SetUsername(val string) { + s.Username = val +} + +// SetPassword sets the value of Password. +func (s *LoginRequest) SetPassword(val string) { + s.Password = val +} + +// NewNilBrandingSettings returns new NilBrandingSettings with value set to v. +func NewNilBrandingSettings(v BrandingSettings) NilBrandingSettings { + return NilBrandingSettings{ + Value: v, + } +} + +// NilBrandingSettings is nullable BrandingSettings. +type NilBrandingSettings struct { + Value BrandingSettings + Null bool +} + +// SetTo sets value to v. +func (o *NilBrandingSettings) SetTo(v BrandingSettings) { + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o NilBrandingSettings) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *NilBrandingSettings) SetToNull() { + o.Null = true + var v BrandingSettings + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o NilBrandingSettings) Get() (v BrandingSettings, ok bool) { + if o.Null { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o NilBrandingSettings) Or(d BrandingSettings) BrandingSettings { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewNilCustomRemark returns new NilCustomRemark with value set to v. +func NewNilCustomRemark(v CustomRemark) NilCustomRemark { + return NilCustomRemark{ + Value: v, + } +} + +// NilCustomRemark is nullable CustomRemark. +type NilCustomRemark struct { + Value CustomRemark + Null bool +} + +// SetTo sets value to v. +func (o *NilCustomRemark) SetTo(v CustomRemark) { + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o NilCustomRemark) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *NilCustomRemark) SetToNull() { + o.Null = true + var v CustomRemark + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o NilCustomRemark) Get() (v CustomRemark, ok bool) { + if o.Null { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o NilCustomRemark) Or(d CustomRemark) CustomRemark { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewNilDateTime returns new NilDateTime with value set to v. +func NewNilDateTime(v time.Time) NilDateTime { + return NilDateTime{ + Value: v, + } +} + +// NilDateTime is nullable time.Time. +type NilDateTime struct { + Value time.Time + Null bool +} + +// SetTo sets value to v. +func (o *NilDateTime) SetTo(v time.Time) { + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o NilDateTime) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *NilDateTime) SetToNull() { + o.Null = true + var v time.Time + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o NilDateTime) Get() (v time.Time, ok bool) { + if o.Null { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o NilDateTime) Or(d time.Time) time.Time { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewNilExternalSquadResponseHeaders returns new NilExternalSquadResponseHeaders with value set to v. +func NewNilExternalSquadResponseHeaders(v ExternalSquadResponseHeaders) NilExternalSquadResponseHeaders { + return NilExternalSquadResponseHeaders{ + Value: v, + } +} + +// NilExternalSquadResponseHeaders is nullable ExternalSquadResponseHeaders. +type NilExternalSquadResponseHeaders struct { + Value ExternalSquadResponseHeaders + Null bool +} + +// SetTo sets value to v. +func (o *NilExternalSquadResponseHeaders) SetTo(v ExternalSquadResponseHeaders) { + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o NilExternalSquadResponseHeaders) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *NilExternalSquadResponseHeaders) SetToNull() { + o.Null = true + var v ExternalSquadResponseHeaders + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o NilExternalSquadResponseHeaders) Get() (v ExternalSquadResponseHeaders, ok bool) { + if o.Null { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o NilExternalSquadResponseHeaders) Or(d ExternalSquadResponseHeaders) ExternalSquadResponseHeaders { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewNilFetchIpsResultResponseResponseResult returns new NilFetchIpsResultResponseResponseResult with value set to v. +func NewNilFetchIpsResultResponseResponseResult(v FetchIpsResultResponseResponseResult) NilFetchIpsResultResponseResponseResult { + return NilFetchIpsResultResponseResponseResult{ + Value: v, + } +} + +// NilFetchIpsResultResponseResponseResult is nullable FetchIpsResultResponseResponseResult. +type NilFetchIpsResultResponseResponseResult struct { + Value FetchIpsResultResponseResponseResult + Null bool +} + +// SetTo sets value to v. +func (o *NilFetchIpsResultResponseResponseResult) SetTo(v FetchIpsResultResponseResponseResult) { + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o NilFetchIpsResultResponseResponseResult) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *NilFetchIpsResultResponseResponseResult) SetToNull() { + o.Null = true + var v FetchIpsResultResponseResponseResult + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o NilFetchIpsResultResponseResponseResult) Get() (v FetchIpsResultResponseResponseResult, ok bool) { + if o.Null { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o NilFetchIpsResultResponseResponseResult) Or(d FetchIpsResultResponseResponseResult) FetchIpsResultResponseResponseResult { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewNilFetchUsersIpsResultResponseResponseResult returns new NilFetchUsersIpsResultResponseResponseResult with value set to v. +func NewNilFetchUsersIpsResultResponseResponseResult(v FetchUsersIpsResultResponseResponseResult) NilFetchUsersIpsResultResponseResponseResult { + return NilFetchUsersIpsResultResponseResponseResult{ + Value: v, + } +} + +// NilFetchUsersIpsResultResponseResponseResult is nullable FetchUsersIpsResultResponseResponseResult. +type NilFetchUsersIpsResultResponseResponseResult struct { + Value FetchUsersIpsResultResponseResponseResult + Null bool +} + +// SetTo sets value to v. +func (o *NilFetchUsersIpsResultResponseResponseResult) SetTo(v FetchUsersIpsResultResponseResponseResult) { + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o NilFetchUsersIpsResultResponseResponseResult) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *NilFetchUsersIpsResultResponseResponseResult) SetToNull() { + o.Null = true + var v FetchUsersIpsResultResponseResponseResult + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o NilFetchUsersIpsResultResponseResponseResult) Get() (v FetchUsersIpsResultResponseResponseResult, ok bool) { + if o.Null { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o NilFetchUsersIpsResultResponseResponseResult) Or(d FetchUsersIpsResultResponseResponseResult) FetchUsersIpsResultResponseResponseResult { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewNilFloat64 returns new NilFloat64 with value set to v. +func NewNilFloat64(v float64) NilFloat64 { + return NilFloat64{ + Value: v, + } +} + +// NilFloat64 is nullable float64. +type NilFloat64 struct { + Value float64 + Null bool +} + +// SetTo sets value to v. +func (o *NilFloat64) SetTo(v float64) { + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o NilFloat64) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *NilFloat64) SetToNull() { + o.Null = true + var v float64 + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o NilFloat64) Get() (v float64, ok bool) { + if o.Null { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o NilFloat64) Or(d float64) float64 { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewNilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header returns new NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header with value set to v. +func NewNilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header) NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header { + return NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header{ + Value: v, + } +} + +// NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header is nullable GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header. +type NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header struct { + Value GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header + Null bool +} + +// SetTo sets value to v. +func (o *NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header) SetTo(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header) { + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header) IsNull() bool { + return o.Null +} + +// SetToNull sets value to null. +func (o *NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header) SetToNull() { + o.Null = true + var v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header) Get() (v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header, ok bool) { + if o.Null { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header) Or(d GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header) GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewNilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra returns new NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra with value set to v. +func NewNilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra) NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra { + return NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra{ + Value: v, + } +} + +// NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra is nullable GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra. +type NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra struct { + Value GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra + Null bool +} + +// SetTo sets value to v. +func (o *NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra) SetTo(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra) { + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra) IsNull() bool { + return o.Null +} + +// SetToNull sets value to null. +func (o *NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra) SetToNull() { + o.Null = true + var v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra) Get() (v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra, ok bool) { + if o.Null { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra) Or(d GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra) GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewNilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers returns new NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers with value set to v. +func NewNilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers) NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers { + return NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers{ + Value: v, + } +} + +// NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers is nullable GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers. +type NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers struct { + Value GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers + Null bool +} + +// SetTo sets value to v. +func (o *NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers) SetTo(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers) { + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers) IsNull() bool { + return o.Null +} + +// SetToNull sets value to null. +func (o *NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers) SetToNull() { + o.Null = true + var v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers) Get() (v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers, ok bool) { + if o.Null { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers) Or(d GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers) GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewNilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers returns new NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers with value set to v. +func NewNilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers) NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers { + return NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers{ + Value: v, + } +} + +// NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers is nullable GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers. +type NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers struct { + Value GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers + Null bool +} + +// SetTo sets value to v. +func (o *NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers) SetTo(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers) { + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers) IsNull() bool { + return o.Null +} + +// SetToNull sets value to null. +func (o *NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers) SetToNull() { + o.Null = true + var v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers) Get() (v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers, ok bool) { + if o.Null { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o NilGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers) Or(d GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers) GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewNilGetStatusResponseResponseAuthentication returns new NilGetStatusResponseResponseAuthentication with value set to v. +func NewNilGetStatusResponseResponseAuthentication(v GetStatusResponseResponseAuthentication) NilGetStatusResponseResponseAuthentication { + return NilGetStatusResponseResponseAuthentication{ + Value: v, + } +} + +// NilGetStatusResponseResponseAuthentication is nullable GetStatusResponseResponseAuthentication. +type NilGetStatusResponseResponseAuthentication struct { + Value GetStatusResponseResponseAuthentication + Null bool +} + +// SetTo sets value to v. +func (o *NilGetStatusResponseResponseAuthentication) SetTo(v GetStatusResponseResponseAuthentication) { + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o NilGetStatusResponseResponseAuthentication) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *NilGetStatusResponseResponseAuthentication) SetToNull() { + o.Null = true + var v GetStatusResponseResponseAuthentication + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o NilGetStatusResponseResponseAuthentication) Get() (v GetStatusResponseResponseAuthentication, ok bool) { + if o.Null { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o NilGetStatusResponseResponseAuthentication) Or(d GetStatusResponseResponseAuthentication) GetStatusResponseResponseAuthentication { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewNilHostOverride returns new NilHostOverride with value set to v. +func NewNilHostOverride(v HostOverride) NilHostOverride { + return NilHostOverride{ + Value: v, + } +} + +// NilHostOverride is nullable HostOverride. +type NilHostOverride struct { + Value HostOverride + Null bool +} + +// SetTo sets value to v. +func (o *NilHostOverride) SetTo(v HostOverride) { + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o NilHostOverride) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *NilHostOverride) SetToNull() { + o.Null = true + var v HostOverride + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o NilHostOverride) Get() (v HostOverride, ok bool) { + if o.Null { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o NilHostOverride) Or(d HostOverride) HostOverride { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewNilHwidSettings returns new NilHwidSettings with value set to v. +func NewNilHwidSettings(v HwidSettings) NilHwidSettings { + return NilHwidSettings{ + Value: v, + } +} + +// NilHwidSettings is nullable HwidSettings. +type NilHwidSettings struct { + Value HwidSettings + Null bool +} + +// SetTo sets value to v. +func (o *NilHwidSettings) SetTo(v HwidSettings) { + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o NilHwidSettings) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *NilHwidSettings) SetToNull() { + o.Null = true + var v HwidSettings + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o NilHwidSettings) Get() (v HwidSettings, ok bool) { + if o.Null { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o NilHwidSettings) Or(d HwidSettings) HwidSettings { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewNilInt returns new NilInt with value set to v. +func NewNilInt(v int) NilInt { + return NilInt{ + Value: v, + } +} + +// NilInt is nullable int. +type NilInt struct { + Value int + Null bool +} + +// SetTo sets value to v. +func (o *NilInt) SetTo(v int) { + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o NilInt) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *NilInt) SetToNull() { + o.Null = true + var v int + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o NilInt) Get() (v int, ok bool) { + if o.Null { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o NilInt) Or(d int) int { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewNilInterfaceItem returns new NilInterfaceItem with value set to v. +func NewNilInterfaceItem(v InterfaceItem) NilInterfaceItem { + return NilInterfaceItem{ + Value: v, + } +} + +// NilInterfaceItem is nullable InterfaceItem. +type NilInterfaceItem struct { + Value InterfaceItem + Null bool +} + +// SetTo sets value to v. +func (o *NilInterfaceItem) SetTo(v InterfaceItem) { + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o NilInterfaceItem) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *NilInterfaceItem) SetToNull() { + o.Null = true + var v InterfaceItem + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o NilInterfaceItem) Get() (v InterfaceItem, ok bool) { + if o.Null { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o NilInterfaceItem) Or(d InterfaceItem) InterfaceItem { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewNilOauth2Settings returns new NilOauth2Settings with value set to v. +func NewNilOauth2Settings(v Oauth2Settings) NilOauth2Settings { + return NilOauth2Settings{ + Value: v, + } +} + +// NilOauth2Settings is nullable Oauth2Settings. +type NilOauth2Settings struct { + Value Oauth2Settings + Null bool +} + +// SetTo sets value to v. +func (o *NilOauth2Settings) SetTo(v Oauth2Settings) { + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o NilOauth2Settings) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *NilOauth2Settings) SetToNull() { + o.Null = true + var v Oauth2Settings + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o NilOauth2Settings) Get() (v Oauth2Settings, ok bool) { + if o.Null { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o NilOauth2Settings) Or(d Oauth2Settings) Oauth2Settings { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewNilPasskeySettings returns new NilPasskeySettings with value set to v. +func NewNilPasskeySettings(v PasskeySettings) NilPasskeySettings { + return NilPasskeySettings{ + Value: v, + } +} + +// NilPasskeySettings is nullable PasskeySettings. +type NilPasskeySettings struct { + Value PasskeySettings + Null bool +} + +// SetTo sets value to v. +func (o *NilPasskeySettings) SetTo(v PasskeySettings) { + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o NilPasskeySettings) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *NilPasskeySettings) SetToNull() { + o.Null = true + var v PasskeySettings + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o NilPasskeySettings) Get() (v PasskeySettings, ok bool) { + if o.Null { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o NilPasskeySettings) Or(d PasskeySettings) PasskeySettings { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewNilPasswordSettings returns new NilPasswordSettings with value set to v. +func NewNilPasswordSettings(v PasswordSettings) NilPasswordSettings { + return NilPasswordSettings{ + Value: v, + } +} + +// NilPasswordSettings is nullable PasswordSettings. +type NilPasswordSettings struct { + Value PasswordSettings + Null bool +} + +// SetTo sets value to v. +func (o *NilPasswordSettings) SetTo(v PasswordSettings) { + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o NilPasswordSettings) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *NilPasswordSettings) SetToNull() { + o.Null = true + var v PasswordSettings + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o NilPasswordSettings) Get() (v PasswordSettings, ok bool) { + if o.Null { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o NilPasswordSettings) Or(d PasswordSettings) PasswordSettings { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewNilProviderItem returns new NilProviderItem with value set to v. +func NewNilProviderItem(v ProviderItem) NilProviderItem { + return NilProviderItem{ + Value: v, + } +} + +// NilProviderItem is nullable ProviderItem. +type NilProviderItem struct { + Value ProviderItem + Null bool +} + +// SetTo sets value to v. +func (o *NilProviderItem) SetTo(v ProviderItem) { + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o NilProviderItem) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *NilProviderItem) SetToNull() { + o.Null = true + var v ProviderItem + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o NilProviderItem) Get() (v ProviderItem, ok bool) { + if o.Null { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o NilProviderItem) Or(d ProviderItem) ProviderItem { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewNilString returns new NilString with value set to v. +func NewNilString(v string) NilString { + return NilString{ + Value: v, + } +} + +// NilString is nullable string. +type NilString struct { + Value string + Null bool +} + +// SetTo sets value to v. +func (o *NilString) SetTo(v string) { + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o NilString) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *NilString) SetToNull() { + o.Null = true + var v string + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o NilString) Get() (v string, ok bool) { + if o.Null { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o NilString) Or(d string) string { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewNilSubscriptionSettings returns new NilSubscriptionSettings with value set to v. +func NewNilSubscriptionSettings(v SubscriptionSettings) NilSubscriptionSettings { + return NilSubscriptionSettings{ + Value: v, + } +} + +// NilSubscriptionSettings is nullable SubscriptionSettings. +type NilSubscriptionSettings struct { + Value SubscriptionSettings + Null bool +} + +// SetTo sets value to v. +func (o *NilSubscriptionSettings) SetTo(v SubscriptionSettings) { + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o NilSubscriptionSettings) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *NilSubscriptionSettings) SetToNull() { + o.Null = true + var v SubscriptionSettings + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o NilSubscriptionSettings) Get() (v SubscriptionSettings, ok bool) { + if o.Null { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o NilSubscriptionSettings) Or(d SubscriptionSettings) SubscriptionSettings { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewNilSubscriptionSettingsResponseResponseCustomResponseHeaders returns new NilSubscriptionSettingsResponseResponseCustomResponseHeaders with value set to v. +func NewNilSubscriptionSettingsResponseResponseCustomResponseHeaders(v SubscriptionSettingsResponseResponseCustomResponseHeaders) NilSubscriptionSettingsResponseResponseCustomResponseHeaders { + return NilSubscriptionSettingsResponseResponseCustomResponseHeaders{ + Value: v, + } +} + +// NilSubscriptionSettingsResponseResponseCustomResponseHeaders is nullable SubscriptionSettingsResponseResponseCustomResponseHeaders. +type NilSubscriptionSettingsResponseResponseCustomResponseHeaders struct { + Value SubscriptionSettingsResponseResponseCustomResponseHeaders + Null bool +} + +// SetTo sets value to v. +func (o *NilSubscriptionSettingsResponseResponseCustomResponseHeaders) SetTo(v SubscriptionSettingsResponseResponseCustomResponseHeaders) { + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o NilSubscriptionSettingsResponseResponseCustomResponseHeaders) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *NilSubscriptionSettingsResponseResponseCustomResponseHeaders) SetToNull() { + o.Null = true + var v SubscriptionSettingsResponseResponseCustomResponseHeaders + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o NilSubscriptionSettingsResponseResponseCustomResponseHeaders) Get() (v SubscriptionSettingsResponseResponseCustomResponseHeaders, ok bool) { + if o.Null { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o NilSubscriptionSettingsResponseResponseCustomResponseHeaders) Or(d SubscriptionSettingsResponseResponseCustomResponseHeaders) SubscriptionSettingsResponseResponseCustomResponseHeaders { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewNilSystemItem returns new NilSystemItem with value set to v. +func NewNilSystemItem(v SystemItem) NilSystemItem { + return NilSystemItem{ + Value: v, + } +} + +// NilSystemItem is nullable SystemItem. +type NilSystemItem struct { + Value SystemItem + Null bool +} + +// SetTo sets value to v. +func (o *NilSystemItem) SetTo(v SystemItem) { + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o NilSystemItem) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *NilSystemItem) SetToNull() { + o.Null = true + var v SystemItem + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o NilSystemItem) Get() (v SystemItem, ok bool) { + if o.Null { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o NilSystemItem) Or(d SystemItem) SystemItem { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewNilURI returns new NilURI with value set to v. +func NewNilURI(v url.URL) NilURI { + return NilURI{ + Value: v, + } +} + +// NilURI is nullable url.URL. +type NilURI struct { + Value url.URL + Null bool +} + +// SetTo sets value to v. +func (o *NilURI) SetTo(v url.URL) { + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o NilURI) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *NilURI) SetToNull() { + o.Null = true + var v url.URL + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o NilURI) Get() (v url.URL, ok bool) { + if o.Null { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o NilURI) Or(d url.URL) url.URL { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewNilUUID returns new NilUUID with value set to v. +func NewNilUUID(v uuid.UUID) NilUUID { + return NilUUID{ + Value: v, + } +} + +// NilUUID is nullable uuid.UUID. +type NilUUID struct { + Value uuid.UUID + Null bool +} + +// SetTo sets value to v. +func (o *NilUUID) SetTo(v uuid.UUID) { + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o NilUUID) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *NilUUID) SetToNull() { + o.Null = true + var v uuid.UUID + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o NilUUID) Get() (v uuid.UUID, ok bool) { + if o.Null { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o NilUUID) Or(d uuid.UUID) uuid.UUID { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewNilVersion returns new NilVersion with value set to v. +func NewNilVersion(v Version) NilVersion { + return NilVersion{ + Value: v, + } +} + +// NilVersion is nullable Version. +type NilVersion struct { + Value Version + Null bool +} + +// SetTo sets value to v. +func (o *NilVersion) SetTo(v Version) { + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o NilVersion) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *NilVersion) SetToNull() { + o.Null = true + var v Version + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o NilVersion) Get() (v Version, ok bool) { + if o.Null { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o NilVersion) Or(d Version) Version { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// Ref: #/components/schemas/Node +type Node struct { + UUID uuid.UUID `json:"uuid"` + Name string `json:"name"` + CountryCode string `json:"countryCode"` +} + +// GetUUID returns the value of UUID. +func (s *Node) GetUUID() uuid.UUID { + return s.UUID +} + +// GetName returns the value of Name. +func (s *Node) GetName() string { + return s.Name +} + +// GetCountryCode returns the value of CountryCode. +func (s *Node) GetCountryCode() string { + return s.CountryCode +} + +// SetUUID sets the value of UUID. +func (s *Node) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetName sets the value of Name. +func (s *Node) SetName(val string) { + s.Name = val +} + +// SetCountryCode sets the value of CountryCode. +func (s *Node) SetCountryCode(val string) { + s.CountryCode = val +} + +// Ref: #/components/schemas/NodePlugin +type NodePlugin struct { + UUID uuid.UUID `json:"uuid"` + ViewPosition int `json:"viewPosition"` + Name string `json:"name"` + PluginConfig jx.Raw `json:"pluginConfig"` +} + +// GetUUID returns the value of UUID. +func (s *NodePlugin) GetUUID() uuid.UUID { + return s.UUID +} + +// GetViewPosition returns the value of ViewPosition. +func (s *NodePlugin) GetViewPosition() int { + return s.ViewPosition +} + +// GetName returns the value of Name. +func (s *NodePlugin) GetName() string { + return s.Name +} + +// GetPluginConfig returns the value of PluginConfig. +func (s *NodePlugin) GetPluginConfig() jx.Raw { + return s.PluginConfig +} + +// SetUUID sets the value of UUID. +func (s *NodePlugin) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetViewPosition sets the value of ViewPosition. +func (s *NodePlugin) SetViewPosition(val int) { + s.ViewPosition = val +} + +// SetName sets the value of Name. +func (s *NodePlugin) SetName(val string) { + s.Name = val +} + +// SetPluginConfig sets the value of PluginConfig. +func (s *NodePlugin) SetPluginConfig(val jx.Raw) { + s.PluginConfig = val +} + +// Ref: #/components/schemas/NodePluginResponseResponse +type NodePluginResponseResponse struct { + Response NodePluginResponseResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *NodePluginResponseResponse) GetResponse() NodePluginResponseResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *NodePluginResponseResponse) SetResponse(val NodePluginResponseResponseResponse) { + s.Response = val +} + +func (*NodePluginResponseResponse) nodePluginCloneNodePluginRes() {} +func (*NodePluginResponseResponse) nodePluginGetConfigByUuidRes() {} +func (*NodePluginResponseResponse) nodePluginUpdateConfigRes() {} + +type NodePluginResponseResponseResponse struct { + UUID uuid.UUID `json:"uuid"` + ViewPosition int `json:"viewPosition"` + Name string `json:"name"` + PluginConfig jx.Raw `json:"pluginConfig"` +} + +// GetUUID returns the value of UUID. +func (s *NodePluginResponseResponseResponse) GetUUID() uuid.UUID { + return s.UUID +} + +// GetViewPosition returns the value of ViewPosition. +func (s *NodePluginResponseResponseResponse) GetViewPosition() int { + return s.ViewPosition +} + +// GetName returns the value of Name. +func (s *NodePluginResponseResponseResponse) GetName() string { + return s.Name +} + +// GetPluginConfig returns the value of PluginConfig. +func (s *NodePluginResponseResponseResponse) GetPluginConfig() jx.Raw { + return s.PluginConfig +} + +// SetUUID sets the value of UUID. +func (s *NodePluginResponseResponseResponse) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetViewPosition sets the value of ViewPosition. +func (s *NodePluginResponseResponseResponse) SetViewPosition(val int) { + s.ViewPosition = val +} + +// SetName sets the value of Name. +func (s *NodePluginResponseResponseResponse) SetName(val string) { + s.Name = val +} + +// SetPluginConfig sets the value of PluginConfig. +func (s *NodePluginResponseResponseResponse) SetPluginConfig(val jx.Raw) { + s.PluginConfig = val +} + +// Ref: #/components/schemas/NodePluginsResponseResponse +type NodePluginsResponseResponse struct { + Response NodePluginsResponseResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *NodePluginsResponseResponse) GetResponse() NodePluginsResponseResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *NodePluginsResponseResponse) SetResponse(val NodePluginsResponseResponseResponse) { + s.Response = val +} + +func (*NodePluginsResponseResponse) nodePluginGetAllConfigsRes() {} +func (*NodePluginsResponseResponse) nodePluginReorderNodePluginsRes() {} + +type NodePluginsResponseResponseResponse struct { + Total float64 `json:"total"` + NodePlugins []NodePlugin `json:"nodePlugins"` +} + +// GetTotal returns the value of Total. +func (s *NodePluginsResponseResponseResponse) GetTotal() float64 { + return s.Total +} + +// GetNodePlugins returns the value of NodePlugins. +func (s *NodePluginsResponseResponseResponse) GetNodePlugins() []NodePlugin { + return s.NodePlugins +} + +// SetTotal sets the value of Total. +func (s *NodePluginsResponseResponseResponse) SetTotal(val float64) { + s.Total = val +} + +// SetNodePlugins sets the value of NodePlugins. +func (s *NodePluginsResponseResponseResponse) SetNodePlugins(val []NodePlugin) { + s.NodePlugins = val +} + +// Ref: #/components/schemas/NodeResponse +type NodeResponse struct { + Response NodeResponseDataItem `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *NodeResponse) GetResponse() NodeResponseDataItem { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *NodeResponse) SetResponse(val NodeResponseDataItem) { + s.Response = val +} + +func (*NodeResponse) nodesCreateNodeRes() {} +func (*NodeResponse) nodesDisableNodeRes() {} +func (*NodeResponse) nodesEnableNodeRes() {} +func (*NodeResponse) nodesGetOneNodeRes() {} +func (*NodeResponse) nodesUpdateNodeRes() {} + +// Ref: #/components/schemas/NodeResponseDataItem +type NodeResponseDataItem struct { + UUID uuid.UUID `json:"uuid"` + Name string `json:"name"` + Address string `json:"address"` + Port NilInt `json:"port"` + IsConnected bool `json:"isConnected"` + IsDisabled bool `json:"isDisabled"` + IsConnecting bool `json:"isConnecting"` + LastStatusChange NilDateTime `json:"lastStatusChange"` + LastStatusMessage NilString `json:"lastStatusMessage"` + IsTrafficTrackingActive bool `json:"isTrafficTrackingActive"` + TrafficResetDay NilInt `json:"trafficResetDay"` + TrafficLimitBytes NilFloat64 `json:"trafficLimitBytes"` + TrafficUsedBytes NilFloat64 `json:"trafficUsedBytes"` + NotifyPercent NilInt `json:"notifyPercent"` + ViewPosition int `json:"viewPosition"` + CountryCode string `json:"countryCode"` + ConsumptionMultiplier float64 `json:"consumptionMultiplier"` + Tags []string `json:"tags"` + CreatedAt time.Time `json:"createdAt"` + UpdatedAt time.Time `json:"updatedAt"` + ConfigProfile ConfigProfileItem `json:"configProfile"` + ProviderUuid NilUUID `json:"providerUuid"` + Provider NilProviderItem `json:"provider"` + ActivePluginUuid NilUUID `json:"activePluginUuid"` + System NilSystemItem `json:"system"` + Versions NilVersion `json:"versions"` + XrayUptime float64 `json:"xrayUptime"` + UsersOnline float64 `json:"usersOnline"` +} + +// GetUUID returns the value of UUID. +func (s *NodeResponseDataItem) GetUUID() uuid.UUID { + return s.UUID +} + +// GetName returns the value of Name. +func (s *NodeResponseDataItem) GetName() string { + return s.Name +} + +// GetAddress returns the value of Address. +func (s *NodeResponseDataItem) GetAddress() string { + return s.Address +} + +// GetPort returns the value of Port. +func (s *NodeResponseDataItem) GetPort() NilInt { + return s.Port +} + +// GetIsConnected returns the value of IsConnected. +func (s *NodeResponseDataItem) GetIsConnected() bool { + return s.IsConnected +} + +// GetIsDisabled returns the value of IsDisabled. +func (s *NodeResponseDataItem) GetIsDisabled() bool { + return s.IsDisabled +} + +// GetIsConnecting returns the value of IsConnecting. +func (s *NodeResponseDataItem) GetIsConnecting() bool { + return s.IsConnecting +} + +// GetLastStatusChange returns the value of LastStatusChange. +func (s *NodeResponseDataItem) GetLastStatusChange() NilDateTime { + return s.LastStatusChange +} + +// GetLastStatusMessage returns the value of LastStatusMessage. +func (s *NodeResponseDataItem) GetLastStatusMessage() NilString { + return s.LastStatusMessage +} + +// GetIsTrafficTrackingActive returns the value of IsTrafficTrackingActive. +func (s *NodeResponseDataItem) GetIsTrafficTrackingActive() bool { + return s.IsTrafficTrackingActive +} + +// GetTrafficResetDay returns the value of TrafficResetDay. +func (s *NodeResponseDataItem) GetTrafficResetDay() NilInt { + return s.TrafficResetDay +} + +// GetTrafficLimitBytes returns the value of TrafficLimitBytes. +func (s *NodeResponseDataItem) GetTrafficLimitBytes() NilFloat64 { + return s.TrafficLimitBytes +} + +// GetTrafficUsedBytes returns the value of TrafficUsedBytes. +func (s *NodeResponseDataItem) GetTrafficUsedBytes() NilFloat64 { + return s.TrafficUsedBytes +} + +// GetNotifyPercent returns the value of NotifyPercent. +func (s *NodeResponseDataItem) GetNotifyPercent() NilInt { + return s.NotifyPercent +} + +// GetViewPosition returns the value of ViewPosition. +func (s *NodeResponseDataItem) GetViewPosition() int { + return s.ViewPosition +} + +// GetCountryCode returns the value of CountryCode. +func (s *NodeResponseDataItem) GetCountryCode() string { + return s.CountryCode +} + +// GetConsumptionMultiplier returns the value of ConsumptionMultiplier. +func (s *NodeResponseDataItem) GetConsumptionMultiplier() float64 { + return s.ConsumptionMultiplier +} + +// GetTags returns the value of Tags. +func (s *NodeResponseDataItem) GetTags() []string { + return s.Tags +} + +// GetCreatedAt returns the value of CreatedAt. +func (s *NodeResponseDataItem) GetCreatedAt() time.Time { + return s.CreatedAt +} + +// GetUpdatedAt returns the value of UpdatedAt. +func (s *NodeResponseDataItem) GetUpdatedAt() time.Time { + return s.UpdatedAt +} + +// GetConfigProfile returns the value of ConfigProfile. +func (s *NodeResponseDataItem) GetConfigProfile() ConfigProfileItem { + return s.ConfigProfile +} + +// GetProviderUuid returns the value of ProviderUuid. +func (s *NodeResponseDataItem) GetProviderUuid() NilUUID { + return s.ProviderUuid +} + +// GetProvider returns the value of Provider. +func (s *NodeResponseDataItem) GetProvider() NilProviderItem { + return s.Provider +} + +// GetActivePluginUuid returns the value of ActivePluginUuid. +func (s *NodeResponseDataItem) GetActivePluginUuid() NilUUID { + return s.ActivePluginUuid +} + +// GetSystem returns the value of System. +func (s *NodeResponseDataItem) GetSystem() NilSystemItem { + return s.System +} + +// GetVersions returns the value of Versions. +func (s *NodeResponseDataItem) GetVersions() NilVersion { + return s.Versions +} + +// GetXrayUptime returns the value of XrayUptime. +func (s *NodeResponseDataItem) GetXrayUptime() float64 { + return s.XrayUptime +} + +// GetUsersOnline returns the value of UsersOnline. +func (s *NodeResponseDataItem) GetUsersOnline() float64 { + return s.UsersOnline +} + +// SetUUID sets the value of UUID. +func (s *NodeResponseDataItem) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetName sets the value of Name. +func (s *NodeResponseDataItem) SetName(val string) { + s.Name = val +} + +// SetAddress sets the value of Address. +func (s *NodeResponseDataItem) SetAddress(val string) { + s.Address = val +} + +// SetPort sets the value of Port. +func (s *NodeResponseDataItem) SetPort(val NilInt) { + s.Port = val +} + +// SetIsConnected sets the value of IsConnected. +func (s *NodeResponseDataItem) SetIsConnected(val bool) { + s.IsConnected = val +} + +// SetIsDisabled sets the value of IsDisabled. +func (s *NodeResponseDataItem) SetIsDisabled(val bool) { + s.IsDisabled = val +} + +// SetIsConnecting sets the value of IsConnecting. +func (s *NodeResponseDataItem) SetIsConnecting(val bool) { + s.IsConnecting = val +} + +// SetLastStatusChange sets the value of LastStatusChange. +func (s *NodeResponseDataItem) SetLastStatusChange(val NilDateTime) { + s.LastStatusChange = val +} + +// SetLastStatusMessage sets the value of LastStatusMessage. +func (s *NodeResponseDataItem) SetLastStatusMessage(val NilString) { + s.LastStatusMessage = val +} + +// SetIsTrafficTrackingActive sets the value of IsTrafficTrackingActive. +func (s *NodeResponseDataItem) SetIsTrafficTrackingActive(val bool) { + s.IsTrafficTrackingActive = val +} + +// SetTrafficResetDay sets the value of TrafficResetDay. +func (s *NodeResponseDataItem) SetTrafficResetDay(val NilInt) { + s.TrafficResetDay = val +} + +// SetTrafficLimitBytes sets the value of TrafficLimitBytes. +func (s *NodeResponseDataItem) SetTrafficLimitBytes(val NilFloat64) { + s.TrafficLimitBytes = val +} + +// SetTrafficUsedBytes sets the value of TrafficUsedBytes. +func (s *NodeResponseDataItem) SetTrafficUsedBytes(val NilFloat64) { + s.TrafficUsedBytes = val +} + +// SetNotifyPercent sets the value of NotifyPercent. +func (s *NodeResponseDataItem) SetNotifyPercent(val NilInt) { + s.NotifyPercent = val +} + +// SetViewPosition sets the value of ViewPosition. +func (s *NodeResponseDataItem) SetViewPosition(val int) { + s.ViewPosition = val +} + +// SetCountryCode sets the value of CountryCode. +func (s *NodeResponseDataItem) SetCountryCode(val string) { + s.CountryCode = val +} + +// SetConsumptionMultiplier sets the value of ConsumptionMultiplier. +func (s *NodeResponseDataItem) SetConsumptionMultiplier(val float64) { + s.ConsumptionMultiplier = val +} + +// SetTags sets the value of Tags. +func (s *NodeResponseDataItem) SetTags(val []string) { + s.Tags = val +} + +// SetCreatedAt sets the value of CreatedAt. +func (s *NodeResponseDataItem) SetCreatedAt(val time.Time) { + s.CreatedAt = val +} + +// SetUpdatedAt sets the value of UpdatedAt. +func (s *NodeResponseDataItem) SetUpdatedAt(val time.Time) { + s.UpdatedAt = val +} + +// SetConfigProfile sets the value of ConfigProfile. +func (s *NodeResponseDataItem) SetConfigProfile(val ConfigProfileItem) { + s.ConfigProfile = val +} + +// SetProviderUuid sets the value of ProviderUuid. +func (s *NodeResponseDataItem) SetProviderUuid(val NilUUID) { + s.ProviderUuid = val +} + +// SetProvider sets the value of Provider. +func (s *NodeResponseDataItem) SetProvider(val NilProviderItem) { + s.Provider = val +} + +// SetActivePluginUuid sets the value of ActivePluginUuid. +func (s *NodeResponseDataItem) SetActivePluginUuid(val NilUUID) { + s.ActivePluginUuid = val +} + +// SetSystem sets the value of System. +func (s *NodeResponseDataItem) SetSystem(val NilSystemItem) { + s.System = val +} + +// SetVersions sets the value of Versions. +func (s *NodeResponseDataItem) SetVersions(val NilVersion) { + s.Versions = val +} + +// SetXrayUptime sets the value of XrayUptime. +func (s *NodeResponseDataItem) SetXrayUptime(val float64) { + s.XrayUptime = val +} + +// SetUsersOnline sets the value of UsersOnline. +func (s *NodeResponseDataItem) SetUsersOnline(val float64) { + s.UsersOnline = val +} + +// Ref: #/components/schemas/NodeResponseInfoItem +type NodeResponseInfoItem struct { + Arch string `json:"arch"` + Cpus int `json:"cpus"` + CpuModel string `json:"cpuModel"` + MemoryTotal float64 `json:"memoryTotal"` + Hostname string `json:"hostname"` + Platform string `json:"platform"` + Release string `json:"release"` + Type string `json:"type"` + Version string `json:"version"` + NetworkInterfaces []string `json:"networkInterfaces"` +} + +// GetArch returns the value of Arch. +func (s *NodeResponseInfoItem) GetArch() string { + return s.Arch +} + +// GetCpus returns the value of Cpus. +func (s *NodeResponseInfoItem) GetCpus() int { + return s.Cpus +} + +// GetCpuModel returns the value of CpuModel. +func (s *NodeResponseInfoItem) GetCpuModel() string { + return s.CpuModel +} + +// GetMemoryTotal returns the value of MemoryTotal. +func (s *NodeResponseInfoItem) GetMemoryTotal() float64 { + return s.MemoryTotal +} + +// GetHostname returns the value of Hostname. +func (s *NodeResponseInfoItem) GetHostname() string { + return s.Hostname +} + +// GetPlatform returns the value of Platform. +func (s *NodeResponseInfoItem) GetPlatform() string { + return s.Platform +} + +// GetRelease returns the value of Release. +func (s *NodeResponseInfoItem) GetRelease() string { + return s.Release +} + +// GetType returns the value of Type. +func (s *NodeResponseInfoItem) GetType() string { + return s.Type +} + +// GetVersion returns the value of Version. +func (s *NodeResponseInfoItem) GetVersion() string { + return s.Version +} + +// GetNetworkInterfaces returns the value of NetworkInterfaces. +func (s *NodeResponseInfoItem) GetNetworkInterfaces() []string { + return s.NetworkInterfaces +} + +// SetArch sets the value of Arch. +func (s *NodeResponseInfoItem) SetArch(val string) { + s.Arch = val +} + +// SetCpus sets the value of Cpus. +func (s *NodeResponseInfoItem) SetCpus(val int) { + s.Cpus = val +} + +// SetCpuModel sets the value of CpuModel. +func (s *NodeResponseInfoItem) SetCpuModel(val string) { + s.CpuModel = val +} + +// SetMemoryTotal sets the value of MemoryTotal. +func (s *NodeResponseInfoItem) SetMemoryTotal(val float64) { + s.MemoryTotal = val +} + +// SetHostname sets the value of Hostname. +func (s *NodeResponseInfoItem) SetHostname(val string) { + s.Hostname = val +} + +// SetPlatform sets the value of Platform. +func (s *NodeResponseInfoItem) SetPlatform(val string) { + s.Platform = val +} + +// SetRelease sets the value of Release. +func (s *NodeResponseInfoItem) SetRelease(val string) { + s.Release = val +} + +// SetType sets the value of Type. +func (s *NodeResponseInfoItem) SetType(val string) { + s.Type = val +} + +// SetVersion sets the value of Version. +func (s *NodeResponseInfoItem) SetVersion(val string) { + s.Version = val +} + +// SetNetworkInterfaces sets the value of NetworkInterfaces. +func (s *NodeResponseInfoItem) SetNetworkInterfaces(val []string) { + s.NetworkInterfaces = val +} + +// Ref: #/components/schemas/NodesResponse +type NodesResponse struct { + Response []NodeResponseDataItem `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *NodesResponse) GetResponse() []NodeResponseDataItem { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *NodesResponse) SetResponse(val []NodeResponseDataItem) { + s.Response = val +} + +func (*NodesResponse) nodesGetAllNodesRes() {} +func (*NodesResponse) nodesReorderNodesRes() {} + +// Ref: #/components/schemas/NotFoundError +type NotFoundError struct { + Message string `json:"message"` + StatusCode float64 `json:"statusCode"` +} + +// GetMessage returns the value of Message. +func (s *NotFoundError) GetMessage() string { + return s.Message +} + +// GetStatusCode returns the value of StatusCode. +func (s *NotFoundError) GetStatusCode() float64 { + return s.StatusCode +} + +// SetMessage sets the value of Message. +func (s *NotFoundError) SetMessage(val string) { + s.Message = val +} + +// SetStatusCode sets the value of StatusCode. +func (s *NotFoundError) SetStatusCode(val float64) { + s.StatusCode = val +} + +func (*NotFoundError) bandwidthStatsUsersGetUserUsageByRangeRes() {} +func (*NotFoundError) configProfileDeleteConfigProfileByUuidRes() {} +func (*NotFoundError) configProfileGetComputedConfigProfileByUuidRes() {} +func (*NotFoundError) configProfileGetConfigProfileByUuidRes() {} +func (*NotFoundError) configProfileGetInboundsByProfileUuidRes() {} +func (*NotFoundError) configProfileUpdateConfigProfileRes() {} +func (*NotFoundError) externalSquadAddUsersToExternalSquadRes() {} +func (*NotFoundError) externalSquadDeleteExternalSquadRes() {} +func (*NotFoundError) externalSquadRemoveUsersFromExternalSquadRes() {} +func (*NotFoundError) externalSquadUpdateExternalSquadRes() {} +func (*NotFoundError) hostsDeleteHostRes() {} +func (*NotFoundError) hwidUserDevicesCreateUserHwidDeviceRes() {} +func (*NotFoundError) hwidUserDevicesDeleteAllUserHwidDevicesRes() {} +func (*NotFoundError) hwidUserDevicesDeleteUserHwidDeviceRes() {} +func (*NotFoundError) hwidUserDevicesGetUserHwidDevicesRes() {} +func (*NotFoundError) infraBillingGetInfraProviderByUuidRes() {} +func (*NotFoundError) internalSquadAddUsersToInternalSquadRes() {} +func (*NotFoundError) internalSquadDeleteInternalSquadRes() {} +func (*NotFoundError) internalSquadGetInternalSquadAccessibleNodesRes() {} +func (*NotFoundError) internalSquadRemoveUsersFromInternalSquadRes() {} +func (*NotFoundError) internalSquadUpdateInternalSquadRes() {} +func (*NotFoundError) ipControlDropConnectionsRes() {} +func (*NotFoundError) ipControlFetchUserIpsRes() {} +func (*NotFoundError) ipControlFetchUsersIpsRes() {} +func (*NotFoundError) ipControlGetFetchIpsResultRes() {} +func (*NotFoundError) ipControlGetFetchUsersIpsResultRes() {} +func (*NotFoundError) metadataGetNodeMetadataRes() {} +func (*NotFoundError) metadataGetUserMetadataRes() {} +func (*NotFoundError) metadataUpsertNodeMetadataRes() {} +func (*NotFoundError) metadataUpsertUserMetadataRes() {} +func (*NotFoundError) snippetsDeleteSnippetByNameRes() {} +func (*NotFoundError) snippetsUpdateSnippetRes() {} +func (*NotFoundError) subscriptionsGetSubscriptionByShortUuidProtectedRes() {} +func (*NotFoundError) subscriptionsGetSubscriptionByUsernameRes() {} +func (*NotFoundError) subscriptionsGetSubscriptionByUuidRes() {} +func (*NotFoundError) usersDeleteUserRes() {} +func (*NotFoundError) usersDisableUserRes() {} +func (*NotFoundError) usersEnableUserRes() {} +func (*NotFoundError) usersGetUserAccessibleNodesRes() {} +func (*NotFoundError) usersGetUserByIdRes() {} +func (*NotFoundError) usersGetUserByShortUuidRes() {} +func (*NotFoundError) usersGetUserByUsernameRes() {} +func (*NotFoundError) usersGetUserByUuidRes() {} +func (*NotFoundError) usersGetUserSubscriptionRequestHistoryRes() {} +func (*NotFoundError) usersResetUserTrafficRes() {} +func (*NotFoundError) usersResolveUserRes() {} +func (*NotFoundError) usersRevokeUserSubscriptionRes() {} + +// Ref: #/components/schemas/OAuth2AuthorizeRequest +type OAuth2AuthorizeRequest struct { + Provider OAuth2AuthorizeRequestProvider `json:"provider"` +} + +// GetProvider returns the value of Provider. +func (s *OAuth2AuthorizeRequest) GetProvider() OAuth2AuthorizeRequestProvider { + return s.Provider +} + +// SetProvider sets the value of Provider. +func (s *OAuth2AuthorizeRequest) SetProvider(val OAuth2AuthorizeRequestProvider) { + s.Provider = val +} + +type OAuth2AuthorizeRequestProvider string + +const ( + OAuth2AuthorizeRequestProviderTelegram OAuth2AuthorizeRequestProvider = "telegram" + OAuth2AuthorizeRequestProviderGithub OAuth2AuthorizeRequestProvider = "github" + OAuth2AuthorizeRequestProviderPocketid OAuth2AuthorizeRequestProvider = "pocketid" + OAuth2AuthorizeRequestProviderYandex OAuth2AuthorizeRequestProvider = "yandex" + OAuth2AuthorizeRequestProviderKeycloak OAuth2AuthorizeRequestProvider = "keycloak" + OAuth2AuthorizeRequestProviderGeneric OAuth2AuthorizeRequestProvider = "generic" +) + +// AllValues returns all OAuth2AuthorizeRequestProvider values. +func (OAuth2AuthorizeRequestProvider) AllValues() []OAuth2AuthorizeRequestProvider { + return []OAuth2AuthorizeRequestProvider{ + OAuth2AuthorizeRequestProviderTelegram, + OAuth2AuthorizeRequestProviderGithub, + OAuth2AuthorizeRequestProviderPocketid, + OAuth2AuthorizeRequestProviderYandex, + OAuth2AuthorizeRequestProviderKeycloak, + OAuth2AuthorizeRequestProviderGeneric, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s OAuth2AuthorizeRequestProvider) MarshalText() ([]byte, error) { + switch s { + case OAuth2AuthorizeRequestProviderTelegram: + return []byte(s), nil + case OAuth2AuthorizeRequestProviderGithub: + return []byte(s), nil + case OAuth2AuthorizeRequestProviderPocketid: + return []byte(s), nil + case OAuth2AuthorizeRequestProviderYandex: + return []byte(s), nil + case OAuth2AuthorizeRequestProviderKeycloak: + return []byte(s), nil + case OAuth2AuthorizeRequestProviderGeneric: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *OAuth2AuthorizeRequestProvider) UnmarshalText(data []byte) error { + switch OAuth2AuthorizeRequestProvider(data) { + case OAuth2AuthorizeRequestProviderTelegram: + *s = OAuth2AuthorizeRequestProviderTelegram + return nil + case OAuth2AuthorizeRequestProviderGithub: + *s = OAuth2AuthorizeRequestProviderGithub + return nil + case OAuth2AuthorizeRequestProviderPocketid: + *s = OAuth2AuthorizeRequestProviderPocketid + return nil + case OAuth2AuthorizeRequestProviderYandex: + *s = OAuth2AuthorizeRequestProviderYandex + return nil + case OAuth2AuthorizeRequestProviderKeycloak: + *s = OAuth2AuthorizeRequestProviderKeycloak + return nil + case OAuth2AuthorizeRequestProviderGeneric: + *s = OAuth2AuthorizeRequestProviderGeneric + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/OAuth2AuthorizeResponse +type OAuth2AuthorizeResponse struct { + Response OAuth2AuthorizeResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *OAuth2AuthorizeResponse) GetResponse() OAuth2AuthorizeResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *OAuth2AuthorizeResponse) SetResponse(val OAuth2AuthorizeResponseResponse) { + s.Response = val +} + +type OAuth2AuthorizeResponseResponse struct { + AuthorizationUrl NilURI `json:"authorizationUrl"` +} + +// GetAuthorizationUrl returns the value of AuthorizationUrl. +func (s *OAuth2AuthorizeResponseResponse) GetAuthorizationUrl() NilURI { + return s.AuthorizationUrl +} + +// SetAuthorizationUrl sets the value of AuthorizationUrl. +func (s *OAuth2AuthorizeResponseResponse) SetAuthorizationUrl(val NilURI) { + s.AuthorizationUrl = val +} + +// OAuth2AuthorizeResponseStatusCode wraps OAuth2AuthorizeResponse with StatusCode. +type OAuth2AuthorizeResponseStatusCode struct { + StatusCode int + Response OAuth2AuthorizeResponse +} + +// GetStatusCode returns the value of StatusCode. +func (s *OAuth2AuthorizeResponseStatusCode) GetStatusCode() int { + return s.StatusCode +} + +// GetResponse returns the value of Response. +func (s *OAuth2AuthorizeResponseStatusCode) GetResponse() OAuth2AuthorizeResponse { + return s.Response +} + +// SetStatusCode sets the value of StatusCode. +func (s *OAuth2AuthorizeResponseStatusCode) SetStatusCode(val int) { + s.StatusCode = val +} + +// SetResponse sets the value of Response. +func (s *OAuth2AuthorizeResponseStatusCode) SetResponse(val OAuth2AuthorizeResponse) { + s.Response = val +} + +func (*OAuth2AuthorizeResponseStatusCode) authOauth2AuthorizeRes() {} + +// Ref: #/components/schemas/OAuth2CallbackRequest +type OAuth2CallbackRequest struct { + Provider OAuth2CallbackRequestProvider `json:"provider"` + Code string `json:"code"` + State string `json:"state"` +} + +// GetProvider returns the value of Provider. +func (s *OAuth2CallbackRequest) GetProvider() OAuth2CallbackRequestProvider { + return s.Provider +} + +// GetCode returns the value of Code. +func (s *OAuth2CallbackRequest) GetCode() string { + return s.Code +} + +// GetState returns the value of State. +func (s *OAuth2CallbackRequest) GetState() string { + return s.State +} + +// SetProvider sets the value of Provider. +func (s *OAuth2CallbackRequest) SetProvider(val OAuth2CallbackRequestProvider) { + s.Provider = val +} + +// SetCode sets the value of Code. +func (s *OAuth2CallbackRequest) SetCode(val string) { + s.Code = val +} + +// SetState sets the value of State. +func (s *OAuth2CallbackRequest) SetState(val string) { + s.State = val +} + +type OAuth2CallbackRequestProvider string + +const ( + OAuth2CallbackRequestProviderTelegram OAuth2CallbackRequestProvider = "telegram" + OAuth2CallbackRequestProviderGithub OAuth2CallbackRequestProvider = "github" + OAuth2CallbackRequestProviderPocketid OAuth2CallbackRequestProvider = "pocketid" + OAuth2CallbackRequestProviderYandex OAuth2CallbackRequestProvider = "yandex" + OAuth2CallbackRequestProviderKeycloak OAuth2CallbackRequestProvider = "keycloak" + OAuth2CallbackRequestProviderGeneric OAuth2CallbackRequestProvider = "generic" +) + +// AllValues returns all OAuth2CallbackRequestProvider values. +func (OAuth2CallbackRequestProvider) AllValues() []OAuth2CallbackRequestProvider { + return []OAuth2CallbackRequestProvider{ + OAuth2CallbackRequestProviderTelegram, + OAuth2CallbackRequestProviderGithub, + OAuth2CallbackRequestProviderPocketid, + OAuth2CallbackRequestProviderYandex, + OAuth2CallbackRequestProviderKeycloak, + OAuth2CallbackRequestProviderGeneric, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s OAuth2CallbackRequestProvider) MarshalText() ([]byte, error) { + switch s { + case OAuth2CallbackRequestProviderTelegram: + return []byte(s), nil + case OAuth2CallbackRequestProviderGithub: + return []byte(s), nil + case OAuth2CallbackRequestProviderPocketid: + return []byte(s), nil + case OAuth2CallbackRequestProviderYandex: + return []byte(s), nil + case OAuth2CallbackRequestProviderKeycloak: + return []byte(s), nil + case OAuth2CallbackRequestProviderGeneric: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *OAuth2CallbackRequestProvider) UnmarshalText(data []byte) error { + switch OAuth2CallbackRequestProvider(data) { + case OAuth2CallbackRequestProviderTelegram: + *s = OAuth2CallbackRequestProviderTelegram + return nil + case OAuth2CallbackRequestProviderGithub: + *s = OAuth2CallbackRequestProviderGithub + return nil + case OAuth2CallbackRequestProviderPocketid: + *s = OAuth2CallbackRequestProviderPocketid + return nil + case OAuth2CallbackRequestProviderYandex: + *s = OAuth2CallbackRequestProviderYandex + return nil + case OAuth2CallbackRequestProviderKeycloak: + *s = OAuth2CallbackRequestProviderKeycloak + return nil + case OAuth2CallbackRequestProviderGeneric: + *s = OAuth2CallbackRequestProviderGeneric + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/Oauth2Settings +type Oauth2Settings struct { + Github Github `json:"github"` + Pocketid Pocketid `json:"pocketid"` + Yandex Github `json:"yandex"` + Keycloak OptKeycloak `json:"keycloak"` + Generic OptGeneric `json:"generic"` + Telegram OptTelegram `json:"telegram"` +} + +// GetGithub returns the value of Github. +func (s *Oauth2Settings) GetGithub() Github { + return s.Github +} + +// GetPocketid returns the value of Pocketid. +func (s *Oauth2Settings) GetPocketid() Pocketid { + return s.Pocketid +} + +// GetYandex returns the value of Yandex. +func (s *Oauth2Settings) GetYandex() Github { + return s.Yandex +} + +// GetKeycloak returns the value of Keycloak. +func (s *Oauth2Settings) GetKeycloak() OptKeycloak { + return s.Keycloak +} + +// GetGeneric returns the value of Generic. +func (s *Oauth2Settings) GetGeneric() OptGeneric { + return s.Generic +} + +// GetTelegram returns the value of Telegram. +func (s *Oauth2Settings) GetTelegram() OptTelegram { + return s.Telegram +} + +// SetGithub sets the value of Github. +func (s *Oauth2Settings) SetGithub(val Github) { + s.Github = val +} + +// SetPocketid sets the value of Pocketid. +func (s *Oauth2Settings) SetPocketid(val Pocketid) { + s.Pocketid = val +} + +// SetYandex sets the value of Yandex. +func (s *Oauth2Settings) SetYandex(val Github) { + s.Yandex = val +} + +// SetKeycloak sets the value of Keycloak. +func (s *Oauth2Settings) SetKeycloak(val OptKeycloak) { + s.Keycloak = val +} + +// SetGeneric sets the value of Generic. +func (s *Oauth2Settings) SetGeneric(val OptGeneric) { + s.Generic = val +} + +// SetTelegram sets the value of Telegram. +func (s *Oauth2Settings) SetTelegram(val OptTelegram) { + s.Telegram = val +} + +// NewOptBool returns new OptBool with value set to v. +func NewOptBool(v bool) OptBool { + return OptBool{ + Value: v, + Set: true, + } +} + +// OptBool is optional bool. +type OptBool struct { + Value bool + Set bool +} + +// IsSet returns true if OptBool was set. +func (o OptBool) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptBool) Reset() { + var v bool + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptBool) SetTo(v bool) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptBool) Get() (v bool, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptBool) Or(d bool) bool { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptBulkAllUpdateUsersRequestStatus returns new OptBulkAllUpdateUsersRequestStatus with value set to v. +func NewOptBulkAllUpdateUsersRequestStatus(v BulkAllUpdateUsersRequestStatus) OptBulkAllUpdateUsersRequestStatus { + return OptBulkAllUpdateUsersRequestStatus{ + Value: v, + Set: true, + } +} + +// OptBulkAllUpdateUsersRequestStatus is optional BulkAllUpdateUsersRequestStatus. +type OptBulkAllUpdateUsersRequestStatus struct { + Value BulkAllUpdateUsersRequestStatus + Set bool +} + +// IsSet returns true if OptBulkAllUpdateUsersRequestStatus was set. +func (o OptBulkAllUpdateUsersRequestStatus) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptBulkAllUpdateUsersRequestStatus) Reset() { + var v BulkAllUpdateUsersRequestStatus + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptBulkAllUpdateUsersRequestStatus) SetTo(v BulkAllUpdateUsersRequestStatus) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptBulkAllUpdateUsersRequestStatus) Get() (v BulkAllUpdateUsersRequestStatus, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptBulkAllUpdateUsersRequestStatus) Or(d BulkAllUpdateUsersRequestStatus) BulkAllUpdateUsersRequestStatus { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptBulkAllUpdateUsersRequestTrafficLimitStrategy returns new OptBulkAllUpdateUsersRequestTrafficLimitStrategy with value set to v. +func NewOptBulkAllUpdateUsersRequestTrafficLimitStrategy(v BulkAllUpdateUsersRequestTrafficLimitStrategy) OptBulkAllUpdateUsersRequestTrafficLimitStrategy { + return OptBulkAllUpdateUsersRequestTrafficLimitStrategy{ + Value: v, + Set: true, + } +} + +// OptBulkAllUpdateUsersRequestTrafficLimitStrategy is optional BulkAllUpdateUsersRequestTrafficLimitStrategy. +type OptBulkAllUpdateUsersRequestTrafficLimitStrategy struct { + Value BulkAllUpdateUsersRequestTrafficLimitStrategy + Set bool +} + +// IsSet returns true if OptBulkAllUpdateUsersRequestTrafficLimitStrategy was set. +func (o OptBulkAllUpdateUsersRequestTrafficLimitStrategy) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptBulkAllUpdateUsersRequestTrafficLimitStrategy) Reset() { + var v BulkAllUpdateUsersRequestTrafficLimitStrategy + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptBulkAllUpdateUsersRequestTrafficLimitStrategy) SetTo(v BulkAllUpdateUsersRequestTrafficLimitStrategy) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptBulkAllUpdateUsersRequestTrafficLimitStrategy) Get() (v BulkAllUpdateUsersRequestTrafficLimitStrategy, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptBulkAllUpdateUsersRequestTrafficLimitStrategy) Or(d BulkAllUpdateUsersRequestTrafficLimitStrategy) BulkAllUpdateUsersRequestTrafficLimitStrategy { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptBulkDeleteUsersByStatusRequestStatus returns new OptBulkDeleteUsersByStatusRequestStatus with value set to v. +func NewOptBulkDeleteUsersByStatusRequestStatus(v BulkDeleteUsersByStatusRequestStatus) OptBulkDeleteUsersByStatusRequestStatus { + return OptBulkDeleteUsersByStatusRequestStatus{ + Value: v, + Set: true, + } +} + +// OptBulkDeleteUsersByStatusRequestStatus is optional BulkDeleteUsersByStatusRequestStatus. +type OptBulkDeleteUsersByStatusRequestStatus struct { + Value BulkDeleteUsersByStatusRequestStatus + Set bool +} + +// IsSet returns true if OptBulkDeleteUsersByStatusRequestStatus was set. +func (o OptBulkDeleteUsersByStatusRequestStatus) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptBulkDeleteUsersByStatusRequestStatus) Reset() { + var v BulkDeleteUsersByStatusRequestStatus + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptBulkDeleteUsersByStatusRequestStatus) SetTo(v BulkDeleteUsersByStatusRequestStatus) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptBulkDeleteUsersByStatusRequestStatus) Get() (v BulkDeleteUsersByStatusRequestStatus, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptBulkDeleteUsersByStatusRequestStatus) Or(d BulkDeleteUsersByStatusRequestStatus) BulkDeleteUsersByStatusRequestStatus { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptBulkUpdateUsersRequestFieldsStatus returns new OptBulkUpdateUsersRequestFieldsStatus with value set to v. +func NewOptBulkUpdateUsersRequestFieldsStatus(v BulkUpdateUsersRequestFieldsStatus) OptBulkUpdateUsersRequestFieldsStatus { + return OptBulkUpdateUsersRequestFieldsStatus{ + Value: v, + Set: true, + } +} + +// OptBulkUpdateUsersRequestFieldsStatus is optional BulkUpdateUsersRequestFieldsStatus. +type OptBulkUpdateUsersRequestFieldsStatus struct { + Value BulkUpdateUsersRequestFieldsStatus + Set bool +} + +// IsSet returns true if OptBulkUpdateUsersRequestFieldsStatus was set. +func (o OptBulkUpdateUsersRequestFieldsStatus) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptBulkUpdateUsersRequestFieldsStatus) Reset() { + var v BulkUpdateUsersRequestFieldsStatus + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptBulkUpdateUsersRequestFieldsStatus) SetTo(v BulkUpdateUsersRequestFieldsStatus) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptBulkUpdateUsersRequestFieldsStatus) Get() (v BulkUpdateUsersRequestFieldsStatus, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptBulkUpdateUsersRequestFieldsStatus) Or(d BulkUpdateUsersRequestFieldsStatus) BulkUpdateUsersRequestFieldsStatus { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptBulkUpdateUsersRequestFieldsTrafficLimitStrategy returns new OptBulkUpdateUsersRequestFieldsTrafficLimitStrategy with value set to v. +func NewOptBulkUpdateUsersRequestFieldsTrafficLimitStrategy(v BulkUpdateUsersRequestFieldsTrafficLimitStrategy) OptBulkUpdateUsersRequestFieldsTrafficLimitStrategy { + return OptBulkUpdateUsersRequestFieldsTrafficLimitStrategy{ + Value: v, + Set: true, + } +} + +// OptBulkUpdateUsersRequestFieldsTrafficLimitStrategy is optional BulkUpdateUsersRequestFieldsTrafficLimitStrategy. +type OptBulkUpdateUsersRequestFieldsTrafficLimitStrategy struct { + Value BulkUpdateUsersRequestFieldsTrafficLimitStrategy + Set bool +} + +// IsSet returns true if OptBulkUpdateUsersRequestFieldsTrafficLimitStrategy was set. +func (o OptBulkUpdateUsersRequestFieldsTrafficLimitStrategy) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptBulkUpdateUsersRequestFieldsTrafficLimitStrategy) Reset() { + var v BulkUpdateUsersRequestFieldsTrafficLimitStrategy + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptBulkUpdateUsersRequestFieldsTrafficLimitStrategy) SetTo(v BulkUpdateUsersRequestFieldsTrafficLimitStrategy) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptBulkUpdateUsersRequestFieldsTrafficLimitStrategy) Get() (v BulkUpdateUsersRequestFieldsTrafficLimitStrategy, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptBulkUpdateUsersRequestFieldsTrafficLimitStrategy) Or(d BulkUpdateUsersRequestFieldsTrafficLimitStrategy) BulkUpdateUsersRequestFieldsTrafficLimitStrategy { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptConfigProfileRef returns new OptConfigProfileRef with value set to v. +func NewOptConfigProfileRef(v ConfigProfileRef) OptConfigProfileRef { + return OptConfigProfileRef{ + Value: v, + Set: true, + } +} + +// OptConfigProfileRef is optional ConfigProfileRef. +type OptConfigProfileRef struct { + Value ConfigProfileRef + Set bool +} + +// IsSet returns true if OptConfigProfileRef was set. +func (o OptConfigProfileRef) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptConfigProfileRef) Reset() { + var v ConfigProfileRef + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptConfigProfileRef) SetTo(v ConfigProfileRef) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptConfigProfileRef) Get() (v ConfigProfileRef, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptConfigProfileRef) Or(d ConfigProfileRef) ConfigProfileRef { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptCreateHostRequestSecurityLayer returns new OptCreateHostRequestSecurityLayer with value set to v. +func NewOptCreateHostRequestSecurityLayer(v CreateHostRequestSecurityLayer) OptCreateHostRequestSecurityLayer { + return OptCreateHostRequestSecurityLayer{ + Value: v, + Set: true, + } +} + +// OptCreateHostRequestSecurityLayer is optional CreateHostRequestSecurityLayer. +type OptCreateHostRequestSecurityLayer struct { + Value CreateHostRequestSecurityLayer + Set bool +} + +// IsSet returns true if OptCreateHostRequestSecurityLayer was set. +func (o OptCreateHostRequestSecurityLayer) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptCreateHostRequestSecurityLayer) Reset() { + var v CreateHostRequestSecurityLayer + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptCreateHostRequestSecurityLayer) SetTo(v CreateHostRequestSecurityLayer) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptCreateHostRequestSecurityLayer) Get() (v CreateHostRequestSecurityLayer, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptCreateHostRequestSecurityLayer) Or(d CreateHostRequestSecurityLayer) CreateHostRequestSecurityLayer { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptCreateUserRequestStatus returns new OptCreateUserRequestStatus with value set to v. +func NewOptCreateUserRequestStatus(v CreateUserRequestStatus) OptCreateUserRequestStatus { + return OptCreateUserRequestStatus{ + Value: v, + Set: true, + } +} + +// OptCreateUserRequestStatus is optional CreateUserRequestStatus. +type OptCreateUserRequestStatus struct { + Value CreateUserRequestStatus + Set bool +} + +// IsSet returns true if OptCreateUserRequestStatus was set. +func (o OptCreateUserRequestStatus) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptCreateUserRequestStatus) Reset() { + var v CreateUserRequestStatus + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptCreateUserRequestStatus) SetTo(v CreateUserRequestStatus) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptCreateUserRequestStatus) Get() (v CreateUserRequestStatus, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptCreateUserRequestStatus) Or(d CreateUserRequestStatus) CreateUserRequestStatus { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptCreateUserRequestTrafficLimitStrategy returns new OptCreateUserRequestTrafficLimitStrategy with value set to v. +func NewOptCreateUserRequestTrafficLimitStrategy(v CreateUserRequestTrafficLimitStrategy) OptCreateUserRequestTrafficLimitStrategy { + return OptCreateUserRequestTrafficLimitStrategy{ + Value: v, + Set: true, + } +} + +// OptCreateUserRequestTrafficLimitStrategy is optional CreateUserRequestTrafficLimitStrategy. +type OptCreateUserRequestTrafficLimitStrategy struct { + Value CreateUserRequestTrafficLimitStrategy + Set bool +} + +// IsSet returns true if OptCreateUserRequestTrafficLimitStrategy was set. +func (o OptCreateUserRequestTrafficLimitStrategy) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptCreateUserRequestTrafficLimitStrategy) Reset() { + var v CreateUserRequestTrafficLimitStrategy + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptCreateUserRequestTrafficLimitStrategy) SetTo(v CreateUserRequestTrafficLimitStrategy) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptCreateUserRequestTrafficLimitStrategy) Get() (v CreateUserRequestTrafficLimitStrategy, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptCreateUserRequestTrafficLimitStrategy) Or(d CreateUserRequestTrafficLimitStrategy) CreateUserRequestTrafficLimitStrategy { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptDateTime returns new OptDateTime with value set to v. +func NewOptDateTime(v time.Time) OptDateTime { + return OptDateTime{ + Value: v, + Set: true, + } +} + +// OptDateTime is optional time.Time. +type OptDateTime struct { + Value time.Time + Set bool +} + +// IsSet returns true if OptDateTime was set. +func (o OptDateTime) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptDateTime) Reset() { + var v time.Time + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptDateTime) SetTo(v time.Time) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptDateTime) Get() (v time.Time, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptDateTime) Or(d time.Time) time.Time { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptDebugSrrMatcherSettings returns new OptDebugSrrMatcherSettings with value set to v. +func NewOptDebugSrrMatcherSettings(v DebugSrrMatcherSettings) OptDebugSrrMatcherSettings { + return OptDebugSrrMatcherSettings{ + Value: v, + Set: true, + } +} + +// OptDebugSrrMatcherSettings is optional DebugSrrMatcherSettings. +type OptDebugSrrMatcherSettings struct { + Value DebugSrrMatcherSettings + Set bool +} + +// IsSet returns true if OptDebugSrrMatcherSettings was set. +func (o OptDebugSrrMatcherSettings) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptDebugSrrMatcherSettings) Reset() { + var v DebugSrrMatcherSettings + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptDebugSrrMatcherSettings) SetTo(v DebugSrrMatcherSettings) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptDebugSrrMatcherSettings) Get() (v DebugSrrMatcherSettings, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptDebugSrrMatcherSettings) Or(d DebugSrrMatcherSettings) DebugSrrMatcherSettings { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptFloat64 returns new OptFloat64 with value set to v. +func NewOptFloat64(v float64) OptFloat64 { + return OptFloat64{ + Value: v, + Set: true, + } +} + +// OptFloat64 is optional float64. +type OptFloat64 struct { + Value float64 + Set bool +} + +// IsSet returns true if OptFloat64 was set. +func (o OptFloat64) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptFloat64) Reset() { + var v float64 + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptFloat64) SetTo(v float64) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptFloat64) Get() (v float64, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptFloat64) Or(d float64) float64 { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptGeneric returns new OptGeneric with value set to v. +func NewOptGeneric(v Generic) OptGeneric { + return OptGeneric{ + Value: v, + Set: true, + } +} + +// OptGeneric is optional Generic. +type OptGeneric struct { + Value Generic + Set bool +} + +// IsSet returns true if OptGeneric was set. +func (o OptGeneric) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptGeneric) Reset() { + var v Generic + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptGeneric) SetTo(v Generic) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptGeneric) Get() (v Generic, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptGeneric) Or(d Generic) Generic { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions returns new OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions with value set to v. +func NewOptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions) OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions { + return OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions{ + Value: v, + Set: true, + } +} + +// OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions is optional GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions. +type OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions struct { + Value GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions + Set bool +} + +// IsSet returns true if OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions was set. +func (o OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions) IsSet() bool { + return o.Set +} + +// Reset unsets value. +func (o *OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions) Reset() { + var v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions) SetTo(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions) Get() (v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions) Or(d GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions) GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request returns new OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request with value set to v. +func NewOptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request) OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request { + return OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request{ + Value: v, + Set: true, + } +} + +// OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request is optional GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request. +type OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request struct { + Value GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request + Set bool +} + +// IsSet returns true if OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request was set. +func (o OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request) IsSet() bool { + return o.Set +} + +// Reset unsets value. +func (o *OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request) Reset() { + var v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request) SetTo(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request) Get() (v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request) Or(d GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request) GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders returns new OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders with value set to v. +func NewOptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders) OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders { + return OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders{ + Value: v, + Set: true, + } +} + +// OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders is optional GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders. +type OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders struct { + Value GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders + Set bool +} + +// IsSet returns true if OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders was set. +func (o OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders) IsSet() bool { + return o.Set +} + +// Reset unsets value. +func (o *OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders) Reset() { + var v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders) SetTo(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders) Get() (v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders) Or(d GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders) GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response returns new OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response with value set to v. +func NewOptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response) OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response { + return OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response{ + Value: v, + Set: true, + } +} + +// OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response is optional GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response. +type OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response struct { + Value GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response + Set bool +} + +// IsSet returns true if OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response was set. +func (o OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response) IsSet() bool { + return o.Set +} + +// Reset unsets value. +func (o *OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response) Reset() { + var v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response) SetTo(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response) Get() (v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response) Or(d GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response) GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders returns new OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders with value set to v. +func NewOptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders) OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders { + return OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders{ + Value: v, + Set: true, + } +} + +// OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders is optional GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders. +type OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders struct { + Value GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders + Set bool +} + +// IsSet returns true if OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders was set. +func (o OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders) IsSet() bool { + return o.Set +} + +// Reset unsets value. +func (o *OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders) Reset() { + var v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders) SetTo(v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders) Get() (v GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders) Or(d GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders) GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptHostItemSecurityLayer returns new OptHostItemSecurityLayer with value set to v. +func NewOptHostItemSecurityLayer(v HostItemSecurityLayer) OptHostItemSecurityLayer { + return OptHostItemSecurityLayer{ + Value: v, + Set: true, + } +} + +// OptHostItemSecurityLayer is optional HostItemSecurityLayer. +type OptHostItemSecurityLayer struct { + Value HostItemSecurityLayer + Set bool +} + +// IsSet returns true if OptHostItemSecurityLayer was set. +func (o OptHostItemSecurityLayer) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptHostItemSecurityLayer) Reset() { + var v HostItemSecurityLayer + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptHostItemSecurityLayer) SetTo(v HostItemSecurityLayer) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptHostItemSecurityLayer) Get() (v HostItemSecurityLayer, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptHostItemSecurityLayer) Or(d HostItemSecurityLayer) HostItemSecurityLayer { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptInboundRef returns new OptInboundRef with value set to v. +func NewOptInboundRef(v InboundRef) OptInboundRef { + return OptInboundRef{ + Value: v, + Set: true, + } +} + +// OptInboundRef is optional InboundRef. +type OptInboundRef struct { + Value InboundRef + Set bool +} + +// IsSet returns true if OptInboundRef was set. +func (o OptInboundRef) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptInboundRef) Reset() { + var v InboundRef + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptInboundRef) SetTo(v InboundRef) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptInboundRef) Get() (v InboundRef, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptInboundRef) Or(d InboundRef) InboundRef { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptInt returns new OptInt with value set to v. +func NewOptInt(v int) OptInt { + return OptInt{ + Value: v, + Set: true, + } +} + +// OptInt is optional int. +type OptInt struct { + Value int + Set bool +} + +// IsSet returns true if OptInt was set. +func (o OptInt) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptInt) Reset() { + var v int + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptInt) SetTo(v int) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptInt) Get() (v int, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptInt) Or(d int) int { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptKeycloak returns new OptKeycloak with value set to v. +func NewOptKeycloak(v Keycloak) OptKeycloak { + return OptKeycloak{ + Value: v, + Set: true, + } +} + +// OptKeycloak is optional Keycloak. +type OptKeycloak struct { + Value Keycloak + Set bool +} + +// IsSet returns true if OptKeycloak was set. +func (o OptKeycloak) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptKeycloak) Reset() { + var v Keycloak + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptKeycloak) SetTo(v Keycloak) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptKeycloak) Get() (v Keycloak, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptKeycloak) Or(d Keycloak) Keycloak { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptNilBrandingSettings returns new OptNilBrandingSettings with value set to v. +func NewOptNilBrandingSettings(v BrandingSettings) OptNilBrandingSettings { + return OptNilBrandingSettings{ + Value: v, + Set: true, + } +} + +// OptNilBrandingSettings is optional nullable BrandingSettings. +type OptNilBrandingSettings struct { + Value BrandingSettings + Set bool + Null bool +} + +// IsSet returns true if OptNilBrandingSettings was set. +func (o OptNilBrandingSettings) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptNilBrandingSettings) Reset() { + var v BrandingSettings + o.Value = v + o.Set = false + o.Null = false +} + +// SetTo sets value to v. +func (o *OptNilBrandingSettings) SetTo(v BrandingSettings) { + o.Set = true + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o OptNilBrandingSettings) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *OptNilBrandingSettings) SetToNull() { + o.Set = true + o.Null = true + var v BrandingSettings + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptNilBrandingSettings) Get() (v BrandingSettings, ok bool) { + if o.Null { + return v, false + } + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptNilBrandingSettings) Or(d BrandingSettings) BrandingSettings { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptNilCreateHostRequestAlpn returns new OptNilCreateHostRequestAlpn with value set to v. +func NewOptNilCreateHostRequestAlpn(v CreateHostRequestAlpn) OptNilCreateHostRequestAlpn { + return OptNilCreateHostRequestAlpn{ + Value: v, + Set: true, + } +} + +// OptNilCreateHostRequestAlpn is optional nullable CreateHostRequestAlpn. +type OptNilCreateHostRequestAlpn struct { + Value CreateHostRequestAlpn + Set bool + Null bool +} + +// IsSet returns true if OptNilCreateHostRequestAlpn was set. +func (o OptNilCreateHostRequestAlpn) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptNilCreateHostRequestAlpn) Reset() { + var v CreateHostRequestAlpn + o.Value = v + o.Set = false + o.Null = false +} + +// SetTo sets value to v. +func (o *OptNilCreateHostRequestAlpn) SetTo(v CreateHostRequestAlpn) { + o.Set = true + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o OptNilCreateHostRequestAlpn) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *OptNilCreateHostRequestAlpn) SetToNull() { + o.Set = true + o.Null = true + var v CreateHostRequestAlpn + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptNilCreateHostRequestAlpn) Get() (v CreateHostRequestAlpn, ok bool) { + if o.Null { + return v, false + } + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptNilCreateHostRequestAlpn) Or(d CreateHostRequestAlpn) CreateHostRequestAlpn { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptNilCreateHostRequestFingerprint returns new OptNilCreateHostRequestFingerprint with value set to v. +func NewOptNilCreateHostRequestFingerprint(v CreateHostRequestFingerprint) OptNilCreateHostRequestFingerprint { + return OptNilCreateHostRequestFingerprint{ + Value: v, + Set: true, + } +} + +// OptNilCreateHostRequestFingerprint is optional nullable CreateHostRequestFingerprint. +type OptNilCreateHostRequestFingerprint struct { + Value CreateHostRequestFingerprint + Set bool + Null bool +} + +// IsSet returns true if OptNilCreateHostRequestFingerprint was set. +func (o OptNilCreateHostRequestFingerprint) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptNilCreateHostRequestFingerprint) Reset() { + var v CreateHostRequestFingerprint + o.Value = v + o.Set = false + o.Null = false +} + +// SetTo sets value to v. +func (o *OptNilCreateHostRequestFingerprint) SetTo(v CreateHostRequestFingerprint) { + o.Set = true + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o OptNilCreateHostRequestFingerprint) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *OptNilCreateHostRequestFingerprint) SetToNull() { + o.Set = true + o.Null = true + var v CreateHostRequestFingerprint + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptNilCreateHostRequestFingerprint) Get() (v CreateHostRequestFingerprint, ok bool) { + if o.Null { + return v, false + } + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptNilCreateHostRequestFingerprint) Or(d CreateHostRequestFingerprint) CreateHostRequestFingerprint { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptNilCustomRemark returns new OptNilCustomRemark with value set to v. +func NewOptNilCustomRemark(v CustomRemark) OptNilCustomRemark { + return OptNilCustomRemark{ + Value: v, + Set: true, + } +} + +// OptNilCustomRemark is optional nullable CustomRemark. +type OptNilCustomRemark struct { + Value CustomRemark + Set bool + Null bool +} + +// IsSet returns true if OptNilCustomRemark was set. +func (o OptNilCustomRemark) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptNilCustomRemark) Reset() { + var v CustomRemark + o.Value = v + o.Set = false + o.Null = false +} + +// SetTo sets value to v. +func (o *OptNilCustomRemark) SetTo(v CustomRemark) { + o.Set = true + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o OptNilCustomRemark) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *OptNilCustomRemark) SetToNull() { + o.Set = true + o.Null = true + var v CustomRemark + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptNilCustomRemark) Get() (v CustomRemark, ok bool) { + if o.Null { + return v, false + } + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptNilCustomRemark) Or(d CustomRemark) CustomRemark { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptNilHostOverride returns new OptNilHostOverride with value set to v. +func NewOptNilHostOverride(v HostOverride) OptNilHostOverride { + return OptNilHostOverride{ + Value: v, + Set: true, + } +} + +// OptNilHostOverride is optional nullable HostOverride. +type OptNilHostOverride struct { + Value HostOverride + Set bool + Null bool +} + +// IsSet returns true if OptNilHostOverride was set. +func (o OptNilHostOverride) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptNilHostOverride) Reset() { + var v HostOverride + o.Value = v + o.Set = false + o.Null = false +} + +// SetTo sets value to v. +func (o *OptNilHostOverride) SetTo(v HostOverride) { + o.Set = true + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o OptNilHostOverride) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *OptNilHostOverride) SetToNull() { + o.Set = true + o.Null = true + var v HostOverride + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptNilHostOverride) Get() (v HostOverride, ok bool) { + if o.Null { + return v, false + } + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptNilHostOverride) Or(d HostOverride) HostOverride { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptNilHwidSettings returns new OptNilHwidSettings with value set to v. +func NewOptNilHwidSettings(v HwidSettings) OptNilHwidSettings { + return OptNilHwidSettings{ + Value: v, + Set: true, + } +} + +// OptNilHwidSettings is optional nullable HwidSettings. +type OptNilHwidSettings struct { + Value HwidSettings + Set bool + Null bool +} + +// IsSet returns true if OptNilHwidSettings was set. +func (o OptNilHwidSettings) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptNilHwidSettings) Reset() { + var v HwidSettings + o.Value = v + o.Set = false + o.Null = false +} + +// SetTo sets value to v. +func (o *OptNilHwidSettings) SetTo(v HwidSettings) { + o.Set = true + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o OptNilHwidSettings) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *OptNilHwidSettings) SetToNull() { + o.Set = true + o.Null = true + var v HwidSettings + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptNilHwidSettings) Get() (v HwidSettings, ok bool) { + if o.Null { + return v, false + } + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptNilHwidSettings) Or(d HwidSettings) HwidSettings { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptNilInt returns new OptNilInt with value set to v. +func NewOptNilInt(v int) OptNilInt { + return OptNilInt{ + Value: v, + Set: true, + } +} + +// OptNilInt is optional nullable int. +type OptNilInt struct { + Value int + Set bool + Null bool +} + +// IsSet returns true if OptNilInt was set. +func (o OptNilInt) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptNilInt) Reset() { + var v int + o.Value = v + o.Set = false + o.Null = false +} + +// SetTo sets value to v. +func (o *OptNilInt) SetTo(v int) { + o.Set = true + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o OptNilInt) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *OptNilInt) SetToNull() { + o.Set = true + o.Null = true + var v int + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptNilInt) Get() (v int, ok bool) { + if o.Null { + return v, false + } + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptNilInt) Or(d int) int { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptNilOauth2Settings returns new OptNilOauth2Settings with value set to v. +func NewOptNilOauth2Settings(v Oauth2Settings) OptNilOauth2Settings { + return OptNilOauth2Settings{ + Value: v, + Set: true, + } +} + +// OptNilOauth2Settings is optional nullable Oauth2Settings. +type OptNilOauth2Settings struct { + Value Oauth2Settings + Set bool + Null bool +} + +// IsSet returns true if OptNilOauth2Settings was set. +func (o OptNilOauth2Settings) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptNilOauth2Settings) Reset() { + var v Oauth2Settings + o.Value = v + o.Set = false + o.Null = false +} + +// SetTo sets value to v. +func (o *OptNilOauth2Settings) SetTo(v Oauth2Settings) { + o.Set = true + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o OptNilOauth2Settings) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *OptNilOauth2Settings) SetToNull() { + o.Set = true + o.Null = true + var v Oauth2Settings + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptNilOauth2Settings) Get() (v Oauth2Settings, ok bool) { + if o.Null { + return v, false + } + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptNilOauth2Settings) Or(d Oauth2Settings) Oauth2Settings { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptNilPasskeySettings returns new OptNilPasskeySettings with value set to v. +func NewOptNilPasskeySettings(v PasskeySettings) OptNilPasskeySettings { + return OptNilPasskeySettings{ + Value: v, + Set: true, + } +} + +// OptNilPasskeySettings is optional nullable PasskeySettings. +type OptNilPasskeySettings struct { + Value PasskeySettings + Set bool + Null bool +} + +// IsSet returns true if OptNilPasskeySettings was set. +func (o OptNilPasskeySettings) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptNilPasskeySettings) Reset() { + var v PasskeySettings + o.Value = v + o.Set = false + o.Null = false +} + +// SetTo sets value to v. +func (o *OptNilPasskeySettings) SetTo(v PasskeySettings) { + o.Set = true + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o OptNilPasskeySettings) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *OptNilPasskeySettings) SetToNull() { + o.Set = true + o.Null = true + var v PasskeySettings + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptNilPasskeySettings) Get() (v PasskeySettings, ok bool) { + if o.Null { + return v, false + } + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptNilPasskeySettings) Or(d PasskeySettings) PasskeySettings { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptNilPasswordSettings returns new OptNilPasswordSettings with value set to v. +func NewOptNilPasswordSettings(v PasswordSettings) OptNilPasswordSettings { + return OptNilPasswordSettings{ + Value: v, + Set: true, + } +} + +// OptNilPasswordSettings is optional nullable PasswordSettings. +type OptNilPasswordSettings struct { + Value PasswordSettings + Set bool + Null bool +} + +// IsSet returns true if OptNilPasswordSettings was set. +func (o OptNilPasswordSettings) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptNilPasswordSettings) Reset() { + var v PasswordSettings + o.Value = v + o.Set = false + o.Null = false +} + +// SetTo sets value to v. +func (o *OptNilPasswordSettings) SetTo(v PasswordSettings) { + o.Set = true + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o OptNilPasswordSettings) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *OptNilPasswordSettings) SetToNull() { + o.Set = true + o.Null = true + var v PasswordSettings + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptNilPasswordSettings) Get() (v PasswordSettings, ok bool) { + if o.Null { + return v, false + } + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptNilPasswordSettings) Or(d PasswordSettings) PasswordSettings { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptNilString returns new OptNilString with value set to v. +func NewOptNilString(v string) OptNilString { + return OptNilString{ + Value: v, + Set: true, + } +} + +// OptNilString is optional nullable string. +type OptNilString struct { + Value string + Set bool + Null bool +} + +// IsSet returns true if OptNilString was set. +func (o OptNilString) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptNilString) Reset() { + var v string + o.Value = v + o.Set = false + o.Null = false +} + +// SetTo sets value to v. +func (o *OptNilString) SetTo(v string) { + o.Set = true + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o OptNilString) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *OptNilString) SetToNull() { + o.Set = true + o.Null = true + var v string + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptNilString) Get() (v string, ok bool) { + if o.Null { + return v, false + } + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptNilString) Or(d string) string { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptNilSubscriptionSettings returns new OptNilSubscriptionSettings with value set to v. +func NewOptNilSubscriptionSettings(v SubscriptionSettings) OptNilSubscriptionSettings { + return OptNilSubscriptionSettings{ + Value: v, + Set: true, + } +} + +// OptNilSubscriptionSettings is optional nullable SubscriptionSettings. +type OptNilSubscriptionSettings struct { + Value SubscriptionSettings + Set bool + Null bool +} + +// IsSet returns true if OptNilSubscriptionSettings was set. +func (o OptNilSubscriptionSettings) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptNilSubscriptionSettings) Reset() { + var v SubscriptionSettings + o.Value = v + o.Set = false + o.Null = false +} + +// SetTo sets value to v. +func (o *OptNilSubscriptionSettings) SetTo(v SubscriptionSettings) { + o.Set = true + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o OptNilSubscriptionSettings) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *OptNilSubscriptionSettings) SetToNull() { + o.Set = true + o.Null = true + var v SubscriptionSettings + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptNilSubscriptionSettings) Get() (v SubscriptionSettings, ok bool) { + if o.Null { + return v, false + } + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptNilSubscriptionSettings) Or(d SubscriptionSettings) SubscriptionSettings { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptNilURI returns new OptNilURI with value set to v. +func NewOptNilURI(v url.URL) OptNilURI { + return OptNilURI{ + Value: v, + Set: true, + } +} + +// OptNilURI is optional nullable url.URL. +type OptNilURI struct { + Value url.URL + Set bool + Null bool +} + +// IsSet returns true if OptNilURI was set. +func (o OptNilURI) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptNilURI) Reset() { + var v url.URL + o.Value = v + o.Set = false + o.Null = false +} + +// SetTo sets value to v. +func (o *OptNilURI) SetTo(v url.URL) { + o.Set = true + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o OptNilURI) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *OptNilURI) SetToNull() { + o.Set = true + o.Null = true + var v url.URL + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptNilURI) Get() (v url.URL, ok bool) { + if o.Null { + return v, false + } + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptNilURI) Or(d url.URL) url.URL { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptNilUUID returns new OptNilUUID with value set to v. +func NewOptNilUUID(v uuid.UUID) OptNilUUID { + return OptNilUUID{ + Value: v, + Set: true, + } +} + +// OptNilUUID is optional nullable uuid.UUID. +type OptNilUUID struct { + Value uuid.UUID + Set bool + Null bool +} + +// IsSet returns true if OptNilUUID was set. +func (o OptNilUUID) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptNilUUID) Reset() { + var v uuid.UUID + o.Value = v + o.Set = false + o.Null = false +} + +// SetTo sets value to v. +func (o *OptNilUUID) SetTo(v uuid.UUID) { + o.Set = true + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o OptNilUUID) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *OptNilUUID) SetToNull() { + o.Set = true + o.Null = true + var v uuid.UUID + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptNilUUID) Get() (v uuid.UUID, ok bool) { + if o.Null { + return v, false + } + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptNilUUID) Or(d uuid.UUID) uuid.UUID { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptNilUpdateExternalSquadRequestResponseHeaders returns new OptNilUpdateExternalSquadRequestResponseHeaders with value set to v. +func NewOptNilUpdateExternalSquadRequestResponseHeaders(v UpdateExternalSquadRequestResponseHeaders) OptNilUpdateExternalSquadRequestResponseHeaders { + return OptNilUpdateExternalSquadRequestResponseHeaders{ + Value: v, + Set: true, + } +} + +// OptNilUpdateExternalSquadRequestResponseHeaders is optional nullable UpdateExternalSquadRequestResponseHeaders. +type OptNilUpdateExternalSquadRequestResponseHeaders struct { + Value UpdateExternalSquadRequestResponseHeaders + Set bool + Null bool +} + +// IsSet returns true if OptNilUpdateExternalSquadRequestResponseHeaders was set. +func (o OptNilUpdateExternalSquadRequestResponseHeaders) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptNilUpdateExternalSquadRequestResponseHeaders) Reset() { + var v UpdateExternalSquadRequestResponseHeaders + o.Value = v + o.Set = false + o.Null = false +} + +// SetTo sets value to v. +func (o *OptNilUpdateExternalSquadRequestResponseHeaders) SetTo(v UpdateExternalSquadRequestResponseHeaders) { + o.Set = true + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o OptNilUpdateExternalSquadRequestResponseHeaders) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *OptNilUpdateExternalSquadRequestResponseHeaders) SetToNull() { + o.Set = true + o.Null = true + var v UpdateExternalSquadRequestResponseHeaders + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptNilUpdateExternalSquadRequestResponseHeaders) Get() (v UpdateExternalSquadRequestResponseHeaders, ok bool) { + if o.Null { + return v, false + } + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptNilUpdateExternalSquadRequestResponseHeaders) Or(d UpdateExternalSquadRequestResponseHeaders) UpdateExternalSquadRequestResponseHeaders { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptNilUpdateHostRequestAlpn returns new OptNilUpdateHostRequestAlpn with value set to v. +func NewOptNilUpdateHostRequestAlpn(v UpdateHostRequestAlpn) OptNilUpdateHostRequestAlpn { + return OptNilUpdateHostRequestAlpn{ + Value: v, + Set: true, + } +} + +// OptNilUpdateHostRequestAlpn is optional nullable UpdateHostRequestAlpn. +type OptNilUpdateHostRequestAlpn struct { + Value UpdateHostRequestAlpn + Set bool + Null bool +} + +// IsSet returns true if OptNilUpdateHostRequestAlpn was set. +func (o OptNilUpdateHostRequestAlpn) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptNilUpdateHostRequestAlpn) Reset() { + var v UpdateHostRequestAlpn + o.Value = v + o.Set = false + o.Null = false +} + +// SetTo sets value to v. +func (o *OptNilUpdateHostRequestAlpn) SetTo(v UpdateHostRequestAlpn) { + o.Set = true + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o OptNilUpdateHostRequestAlpn) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *OptNilUpdateHostRequestAlpn) SetToNull() { + o.Set = true + o.Null = true + var v UpdateHostRequestAlpn + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptNilUpdateHostRequestAlpn) Get() (v UpdateHostRequestAlpn, ok bool) { + if o.Null { + return v, false + } + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptNilUpdateHostRequestAlpn) Or(d UpdateHostRequestAlpn) UpdateHostRequestAlpn { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptNilUpdateHostRequestFingerprint returns new OptNilUpdateHostRequestFingerprint with value set to v. +func NewOptNilUpdateHostRequestFingerprint(v UpdateHostRequestFingerprint) OptNilUpdateHostRequestFingerprint { + return OptNilUpdateHostRequestFingerprint{ + Value: v, + Set: true, + } +} + +// OptNilUpdateHostRequestFingerprint is optional nullable UpdateHostRequestFingerprint. +type OptNilUpdateHostRequestFingerprint struct { + Value UpdateHostRequestFingerprint + Set bool + Null bool +} + +// IsSet returns true if OptNilUpdateHostRequestFingerprint was set. +func (o OptNilUpdateHostRequestFingerprint) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptNilUpdateHostRequestFingerprint) Reset() { + var v UpdateHostRequestFingerprint + o.Value = v + o.Set = false + o.Null = false +} + +// SetTo sets value to v. +func (o *OptNilUpdateHostRequestFingerprint) SetTo(v UpdateHostRequestFingerprint) { + o.Set = true + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o OptNilUpdateHostRequestFingerprint) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *OptNilUpdateHostRequestFingerprint) SetToNull() { + o.Set = true + o.Null = true + var v UpdateHostRequestFingerprint + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptNilUpdateHostRequestFingerprint) Get() (v UpdateHostRequestFingerprint, ok bool) { + if o.Null { + return v, false + } + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptNilUpdateHostRequestFingerprint) Or(d UpdateHostRequestFingerprint) UpdateHostRequestFingerprint { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptResponseModification returns new OptResponseModification with value set to v. +func NewOptResponseModification(v ResponseModification) OptResponseModification { + return OptResponseModification{ + Value: v, + Set: true, + } +} + +// OptResponseModification is optional ResponseModification. +type OptResponseModification struct { + Value ResponseModification + Set bool +} + +// IsSet returns true if OptResponseModification was set. +func (o OptResponseModification) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptResponseModification) Reset() { + var v ResponseModification + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptResponseModification) SetTo(v ResponseModification) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptResponseModification) Get() (v ResponseModification, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptResponseModification) Or(d ResponseModification) ResponseModification { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptResponseRules returns new OptResponseRules with value set to v. +func NewOptResponseRules(v ResponseRules) OptResponseRules { + return OptResponseRules{ + Value: v, + Set: true, + } +} + +// OptResponseRules is optional ResponseRules. +type OptResponseRules struct { + Value ResponseRules + Set bool +} + +// IsSet returns true if OptResponseRules was set. +func (o OptResponseRules) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptResponseRules) Reset() { + var v ResponseRules + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptResponseRules) SetTo(v ResponseRules) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptResponseRules) Get() (v ResponseRules, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptResponseRules) Or(d ResponseRules) ResponseRules { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptString returns new OptString with value set to v. +func NewOptString(v string) OptString { + return OptString{ + Value: v, + Set: true, + } +} + +// OptString is optional string. +type OptString struct { + Value string + Set bool +} + +// IsSet returns true if OptString was set. +func (o OptString) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptString) Reset() { + var v string + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptString) SetTo(v string) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptString) Get() (v string, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptString) Or(d string) string { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptTelegram returns new OptTelegram with value set to v. +func NewOptTelegram(v Telegram) OptTelegram { + return OptTelegram{ + Value: v, + Set: true, + } +} + +// OptTelegram is optional Telegram. +type OptTelegram struct { + Value Telegram + Set bool +} + +// IsSet returns true if OptTelegram was set. +func (o OptTelegram) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptTelegram) Reset() { + var v Telegram + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptTelegram) SetTo(v Telegram) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptTelegram) Get() (v Telegram, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptTelegram) Or(d Telegram) Telegram { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptURI returns new OptURI with value set to v. +func NewOptURI(v url.URL) OptURI { + return OptURI{ + Value: v, + Set: true, + } +} + +// OptURI is optional url.URL. +type OptURI struct { + Value url.URL + Set bool +} + +// IsSet returns true if OptURI was set. +func (o OptURI) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptURI) Reset() { + var v url.URL + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptURI) SetTo(v url.URL) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptURI) Get() (v url.URL, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptURI) Or(d url.URL) url.URL { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptUUID returns new OptUUID with value set to v. +func NewOptUUID(v uuid.UUID) OptUUID { + return OptUUID{ + Value: v, + Set: true, + } +} + +// OptUUID is optional uuid.UUID. +type OptUUID struct { + Value uuid.UUID + Set bool +} + +// IsSet returns true if OptUUID was set. +func (o OptUUID) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptUUID) Reset() { + var v uuid.UUID + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptUUID) SetTo(v uuid.UUID) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptUUID) Get() (v uuid.UUID, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptUUID) Or(d uuid.UUID) uuid.UUID { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptUpdateHostRequestSecurityLayer returns new OptUpdateHostRequestSecurityLayer with value set to v. +func NewOptUpdateHostRequestSecurityLayer(v UpdateHostRequestSecurityLayer) OptUpdateHostRequestSecurityLayer { + return OptUpdateHostRequestSecurityLayer{ + Value: v, + Set: true, + } +} + +// OptUpdateHostRequestSecurityLayer is optional UpdateHostRequestSecurityLayer. +type OptUpdateHostRequestSecurityLayer struct { + Value UpdateHostRequestSecurityLayer + Set bool +} + +// IsSet returns true if OptUpdateHostRequestSecurityLayer was set. +func (o OptUpdateHostRequestSecurityLayer) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptUpdateHostRequestSecurityLayer) Reset() { + var v UpdateHostRequestSecurityLayer + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptUpdateHostRequestSecurityLayer) SetTo(v UpdateHostRequestSecurityLayer) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptUpdateHostRequestSecurityLayer) Get() (v UpdateHostRequestSecurityLayer, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptUpdateHostRequestSecurityLayer) Or(d UpdateHostRequestSecurityLayer) UpdateHostRequestSecurityLayer { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptUpdateSubscriptionSettingsRequestCustomResponseHeaders returns new OptUpdateSubscriptionSettingsRequestCustomResponseHeaders with value set to v. +func NewOptUpdateSubscriptionSettingsRequestCustomResponseHeaders(v UpdateSubscriptionSettingsRequestCustomResponseHeaders) OptUpdateSubscriptionSettingsRequestCustomResponseHeaders { + return OptUpdateSubscriptionSettingsRequestCustomResponseHeaders{ + Value: v, + Set: true, + } +} + +// OptUpdateSubscriptionSettingsRequestCustomResponseHeaders is optional UpdateSubscriptionSettingsRequestCustomResponseHeaders. +type OptUpdateSubscriptionSettingsRequestCustomResponseHeaders struct { + Value UpdateSubscriptionSettingsRequestCustomResponseHeaders + Set bool +} + +// IsSet returns true if OptUpdateSubscriptionSettingsRequestCustomResponseHeaders was set. +func (o OptUpdateSubscriptionSettingsRequestCustomResponseHeaders) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptUpdateSubscriptionSettingsRequestCustomResponseHeaders) Reset() { + var v UpdateSubscriptionSettingsRequestCustomResponseHeaders + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptUpdateSubscriptionSettingsRequestCustomResponseHeaders) SetTo(v UpdateSubscriptionSettingsRequestCustomResponseHeaders) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptUpdateSubscriptionSettingsRequestCustomResponseHeaders) Get() (v UpdateSubscriptionSettingsRequestCustomResponseHeaders, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptUpdateSubscriptionSettingsRequestCustomResponseHeaders) Or(d UpdateSubscriptionSettingsRequestCustomResponseHeaders) UpdateSubscriptionSettingsRequestCustomResponseHeaders { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptUpdateUserRequestStatus returns new OptUpdateUserRequestStatus with value set to v. +func NewOptUpdateUserRequestStatus(v UpdateUserRequestStatus) OptUpdateUserRequestStatus { + return OptUpdateUserRequestStatus{ + Value: v, + Set: true, + } +} + +// OptUpdateUserRequestStatus is optional UpdateUserRequestStatus. +type OptUpdateUserRequestStatus struct { + Value UpdateUserRequestStatus + Set bool +} + +// IsSet returns true if OptUpdateUserRequestStatus was set. +func (o OptUpdateUserRequestStatus) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptUpdateUserRequestStatus) Reset() { + var v UpdateUserRequestStatus + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptUpdateUserRequestStatus) SetTo(v UpdateUserRequestStatus) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptUpdateUserRequestStatus) Get() (v UpdateUserRequestStatus, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptUpdateUserRequestStatus) Or(d UpdateUserRequestStatus) UpdateUserRequestStatus { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptUpdateUserRequestTrafficLimitStrategy returns new OptUpdateUserRequestTrafficLimitStrategy with value set to v. +func NewOptUpdateUserRequestTrafficLimitStrategy(v UpdateUserRequestTrafficLimitStrategy) OptUpdateUserRequestTrafficLimitStrategy { + return OptUpdateUserRequestTrafficLimitStrategy{ + Value: v, + Set: true, + } +} + +// OptUpdateUserRequestTrafficLimitStrategy is optional UpdateUserRequestTrafficLimitStrategy. +type OptUpdateUserRequestTrafficLimitStrategy struct { + Value UpdateUserRequestTrafficLimitStrategy + Set bool +} + +// IsSet returns true if OptUpdateUserRequestTrafficLimitStrategy was set. +func (o OptUpdateUserRequestTrafficLimitStrategy) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptUpdateUserRequestTrafficLimitStrategy) Reset() { + var v UpdateUserRequestTrafficLimitStrategy + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptUpdateUserRequestTrafficLimitStrategy) SetTo(v UpdateUserRequestTrafficLimitStrategy) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptUpdateUserRequestTrafficLimitStrategy) Get() (v UpdateUserRequestTrafficLimitStrategy, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptUpdateUserRequestTrafficLimitStrategy) Or(d UpdateUserRequestTrafficLimitStrategy) UpdateUserRequestTrafficLimitStrategy { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptUserItemInfoStatus returns new OptUserItemInfoStatus with value set to v. +func NewOptUserItemInfoStatus(v UserItemInfoStatus) OptUserItemInfoStatus { + return OptUserItemInfoStatus{ + Value: v, + Set: true, + } +} + +// OptUserItemInfoStatus is optional UserItemInfoStatus. +type OptUserItemInfoStatus struct { + Value UserItemInfoStatus + Set bool +} + +// IsSet returns true if OptUserItemInfoStatus was set. +func (o OptUserItemInfoStatus) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptUserItemInfoStatus) Reset() { + var v UserItemInfoStatus + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptUserItemInfoStatus) SetTo(v UserItemInfoStatus) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptUserItemInfoStatus) Get() (v UserItemInfoStatus, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptUserItemInfoStatus) Or(d UserItemInfoStatus) UserItemInfoStatus { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptUserItemInfoTrafficLimitStrategy returns new OptUserItemInfoTrafficLimitStrategy with value set to v. +func NewOptUserItemInfoTrafficLimitStrategy(v UserItemInfoTrafficLimitStrategy) OptUserItemInfoTrafficLimitStrategy { + return OptUserItemInfoTrafficLimitStrategy{ + Value: v, + Set: true, + } +} + +// OptUserItemInfoTrafficLimitStrategy is optional UserItemInfoTrafficLimitStrategy. +type OptUserItemInfoTrafficLimitStrategy struct { + Value UserItemInfoTrafficLimitStrategy + Set bool +} + +// IsSet returns true if OptUserItemInfoTrafficLimitStrategy was set. +func (o OptUserItemInfoTrafficLimitStrategy) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptUserItemInfoTrafficLimitStrategy) Reset() { + var v UserItemInfoTrafficLimitStrategy + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptUserItemInfoTrafficLimitStrategy) SetTo(v UserItemInfoTrafficLimitStrategy) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptUserItemInfoTrafficLimitStrategy) Get() (v UserItemInfoTrafficLimitStrategy, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptUserItemInfoTrafficLimitStrategy) Or(d UserItemInfoTrafficLimitStrategy) UserItemInfoTrafficLimitStrategy { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// Ref: #/components/schemas/PasskeyOptions +type PasskeyOptions struct { + Response jx.Raw `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *PasskeyOptions) GetResponse() jx.Raw { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *PasskeyOptions) SetResponse(val jx.Raw) { + s.Response = val +} + +// PasskeyOptionsStatusCode wraps PasskeyOptions with StatusCode. +type PasskeyOptionsStatusCode struct { + StatusCode int + Response PasskeyOptions +} + +// GetStatusCode returns the value of StatusCode. +func (s *PasskeyOptionsStatusCode) GetStatusCode() int { + return s.StatusCode +} + +// GetResponse returns the value of Response. +func (s *PasskeyOptionsStatusCode) GetResponse() PasskeyOptions { + return s.Response +} + +// SetStatusCode sets the value of StatusCode. +func (s *PasskeyOptionsStatusCode) SetStatusCode(val int) { + s.StatusCode = val +} + +// SetResponse sets the value of Response. +func (s *PasskeyOptionsStatusCode) SetResponse(val PasskeyOptions) { + s.Response = val +} + +func (*PasskeyOptionsStatusCode) authPasskeyAuthenticationOptionsRes() {} +func (*PasskeyOptionsStatusCode) passkeyPasskeyRegistrationOptionsRes() {} + +// Ref: #/components/schemas/PasskeySettings +type PasskeySettings struct { + Enabled bool `json:"enabled"` + RpId NilString `json:"rpId"` + Origin NilString `json:"origin"` +} + +// GetEnabled returns the value of Enabled. +func (s *PasskeySettings) GetEnabled() bool { + return s.Enabled +} + +// GetRpId returns the value of RpId. +func (s *PasskeySettings) GetRpId() NilString { + return s.RpId +} + +// GetOrigin returns the value of Origin. +func (s *PasskeySettings) GetOrigin() NilString { + return s.Origin +} + +// SetEnabled sets the value of Enabled. +func (s *PasskeySettings) SetEnabled(val bool) { + s.Enabled = val +} + +// SetRpId sets the value of RpId. +func (s *PasskeySettings) SetRpId(val NilString) { + s.RpId = val +} + +// SetOrigin sets the value of Origin. +func (s *PasskeySettings) SetOrigin(val NilString) { + s.Origin = val +} + +// Ref: #/components/schemas/PasskeysResponse +type PasskeysResponse struct { + Response PasskeysResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *PasskeysResponse) GetResponse() PasskeysResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *PasskeysResponse) SetResponse(val PasskeysResponseResponse) { + s.Response = val +} + +type PasskeysResponseResponse struct { + Passkeys []PasskeysResponseResponsePasskeysItem `json:"passkeys"` +} + +// GetPasskeys returns the value of Passkeys. +func (s *PasskeysResponseResponse) GetPasskeys() []PasskeysResponseResponsePasskeysItem { + return s.Passkeys +} + +// SetPasskeys sets the value of Passkeys. +func (s *PasskeysResponseResponse) SetPasskeys(val []PasskeysResponseResponsePasskeysItem) { + s.Passkeys = val +} + +type PasskeysResponseResponsePasskeysItem struct { + ID string `json:"id"` + Name string `json:"name"` + // Created date. Format: 2025-01-17T15:38:45.065Z. + CreatedAt time.Time `json:"createdAt"` + // Last used date. Format: 2025-01-17T15:38:45.065Z. + LastUsedAt time.Time `json:"lastUsedAt"` +} + +// GetID returns the value of ID. +func (s *PasskeysResponseResponsePasskeysItem) GetID() string { + return s.ID +} + +// GetName returns the value of Name. +func (s *PasskeysResponseResponsePasskeysItem) GetName() string { + return s.Name +} + +// GetCreatedAt returns the value of CreatedAt. +func (s *PasskeysResponseResponsePasskeysItem) GetCreatedAt() time.Time { + return s.CreatedAt +} + +// GetLastUsedAt returns the value of LastUsedAt. +func (s *PasskeysResponseResponsePasskeysItem) GetLastUsedAt() time.Time { + return s.LastUsedAt +} + +// SetID sets the value of ID. +func (s *PasskeysResponseResponsePasskeysItem) SetID(val string) { + s.ID = val +} + +// SetName sets the value of Name. +func (s *PasskeysResponseResponsePasskeysItem) SetName(val string) { + s.Name = val +} + +// SetCreatedAt sets the value of CreatedAt. +func (s *PasskeysResponseResponsePasskeysItem) SetCreatedAt(val time.Time) { + s.CreatedAt = val +} + +// SetLastUsedAt sets the value of LastUsedAt. +func (s *PasskeysResponseResponsePasskeysItem) SetLastUsedAt(val time.Time) { + s.LastUsedAt = val +} + +// PasskeysResponseStatusCode wraps PasskeysResponse with StatusCode. +type PasskeysResponseStatusCode struct { + StatusCode int + Response PasskeysResponse +} + +// GetStatusCode returns the value of StatusCode. +func (s *PasskeysResponseStatusCode) GetStatusCode() int { + return s.StatusCode +} + +// GetResponse returns the value of Response. +func (s *PasskeysResponseStatusCode) GetResponse() PasskeysResponse { + return s.Response +} + +// SetStatusCode sets the value of StatusCode. +func (s *PasskeysResponseStatusCode) SetStatusCode(val int) { + s.StatusCode = val +} + +// SetResponse sets the value of Response. +func (s *PasskeysResponseStatusCode) SetResponse(val PasskeysResponse) { + s.Response = val +} + +func (*PasskeysResponseStatusCode) passkeyDeletePasskeyRes() {} +func (*PasskeysResponseStatusCode) passkeyGetActivePasskeysRes() {} +func (*PasskeysResponseStatusCode) passkeyUpdatePasskeyRes() {} + +// Ref: #/components/schemas/PasswordSettings +type PasswordSettings struct { + Enabled bool `json:"enabled"` +} + +// GetEnabled returns the value of Enabled. +func (s *PasswordSettings) GetEnabled() bool { + return s.Enabled +} + +// SetEnabled sets the value of Enabled. +func (s *PasswordSettings) SetEnabled(val bool) { + s.Enabled = val +} + +// Ref: #/components/schemas/PluginExecutorRequest +type PluginExecutorRequest struct { + Command PluginExecutorRequestCommand `json:"command"` + TargetNodes PluginExecutorRequestTargetNodes `json:"targetNodes"` +} + +// GetCommand returns the value of Command. +func (s *PluginExecutorRequest) GetCommand() PluginExecutorRequestCommand { + return s.Command +} + +// GetTargetNodes returns the value of TargetNodes. +func (s *PluginExecutorRequest) GetTargetNodes() PluginExecutorRequestTargetNodes { + return s.TargetNodes +} + +// SetCommand sets the value of Command. +func (s *PluginExecutorRequest) SetCommand(val PluginExecutorRequestCommand) { + s.Command = val +} + +// SetTargetNodes sets the value of TargetNodes. +func (s *PluginExecutorRequest) SetTargetNodes(val PluginExecutorRequestTargetNodes) { + s.TargetNodes = val +} + +// PluginExecutorRequestCommand represents sum type. +type PluginExecutorRequestCommand struct { + Type PluginExecutorRequestCommandType // switch on this field + PluginExecutorRequestCommand0 PluginExecutorRequestCommand0 + PluginExecutorRequestCommand1 PluginExecutorRequestCommand1 + PluginExecutorRequestCommand2 PluginExecutorRequestCommand2 +} + +// PluginExecutorRequestCommandType is oneOf type of PluginExecutorRequestCommand. +type PluginExecutorRequestCommandType string + +// Possible values for PluginExecutorRequestCommandType. +const ( + PluginExecutorRequestCommand0PluginExecutorRequestCommand PluginExecutorRequestCommandType = "PluginExecutorRequestCommand0" + PluginExecutorRequestCommand1PluginExecutorRequestCommand PluginExecutorRequestCommandType = "PluginExecutorRequestCommand1" + PluginExecutorRequestCommand2PluginExecutorRequestCommand PluginExecutorRequestCommandType = "PluginExecutorRequestCommand2" +) + +// IsPluginExecutorRequestCommand0 reports whether PluginExecutorRequestCommand is PluginExecutorRequestCommand0. +func (s PluginExecutorRequestCommand) IsPluginExecutorRequestCommand0() bool { + return s.Type == PluginExecutorRequestCommand0PluginExecutorRequestCommand +} + +// IsPluginExecutorRequestCommand1 reports whether PluginExecutorRequestCommand is PluginExecutorRequestCommand1. +func (s PluginExecutorRequestCommand) IsPluginExecutorRequestCommand1() bool { + return s.Type == PluginExecutorRequestCommand1PluginExecutorRequestCommand +} + +// IsPluginExecutorRequestCommand2 reports whether PluginExecutorRequestCommand is PluginExecutorRequestCommand2. +func (s PluginExecutorRequestCommand) IsPluginExecutorRequestCommand2() bool { + return s.Type == PluginExecutorRequestCommand2PluginExecutorRequestCommand +} + +// SetPluginExecutorRequestCommand0 sets PluginExecutorRequestCommand to PluginExecutorRequestCommand0. +func (s *PluginExecutorRequestCommand) SetPluginExecutorRequestCommand0(v PluginExecutorRequestCommand0) { + s.Type = PluginExecutorRequestCommand0PluginExecutorRequestCommand + s.PluginExecutorRequestCommand0 = v +} + +// GetPluginExecutorRequestCommand0 returns PluginExecutorRequestCommand0 and true boolean if PluginExecutorRequestCommand is PluginExecutorRequestCommand0. +func (s PluginExecutorRequestCommand) GetPluginExecutorRequestCommand0() (v PluginExecutorRequestCommand0, ok bool) { + if !s.IsPluginExecutorRequestCommand0() { + return v, false + } + return s.PluginExecutorRequestCommand0, true +} + +// NewPluginExecutorRequestCommand0PluginExecutorRequestCommand returns new PluginExecutorRequestCommand from PluginExecutorRequestCommand0. +func NewPluginExecutorRequestCommand0PluginExecutorRequestCommand(v PluginExecutorRequestCommand0) PluginExecutorRequestCommand { + var s PluginExecutorRequestCommand + s.SetPluginExecutorRequestCommand0(v) + return s +} + +// SetPluginExecutorRequestCommand1 sets PluginExecutorRequestCommand to PluginExecutorRequestCommand1. +func (s *PluginExecutorRequestCommand) SetPluginExecutorRequestCommand1(v PluginExecutorRequestCommand1) { + s.Type = PluginExecutorRequestCommand1PluginExecutorRequestCommand + s.PluginExecutorRequestCommand1 = v +} + +// GetPluginExecutorRequestCommand1 returns PluginExecutorRequestCommand1 and true boolean if PluginExecutorRequestCommand is PluginExecutorRequestCommand1. +func (s PluginExecutorRequestCommand) GetPluginExecutorRequestCommand1() (v PluginExecutorRequestCommand1, ok bool) { + if !s.IsPluginExecutorRequestCommand1() { + return v, false + } + return s.PluginExecutorRequestCommand1, true +} + +// NewPluginExecutorRequestCommand1PluginExecutorRequestCommand returns new PluginExecutorRequestCommand from PluginExecutorRequestCommand1. +func NewPluginExecutorRequestCommand1PluginExecutorRequestCommand(v PluginExecutorRequestCommand1) PluginExecutorRequestCommand { + var s PluginExecutorRequestCommand + s.SetPluginExecutorRequestCommand1(v) + return s +} + +// SetPluginExecutorRequestCommand2 sets PluginExecutorRequestCommand to PluginExecutorRequestCommand2. +func (s *PluginExecutorRequestCommand) SetPluginExecutorRequestCommand2(v PluginExecutorRequestCommand2) { + s.Type = PluginExecutorRequestCommand2PluginExecutorRequestCommand + s.PluginExecutorRequestCommand2 = v +} + +// GetPluginExecutorRequestCommand2 returns PluginExecutorRequestCommand2 and true boolean if PluginExecutorRequestCommand is PluginExecutorRequestCommand2. +func (s PluginExecutorRequestCommand) GetPluginExecutorRequestCommand2() (v PluginExecutorRequestCommand2, ok bool) { + if !s.IsPluginExecutorRequestCommand2() { + return v, false + } + return s.PluginExecutorRequestCommand2, true +} + +// NewPluginExecutorRequestCommand2PluginExecutorRequestCommand returns new PluginExecutorRequestCommand from PluginExecutorRequestCommand2. +func NewPluginExecutorRequestCommand2PluginExecutorRequestCommand(v PluginExecutorRequestCommand2) PluginExecutorRequestCommand { + var s PluginExecutorRequestCommand + s.SetPluginExecutorRequestCommand2(v) + return s +} + +// Block IPs. +type PluginExecutorRequestCommand0 struct { + Command PluginExecutorRequestCommand0Command `json:"command"` + Ips []PluginExecutorRequestCommand0IpsItem `json:"ips"` +} + +// GetCommand returns the value of Command. +func (s *PluginExecutorRequestCommand0) GetCommand() PluginExecutorRequestCommand0Command { + return s.Command +} + +// GetIps returns the value of Ips. +func (s *PluginExecutorRequestCommand0) GetIps() []PluginExecutorRequestCommand0IpsItem { + return s.Ips +} + +// SetCommand sets the value of Command. +func (s *PluginExecutorRequestCommand0) SetCommand(val PluginExecutorRequestCommand0Command) { + s.Command = val +} + +// SetIps sets the value of Ips. +func (s *PluginExecutorRequestCommand0) SetIps(val []PluginExecutorRequestCommand0IpsItem) { + s.Ips = val +} + +type PluginExecutorRequestCommand0Command string + +const ( + PluginExecutorRequestCommand0CommandBlockIps PluginExecutorRequestCommand0Command = "blockIps" +) + +// AllValues returns all PluginExecutorRequestCommand0Command values. +func (PluginExecutorRequestCommand0Command) AllValues() []PluginExecutorRequestCommand0Command { + return []PluginExecutorRequestCommand0Command{ + PluginExecutorRequestCommand0CommandBlockIps, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s PluginExecutorRequestCommand0Command) MarshalText() ([]byte, error) { + switch s { + case PluginExecutorRequestCommand0CommandBlockIps: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *PluginExecutorRequestCommand0Command) UnmarshalText(data []byte) error { + switch PluginExecutorRequestCommand0Command(data) { + case PluginExecutorRequestCommand0CommandBlockIps: + *s = PluginExecutorRequestCommand0CommandBlockIps + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +type PluginExecutorRequestCommand0IpsItem struct { + IP string `json:"ip"` + Timeout float64 `json:"timeout"` +} + +// GetIP returns the value of IP. +func (s *PluginExecutorRequestCommand0IpsItem) GetIP() string { + return s.IP +} + +// GetTimeout returns the value of Timeout. +func (s *PluginExecutorRequestCommand0IpsItem) GetTimeout() float64 { + return s.Timeout +} + +// SetIP sets the value of IP. +func (s *PluginExecutorRequestCommand0IpsItem) SetIP(val string) { + s.IP = val +} + +// SetTimeout sets the value of Timeout. +func (s *PluginExecutorRequestCommand0IpsItem) SetTimeout(val float64) { + s.Timeout = val +} + +// Unblock IPs. +type PluginExecutorRequestCommand1 struct { + Command PluginExecutorRequestCommand1Command `json:"command"` + Ips []string `json:"ips"` +} + +// GetCommand returns the value of Command. +func (s *PluginExecutorRequestCommand1) GetCommand() PluginExecutorRequestCommand1Command { + return s.Command +} + +// GetIps returns the value of Ips. +func (s *PluginExecutorRequestCommand1) GetIps() []string { + return s.Ips +} + +// SetCommand sets the value of Command. +func (s *PluginExecutorRequestCommand1) SetCommand(val PluginExecutorRequestCommand1Command) { + s.Command = val +} + +// SetIps sets the value of Ips. +func (s *PluginExecutorRequestCommand1) SetIps(val []string) { + s.Ips = val +} + +type PluginExecutorRequestCommand1Command string + +const ( + PluginExecutorRequestCommand1CommandUnblockIps PluginExecutorRequestCommand1Command = "unblockIps" +) + +// AllValues returns all PluginExecutorRequestCommand1Command values. +func (PluginExecutorRequestCommand1Command) AllValues() []PluginExecutorRequestCommand1Command { + return []PluginExecutorRequestCommand1Command{ + PluginExecutorRequestCommand1CommandUnblockIps, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s PluginExecutorRequestCommand1Command) MarshalText() ([]byte, error) { + switch s { + case PluginExecutorRequestCommand1CommandUnblockIps: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *PluginExecutorRequestCommand1Command) UnmarshalText(data []byte) error { + switch PluginExecutorRequestCommand1Command(data) { + case PluginExecutorRequestCommand1CommandUnblockIps: + *s = PluginExecutorRequestCommand1CommandUnblockIps + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Recreate tables. +type PluginExecutorRequestCommand2 struct { + Command PluginExecutorRequestCommand2Command `json:"command"` +} + +// GetCommand returns the value of Command. +func (s *PluginExecutorRequestCommand2) GetCommand() PluginExecutorRequestCommand2Command { + return s.Command +} + +// SetCommand sets the value of Command. +func (s *PluginExecutorRequestCommand2) SetCommand(val PluginExecutorRequestCommand2Command) { + s.Command = val +} + +type PluginExecutorRequestCommand2Command string + +const ( + PluginExecutorRequestCommand2CommandRecreateTables PluginExecutorRequestCommand2Command = "recreateTables" +) + +// AllValues returns all PluginExecutorRequestCommand2Command values. +func (PluginExecutorRequestCommand2Command) AllValues() []PluginExecutorRequestCommand2Command { + return []PluginExecutorRequestCommand2Command{ + PluginExecutorRequestCommand2CommandRecreateTables, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s PluginExecutorRequestCommand2Command) MarshalText() ([]byte, error) { + switch s { + case PluginExecutorRequestCommand2CommandRecreateTables: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *PluginExecutorRequestCommand2Command) UnmarshalText(data []byte) error { + switch PluginExecutorRequestCommand2Command(data) { + case PluginExecutorRequestCommand2CommandRecreateTables: + *s = PluginExecutorRequestCommand2CommandRecreateTables + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// PluginExecutorRequestTargetNodes represents sum type. +type PluginExecutorRequestTargetNodes struct { + Type PluginExecutorRequestTargetNodesType // switch on this field + PluginExecutorRequestTargetNodes0 PluginExecutorRequestTargetNodes0 + PluginExecutorRequestTargetNodes1 PluginExecutorRequestTargetNodes1 +} + +// PluginExecutorRequestTargetNodesType is oneOf type of PluginExecutorRequestTargetNodes. +type PluginExecutorRequestTargetNodesType string + +// Possible values for PluginExecutorRequestTargetNodesType. +const ( + PluginExecutorRequestTargetNodes0PluginExecutorRequestTargetNodes PluginExecutorRequestTargetNodesType = "PluginExecutorRequestTargetNodes0" + PluginExecutorRequestTargetNodes1PluginExecutorRequestTargetNodes PluginExecutorRequestTargetNodesType = "PluginExecutorRequestTargetNodes1" +) + +// IsPluginExecutorRequestTargetNodes0 reports whether PluginExecutorRequestTargetNodes is PluginExecutorRequestTargetNodes0. +func (s PluginExecutorRequestTargetNodes) IsPluginExecutorRequestTargetNodes0() bool { + return s.Type == PluginExecutorRequestTargetNodes0PluginExecutorRequestTargetNodes +} + +// IsPluginExecutorRequestTargetNodes1 reports whether PluginExecutorRequestTargetNodes is PluginExecutorRequestTargetNodes1. +func (s PluginExecutorRequestTargetNodes) IsPluginExecutorRequestTargetNodes1() bool { + return s.Type == PluginExecutorRequestTargetNodes1PluginExecutorRequestTargetNodes +} + +// SetPluginExecutorRequestTargetNodes0 sets PluginExecutorRequestTargetNodes to PluginExecutorRequestTargetNodes0. +func (s *PluginExecutorRequestTargetNodes) SetPluginExecutorRequestTargetNodes0(v PluginExecutorRequestTargetNodes0) { + s.Type = PluginExecutorRequestTargetNodes0PluginExecutorRequestTargetNodes + s.PluginExecutorRequestTargetNodes0 = v +} + +// GetPluginExecutorRequestTargetNodes0 returns PluginExecutorRequestTargetNodes0 and true boolean if PluginExecutorRequestTargetNodes is PluginExecutorRequestTargetNodes0. +func (s PluginExecutorRequestTargetNodes) GetPluginExecutorRequestTargetNodes0() (v PluginExecutorRequestTargetNodes0, ok bool) { + if !s.IsPluginExecutorRequestTargetNodes0() { + return v, false + } + return s.PluginExecutorRequestTargetNodes0, true +} + +// NewPluginExecutorRequestTargetNodes0PluginExecutorRequestTargetNodes returns new PluginExecutorRequestTargetNodes from PluginExecutorRequestTargetNodes0. +func NewPluginExecutorRequestTargetNodes0PluginExecutorRequestTargetNodes(v PluginExecutorRequestTargetNodes0) PluginExecutorRequestTargetNodes { + var s PluginExecutorRequestTargetNodes + s.SetPluginExecutorRequestTargetNodes0(v) + return s +} + +// SetPluginExecutorRequestTargetNodes1 sets PluginExecutorRequestTargetNodes to PluginExecutorRequestTargetNodes1. +func (s *PluginExecutorRequestTargetNodes) SetPluginExecutorRequestTargetNodes1(v PluginExecutorRequestTargetNodes1) { + s.Type = PluginExecutorRequestTargetNodes1PluginExecutorRequestTargetNodes + s.PluginExecutorRequestTargetNodes1 = v +} + +// GetPluginExecutorRequestTargetNodes1 returns PluginExecutorRequestTargetNodes1 and true boolean if PluginExecutorRequestTargetNodes is PluginExecutorRequestTargetNodes1. +func (s PluginExecutorRequestTargetNodes) GetPluginExecutorRequestTargetNodes1() (v PluginExecutorRequestTargetNodes1, ok bool) { + if !s.IsPluginExecutorRequestTargetNodes1() { + return v, false + } + return s.PluginExecutorRequestTargetNodes1, true +} + +// NewPluginExecutorRequestTargetNodes1PluginExecutorRequestTargetNodes returns new PluginExecutorRequestTargetNodes from PluginExecutorRequestTargetNodes1. +func NewPluginExecutorRequestTargetNodes1PluginExecutorRequestTargetNodes(v PluginExecutorRequestTargetNodes1) PluginExecutorRequestTargetNodes { + var s PluginExecutorRequestTargetNodes + s.SetPluginExecutorRequestTargetNodes1(v) + return s +} + +// Target all connected nodes. +type PluginExecutorRequestTargetNodes0 struct { + Target PluginExecutorRequestTargetNodes0Target `json:"target"` +} + +// GetTarget returns the value of Target. +func (s *PluginExecutorRequestTargetNodes0) GetTarget() PluginExecutorRequestTargetNodes0Target { + return s.Target +} + +// SetTarget sets the value of Target. +func (s *PluginExecutorRequestTargetNodes0) SetTarget(val PluginExecutorRequestTargetNodes0Target) { + s.Target = val +} + +type PluginExecutorRequestTargetNodes0Target string + +const ( + PluginExecutorRequestTargetNodes0TargetAllNodes PluginExecutorRequestTargetNodes0Target = "allNodes" +) + +// AllValues returns all PluginExecutorRequestTargetNodes0Target values. +func (PluginExecutorRequestTargetNodes0Target) AllValues() []PluginExecutorRequestTargetNodes0Target { + return []PluginExecutorRequestTargetNodes0Target{ + PluginExecutorRequestTargetNodes0TargetAllNodes, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s PluginExecutorRequestTargetNodes0Target) MarshalText() ([]byte, error) { + switch s { + case PluginExecutorRequestTargetNodes0TargetAllNodes: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *PluginExecutorRequestTargetNodes0Target) UnmarshalText(data []byte) error { + switch PluginExecutorRequestTargetNodes0Target(data) { + case PluginExecutorRequestTargetNodes0TargetAllNodes: + *s = PluginExecutorRequestTargetNodes0TargetAllNodes + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Target specific nodes. +type PluginExecutorRequestTargetNodes1 struct { + Target PluginExecutorRequestTargetNodes1Target `json:"target"` + NodeUuids []uuid.UUID `json:"nodeUuids"` +} + +// GetTarget returns the value of Target. +func (s *PluginExecutorRequestTargetNodes1) GetTarget() PluginExecutorRequestTargetNodes1Target { + return s.Target +} + +// GetNodeUuids returns the value of NodeUuids. +func (s *PluginExecutorRequestTargetNodes1) GetNodeUuids() []uuid.UUID { + return s.NodeUuids +} + +// SetTarget sets the value of Target. +func (s *PluginExecutorRequestTargetNodes1) SetTarget(val PluginExecutorRequestTargetNodes1Target) { + s.Target = val +} + +// SetNodeUuids sets the value of NodeUuids. +func (s *PluginExecutorRequestTargetNodes1) SetNodeUuids(val []uuid.UUID) { + s.NodeUuids = val +} + +type PluginExecutorRequestTargetNodes1Target string + +const ( + PluginExecutorRequestTargetNodes1TargetSpecificNodes PluginExecutorRequestTargetNodes1Target = "specificNodes" +) + +// AllValues returns all PluginExecutorRequestTargetNodes1Target values. +func (PluginExecutorRequestTargetNodes1Target) AllValues() []PluginExecutorRequestTargetNodes1Target { + return []PluginExecutorRequestTargetNodes1Target{ + PluginExecutorRequestTargetNodes1TargetSpecificNodes, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s PluginExecutorRequestTargetNodes1Target) MarshalText() ([]byte, error) { + switch s { + case PluginExecutorRequestTargetNodes1TargetSpecificNodes: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *PluginExecutorRequestTargetNodes1Target) UnmarshalText(data []byte) error { + switch PluginExecutorRequestTargetNodes1Target(data) { + case PluginExecutorRequestTargetNodes1TargetSpecificNodes: + *s = PluginExecutorRequestTargetNodes1TargetSpecificNodes + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/Pocketid +type Pocketid struct { + Enabled bool `json:"enabled"` + ClientId NilString `json:"clientId"` + ClientSecret NilString `json:"clientSecret"` + PlainDomain NilString `json:"plainDomain"` + AllowedEmails []string `json:"allowedEmails"` +} + +// GetEnabled returns the value of Enabled. +func (s *Pocketid) GetEnabled() bool { + return s.Enabled +} + +// GetClientId returns the value of ClientId. +func (s *Pocketid) GetClientId() NilString { + return s.ClientId +} + +// GetClientSecret returns the value of ClientSecret. +func (s *Pocketid) GetClientSecret() NilString { + return s.ClientSecret +} + +// GetPlainDomain returns the value of PlainDomain. +func (s *Pocketid) GetPlainDomain() NilString { + return s.PlainDomain +} + +// GetAllowedEmails returns the value of AllowedEmails. +func (s *Pocketid) GetAllowedEmails() []string { + return s.AllowedEmails +} + +// SetEnabled sets the value of Enabled. +func (s *Pocketid) SetEnabled(val bool) { + s.Enabled = val +} + +// SetClientId sets the value of ClientId. +func (s *Pocketid) SetClientId(val NilString) { + s.ClientId = val +} + +// SetClientSecret sets the value of ClientSecret. +func (s *Pocketid) SetClientSecret(val NilString) { + s.ClientSecret = val +} + +// SetPlainDomain sets the value of PlainDomain. +func (s *Pocketid) SetPlainDomain(val NilString) { + s.PlainDomain = val +} + +// SetAllowedEmails sets the value of AllowedEmails. +func (s *Pocketid) SetAllowedEmails(val []string) { + s.AllowedEmails = val +} + +// Ref: #/components/schemas/ProfileModificationRequest +type ProfileModificationRequest struct { + Uuids []uuid.UUID `json:"uuids"` + ConfigProfile ProfileModificationRequestConfigProfile `json:"configProfile"` +} + +// GetUuids returns the value of Uuids. +func (s *ProfileModificationRequest) GetUuids() []uuid.UUID { + return s.Uuids +} + +// GetConfigProfile returns the value of ConfigProfile. +func (s *ProfileModificationRequest) GetConfigProfile() ProfileModificationRequestConfigProfile { + return s.ConfigProfile +} + +// SetUuids sets the value of Uuids. +func (s *ProfileModificationRequest) SetUuids(val []uuid.UUID) { + s.Uuids = val +} + +// SetConfigProfile sets the value of ConfigProfile. +func (s *ProfileModificationRequest) SetConfigProfile(val ProfileModificationRequestConfigProfile) { + s.ConfigProfile = val +} + +type ProfileModificationRequestConfigProfile struct { + ActiveConfigProfileUuid uuid.UUID `json:"activeConfigProfileUuid"` + ActiveInbounds []uuid.UUID `json:"activeInbounds"` +} + +// GetActiveConfigProfileUuid returns the value of ActiveConfigProfileUuid. +func (s *ProfileModificationRequestConfigProfile) GetActiveConfigProfileUuid() uuid.UUID { + return s.ActiveConfigProfileUuid +} + +// GetActiveInbounds returns the value of ActiveInbounds. +func (s *ProfileModificationRequestConfigProfile) GetActiveInbounds() []uuid.UUID { + return s.ActiveInbounds +} + +// SetActiveConfigProfileUuid sets the value of ActiveConfigProfileUuid. +func (s *ProfileModificationRequestConfigProfile) SetActiveConfigProfileUuid(val uuid.UUID) { + s.ActiveConfigProfileUuid = val +} + +// SetActiveInbounds sets the value of ActiveInbounds. +func (s *ProfileModificationRequestConfigProfile) SetActiveInbounds(val []uuid.UUID) { + s.ActiveInbounds = val +} + +// Ref: #/components/schemas/Provider +type Provider struct { + UUID uuid.UUID `json:"uuid"` + Name string `json:"name"` + FaviconLink NilString `json:"faviconLink"` + LoginUrl NilString `json:"loginUrl"` + CreatedAt time.Time `json:"createdAt"` + UpdatedAt time.Time `json:"updatedAt"` + BillingHistory BillingHistoryItem `json:"billingHistory"` + BillingNodes []BillingNode `json:"billingNodes"` +} + +// GetUUID returns the value of UUID. +func (s *Provider) GetUUID() uuid.UUID { + return s.UUID +} + +// GetName returns the value of Name. +func (s *Provider) GetName() string { + return s.Name +} + +// GetFaviconLink returns the value of FaviconLink. +func (s *Provider) GetFaviconLink() NilString { + return s.FaviconLink +} + +// GetLoginUrl returns the value of LoginUrl. +func (s *Provider) GetLoginUrl() NilString { + return s.LoginUrl +} + +// GetCreatedAt returns the value of CreatedAt. +func (s *Provider) GetCreatedAt() time.Time { + return s.CreatedAt +} + +// GetUpdatedAt returns the value of UpdatedAt. +func (s *Provider) GetUpdatedAt() time.Time { + return s.UpdatedAt +} + +// GetBillingHistory returns the value of BillingHistory. +func (s *Provider) GetBillingHistory() BillingHistoryItem { + return s.BillingHistory +} + +// GetBillingNodes returns the value of BillingNodes. +func (s *Provider) GetBillingNodes() []BillingNode { + return s.BillingNodes +} + +// SetUUID sets the value of UUID. +func (s *Provider) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetName sets the value of Name. +func (s *Provider) SetName(val string) { + s.Name = val +} + +// SetFaviconLink sets the value of FaviconLink. +func (s *Provider) SetFaviconLink(val NilString) { + s.FaviconLink = val +} + +// SetLoginUrl sets the value of LoginUrl. +func (s *Provider) SetLoginUrl(val NilString) { + s.LoginUrl = val +} + +// SetCreatedAt sets the value of CreatedAt. +func (s *Provider) SetCreatedAt(val time.Time) { + s.CreatedAt = val +} + +// SetUpdatedAt sets the value of UpdatedAt. +func (s *Provider) SetUpdatedAt(val time.Time) { + s.UpdatedAt = val +} + +// SetBillingHistory sets the value of BillingHistory. +func (s *Provider) SetBillingHistory(val BillingHistoryItem) { + s.BillingHistory = val +} + +// SetBillingNodes sets the value of BillingNodes. +func (s *Provider) SetBillingNodes(val []BillingNode) { + s.BillingNodes = val +} + +// Ref: #/components/schemas/ProviderItem +type ProviderItem struct { + UUID uuid.UUID `json:"uuid"` + Name string `json:"name"` + FaviconLink NilString `json:"faviconLink"` + LoginUrl NilString `json:"loginUrl"` + CreatedAt time.Time `json:"createdAt"` + UpdatedAt time.Time `json:"updatedAt"` +} + +// GetUUID returns the value of UUID. +func (s *ProviderItem) GetUUID() uuid.UUID { + return s.UUID +} + +// GetName returns the value of Name. +func (s *ProviderItem) GetName() string { + return s.Name +} + +// GetFaviconLink returns the value of FaviconLink. +func (s *ProviderItem) GetFaviconLink() NilString { + return s.FaviconLink +} + +// GetLoginUrl returns the value of LoginUrl. +func (s *ProviderItem) GetLoginUrl() NilString { + return s.LoginUrl +} + +// GetCreatedAt returns the value of CreatedAt. +func (s *ProviderItem) GetCreatedAt() time.Time { + return s.CreatedAt +} + +// GetUpdatedAt returns the value of UpdatedAt. +func (s *ProviderItem) GetUpdatedAt() time.Time { + return s.UpdatedAt +} + +// SetUUID sets the value of UUID. +func (s *ProviderItem) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetName sets the value of Name. +func (s *ProviderItem) SetName(val string) { + s.Name = val +} + +// SetFaviconLink sets the value of FaviconLink. +func (s *ProviderItem) SetFaviconLink(val NilString) { + s.FaviconLink = val +} + +// SetLoginUrl sets the value of LoginUrl. +func (s *ProviderItem) SetLoginUrl(val NilString) { + s.LoginUrl = val +} + +// SetCreatedAt sets the value of CreatedAt. +func (s *ProviderItem) SetCreatedAt(val time.Time) { + s.CreatedAt = val +} + +// SetUpdatedAt sets the value of UpdatedAt. +func (s *ProviderItem) SetUpdatedAt(val time.Time) { + s.UpdatedAt = val +} + +// Ref: #/components/schemas/Record +type Record struct { + ID float64 `json:"id"` + UserUuid uuid.UUID `json:"userUuid"` + RequestAt time.Time `json:"requestAt"` + RequestIp NilString `json:"requestIp"` + UserAgent NilString `json:"userAgent"` +} + +// GetID returns the value of ID. +func (s *Record) GetID() float64 { + return s.ID +} + +// GetUserUuid returns the value of UserUuid. +func (s *Record) GetUserUuid() uuid.UUID { + return s.UserUuid +} + +// GetRequestAt returns the value of RequestAt. +func (s *Record) GetRequestAt() time.Time { + return s.RequestAt +} + +// GetRequestIp returns the value of RequestIp. +func (s *Record) GetRequestIp() NilString { + return s.RequestIp +} + +// GetUserAgent returns the value of UserAgent. +func (s *Record) GetUserAgent() NilString { + return s.UserAgent +} + +// SetID sets the value of ID. +func (s *Record) SetID(val float64) { + s.ID = val +} + +// SetUserUuid sets the value of UserUuid. +func (s *Record) SetUserUuid(val uuid.UUID) { + s.UserUuid = val +} + +// SetRequestAt sets the value of RequestAt. +func (s *Record) SetRequestAt(val time.Time) { + s.RequestAt = val +} + +// SetRequestIp sets the value of RequestIp. +func (s *Record) SetRequestIp(val NilString) { + s.RequestIp = val +} + +// SetUserAgent sets the value of UserAgent. +func (s *Record) SetUserAgent(val NilString) { + s.UserAgent = val +} + +// Ref: #/components/schemas/RegisterRequest +type RegisterRequest struct { + Username string `json:"username"` + Password string `json:"password"` +} + +// GetUsername returns the value of Username. +func (s *RegisterRequest) GetUsername() string { + return s.Username +} + +// GetPassword returns the value of Password. +func (s *RegisterRequest) GetPassword() string { + return s.Password +} + +// SetUsername sets the value of Username. +func (s *RegisterRequest) SetUsername(val string) { + s.Username = val +} + +// SetPassword sets the value of Password. +func (s *RegisterRequest) SetPassword(val string) { + s.Password = val +} + +// Ref: #/components/schemas/ReorderHostRequest +type ReorderHostRequest struct { + Hosts []ReorderRequestItem `json:"hosts"` +} + +// GetHosts returns the value of Hosts. +func (s *ReorderHostRequest) GetHosts() []ReorderRequestItem { + return s.Hosts +} + +// SetHosts sets the value of Hosts. +func (s *ReorderHostRequest) SetHosts(val []ReorderRequestItem) { + s.Hosts = val +} + +// Ref: #/components/schemas/ReorderHostResponse +type ReorderHostResponse struct { + Response ReorderHostResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *ReorderHostResponse) GetResponse() ReorderHostResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *ReorderHostResponse) SetResponse(val ReorderHostResponseResponse) { + s.Response = val +} + +func (*ReorderHostResponse) hostsReorderHostsRes() {} + +type ReorderHostResponseResponse struct { + IsUpdated bool `json:"isUpdated"` +} + +// GetIsUpdated returns the value of IsUpdated. +func (s *ReorderHostResponseResponse) GetIsUpdated() bool { + return s.IsUpdated +} + +// SetIsUpdated sets the value of IsUpdated. +func (s *ReorderHostResponseResponse) SetIsUpdated(val bool) { + s.IsUpdated = val +} + +// Ref: #/components/schemas/ReorderNodeRequest +type ReorderNodeRequest struct { + Nodes []ReorderRequestItem `json:"nodes"` +} + +// GetNodes returns the value of Nodes. +func (s *ReorderNodeRequest) GetNodes() []ReorderRequestItem { + return s.Nodes +} + +// SetNodes sets the value of Nodes. +func (s *ReorderNodeRequest) SetNodes(val []ReorderRequestItem) { + s.Nodes = val +} + +// Ref: #/components/schemas/ReorderRequest +type ReorderRequest struct { + Items []ReorderRequestItem `json:"items"` +} + +// GetItems returns the value of Items. +func (s *ReorderRequest) GetItems() []ReorderRequestItem { + return s.Items +} + +// SetItems sets the value of Items. +func (s *ReorderRequest) SetItems(val []ReorderRequestItem) { + s.Items = val +} + +// Ref: #/components/schemas/ReorderRequestItem +type ReorderRequestItem struct { + ViewPosition int `json:"viewPosition"` + UUID uuid.UUID `json:"uuid"` +} + +// GetViewPosition returns the value of ViewPosition. +func (s *ReorderRequestItem) GetViewPosition() int { + return s.ViewPosition +} + +// GetUUID returns the value of UUID. +func (s *ReorderRequestItem) GetUUID() uuid.UUID { + return s.UUID +} + +// SetViewPosition sets the value of ViewPosition. +func (s *ReorderRequestItem) SetViewPosition(val int) { + s.ViewPosition = val +} + +// SetUUID sets the value of UUID. +func (s *ReorderRequestItem) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// Ref: #/components/schemas/ReportItem +type ReportItem struct { + ActionReport ActionReportItem `json:"actionReport"` + XrayReport XrayReportItem `json:"xrayReport"` +} + +// GetActionReport returns the value of ActionReport. +func (s *ReportItem) GetActionReport() ActionReportItem { + return s.ActionReport +} + +// GetXrayReport returns the value of XrayReport. +func (s *ReportItem) GetXrayReport() XrayReportItem { + return s.XrayReport +} + +// SetActionReport sets the value of ActionReport. +func (s *ReportItem) SetActionReport(val ActionReportItem) { + s.ActionReport = val +} + +// SetXrayReport sets the value of XrayReport. +func (s *ReportItem) SetXrayReport(val XrayReportItem) { + s.XrayReport = val +} + +// Ref: #/components/schemas/ResolveUserRequestBody +type ResolveUserRequestBody struct { + UUID OptUUID `json:"uuid"` + ID OptFloat64 `json:"id"` + ShortUuid OptString `json:"shortUuid"` + Username OptString `json:"username"` +} + +// GetUUID returns the value of UUID. +func (s *ResolveUserRequestBody) GetUUID() OptUUID { + return s.UUID +} + +// GetID returns the value of ID. +func (s *ResolveUserRequestBody) GetID() OptFloat64 { + return s.ID +} + +// GetShortUuid returns the value of ShortUuid. +func (s *ResolveUserRequestBody) GetShortUuid() OptString { + return s.ShortUuid +} + +// GetUsername returns the value of Username. +func (s *ResolveUserRequestBody) GetUsername() OptString { + return s.Username +} + +// SetUUID sets the value of UUID. +func (s *ResolveUserRequestBody) SetUUID(val OptUUID) { + s.UUID = val +} + +// SetID sets the value of ID. +func (s *ResolveUserRequestBody) SetID(val OptFloat64) { + s.ID = val +} + +// SetShortUuid sets the value of ShortUuid. +func (s *ResolveUserRequestBody) SetShortUuid(val OptString) { + s.ShortUuid = val +} + +// SetUsername sets the value of Username. +func (s *ResolveUserRequestBody) SetUsername(val OptString) { + s.Username = val +} + +// Ref: #/components/schemas/ResolveUserResponse +type ResolveUserResponse struct { + Response ResolveUserResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *ResolveUserResponse) GetResponse() ResolveUserResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *ResolveUserResponse) SetResponse(val ResolveUserResponseResponse) { + s.Response = val +} + +func (*ResolveUserResponse) usersResolveUserRes() {} + +type ResolveUserResponseResponse struct { + UUID uuid.UUID `json:"uuid"` + Username string `json:"username"` + ID float64 `json:"id"` + ShortUuid string `json:"shortUuid"` +} + +// GetUUID returns the value of UUID. +func (s *ResolveUserResponseResponse) GetUUID() uuid.UUID { + return s.UUID +} + +// GetUsername returns the value of Username. +func (s *ResolveUserResponseResponse) GetUsername() string { + return s.Username +} + +// GetID returns the value of ID. +func (s *ResolveUserResponseResponse) GetID() float64 { + return s.ID +} + +// GetShortUuid returns the value of ShortUuid. +func (s *ResolveUserResponseResponse) GetShortUuid() string { + return s.ShortUuid +} + +// SetUUID sets the value of UUID. +func (s *ResolveUserResponseResponse) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetUsername sets the value of Username. +func (s *ResolveUserResponseResponse) SetUsername(val string) { + s.Username = val +} + +// SetID sets the value of ID. +func (s *ResolveUserResponseResponse) SetID(val float64) { + s.ID = val +} + +// SetShortUuid sets the value of ShortUuid. +func (s *ResolveUserResponseResponse) SetShortUuid(val string) { + s.ShortUuid = val +} + +// {"examples":[{"headers":[{"key":"X-Custom-Header","value":"CustomValue"}]}], +// "markdownDescription":"Response modifications to be applied when the rule is matched. Optional."}. +// Ref: #/components/schemas/ResponseModification +type ResponseModification struct { + // {"defaultSnippets":[{"label":"Examples: Add custom header","markdownDescription":"Add a custom + // header to the response","body":[{"key":"X-Custom-Header","value":"CustomValue"}]}], + // "markdownDescription":"Array of headers to be added when the rule is matched."}. + Headers []Header `json:"headers"` + // {"markdownDescription":"By default, headers are added when forming the response. In some cases, + // headers set in SRR may be overridden by headers from other parts of the system. If you set this + // flag to **true**, headers from SRR will be added at the very end, just before the response is sent. + // In this case, SRR headers may override headers from other sections."}. + ApplyHeadersToEnd OptBool `json:"applyHeadersToEnd"` + // {"markdownDescription":"Override the subscription template with the given name. If not provided, + // the default subscription template will be used. If the template name is not found, the default + // subscription template for this type will be used. **This modification have higher priority than + // settings from External Squads.**"}. + SubscriptionTemplate OptString `json:"subscriptionTemplate"` + // {"markdownDescription":"Each Host may have its own Xray Json Template. If you set this flag to + // **true**, the Xray Json Template defined by the SRR will be used. **The Host's Xray Json Template + // will be ignored.**"}. + IgnoreHostXrayJsonTemplate OptBool `json:"ignoreHostXrayJsonTemplate"` + // {"markdownDescription":"If you set this flag to **true**, the **Serve JSON at Base Subscription** + // setting will be ignored (set to **false**)."}. + IgnoreServeJsonAtBaseSubscription OptBool `json:"ignoreServeJsonAtBaseSubscription"` + // {"markdownDescription":"Additional regex patterns to match extended clients. Matched clients will + // receive `serverDescription` in the subscription response.\n\n**Default Mihomo extended + // clients:**\n- `^FlClash ?X/`\n- `^Flowvy/`\n- `^prizrak-box/`\n- `^koala-clash/`\n\n**Default Xray + // extended clients:**\n- `^Happ/`\n- `^INCY/`\n\n**Example:** `[\"^MyClient/\", + // \"^CustomApp\\\\/v2\"]`"}. + AdditionalExtendedClientsRegex []string `json:"additionalExtendedClientsRegex"` +} + +// GetHeaders returns the value of Headers. +func (s *ResponseModification) GetHeaders() []Header { + return s.Headers +} + +// GetApplyHeadersToEnd returns the value of ApplyHeadersToEnd. +func (s *ResponseModification) GetApplyHeadersToEnd() OptBool { + return s.ApplyHeadersToEnd +} + +// GetSubscriptionTemplate returns the value of SubscriptionTemplate. +func (s *ResponseModification) GetSubscriptionTemplate() OptString { + return s.SubscriptionTemplate +} + +// GetIgnoreHostXrayJsonTemplate returns the value of IgnoreHostXrayJsonTemplate. +func (s *ResponseModification) GetIgnoreHostXrayJsonTemplate() OptBool { + return s.IgnoreHostXrayJsonTemplate +} + +// GetIgnoreServeJsonAtBaseSubscription returns the value of IgnoreServeJsonAtBaseSubscription. +func (s *ResponseModification) GetIgnoreServeJsonAtBaseSubscription() OptBool { + return s.IgnoreServeJsonAtBaseSubscription +} + +// GetAdditionalExtendedClientsRegex returns the value of AdditionalExtendedClientsRegex. +func (s *ResponseModification) GetAdditionalExtendedClientsRegex() []string { + return s.AdditionalExtendedClientsRegex +} + +// SetHeaders sets the value of Headers. +func (s *ResponseModification) SetHeaders(val []Header) { + s.Headers = val +} + +// SetApplyHeadersToEnd sets the value of ApplyHeadersToEnd. +func (s *ResponseModification) SetApplyHeadersToEnd(val OptBool) { + s.ApplyHeadersToEnd = val +} + +// SetSubscriptionTemplate sets the value of SubscriptionTemplate. +func (s *ResponseModification) SetSubscriptionTemplate(val OptString) { + s.SubscriptionTemplate = val +} + +// SetIgnoreHostXrayJsonTemplate sets the value of IgnoreHostXrayJsonTemplate. +func (s *ResponseModification) SetIgnoreHostXrayJsonTemplate(val OptBool) { + s.IgnoreHostXrayJsonTemplate = val +} + +// SetIgnoreServeJsonAtBaseSubscription sets the value of IgnoreServeJsonAtBaseSubscription. +func (s *ResponseModification) SetIgnoreServeJsonAtBaseSubscription(val OptBool) { + s.IgnoreServeJsonAtBaseSubscription = val +} + +// SetAdditionalExtendedClientsRegex sets the value of AdditionalExtendedClientsRegex. +func (s *ResponseModification) SetAdditionalExtendedClientsRegex(val []string) { + s.AdditionalExtendedClientsRegex = val +} + +// Ref: #/components/schemas/ResponseRules +type ResponseRules struct { + // {"title":"Response Rules Config Version","markdownDescription":"Version of the **response rules** + // config. Currently supported version is **1**."}. + Version ResponseRulesVersion `json:"version"` + Settings OptDebugSrrMatcherSettings `json:"settings"` + // {"title":"Response Rules","markdownDescription":"Array of **response rules**. Rules are evaluated + // in order and the first rule that matches is applied. If no rule matches, request will be blocked + // by default.\n\n**Example:**\n```json\n[\n {\n \"name\": \"Blank rule\",\n \"description\": + // \"Blank rule\",\n \"operator\": \"AND\",\n \"enabled\": true,\n \"conditions\": [],\n + // \"responseType\": \"BLOCK\",\n \"responseModifications\": {\n \"headers\": []\n }\n + // }\n]\n```","defaultSnippets":[]}. + Rules []Rule `json:"rules"` +} + +// GetVersion returns the value of Version. +func (s *ResponseRules) GetVersion() ResponseRulesVersion { + return s.Version +} + +// GetSettings returns the value of Settings. +func (s *ResponseRules) GetSettings() OptDebugSrrMatcherSettings { + return s.Settings +} + +// GetRules returns the value of Rules. +func (s *ResponseRules) GetRules() []Rule { + return s.Rules +} + +// SetVersion sets the value of Version. +func (s *ResponseRules) SetVersion(val ResponseRulesVersion) { + s.Version = val +} + +// SetSettings sets the value of Settings. +func (s *ResponseRules) SetSettings(val OptDebugSrrMatcherSettings) { + s.Settings = val +} + +// SetRules sets the value of Rules. +func (s *ResponseRules) SetRules(val []Rule) { + s.Rules = val +} + +// {"title":"Response Rules Config Version","markdownDescription":"Version of the **response rules** +// config. Currently supported version is **1**."}. +type ResponseRulesVersion string + +const ( + ResponseRulesVersion1 ResponseRulesVersion = "1" +) + +// AllValues returns all ResponseRulesVersion values. +func (ResponseRulesVersion) AllValues() []ResponseRulesVersion { + return []ResponseRulesVersion{ + ResponseRulesVersion1, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s ResponseRulesVersion) MarshalText() ([]byte, error) { + switch s { + case ResponseRulesVersion1: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *ResponseRulesVersion) UnmarshalText(data []byte) error { + switch ResponseRulesVersion(data) { + case ResponseRulesVersion1: + *s = ResponseRulesVersion1 + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/RestartAllNodesRequestBody +type RestartAllNodesRequestBody struct { + ForceRestart OptBool `json:"forceRestart"` +} + +// GetForceRestart returns the value of ForceRestart. +func (s *RestartAllNodesRequestBody) GetForceRestart() OptBool { + return s.ForceRestart +} + +// SetForceRestart sets the value of ForceRestart. +func (s *RestartAllNodesRequestBody) SetForceRestart(val OptBool) { + s.ForceRestart = val +} + +// Ref: #/components/schemas/RevokeUserSubscriptionBody +type RevokeUserSubscriptionBody struct { + // Optional. If true, only passwords will be revoked, without changing the short UUID (Subscription + // URL). + RevokeOnlyPasswords OptBool `json:"revokeOnlyPasswords"` + // Optional. If not provided, a new short UUID will be generated by Remnawave. Please note that it is + // strongly recommended to allow Remnawave to generate the short UUID. + ShortUuid OptString `json:"shortUuid"` +} + +// GetRevokeOnlyPasswords returns the value of RevokeOnlyPasswords. +func (s *RevokeUserSubscriptionBody) GetRevokeOnlyPasswords() OptBool { + return s.RevokeOnlyPasswords +} + +// GetShortUuid returns the value of ShortUuid. +func (s *RevokeUserSubscriptionBody) GetShortUuid() OptString { + return s.ShortUuid +} + +// SetRevokeOnlyPasswords sets the value of RevokeOnlyPasswords. +func (s *RevokeUserSubscriptionBody) SetRevokeOnlyPasswords(val OptBool) { + s.RevokeOnlyPasswords = val +} + +// SetShortUuid sets the value of ShortUuid. +func (s *RevokeUserSubscriptionBody) SetShortUuid(val OptString) { + s.ShortUuid = val +} + +// {"defaultSnippets":[{"label":"Examples: Blank rule","markdownDescription":"Simple blank rule with +// no conditions or modifications.\n```json\n{\n \"name\": \"Blank rule\",\n \"description\": +// \"Blank rule\",\n \"operator\": \"AND\",\n \"enabled\": true,\n \"conditions\": [],\n +// \"responseType\": \"BLOCK\",\n \"responseModifications\": {\n \"headers\": []\n }\n}\n```", +// "body":{"name":"Blank rule","description":"Blank rule","operator":"AND","enabled":true, +// "conditions":[],"responseType":"BLOCK","responseModifications":{"headers":[]}}}, +// {"label":"Examples: Block Legacy Clients","markdownDescription":"Block requests from legacy +// clients\n```json\n{\n \"name\": \"Block Legacy Clients\",\n \"description\": \"Block requests +// from legacy clients\",\n \"enabled\": true,\n \"operator\": \"OR\",\n \"conditions\": [\n +// {\n \"headerName\": \"user-agent\",\n \"operator\": \"CONTAINS\",\n \"value\": +// \"Hiddify\",\n \"caseSensitive\": true\n },\n {\n \"headerName\": \"user-agent\", +// \n \"operator\": \"CONTAINS\",\n \"value\": \"FoxRay\",\n \"caseSensitive\": true\n +// +// }\n ],\n \"responseType\": \"BLOCK\"\n}\n```","body":{"name":"Block Legacy Clients", +// +// "description":"Block requests from legacy clients","enabled":true,"operator":"OR", +// "conditions":[{"headerName":"user-agent","operator":"CONTAINS","value":"Hiddify", +// "caseSensitive":true},{"headerName":"user-agent","operator":"CONTAINS","value":"FoxRay", +// "caseSensitive":true}],"responseType":"BLOCK"}}],"title":"Response Rule", +// "markdownDescription":"Response rule configuration.\n\n**Fields:**\n- **name**: Name of the +// response rule.\n- **description**: Description of the response rule. Optional.\n- **enabled**: +// Control whether the response rule is enabled or disabled. \n\n - `true` the rule will be applied. +// \n\n - `false` the rule will be always ignored.\n- **operator**: Operator to use for combining +// conditions in the rule.\n- **conditions**: Array of conditions to check against the request +// headers. Conditions are applied with **operator**. If conditions are empty, the rule will be +// matched.\n- **responseType**: Type of the response. Determines the type of **response** to be +// returned when the rule is matched.\n- **responseModifications**: Response modifications to be +// applied when the rule is matched. Optional.\n\n**Example:**\n```json\n{\n \"name\": \"Block +// Legacy Clients\",\n \"description\": \"Block requests from legacy clients\",\n \"enabled\": true, +// \n \"operator\": \"OR\",\n \"conditions\": [\n {\n \"headerName\": \"user-agent\",\n +// +// \"operator\": \"CONTAINS\",\n \"value\": \"Hiddify\",\n \"caseSensitive\": true\n }, +// +// \n {\n \"headerName\": \"user-agent\",\n \"operator\": \"CONTAINS\",\n +// \"value\": \"FoxRay\",\n \"caseSensitive\": true\n }\n ],\n \"responseType\": +// \"BLOCK\"\n}\n```"}. +// Ref: #/components/schemas/Rule +type Rule struct { + // {"markdownDescription":"Name of the response rule."}. + Name string `json:"name"` + // {"markdownDescription":"Description of the response rule. Optional."}. + Description OptString `json:"description"` + // {"markdownDescription":"Control whether the response rule is enabled or disabled. \n\n - `true` + // the rule will be applied. \n\n - `false` the rule will be always ignored."}. + Enabled bool `json:"enabled"` + // {"markdownDescription":"Operator to use for combining conditions in the rule."}. + Operator RuleOperator `json:"operator"` + // {"markdownDescription":"Array of conditions to check against the request headers. Conditions are + // applied with **operator**. If conditions are empty, the rule will be matched."}. + Conditions []Condition `json:"conditions"` + // {"errorMessage":"Invalid response type. Please select a valid response type.", + // "markdownDescription":"Type of the response. Determines the type of **response** to be returned + // when the rule is matched.","markdownEnumDescriptions":["Return **subscription** in XRAY-JSON + // format. (Using `Xray Json` template)","Return **subscription** in BASE64 encoded string. + // Compatible with most client application with Xray core.","Return **subscription** in Mihomo format. + // (Using `Mihomo` template)","Return **subscription** in Stash format. (Using `Stash` template)", + // "Return **subscription** in Clash format. (Using `Clash` template) Useful for client application + // that use Legacy Clash core.","Return **subscription** in Singbox format. (Using `Singbox` + // template) Format which is used by Singbox client application.","Return **subscription** as browser + // format. The same as on `/info` route.","**Drop** request and return `403` status code.","**Drop** + // request and return `404` status code.","**Drop** request and return `451` status code.","**Drop** + // the socket connection."]}. + ResponseType RuleResponseType `json:"responseType"` + ResponseModifications OptResponseModification `json:"responseModifications"` +} + +// GetName returns the value of Name. +func (s *Rule) GetName() string { + return s.Name +} + +// GetDescription returns the value of Description. +func (s *Rule) GetDescription() OptString { + return s.Description +} + +// GetEnabled returns the value of Enabled. +func (s *Rule) GetEnabled() bool { + return s.Enabled +} + +// GetOperator returns the value of Operator. +func (s *Rule) GetOperator() RuleOperator { + return s.Operator +} + +// GetConditions returns the value of Conditions. +func (s *Rule) GetConditions() []Condition { + return s.Conditions +} + +// GetResponseType returns the value of ResponseType. +func (s *Rule) GetResponseType() RuleResponseType { + return s.ResponseType +} + +// GetResponseModifications returns the value of ResponseModifications. +func (s *Rule) GetResponseModifications() OptResponseModification { + return s.ResponseModifications +} + +// SetName sets the value of Name. +func (s *Rule) SetName(val string) { + s.Name = val +} + +// SetDescription sets the value of Description. +func (s *Rule) SetDescription(val OptString) { + s.Description = val +} + +// SetEnabled sets the value of Enabled. +func (s *Rule) SetEnabled(val bool) { + s.Enabled = val +} + +// SetOperator sets the value of Operator. +func (s *Rule) SetOperator(val RuleOperator) { + s.Operator = val +} + +// SetConditions sets the value of Conditions. +func (s *Rule) SetConditions(val []Condition) { + s.Conditions = val +} + +// SetResponseType sets the value of ResponseType. +func (s *Rule) SetResponseType(val RuleResponseType) { + s.ResponseType = val +} + +// SetResponseModifications sets the value of ResponseModifications. +func (s *Rule) SetResponseModifications(val OptResponseModification) { + s.ResponseModifications = val +} + +// {"markdownDescription":"Operator to use for combining conditions in the rule."}. +type RuleOperator string + +const ( + RuleOperatorAND RuleOperator = "AND" + RuleOperatorOR RuleOperator = "OR" +) + +// AllValues returns all RuleOperator values. +func (RuleOperator) AllValues() []RuleOperator { + return []RuleOperator{ + RuleOperatorAND, + RuleOperatorOR, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s RuleOperator) MarshalText() ([]byte, error) { + switch s { + case RuleOperatorAND: + return []byte(s), nil + case RuleOperatorOR: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *RuleOperator) UnmarshalText(data []byte) error { + switch RuleOperator(data) { + case RuleOperatorAND: + *s = RuleOperatorAND + return nil + case RuleOperatorOR: + *s = RuleOperatorOR + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// {"errorMessage":"Invalid response type. Please select a valid response type.", +// "markdownDescription":"Type of the response. Determines the type of **response** to be returned +// when the rule is matched.","markdownEnumDescriptions":["Return **subscription** in XRAY-JSON +// format. (Using `Xray Json` template)","Return **subscription** in BASE64 encoded string. +// Compatible with most client application with Xray core.","Return **subscription** in Mihomo format. +// +// (Using `Mihomo` template)","Return **subscription** in Stash format. (Using `Stash` template)", +// +// "Return **subscription** in Clash format. (Using `Clash` template) Useful for client application +// that use Legacy Clash core.","Return **subscription** in Singbox format. (Using `Singbox` +// template) Format which is used by Singbox client application.","Return **subscription** as browser +// format. The same as on `/info` route.","**Drop** request and return `403` status code.","**Drop** +// request and return `404` status code.","**Drop** request and return `451` status code.","**Drop** +// the socket connection."]}. +type RuleResponseType string + +const ( + RuleResponseTypeXRAYJSON RuleResponseType = "XRAY_JSON" + RuleResponseTypeXRAYBASE64 RuleResponseType = "XRAY_BASE64" + RuleResponseTypeMIHOMO RuleResponseType = "MIHOMO" + RuleResponseTypeSTASH RuleResponseType = "STASH" + RuleResponseTypeCLASH RuleResponseType = "CLASH" + RuleResponseTypeSINGBOX RuleResponseType = "SINGBOX" + RuleResponseTypeBROWSER RuleResponseType = "BROWSER" + RuleResponseTypeBLOCK RuleResponseType = "BLOCK" + RuleResponseTypeSTATUSCODE404 RuleResponseType = "STATUS_CODE_404" + RuleResponseTypeSTATUSCODE451 RuleResponseType = "STATUS_CODE_451" + RuleResponseTypeSOCKETDROP RuleResponseType = "SOCKET_DROP" +) + +// AllValues returns all RuleResponseType values. +func (RuleResponseType) AllValues() []RuleResponseType { + return []RuleResponseType{ + RuleResponseTypeXRAYJSON, + RuleResponseTypeXRAYBASE64, + RuleResponseTypeMIHOMO, + RuleResponseTypeSTASH, + RuleResponseTypeCLASH, + RuleResponseTypeSINGBOX, + RuleResponseTypeBROWSER, + RuleResponseTypeBLOCK, + RuleResponseTypeSTATUSCODE404, + RuleResponseTypeSTATUSCODE451, + RuleResponseTypeSOCKETDROP, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s RuleResponseType) MarshalText() ([]byte, error) { + switch s { + case RuleResponseTypeXRAYJSON: + return []byte(s), nil + case RuleResponseTypeXRAYBASE64: + return []byte(s), nil + case RuleResponseTypeMIHOMO: + return []byte(s), nil + case RuleResponseTypeSTASH: + return []byte(s), nil + case RuleResponseTypeCLASH: + return []byte(s), nil + case RuleResponseTypeSINGBOX: + return []byte(s), nil + case RuleResponseTypeBROWSER: + return []byte(s), nil + case RuleResponseTypeBLOCK: + return []byte(s), nil + case RuleResponseTypeSTATUSCODE404: + return []byte(s), nil + case RuleResponseTypeSTATUSCODE451: + return []byte(s), nil + case RuleResponseTypeSOCKETDROP: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *RuleResponseType) UnmarshalText(data []byte) error { + switch RuleResponseType(data) { + case RuleResponseTypeXRAYJSON: + *s = RuleResponseTypeXRAYJSON + return nil + case RuleResponseTypeXRAYBASE64: + *s = RuleResponseTypeXRAYBASE64 + return nil + case RuleResponseTypeMIHOMO: + *s = RuleResponseTypeMIHOMO + return nil + case RuleResponseTypeSTASH: + *s = RuleResponseTypeSTASH + return nil + case RuleResponseTypeCLASH: + *s = RuleResponseTypeCLASH + return nil + case RuleResponseTypeSINGBOX: + *s = RuleResponseTypeSINGBOX + return nil + case RuleResponseTypeBROWSER: + *s = RuleResponseTypeBROWSER + return nil + case RuleResponseTypeBLOCK: + *s = RuleResponseTypeBLOCK + return nil + case RuleResponseTypeSTATUSCODE404: + *s = RuleResponseTypeSTATUSCODE404 + return nil + case RuleResponseTypeSTATUSCODE451: + *s = RuleResponseTypeSTATUSCODE451 + return nil + case RuleResponseTypeSOCKETDROP: + *s = RuleResponseTypeSOCKETDROP + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/SetInboundToManyHostsRequest +type SetInboundToManyHostsRequest struct { + Uuids []uuid.UUID `json:"uuids"` + ConfigProfileUuid uuid.UUID `json:"configProfileUuid"` + ConfigProfileInboundUuid uuid.UUID `json:"configProfileInboundUuid"` +} + +// GetUuids returns the value of Uuids. +func (s *SetInboundToManyHostsRequest) GetUuids() []uuid.UUID { + return s.Uuids +} + +// GetConfigProfileUuid returns the value of ConfigProfileUuid. +func (s *SetInboundToManyHostsRequest) GetConfigProfileUuid() uuid.UUID { + return s.ConfigProfileUuid +} + +// GetConfigProfileInboundUuid returns the value of ConfigProfileInboundUuid. +func (s *SetInboundToManyHostsRequest) GetConfigProfileInboundUuid() uuid.UUID { + return s.ConfigProfileInboundUuid +} + +// SetUuids sets the value of Uuids. +func (s *SetInboundToManyHostsRequest) SetUuids(val []uuid.UUID) { + s.Uuids = val +} + +// SetConfigProfileUuid sets the value of ConfigProfileUuid. +func (s *SetInboundToManyHostsRequest) SetConfigProfileUuid(val uuid.UUID) { + s.ConfigProfileUuid = val +} + +// SetConfigProfileInboundUuid sets the value of ConfigProfileInboundUuid. +func (s *SetInboundToManyHostsRequest) SetConfigProfileInboundUuid(val uuid.UUID) { + s.ConfigProfileInboundUuid = val +} + +// Ref: #/components/schemas/SetPortToManyHostsRequest +type SetPortToManyHostsRequest struct { + Uuids []uuid.UUID `json:"uuids"` + Port int `json:"port"` +} + +// GetUuids returns the value of Uuids. +func (s *SetPortToManyHostsRequest) GetUuids() []uuid.UUID { + return s.Uuids +} + +// GetPort returns the value of Port. +func (s *SetPortToManyHostsRequest) GetPort() int { + return s.Port +} + +// SetUuids sets the value of Uuids. +func (s *SetPortToManyHostsRequest) SetUuids(val []uuid.UUID) { + s.Uuids = val +} + +// SetPort sets the value of Port. +func (s *SetPortToManyHostsRequest) SetPort(val int) { + s.Port = val +} + +// Ref: #/components/schemas/SettingsResponse +type SettingsResponse struct { + Response SettingsResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *SettingsResponse) GetResponse() SettingsResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *SettingsResponse) SetResponse(val SettingsResponseResponse) { + s.Response = val +} + +func (*SettingsResponse) remnawaveSettingsGetSettingsRes() {} +func (*SettingsResponse) remnawaveSettingsUpdateSettingsRes() {} + +type SettingsResponseResponse struct { + PasskeySettings NilPasskeySettings `json:"passkeySettings"` + Oauth2Settings NilOauth2Settings `json:"oauth2Settings"` + PasswordSettings NilPasswordSettings `json:"passwordSettings"` + BrandingSettings NilBrandingSettings `json:"brandingSettings"` +} + +// GetPasskeySettings returns the value of PasskeySettings. +func (s *SettingsResponseResponse) GetPasskeySettings() NilPasskeySettings { + return s.PasskeySettings +} + +// GetOauth2Settings returns the value of Oauth2Settings. +func (s *SettingsResponseResponse) GetOauth2Settings() NilOauth2Settings { + return s.Oauth2Settings +} + +// GetPasswordSettings returns the value of PasswordSettings. +func (s *SettingsResponseResponse) GetPasswordSettings() NilPasswordSettings { + return s.PasswordSettings +} + +// GetBrandingSettings returns the value of BrandingSettings. +func (s *SettingsResponseResponse) GetBrandingSettings() NilBrandingSettings { + return s.BrandingSettings +} + +// SetPasskeySettings sets the value of PasskeySettings. +func (s *SettingsResponseResponse) SetPasskeySettings(val NilPasskeySettings) { + s.PasskeySettings = val +} + +// SetOauth2Settings sets the value of Oauth2Settings. +func (s *SettingsResponseResponse) SetOauth2Settings(val NilOauth2Settings) { + s.Oauth2Settings = val +} + +// SetPasswordSettings sets the value of PasswordSettings. +func (s *SettingsResponseResponse) SetPasswordSettings(val NilPasswordSettings) { + s.PasswordSettings = val +} + +// SetBrandingSettings sets the value of BrandingSettings. +func (s *SettingsResponseResponse) SetBrandingSettings(val NilBrandingSettings) { + s.BrandingSettings = val +} + +// Ref: #/components/schemas/SnippetRequest +type SnippetRequest struct { + Name string `json:"name"` + Snippet []SnippetRequestSnippetItem `json:"snippet"` +} + +// GetName returns the value of Name. +func (s *SnippetRequest) GetName() string { + return s.Name +} + +// GetSnippet returns the value of Snippet. +func (s *SnippetRequest) GetSnippet() []SnippetRequestSnippetItem { + return s.Snippet +} + +// SetName sets the value of Name. +func (s *SnippetRequest) SetName(val string) { + s.Name = val +} + +// SetSnippet sets the value of Snippet. +func (s *SnippetRequest) SetSnippet(val []SnippetRequestSnippetItem) { + s.Snippet = val +} + +type SnippetRequestSnippetItem struct{} + +// SnippetsCreateSnippetConflict is response for SnippetsCreateSnippet operation. +type SnippetsCreateSnippetConflict struct{} + +func (*SnippetsCreateSnippetConflict) snippetsCreateSnippetRes() {} + +// Ref: #/components/schemas/SnippetsResponse +type SnippetsResponse struct { + Response SnippetsResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *SnippetsResponse) GetResponse() SnippetsResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *SnippetsResponse) SetResponse(val SnippetsResponseResponse) { + s.Response = val +} + +func (*SnippetsResponse) snippetsCreateSnippetRes() {} +func (*SnippetsResponse) snippetsDeleteSnippetByNameRes() {} +func (*SnippetsResponse) snippetsGetSnippetsRes() {} +func (*SnippetsResponse) snippetsUpdateSnippetRes() {} + +type SnippetsResponseResponse struct { + Total float64 `json:"total"` + Snippets []SnippetsResponseResponseSnippetsItem `json:"snippets"` +} + +// GetTotal returns the value of Total. +func (s *SnippetsResponseResponse) GetTotal() float64 { + return s.Total +} + +// GetSnippets returns the value of Snippets. +func (s *SnippetsResponseResponse) GetSnippets() []SnippetsResponseResponseSnippetsItem { + return s.Snippets +} + +// SetTotal sets the value of Total. +func (s *SnippetsResponseResponse) SetTotal(val float64) { + s.Total = val +} + +// SetSnippets sets the value of Snippets. +func (s *SnippetsResponseResponse) SetSnippets(val []SnippetsResponseResponseSnippetsItem) { + s.Snippets = val +} + +type SnippetsResponseResponseSnippetsItem struct { + Name string `json:"name"` + Snippet jx.Raw `json:"snippet"` +} + +// GetName returns the value of Name. +func (s *SnippetsResponseResponseSnippetsItem) GetName() string { + return s.Name +} + +// GetSnippet returns the value of Snippet. +func (s *SnippetsResponseResponseSnippetsItem) GetSnippet() jx.Raw { + return s.Snippet +} + +// SetName sets the value of Name. +func (s *SnippetsResponseResponseSnippetsItem) SetName(val string) { + s.Name = val +} + +// SetSnippet sets the value of Snippet. +func (s *SnippetsResponseResponseSnippetsItem) SetSnippet(val jx.Raw) { + s.Snippet = val +} + +// SnippetsUpdateSnippetConflict is response for SnippetsUpdateSnippet operation. +type SnippetsUpdateSnippetConflict struct{} + +func (*SnippetsUpdateSnippetConflict) snippetsUpdateSnippetRes() {} + +// Ref: #/components/schemas/Stat +type Stat struct { + MemoryFree float64 `json:"memoryFree"` + MemoryUsed float64 `json:"memoryUsed"` + Uptime float64 `json:"uptime"` + LoadAvg []float64 `json:"loadAvg"` + Interface NilInterfaceItem `json:"interface"` +} + +// GetMemoryFree returns the value of MemoryFree. +func (s *Stat) GetMemoryFree() float64 { + return s.MemoryFree +} + +// GetMemoryUsed returns the value of MemoryUsed. +func (s *Stat) GetMemoryUsed() float64 { + return s.MemoryUsed +} + +// GetUptime returns the value of Uptime. +func (s *Stat) GetUptime() float64 { + return s.Uptime +} + +// GetLoadAvg returns the value of LoadAvg. +func (s *Stat) GetLoadAvg() []float64 { + return s.LoadAvg +} + +// GetInterface returns the value of Interface. +func (s *Stat) GetInterface() NilInterfaceItem { + return s.Interface +} + +// SetMemoryFree sets the value of MemoryFree. +func (s *Stat) SetMemoryFree(val float64) { + s.MemoryFree = val +} + +// SetMemoryUsed sets the value of MemoryUsed. +func (s *Stat) SetMemoryUsed(val float64) { + s.MemoryUsed = val +} + +// SetUptime sets the value of Uptime. +func (s *Stat) SetUptime(val float64) { + s.Uptime = val +} + +// SetLoadAvg sets the value of LoadAvg. +func (s *Stat) SetLoadAvg(val []float64) { + s.LoadAvg = val +} + +// SetInterface sets the value of Interface. +func (s *Stat) SetInterface(val NilInterfaceItem) { + s.Interface = val +} + +// Ref: #/components/schemas/StatsUserUsageResponseResponse +type StatsUserUsageResponseResponse struct { + Response StatsUserUsageResponseResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *StatsUserUsageResponseResponse) GetResponse() StatsUserUsageResponseResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *StatsUserUsageResponseResponse) SetResponse(val StatsUserUsageResponseResponseResponse) { + s.Response = val +} + +func (*StatsUserUsageResponseResponse) bandwidthStatsUsersGetStatsNodesUsageRes() {} +func (*StatsUserUsageResponseResponse) nodesUsageHistoryGetStatsNodesUsageRes() {} + +type StatsUserUsageResponseResponseResponse struct { + Categories []string `json:"categories"` + SparklineData []float64 `json:"sparklineData"` + TopNodes []TopNode `json:"topNodes"` + Series []StatsUserUsageResponseResponseResponseSeriesItem `json:"series"` +} + +// GetCategories returns the value of Categories. +func (s *StatsUserUsageResponseResponseResponse) GetCategories() []string { + return s.Categories +} + +// GetSparklineData returns the value of SparklineData. +func (s *StatsUserUsageResponseResponseResponse) GetSparklineData() []float64 { + return s.SparklineData +} + +// GetTopNodes returns the value of TopNodes. +func (s *StatsUserUsageResponseResponseResponse) GetTopNodes() []TopNode { + return s.TopNodes +} + +// GetSeries returns the value of Series. +func (s *StatsUserUsageResponseResponseResponse) GetSeries() []StatsUserUsageResponseResponseResponseSeriesItem { + return s.Series +} + +// SetCategories sets the value of Categories. +func (s *StatsUserUsageResponseResponseResponse) SetCategories(val []string) { + s.Categories = val +} + +// SetSparklineData sets the value of SparklineData. +func (s *StatsUserUsageResponseResponseResponse) SetSparklineData(val []float64) { + s.SparklineData = val +} + +// SetTopNodes sets the value of TopNodes. +func (s *StatsUserUsageResponseResponseResponse) SetTopNodes(val []TopNode) { + s.TopNodes = val +} + +// SetSeries sets the value of Series. +func (s *StatsUserUsageResponseResponseResponse) SetSeries(val []StatsUserUsageResponseResponseResponseSeriesItem) { + s.Series = val +} + +type StatsUserUsageResponseResponseResponseSeriesItem struct { + UUID uuid.UUID `json:"uuid"` + Name string `json:"name"` + Color string `json:"color"` + CountryCode string `json:"countryCode"` + Total float64 `json:"total"` + Data []float64 `json:"data"` +} + +// GetUUID returns the value of UUID. +func (s *StatsUserUsageResponseResponseResponseSeriesItem) GetUUID() uuid.UUID { + return s.UUID +} + +// GetName returns the value of Name. +func (s *StatsUserUsageResponseResponseResponseSeriesItem) GetName() string { + return s.Name +} + +// GetColor returns the value of Color. +func (s *StatsUserUsageResponseResponseResponseSeriesItem) GetColor() string { + return s.Color +} + +// GetCountryCode returns the value of CountryCode. +func (s *StatsUserUsageResponseResponseResponseSeriesItem) GetCountryCode() string { + return s.CountryCode +} + +// GetTotal returns the value of Total. +func (s *StatsUserUsageResponseResponseResponseSeriesItem) GetTotal() float64 { + return s.Total +} + +// GetData returns the value of Data. +func (s *StatsUserUsageResponseResponseResponseSeriesItem) GetData() []float64 { + return s.Data +} + +// SetUUID sets the value of UUID. +func (s *StatsUserUsageResponseResponseResponseSeriesItem) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetName sets the value of Name. +func (s *StatsUserUsageResponseResponseResponseSeriesItem) SetName(val string) { + s.Name = val +} + +// SetColor sets the value of Color. +func (s *StatsUserUsageResponseResponseResponseSeriesItem) SetColor(val string) { + s.Color = val +} + +// SetCountryCode sets the value of CountryCode. +func (s *StatsUserUsageResponseResponseResponseSeriesItem) SetCountryCode(val string) { + s.CountryCode = val +} + +// SetTotal sets the value of Total. +func (s *StatsUserUsageResponseResponseResponseSeriesItem) SetTotal(val float64) { + s.Total = val +} + +// SetData sets the value of Data. +func (s *StatsUserUsageResponseResponseResponseSeriesItem) SetData(val []float64) { + s.Data = val +} + +// Ref: #/components/schemas/Subscription +type Subscription struct { + IsFound bool `json:"isFound"` + User UserItem2 `json:"user"` + Links []string `json:"links"` + SsConfLinks SubscriptionSsConfLinks `json:"ssConfLinks"` + SubscriptionUrl string `json:"subscriptionUrl"` +} + +// GetIsFound returns the value of IsFound. +func (s *Subscription) GetIsFound() bool { + return s.IsFound +} + +// GetUser returns the value of User. +func (s *Subscription) GetUser() UserItem2 { + return s.User +} + +// GetLinks returns the value of Links. +func (s *Subscription) GetLinks() []string { + return s.Links +} + +// GetSsConfLinks returns the value of SsConfLinks. +func (s *Subscription) GetSsConfLinks() SubscriptionSsConfLinks { + return s.SsConfLinks +} + +// GetSubscriptionUrl returns the value of SubscriptionUrl. +func (s *Subscription) GetSubscriptionUrl() string { + return s.SubscriptionUrl +} + +// SetIsFound sets the value of IsFound. +func (s *Subscription) SetIsFound(val bool) { + s.IsFound = val +} + +// SetUser sets the value of User. +func (s *Subscription) SetUser(val UserItem2) { + s.User = val +} + +// SetLinks sets the value of Links. +func (s *Subscription) SetLinks(val []string) { + s.Links = val +} + +// SetSsConfLinks sets the value of SsConfLinks. +func (s *Subscription) SetSsConfLinks(val SubscriptionSsConfLinks) { + s.SsConfLinks = val +} + +// SetSubscriptionUrl sets the value of SubscriptionUrl. +func (s *Subscription) SetSubscriptionUrl(val string) { + s.SubscriptionUrl = val +} + +type SubscriptionGetSubscriptionByClientTypeClientType string + +const ( + SubscriptionGetSubscriptionByClientTypeClientTypeStash SubscriptionGetSubscriptionByClientTypeClientType = "stash" + SubscriptionGetSubscriptionByClientTypeClientTypeSingbox SubscriptionGetSubscriptionByClientTypeClientType = "singbox" + SubscriptionGetSubscriptionByClientTypeClientTypeMihomo SubscriptionGetSubscriptionByClientTypeClientType = "mihomo" + SubscriptionGetSubscriptionByClientTypeClientTypeJSON SubscriptionGetSubscriptionByClientTypeClientType = "json" + SubscriptionGetSubscriptionByClientTypeClientTypeV2rayJSON SubscriptionGetSubscriptionByClientTypeClientType = "v2ray-json" + SubscriptionGetSubscriptionByClientTypeClientTypeClash SubscriptionGetSubscriptionByClientTypeClientType = "clash" +) + +// AllValues returns all SubscriptionGetSubscriptionByClientTypeClientType values. +func (SubscriptionGetSubscriptionByClientTypeClientType) AllValues() []SubscriptionGetSubscriptionByClientTypeClientType { + return []SubscriptionGetSubscriptionByClientTypeClientType{ + SubscriptionGetSubscriptionByClientTypeClientTypeStash, + SubscriptionGetSubscriptionByClientTypeClientTypeSingbox, + SubscriptionGetSubscriptionByClientTypeClientTypeMihomo, + SubscriptionGetSubscriptionByClientTypeClientTypeJSON, + SubscriptionGetSubscriptionByClientTypeClientTypeV2rayJSON, + SubscriptionGetSubscriptionByClientTypeClientTypeClash, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s SubscriptionGetSubscriptionByClientTypeClientType) MarshalText() ([]byte, error) { + switch s { + case SubscriptionGetSubscriptionByClientTypeClientTypeStash: + return []byte(s), nil + case SubscriptionGetSubscriptionByClientTypeClientTypeSingbox: + return []byte(s), nil + case SubscriptionGetSubscriptionByClientTypeClientTypeMihomo: + return []byte(s), nil + case SubscriptionGetSubscriptionByClientTypeClientTypeJSON: + return []byte(s), nil + case SubscriptionGetSubscriptionByClientTypeClientTypeV2rayJSON: + return []byte(s), nil + case SubscriptionGetSubscriptionByClientTypeClientTypeClash: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *SubscriptionGetSubscriptionByClientTypeClientType) UnmarshalText(data []byte) error { + switch SubscriptionGetSubscriptionByClientTypeClientType(data) { + case SubscriptionGetSubscriptionByClientTypeClientTypeStash: + *s = SubscriptionGetSubscriptionByClientTypeClientTypeStash + return nil + case SubscriptionGetSubscriptionByClientTypeClientTypeSingbox: + *s = SubscriptionGetSubscriptionByClientTypeClientTypeSingbox + return nil + case SubscriptionGetSubscriptionByClientTypeClientTypeMihomo: + *s = SubscriptionGetSubscriptionByClientTypeClientTypeMihomo + return nil + case SubscriptionGetSubscriptionByClientTypeClientTypeJSON: + *s = SubscriptionGetSubscriptionByClientTypeClientTypeJSON + return nil + case SubscriptionGetSubscriptionByClientTypeClientTypeV2rayJSON: + *s = SubscriptionGetSubscriptionByClientTypeClientTypeV2rayJSON + return nil + case SubscriptionGetSubscriptionByClientTypeClientTypeClash: + *s = SubscriptionGetSubscriptionByClientTypeClientTypeClash + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +type SubscriptionGetSubscriptionByClientTypeOK struct { + Data io.Reader +} + +// Read reads data from the Data reader. +// +// Kept to satisfy the io.Reader interface. +func (s SubscriptionGetSubscriptionByClientTypeOK) Read(p []byte) (n int, err error) { + if s.Data == nil { + return 0, io.EOF + } + return s.Data.Read(p) +} + +type SubscriptionGetSubscriptionOK struct { + Data io.Reader +} + +// Read reads data from the Data reader. +// +// Kept to satisfy the io.Reader interface. +func (s SubscriptionGetSubscriptionOK) Read(p []byte) (n int, err error) { + if s.Data == nil { + return 0, io.EOF + } + return s.Data.Read(p) +} + +// Ref: #/components/schemas/SubscriptionPageConfigResponseResponse +type SubscriptionPageConfigResponseResponse struct { + Response SubscriptionPageConfigResponseResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *SubscriptionPageConfigResponseResponse) GetResponse() SubscriptionPageConfigResponseResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *SubscriptionPageConfigResponseResponse) SetResponse(val SubscriptionPageConfigResponseResponseResponse) { + s.Response = val +} + +func (*SubscriptionPageConfigResponseResponse) subscriptionPageConfigCloneSubscriptionPageConfigRes() { +} +func (*SubscriptionPageConfigResponseResponse) subscriptionPageConfigGetConfigByUuidRes() {} +func (*SubscriptionPageConfigResponseResponse) subscriptionPageConfigUpdateConfigRes() {} + +type SubscriptionPageConfigResponseResponseResponse struct { + UUID uuid.UUID `json:"uuid"` + ViewPosition int `json:"viewPosition"` + Name string `json:"name"` + Config jx.Raw `json:"config"` +} + +// GetUUID returns the value of UUID. +func (s *SubscriptionPageConfigResponseResponseResponse) GetUUID() uuid.UUID { + return s.UUID +} + +// GetViewPosition returns the value of ViewPosition. +func (s *SubscriptionPageConfigResponseResponseResponse) GetViewPosition() int { + return s.ViewPosition +} + +// GetName returns the value of Name. +func (s *SubscriptionPageConfigResponseResponseResponse) GetName() string { + return s.Name +} + +// GetConfig returns the value of Config. +func (s *SubscriptionPageConfigResponseResponseResponse) GetConfig() jx.Raw { + return s.Config +} + +// SetUUID sets the value of UUID. +func (s *SubscriptionPageConfigResponseResponseResponse) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetViewPosition sets the value of ViewPosition. +func (s *SubscriptionPageConfigResponseResponseResponse) SetViewPosition(val int) { + s.ViewPosition = val +} + +// SetName sets the value of Name. +func (s *SubscriptionPageConfigResponseResponseResponse) SetName(val string) { + s.Name = val +} + +// SetConfig sets the value of Config. +func (s *SubscriptionPageConfigResponseResponseResponse) SetConfig(val jx.Raw) { + s.Config = val +} + +// Ref: #/components/schemas/SubscriptionPageConfigsResponseResponse +type SubscriptionPageConfigsResponseResponse struct { + Response SubscriptionPageConfigsResponseResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *SubscriptionPageConfigsResponseResponse) GetResponse() SubscriptionPageConfigsResponseResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *SubscriptionPageConfigsResponseResponse) SetResponse(val SubscriptionPageConfigsResponseResponseResponse) { + s.Response = val +} + +func (*SubscriptionPageConfigsResponseResponse) subscriptionPageConfigGetAllConfigsRes() {} +func (*SubscriptionPageConfigsResponseResponse) subscriptionPageConfigReorderSubscriptionPageConfigsRes() { +} + +type SubscriptionPageConfigsResponseResponseResponse struct { + Total float64 `json:"total"` + Configs []Config `json:"configs"` +} + +// GetTotal returns the value of Total. +func (s *SubscriptionPageConfigsResponseResponseResponse) GetTotal() float64 { + return s.Total +} + +// GetConfigs returns the value of Configs. +func (s *SubscriptionPageConfigsResponseResponseResponse) GetConfigs() []Config { + return s.Configs +} + +// SetTotal sets the value of Total. +func (s *SubscriptionPageConfigsResponseResponseResponse) SetTotal(val float64) { + s.Total = val +} + +// SetConfigs sets the value of Configs. +func (s *SubscriptionPageConfigsResponseResponseResponse) SetConfigs(val []Config) { + s.Configs = val +} + +// Ref: #/components/schemas/SubscriptionResponse +type SubscriptionResponse struct { + Response Subscription `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *SubscriptionResponse) GetResponse() Subscription { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *SubscriptionResponse) SetResponse(val Subscription) { + s.Response = val +} + +func (*SubscriptionResponse) subscriptionGetSubscriptionInfoByShortUuidRes() {} +func (*SubscriptionResponse) subscriptionsGetSubscriptionByShortUuidProtectedRes() {} +func (*SubscriptionResponse) subscriptionsGetSubscriptionByUsernameRes() {} +func (*SubscriptionResponse) subscriptionsGetSubscriptionByUuidRes() {} + +// Ref: #/components/schemas/SubscriptionSettings +type SubscriptionSettings struct { + ProfileTitle OptString `json:"profileTitle"` + SupportLink OptString `json:"supportLink"` + ProfileUpdateInterval OptInt `json:"profileUpdateInterval"` + IsProfileWebpageUrlEnabled OptBool `json:"isProfileWebpageUrlEnabled"` + ServeJsonAtBaseSubscription OptBool `json:"serveJsonAtBaseSubscription"` + IsShowCustomRemarks OptBool `json:"isShowCustomRemarks"` + HappAnnounce OptNilString `json:"happAnnounce"` + HappRouting OptNilString `json:"happRouting"` + RandomizeHosts OptBool `json:"randomizeHosts"` +} + +// GetProfileTitle returns the value of ProfileTitle. +func (s *SubscriptionSettings) GetProfileTitle() OptString { + return s.ProfileTitle +} + +// GetSupportLink returns the value of SupportLink. +func (s *SubscriptionSettings) GetSupportLink() OptString { + return s.SupportLink +} + +// GetProfileUpdateInterval returns the value of ProfileUpdateInterval. +func (s *SubscriptionSettings) GetProfileUpdateInterval() OptInt { + return s.ProfileUpdateInterval +} + +// GetIsProfileWebpageUrlEnabled returns the value of IsProfileWebpageUrlEnabled. +func (s *SubscriptionSettings) GetIsProfileWebpageUrlEnabled() OptBool { + return s.IsProfileWebpageUrlEnabled +} + +// GetServeJsonAtBaseSubscription returns the value of ServeJsonAtBaseSubscription. +func (s *SubscriptionSettings) GetServeJsonAtBaseSubscription() OptBool { + return s.ServeJsonAtBaseSubscription +} + +// GetIsShowCustomRemarks returns the value of IsShowCustomRemarks. +func (s *SubscriptionSettings) GetIsShowCustomRemarks() OptBool { + return s.IsShowCustomRemarks +} + +// GetHappAnnounce returns the value of HappAnnounce. +func (s *SubscriptionSettings) GetHappAnnounce() OptNilString { + return s.HappAnnounce +} + +// GetHappRouting returns the value of HappRouting. +func (s *SubscriptionSettings) GetHappRouting() OptNilString { + return s.HappRouting +} + +// GetRandomizeHosts returns the value of RandomizeHosts. +func (s *SubscriptionSettings) GetRandomizeHosts() OptBool { + return s.RandomizeHosts +} + +// SetProfileTitle sets the value of ProfileTitle. +func (s *SubscriptionSettings) SetProfileTitle(val OptString) { + s.ProfileTitle = val +} + +// SetSupportLink sets the value of SupportLink. +func (s *SubscriptionSettings) SetSupportLink(val OptString) { + s.SupportLink = val +} + +// SetProfileUpdateInterval sets the value of ProfileUpdateInterval. +func (s *SubscriptionSettings) SetProfileUpdateInterval(val OptInt) { + s.ProfileUpdateInterval = val +} + +// SetIsProfileWebpageUrlEnabled sets the value of IsProfileWebpageUrlEnabled. +func (s *SubscriptionSettings) SetIsProfileWebpageUrlEnabled(val OptBool) { + s.IsProfileWebpageUrlEnabled = val +} + +// SetServeJsonAtBaseSubscription sets the value of ServeJsonAtBaseSubscription. +func (s *SubscriptionSettings) SetServeJsonAtBaseSubscription(val OptBool) { + s.ServeJsonAtBaseSubscription = val +} + +// SetIsShowCustomRemarks sets the value of IsShowCustomRemarks. +func (s *SubscriptionSettings) SetIsShowCustomRemarks(val OptBool) { + s.IsShowCustomRemarks = val +} + +// SetHappAnnounce sets the value of HappAnnounce. +func (s *SubscriptionSettings) SetHappAnnounce(val OptNilString) { + s.HappAnnounce = val +} + +// SetHappRouting sets the value of HappRouting. +func (s *SubscriptionSettings) SetHappRouting(val OptNilString) { + s.HappRouting = val +} + +// SetRandomizeHosts sets the value of RandomizeHosts. +func (s *SubscriptionSettings) SetRandomizeHosts(val OptBool) { + s.RandomizeHosts = val +} + +// Ref: #/components/schemas/SubscriptionSettingsResponse +type SubscriptionSettingsResponse struct { + Response SubscriptionSettingsResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *SubscriptionSettingsResponse) GetResponse() SubscriptionSettingsResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *SubscriptionSettingsResponse) SetResponse(val SubscriptionSettingsResponseResponse) { + s.Response = val +} + +func (*SubscriptionSettingsResponse) subscriptionSettingsGetSettingsRes() {} +func (*SubscriptionSettingsResponse) subscriptionSettingsUpdateSettingsRes() {} + +type SubscriptionSettingsResponseResponse struct { + UUID uuid.UUID `json:"uuid"` + ProfileTitle string `json:"profileTitle"` + SupportLink string `json:"supportLink"` + ProfileUpdateInterval int `json:"profileUpdateInterval"` + IsProfileWebpageUrlEnabled bool `json:"isProfileWebpageUrlEnabled"` + ServeJsonAtBaseSubscription bool `json:"serveJsonAtBaseSubscription"` + IsShowCustomRemarks bool `json:"isShowCustomRemarks"` + CustomRemarks NilCustomRemark `json:"customRemarks"` + HappAnnounce NilString `json:"happAnnounce"` + HappRouting NilString `json:"happRouting"` + CustomResponseHeaders NilSubscriptionSettingsResponseResponseCustomResponseHeaders `json:"customResponseHeaders"` + RandomizeHosts bool `json:"randomizeHosts"` + ResponseRules ResponseRules `json:"responseRules"` + HwidSettings NilHwidSettings `json:"hwidSettings"` + CreatedAt time.Time `json:"createdAt"` + UpdatedAt time.Time `json:"updatedAt"` +} + +// GetUUID returns the value of UUID. +func (s *SubscriptionSettingsResponseResponse) GetUUID() uuid.UUID { + return s.UUID +} + +// GetProfileTitle returns the value of ProfileTitle. +func (s *SubscriptionSettingsResponseResponse) GetProfileTitle() string { + return s.ProfileTitle +} + +// GetSupportLink returns the value of SupportLink. +func (s *SubscriptionSettingsResponseResponse) GetSupportLink() string { + return s.SupportLink +} + +// GetProfileUpdateInterval returns the value of ProfileUpdateInterval. +func (s *SubscriptionSettingsResponseResponse) GetProfileUpdateInterval() int { + return s.ProfileUpdateInterval +} + +// GetIsProfileWebpageUrlEnabled returns the value of IsProfileWebpageUrlEnabled. +func (s *SubscriptionSettingsResponseResponse) GetIsProfileWebpageUrlEnabled() bool { + return s.IsProfileWebpageUrlEnabled +} + +// GetServeJsonAtBaseSubscription returns the value of ServeJsonAtBaseSubscription. +func (s *SubscriptionSettingsResponseResponse) GetServeJsonAtBaseSubscription() bool { + return s.ServeJsonAtBaseSubscription +} + +// GetIsShowCustomRemarks returns the value of IsShowCustomRemarks. +func (s *SubscriptionSettingsResponseResponse) GetIsShowCustomRemarks() bool { + return s.IsShowCustomRemarks +} + +// GetCustomRemarks returns the value of CustomRemarks. +func (s *SubscriptionSettingsResponseResponse) GetCustomRemarks() NilCustomRemark { + return s.CustomRemarks +} + +// GetHappAnnounce returns the value of HappAnnounce. +func (s *SubscriptionSettingsResponseResponse) GetHappAnnounce() NilString { + return s.HappAnnounce +} + +// GetHappRouting returns the value of HappRouting. +func (s *SubscriptionSettingsResponseResponse) GetHappRouting() NilString { + return s.HappRouting +} + +// GetCustomResponseHeaders returns the value of CustomResponseHeaders. +func (s *SubscriptionSettingsResponseResponse) GetCustomResponseHeaders() NilSubscriptionSettingsResponseResponseCustomResponseHeaders { + return s.CustomResponseHeaders +} + +// GetRandomizeHosts returns the value of RandomizeHosts. +func (s *SubscriptionSettingsResponseResponse) GetRandomizeHosts() bool { + return s.RandomizeHosts +} + +// GetResponseRules returns the value of ResponseRules. +func (s *SubscriptionSettingsResponseResponse) GetResponseRules() ResponseRules { + return s.ResponseRules +} + +// GetHwidSettings returns the value of HwidSettings. +func (s *SubscriptionSettingsResponseResponse) GetHwidSettings() NilHwidSettings { + return s.HwidSettings +} + +// GetCreatedAt returns the value of CreatedAt. +func (s *SubscriptionSettingsResponseResponse) GetCreatedAt() time.Time { + return s.CreatedAt +} + +// GetUpdatedAt returns the value of UpdatedAt. +func (s *SubscriptionSettingsResponseResponse) GetUpdatedAt() time.Time { + return s.UpdatedAt +} + +// SetUUID sets the value of UUID. +func (s *SubscriptionSettingsResponseResponse) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetProfileTitle sets the value of ProfileTitle. +func (s *SubscriptionSettingsResponseResponse) SetProfileTitle(val string) { + s.ProfileTitle = val +} + +// SetSupportLink sets the value of SupportLink. +func (s *SubscriptionSettingsResponseResponse) SetSupportLink(val string) { + s.SupportLink = val +} + +// SetProfileUpdateInterval sets the value of ProfileUpdateInterval. +func (s *SubscriptionSettingsResponseResponse) SetProfileUpdateInterval(val int) { + s.ProfileUpdateInterval = val +} + +// SetIsProfileWebpageUrlEnabled sets the value of IsProfileWebpageUrlEnabled. +func (s *SubscriptionSettingsResponseResponse) SetIsProfileWebpageUrlEnabled(val bool) { + s.IsProfileWebpageUrlEnabled = val +} + +// SetServeJsonAtBaseSubscription sets the value of ServeJsonAtBaseSubscription. +func (s *SubscriptionSettingsResponseResponse) SetServeJsonAtBaseSubscription(val bool) { + s.ServeJsonAtBaseSubscription = val +} + +// SetIsShowCustomRemarks sets the value of IsShowCustomRemarks. +func (s *SubscriptionSettingsResponseResponse) SetIsShowCustomRemarks(val bool) { + s.IsShowCustomRemarks = val +} + +// SetCustomRemarks sets the value of CustomRemarks. +func (s *SubscriptionSettingsResponseResponse) SetCustomRemarks(val NilCustomRemark) { + s.CustomRemarks = val +} + +// SetHappAnnounce sets the value of HappAnnounce. +func (s *SubscriptionSettingsResponseResponse) SetHappAnnounce(val NilString) { + s.HappAnnounce = val +} + +// SetHappRouting sets the value of HappRouting. +func (s *SubscriptionSettingsResponseResponse) SetHappRouting(val NilString) { + s.HappRouting = val +} + +// SetCustomResponseHeaders sets the value of CustomResponseHeaders. +func (s *SubscriptionSettingsResponseResponse) SetCustomResponseHeaders(val NilSubscriptionSettingsResponseResponseCustomResponseHeaders) { + s.CustomResponseHeaders = val +} + +// SetRandomizeHosts sets the value of RandomizeHosts. +func (s *SubscriptionSettingsResponseResponse) SetRandomizeHosts(val bool) { + s.RandomizeHosts = val +} + +// SetResponseRules sets the value of ResponseRules. +func (s *SubscriptionSettingsResponseResponse) SetResponseRules(val ResponseRules) { + s.ResponseRules = val +} + +// SetHwidSettings sets the value of HwidSettings. +func (s *SubscriptionSettingsResponseResponse) SetHwidSettings(val NilHwidSettings) { + s.HwidSettings = val +} + +// SetCreatedAt sets the value of CreatedAt. +func (s *SubscriptionSettingsResponseResponse) SetCreatedAt(val time.Time) { + s.CreatedAt = val +} + +// SetUpdatedAt sets the value of UpdatedAt. +func (s *SubscriptionSettingsResponseResponse) SetUpdatedAt(val time.Time) { + s.UpdatedAt = val +} + +type SubscriptionSettingsResponseResponseCustomResponseHeaders map[string]string + +func (s *SubscriptionSettingsResponseResponseCustomResponseHeaders) init() SubscriptionSettingsResponseResponseCustomResponseHeaders { + m := *s + if m == nil { + m = map[string]string{} + *s = m + } + return m +} + +type SubscriptionSsConfLinks map[string]string + +func (s *SubscriptionSsConfLinks) init() SubscriptionSsConfLinks { + m := *s + if m == nil { + m = map[string]string{} + *s = m + } + return m +} + +// Ref: #/components/schemas/SystemItem +type SystemItem struct { + Info NodeResponseInfoItem `json:"info"` + Stats Stat `json:"stats"` +} + +// GetInfo returns the value of Info. +func (s *SystemItem) GetInfo() NodeResponseInfoItem { + return s.Info +} + +// GetStats returns the value of Stats. +func (s *SystemItem) GetStats() Stat { + return s.Stats +} + +// SetInfo sets the value of Info. +func (s *SystemItem) SetInfo(val NodeResponseInfoItem) { + s.Info = val +} + +// SetStats sets the value of Stats. +func (s *SystemItem) SetStats(val Stat) { + s.Stats = val +} + +// Ref: #/components/schemas/TagsResponse +type TagsResponse struct { + Response TagsResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *TagsResponse) GetResponse() TagsResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *TagsResponse) SetResponse(val TagsResponseResponse) { + s.Response = val +} + +func (*TagsResponse) hostsGetAllHostTagsRes() {} +func (*TagsResponse) nodesGetAllNodesTagsRes() {} +func (*TagsResponse) usersGetAllTagsRes() {} + +type TagsResponseResponse struct { + Tags []string `json:"tags"` +} + +// GetTags returns the value of Tags. +func (s *TagsResponseResponse) GetTags() []string { + return s.Tags +} + +// SetTags sets the value of Tags. +func (s *TagsResponseResponse) SetTags(val []string) { + s.Tags = val +} + +// Ref: #/components/schemas/Telegram +type Telegram struct { + Enabled bool `json:"enabled"` + ClientId NilString `json:"clientId"` + ClientSecret NilString `json:"clientSecret"` + AllowedIds []string `json:"allowedIds"` + FrontendDomain NilString `json:"frontendDomain"` +} + +// GetEnabled returns the value of Enabled. +func (s *Telegram) GetEnabled() bool { + return s.Enabled +} + +// GetClientId returns the value of ClientId. +func (s *Telegram) GetClientId() NilString { + return s.ClientId +} + +// GetClientSecret returns the value of ClientSecret. +func (s *Telegram) GetClientSecret() NilString { + return s.ClientSecret +} + +// GetAllowedIds returns the value of AllowedIds. +func (s *Telegram) GetAllowedIds() []string { + return s.AllowedIds +} + +// GetFrontendDomain returns the value of FrontendDomain. +func (s *Telegram) GetFrontendDomain() NilString { + return s.FrontendDomain +} + +// SetEnabled sets the value of Enabled. +func (s *Telegram) SetEnabled(val bool) { + s.Enabled = val +} + +// SetClientId sets the value of ClientId. +func (s *Telegram) SetClientId(val NilString) { + s.ClientId = val +} + +// SetClientSecret sets the value of ClientSecret. +func (s *Telegram) SetClientSecret(val NilString) { + s.ClientSecret = val +} + +// SetAllowedIds sets the value of AllowedIds. +func (s *Telegram) SetAllowedIds(val []string) { + s.AllowedIds = val +} + +// SetFrontendDomain sets the value of FrontendDomain. +func (s *Telegram) SetFrontendDomain(val NilString) { + s.FrontendDomain = val +} + +// Ref: #/components/schemas/Template +type Template struct { + UUID uuid.UUID `json:"uuid"` + ViewPosition int `json:"viewPosition"` + Name string `json:"name"` + TemplateType TemplateTemplateType `json:"templateType"` + TemplateJson jx.Raw `json:"templateJson"` + EncodedTemplateYaml NilString `json:"encodedTemplateYaml"` +} + +// GetUUID returns the value of UUID. +func (s *Template) GetUUID() uuid.UUID { + return s.UUID +} + +// GetViewPosition returns the value of ViewPosition. +func (s *Template) GetViewPosition() int { + return s.ViewPosition +} + +// GetName returns the value of Name. +func (s *Template) GetName() string { + return s.Name +} + +// GetTemplateType returns the value of TemplateType. +func (s *Template) GetTemplateType() TemplateTemplateType { + return s.TemplateType +} + +// GetTemplateJson returns the value of TemplateJson. +func (s *Template) GetTemplateJson() jx.Raw { + return s.TemplateJson +} + +// GetEncodedTemplateYaml returns the value of EncodedTemplateYaml. +func (s *Template) GetEncodedTemplateYaml() NilString { + return s.EncodedTemplateYaml +} + +// SetUUID sets the value of UUID. +func (s *Template) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetViewPosition sets the value of ViewPosition. +func (s *Template) SetViewPosition(val int) { + s.ViewPosition = val +} + +// SetName sets the value of Name. +func (s *Template) SetName(val string) { + s.Name = val +} + +// SetTemplateType sets the value of TemplateType. +func (s *Template) SetTemplateType(val TemplateTemplateType) { + s.TemplateType = val +} + +// SetTemplateJson sets the value of TemplateJson. +func (s *Template) SetTemplateJson(val jx.Raw) { + s.TemplateJson = val +} + +// SetEncodedTemplateYaml sets the value of EncodedTemplateYaml. +func (s *Template) SetEncodedTemplateYaml(val NilString) { + s.EncodedTemplateYaml = val +} + +// Ref: #/components/schemas/TemplateRef +type TemplateRef struct { + TemplateUuid uuid.UUID `json:"templateUuid"` + TemplateType TemplateRefTemplateType `json:"templateType"` +} + +// GetTemplateUuid returns the value of TemplateUuid. +func (s *TemplateRef) GetTemplateUuid() uuid.UUID { + return s.TemplateUuid +} + +// GetTemplateType returns the value of TemplateType. +func (s *TemplateRef) GetTemplateType() TemplateRefTemplateType { + return s.TemplateType +} + +// SetTemplateUuid sets the value of TemplateUuid. +func (s *TemplateRef) SetTemplateUuid(val uuid.UUID) { + s.TemplateUuid = val +} + +// SetTemplateType sets the value of TemplateType. +func (s *TemplateRef) SetTemplateType(val TemplateRefTemplateType) { + s.TemplateType = val +} + +type TemplateRefTemplateType string + +const ( + TemplateRefTemplateTypeXRAYJSON TemplateRefTemplateType = "XRAY_JSON" + TemplateRefTemplateTypeXRAYBASE64 TemplateRefTemplateType = "XRAY_BASE64" + TemplateRefTemplateTypeMIHOMO TemplateRefTemplateType = "MIHOMO" + TemplateRefTemplateTypeSTASH TemplateRefTemplateType = "STASH" + TemplateRefTemplateTypeCLASH TemplateRefTemplateType = "CLASH" + TemplateRefTemplateTypeSINGBOX TemplateRefTemplateType = "SINGBOX" +) + +// AllValues returns all TemplateRefTemplateType values. +func (TemplateRefTemplateType) AllValues() []TemplateRefTemplateType { + return []TemplateRefTemplateType{ + TemplateRefTemplateTypeXRAYJSON, + TemplateRefTemplateTypeXRAYBASE64, + TemplateRefTemplateTypeMIHOMO, + TemplateRefTemplateTypeSTASH, + TemplateRefTemplateTypeCLASH, + TemplateRefTemplateTypeSINGBOX, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s TemplateRefTemplateType) MarshalText() ([]byte, error) { + switch s { + case TemplateRefTemplateTypeXRAYJSON: + return []byte(s), nil + case TemplateRefTemplateTypeXRAYBASE64: + return []byte(s), nil + case TemplateRefTemplateTypeMIHOMO: + return []byte(s), nil + case TemplateRefTemplateTypeSTASH: + return []byte(s), nil + case TemplateRefTemplateTypeCLASH: + return []byte(s), nil + case TemplateRefTemplateTypeSINGBOX: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *TemplateRefTemplateType) UnmarshalText(data []byte) error { + switch TemplateRefTemplateType(data) { + case TemplateRefTemplateTypeXRAYJSON: + *s = TemplateRefTemplateTypeXRAYJSON + return nil + case TemplateRefTemplateTypeXRAYBASE64: + *s = TemplateRefTemplateTypeXRAYBASE64 + return nil + case TemplateRefTemplateTypeMIHOMO: + *s = TemplateRefTemplateTypeMIHOMO + return nil + case TemplateRefTemplateTypeSTASH: + *s = TemplateRefTemplateTypeSTASH + return nil + case TemplateRefTemplateTypeCLASH: + *s = TemplateRefTemplateTypeCLASH + return nil + case TemplateRefTemplateTypeSINGBOX: + *s = TemplateRefTemplateTypeSINGBOX + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/TemplateResponse +type TemplateResponse struct { + Response Template `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *TemplateResponse) GetResponse() Template { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *TemplateResponse) SetResponse(val Template) { + s.Response = val +} + +func (*TemplateResponse) subscriptionTemplateCreateTemplateRes() {} +func (*TemplateResponse) subscriptionTemplateGetTemplateByUuidRes() {} +func (*TemplateResponse) subscriptionTemplateUpdateTemplateRes() {} + +type TemplateTemplateType string + +const ( + TemplateTemplateTypeXRAYJSON TemplateTemplateType = "XRAY_JSON" + TemplateTemplateTypeXRAYBASE64 TemplateTemplateType = "XRAY_BASE64" + TemplateTemplateTypeMIHOMO TemplateTemplateType = "MIHOMO" + TemplateTemplateTypeSTASH TemplateTemplateType = "STASH" + TemplateTemplateTypeCLASH TemplateTemplateType = "CLASH" + TemplateTemplateTypeSINGBOX TemplateTemplateType = "SINGBOX" +) + +// AllValues returns all TemplateTemplateType values. +func (TemplateTemplateType) AllValues() []TemplateTemplateType { + return []TemplateTemplateType{ + TemplateTemplateTypeXRAYJSON, + TemplateTemplateTypeXRAYBASE64, + TemplateTemplateTypeMIHOMO, + TemplateTemplateTypeSTASH, + TemplateTemplateTypeCLASH, + TemplateTemplateTypeSINGBOX, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s TemplateTemplateType) MarshalText() ([]byte, error) { + switch s { + case TemplateTemplateTypeXRAYJSON: + return []byte(s), nil + case TemplateTemplateTypeXRAYBASE64: + return []byte(s), nil + case TemplateTemplateTypeMIHOMO: + return []byte(s), nil + case TemplateTemplateTypeSTASH: + return []byte(s), nil + case TemplateTemplateTypeCLASH: + return []byte(s), nil + case TemplateTemplateTypeSINGBOX: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *TemplateTemplateType) UnmarshalText(data []byte) error { + switch TemplateTemplateType(data) { + case TemplateTemplateTypeXRAYJSON: + *s = TemplateTemplateTypeXRAYJSON + return nil + case TemplateTemplateTypeXRAYBASE64: + *s = TemplateTemplateTypeXRAYBASE64 + return nil + case TemplateTemplateTypeMIHOMO: + *s = TemplateTemplateTypeMIHOMO + return nil + case TemplateTemplateTypeSTASH: + *s = TemplateTemplateTypeSTASH + return nil + case TemplateTemplateTypeCLASH: + *s = TemplateTemplateTypeCLASH + return nil + case TemplateTemplateTypeSINGBOX: + *s = TemplateTemplateTypeSINGBOX + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/TemplatesResponse +type TemplatesResponse struct { + Response TemplatesResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *TemplatesResponse) GetResponse() TemplatesResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *TemplatesResponse) SetResponse(val TemplatesResponseResponse) { + s.Response = val +} + +func (*TemplatesResponse) subscriptionTemplateGetAllTemplatesRes() {} +func (*TemplatesResponse) subscriptionTemplateReorderSubscriptionTemplatesRes() {} + +type TemplatesResponseResponse struct { + Total float64 `json:"total"` + Templates []Template `json:"templates"` +} + +// GetTotal returns the value of Total. +func (s *TemplatesResponseResponse) GetTotal() float64 { + return s.Total +} + +// GetTemplates returns the value of Templates. +func (s *TemplatesResponseResponse) GetTemplates() []Template { + return s.Templates +} + +// SetTotal sets the value of Total. +func (s *TemplatesResponseResponse) SetTotal(val float64) { + s.Total = val +} + +// SetTemplates sets the value of Templates. +func (s *TemplatesResponseResponse) SetTemplates(val []Template) { + s.Templates = val +} + +// Ref: #/components/schemas/TokenResponse +type TokenResponse struct { + Response TokenResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *TokenResponse) GetResponse() TokenResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *TokenResponse) SetResponse(val TokenResponseResponse) { + s.Response = val +} + +type TokenResponseResponse struct { + AccessToken string `json:"accessToken"` +} + +// GetAccessToken returns the value of AccessToken. +func (s *TokenResponseResponse) GetAccessToken() string { + return s.AccessToken +} + +// SetAccessToken sets the value of AccessToken. +func (s *TokenResponseResponse) SetAccessToken(val string) { + s.AccessToken = val +} + +// TokenResponseStatusCode wraps TokenResponse with StatusCode. +type TokenResponseStatusCode struct { + StatusCode int + Response TokenResponse +} + +// GetStatusCode returns the value of StatusCode. +func (s *TokenResponseStatusCode) GetStatusCode() int { + return s.StatusCode +} + +// GetResponse returns the value of Response. +func (s *TokenResponseStatusCode) GetResponse() TokenResponse { + return s.Response +} + +// SetStatusCode sets the value of StatusCode. +func (s *TokenResponseStatusCode) SetStatusCode(val int) { + s.StatusCode = val +} + +// SetResponse sets the value of Response. +func (s *TokenResponseStatusCode) SetResponse(val TokenResponse) { + s.Response = val +} + +func (*TokenResponseStatusCode) authLoginRes() {} +func (*TokenResponseStatusCode) authOauth2CallbackRes() {} +func (*TokenResponseStatusCode) authPasskeyAuthenticationVerifyRes() {} +func (*TokenResponseStatusCode) authRegisterRes() {} + +// Ref: #/components/schemas/TopNode +type TopNode struct { + UUID uuid.UUID `json:"uuid"` + CountryCode string `json:"countryCode"` + Color string `json:"color"` + Name string `json:"name"` + Total float64 `json:"total"` +} + +// GetUUID returns the value of UUID. +func (s *TopNode) GetUUID() uuid.UUID { + return s.UUID +} + +// GetCountryCode returns the value of CountryCode. +func (s *TopNode) GetCountryCode() string { + return s.CountryCode +} + +// GetColor returns the value of Color. +func (s *TopNode) GetColor() string { + return s.Color +} + +// GetName returns the value of Name. +func (s *TopNode) GetName() string { + return s.Name +} + +// GetTotal returns the value of Total. +func (s *TopNode) GetTotal() float64 { + return s.Total +} + +// SetUUID sets the value of UUID. +func (s *TopNode) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetCountryCode sets the value of CountryCode. +func (s *TopNode) SetCountryCode(val string) { + s.CountryCode = val +} + +// SetColor sets the value of Color. +func (s *TopNode) SetColor(val string) { + s.Color = val +} + +// SetName sets the value of Name. +func (s *TopNode) SetName(val string) { + s.Name = val +} + +// SetTotal sets the value of Total. +func (s *TopNode) SetTotal(val float64) { + s.Total = val +} + +// Ref: #/components/schemas/TorrentBlockerReportsResponseResponse +type TorrentBlockerReportsResponseResponse struct { + Response TorrentBlockerReportsResponseResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *TorrentBlockerReportsResponseResponse) GetResponse() TorrentBlockerReportsResponseResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *TorrentBlockerReportsResponseResponse) SetResponse(val TorrentBlockerReportsResponseResponseResponse) { + s.Response = val +} + +func (*TorrentBlockerReportsResponseResponse) torrentBlockerReportsGetTorrentBlockerReportsRes() {} +func (*TorrentBlockerReportsResponseResponse) torrentBlockerReportsTruncateTorrentBlockerReportsRes() { +} + +type TorrentBlockerReportsResponseResponseResponse struct { + Records []TorrentBlockerReportsResponseResponseResponseRecordsItem `json:"records"` + Total float64 `json:"total"` +} + +// GetRecords returns the value of Records. +func (s *TorrentBlockerReportsResponseResponseResponse) GetRecords() []TorrentBlockerReportsResponseResponseResponseRecordsItem { + return s.Records +} + +// GetTotal returns the value of Total. +func (s *TorrentBlockerReportsResponseResponseResponse) GetTotal() float64 { + return s.Total +} + +// SetRecords sets the value of Records. +func (s *TorrentBlockerReportsResponseResponseResponse) SetRecords(val []TorrentBlockerReportsResponseResponseResponseRecordsItem) { + s.Records = val +} + +// SetTotal sets the value of Total. +func (s *TorrentBlockerReportsResponseResponseResponse) SetTotal(val float64) { + s.Total = val +} + +type TorrentBlockerReportsResponseResponseResponseRecordsItem struct { + ID float64 `json:"id"` + UserId float64 `json:"userId"` + NodeId float64 `json:"nodeId"` + User TorrentBlockerReportsResponseResponseResponseRecordsItemUser `json:"user"` + Node Node `json:"node"` + Report ReportItem `json:"report"` + CreatedAt time.Time `json:"createdAt"` +} + +// GetID returns the value of ID. +func (s *TorrentBlockerReportsResponseResponseResponseRecordsItem) GetID() float64 { + return s.ID +} + +// GetUserId returns the value of UserId. +func (s *TorrentBlockerReportsResponseResponseResponseRecordsItem) GetUserId() float64 { + return s.UserId +} + +// GetNodeId returns the value of NodeId. +func (s *TorrentBlockerReportsResponseResponseResponseRecordsItem) GetNodeId() float64 { + return s.NodeId +} + +// GetUser returns the value of User. +func (s *TorrentBlockerReportsResponseResponseResponseRecordsItem) GetUser() TorrentBlockerReportsResponseResponseResponseRecordsItemUser { + return s.User +} + +// GetNode returns the value of Node. +func (s *TorrentBlockerReportsResponseResponseResponseRecordsItem) GetNode() Node { + return s.Node +} + +// GetReport returns the value of Report. +func (s *TorrentBlockerReportsResponseResponseResponseRecordsItem) GetReport() ReportItem { + return s.Report +} + +// GetCreatedAt returns the value of CreatedAt. +func (s *TorrentBlockerReportsResponseResponseResponseRecordsItem) GetCreatedAt() time.Time { + return s.CreatedAt +} + +// SetID sets the value of ID. +func (s *TorrentBlockerReportsResponseResponseResponseRecordsItem) SetID(val float64) { + s.ID = val +} + +// SetUserId sets the value of UserId. +func (s *TorrentBlockerReportsResponseResponseResponseRecordsItem) SetUserId(val float64) { + s.UserId = val +} + +// SetNodeId sets the value of NodeId. +func (s *TorrentBlockerReportsResponseResponseResponseRecordsItem) SetNodeId(val float64) { + s.NodeId = val +} + +// SetUser sets the value of User. +func (s *TorrentBlockerReportsResponseResponseResponseRecordsItem) SetUser(val TorrentBlockerReportsResponseResponseResponseRecordsItemUser) { + s.User = val +} + +// SetNode sets the value of Node. +func (s *TorrentBlockerReportsResponseResponseResponseRecordsItem) SetNode(val Node) { + s.Node = val +} + +// SetReport sets the value of Report. +func (s *TorrentBlockerReportsResponseResponseResponseRecordsItem) SetReport(val ReportItem) { + s.Report = val +} + +// SetCreatedAt sets the value of CreatedAt. +func (s *TorrentBlockerReportsResponseResponseResponseRecordsItem) SetCreatedAt(val time.Time) { + s.CreatedAt = val +} + +type TorrentBlockerReportsResponseResponseResponseRecordsItemUser struct { + UUID uuid.UUID `json:"uuid"` + Username string `json:"username"` +} + +// GetUUID returns the value of UUID. +func (s *TorrentBlockerReportsResponseResponseResponseRecordsItemUser) GetUUID() uuid.UUID { + return s.UUID +} + +// GetUsername returns the value of Username. +func (s *TorrentBlockerReportsResponseResponseResponseRecordsItemUser) GetUsername() string { + return s.Username +} + +// SetUUID sets the value of UUID. +func (s *TorrentBlockerReportsResponseResponseResponseRecordsItemUser) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetUsername sets the value of Username. +func (s *TorrentBlockerReportsResponseResponseResponseRecordsItemUser) SetUsername(val string) { + s.Username = val +} + +// Ref: #/components/schemas/UnauthorizedError +type UnauthorizedError struct { + Message string `json:"message"` + StatusCode float64 `json:"statusCode"` +} + +// GetMessage returns the value of Message. +func (s *UnauthorizedError) GetMessage() string { + return s.Message +} + +// GetStatusCode returns the value of StatusCode. +func (s *UnauthorizedError) GetStatusCode() float64 { + return s.StatusCode +} + +// SetMessage sets the value of Message. +func (s *UnauthorizedError) SetMessage(val string) { + s.Message = val +} + +// SetStatusCode sets the value of StatusCode. +func (s *UnauthorizedError) SetStatusCode(val float64) { + s.StatusCode = val +} + +func (*UnauthorizedError) authLoginRes() {} + +// Ref: #/components/schemas/UpdateConfigProfileRequest +type UpdateConfigProfileRequest struct { + UUID uuid.UUID `json:"uuid"` + Name OptString `json:"name"` + Config *UpdateConfigProfileRequestConfig `json:"config"` +} + +// GetUUID returns the value of UUID. +func (s *UpdateConfigProfileRequest) GetUUID() uuid.UUID { + return s.UUID +} + +// GetName returns the value of Name. +func (s *UpdateConfigProfileRequest) GetName() OptString { + return s.Name +} + +// GetConfig returns the value of Config. +func (s *UpdateConfigProfileRequest) GetConfig() *UpdateConfigProfileRequestConfig { + return s.Config +} + +// SetUUID sets the value of UUID. +func (s *UpdateConfigProfileRequest) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetName sets the value of Name. +func (s *UpdateConfigProfileRequest) SetName(val OptString) { + s.Name = val +} + +// SetConfig sets the value of Config. +func (s *UpdateConfigProfileRequest) SetConfig(val *UpdateConfigProfileRequestConfig) { + s.Config = val +} + +type UpdateConfigProfileRequestConfig struct{} + +// Ref: #/components/schemas/UpdateExternalSquadRequest +type UpdateExternalSquadRequest struct { + UUID uuid.UUID `json:"uuid"` + Name OptString `json:"name"` + Templates []TemplateRef `json:"templates"` + SubscriptionSettings OptNilSubscriptionSettings `json:"subscriptionSettings"` + HostOverrides OptNilHostOverride `json:"hostOverrides"` + ResponseHeaders OptNilUpdateExternalSquadRequestResponseHeaders `json:"responseHeaders"` + HwidSettings OptNilHwidSettings `json:"hwidSettings"` + CustomRemarks OptNilCustomRemark `json:"customRemarks"` + SubpageConfigUuid OptNilUUID `json:"subpageConfigUuid"` +} + +// GetUUID returns the value of UUID. +func (s *UpdateExternalSquadRequest) GetUUID() uuid.UUID { + return s.UUID +} + +// GetName returns the value of Name. +func (s *UpdateExternalSquadRequest) GetName() OptString { + return s.Name +} + +// GetTemplates returns the value of Templates. +func (s *UpdateExternalSquadRequest) GetTemplates() []TemplateRef { + return s.Templates +} + +// GetSubscriptionSettings returns the value of SubscriptionSettings. +func (s *UpdateExternalSquadRequest) GetSubscriptionSettings() OptNilSubscriptionSettings { + return s.SubscriptionSettings +} + +// GetHostOverrides returns the value of HostOverrides. +func (s *UpdateExternalSquadRequest) GetHostOverrides() OptNilHostOverride { + return s.HostOverrides +} + +// GetResponseHeaders returns the value of ResponseHeaders. +func (s *UpdateExternalSquadRequest) GetResponseHeaders() OptNilUpdateExternalSquadRequestResponseHeaders { + return s.ResponseHeaders +} + +// GetHwidSettings returns the value of HwidSettings. +func (s *UpdateExternalSquadRequest) GetHwidSettings() OptNilHwidSettings { + return s.HwidSettings +} + +// GetCustomRemarks returns the value of CustomRemarks. +func (s *UpdateExternalSquadRequest) GetCustomRemarks() OptNilCustomRemark { + return s.CustomRemarks +} + +// GetSubpageConfigUuid returns the value of SubpageConfigUuid. +func (s *UpdateExternalSquadRequest) GetSubpageConfigUuid() OptNilUUID { + return s.SubpageConfigUuid +} + +// SetUUID sets the value of UUID. +func (s *UpdateExternalSquadRequest) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetName sets the value of Name. +func (s *UpdateExternalSquadRequest) SetName(val OptString) { + s.Name = val +} + +// SetTemplates sets the value of Templates. +func (s *UpdateExternalSquadRequest) SetTemplates(val []TemplateRef) { + s.Templates = val +} + +// SetSubscriptionSettings sets the value of SubscriptionSettings. +func (s *UpdateExternalSquadRequest) SetSubscriptionSettings(val OptNilSubscriptionSettings) { + s.SubscriptionSettings = val +} + +// SetHostOverrides sets the value of HostOverrides. +func (s *UpdateExternalSquadRequest) SetHostOverrides(val OptNilHostOverride) { + s.HostOverrides = val +} + +// SetResponseHeaders sets the value of ResponseHeaders. +func (s *UpdateExternalSquadRequest) SetResponseHeaders(val OptNilUpdateExternalSquadRequestResponseHeaders) { + s.ResponseHeaders = val +} + +// SetHwidSettings sets the value of HwidSettings. +func (s *UpdateExternalSquadRequest) SetHwidSettings(val OptNilHwidSettings) { + s.HwidSettings = val +} + +// SetCustomRemarks sets the value of CustomRemarks. +func (s *UpdateExternalSquadRequest) SetCustomRemarks(val OptNilCustomRemark) { + s.CustomRemarks = val +} + +// SetSubpageConfigUuid sets the value of SubpageConfigUuid. +func (s *UpdateExternalSquadRequest) SetSubpageConfigUuid(val OptNilUUID) { + s.SubpageConfigUuid = val +} + +type UpdateExternalSquadRequestResponseHeaders map[string]string + +func (s *UpdateExternalSquadRequestResponseHeaders) init() UpdateExternalSquadRequestResponseHeaders { + m := *s + if m == nil { + m = map[string]string{} + *s = m + } + return m +} + +// Ref: #/components/schemas/UpdateHostRequest +type UpdateHostRequest struct { + UUID uuid.UUID `json:"uuid"` + Inbound OptInboundRef `json:"inbound"` + Remark OptString `json:"remark"` + Address OptString `json:"address"` + Port OptInt `json:"port"` + Path OptString `json:"path"` + Sni OptString `json:"sni"` + Host OptString `json:"host"` + Alpn OptNilUpdateHostRequestAlpn `json:"alpn"` + Fingerprint OptNilUpdateHostRequestFingerprint `json:"fingerprint"` + IsDisabled OptBool `json:"isDisabled"` + SecurityLayer OptUpdateHostRequestSecurityLayer `json:"securityLayer"` + XHttpExtraParams jx.Raw `json:"xHttpExtraParams"` + MuxParams jx.Raw `json:"muxParams"` + SockoptParams jx.Raw `json:"sockoptParams"` + FinalMask jx.Raw `json:"finalMask"` + ServerDescription OptNilString `json:"serverDescription"` + // Optional. Host tag for categorization. Max 32 characters, uppercase letters, numbers, underscores + // and colons are allowed. + Tag OptNilString `json:"tag"` + IsHidden OptBool `json:"isHidden"` + OverrideSniFromAddress OptBool `json:"overrideSniFromAddress"` + KeepSniBlank OptBool `json:"keepSniBlank"` + VlessRouteId OptNilInt `json:"vlessRouteId"` + AllowInsecure OptBool `json:"allowInsecure"` + ShuffleHost OptBool `json:"shuffleHost"` + MihomoX25519 OptBool `json:"mihomoX25519"` + Nodes []uuid.UUID `json:"nodes"` + XrayJsonTemplateUuid OptNilUUID `json:"xrayJsonTemplateUuid"` + // Optional. Internal squads from which the host will be excluded. + ExcludedInternalSquads []uuid.UUID `json:"excludedInternalSquads"` + // Optional. Subscription types from which the host will be excluded from. + ExcludeFromSubscriptionTypes []UpdateHostRequestExcludeFromSubscriptionTypesItem `json:"excludeFromSubscriptionTypes"` +} + +// GetUUID returns the value of UUID. +func (s *UpdateHostRequest) GetUUID() uuid.UUID { + return s.UUID +} + +// GetInbound returns the value of Inbound. +func (s *UpdateHostRequest) GetInbound() OptInboundRef { + return s.Inbound +} + +// GetRemark returns the value of Remark. +func (s *UpdateHostRequest) GetRemark() OptString { + return s.Remark +} + +// GetAddress returns the value of Address. +func (s *UpdateHostRequest) GetAddress() OptString { + return s.Address +} + +// GetPort returns the value of Port. +func (s *UpdateHostRequest) GetPort() OptInt { + return s.Port +} + +// GetPath returns the value of Path. +func (s *UpdateHostRequest) GetPath() OptString { + return s.Path +} + +// GetSni returns the value of Sni. +func (s *UpdateHostRequest) GetSni() OptString { + return s.Sni +} + +// GetHost returns the value of Host. +func (s *UpdateHostRequest) GetHost() OptString { + return s.Host +} + +// GetAlpn returns the value of Alpn. +func (s *UpdateHostRequest) GetAlpn() OptNilUpdateHostRequestAlpn { + return s.Alpn +} + +// GetFingerprint returns the value of Fingerprint. +func (s *UpdateHostRequest) GetFingerprint() OptNilUpdateHostRequestFingerprint { + return s.Fingerprint +} + +// GetIsDisabled returns the value of IsDisabled. +func (s *UpdateHostRequest) GetIsDisabled() OptBool { + return s.IsDisabled +} + +// GetSecurityLayer returns the value of SecurityLayer. +func (s *UpdateHostRequest) GetSecurityLayer() OptUpdateHostRequestSecurityLayer { + return s.SecurityLayer +} + +// GetXHttpExtraParams returns the value of XHttpExtraParams. +func (s *UpdateHostRequest) GetXHttpExtraParams() jx.Raw { + return s.XHttpExtraParams +} + +// GetMuxParams returns the value of MuxParams. +func (s *UpdateHostRequest) GetMuxParams() jx.Raw { + return s.MuxParams +} + +// GetSockoptParams returns the value of SockoptParams. +func (s *UpdateHostRequest) GetSockoptParams() jx.Raw { + return s.SockoptParams +} + +// GetFinalMask returns the value of FinalMask. +func (s *UpdateHostRequest) GetFinalMask() jx.Raw { + return s.FinalMask +} + +// GetServerDescription returns the value of ServerDescription. +func (s *UpdateHostRequest) GetServerDescription() OptNilString { + return s.ServerDescription +} + +// GetTag returns the value of Tag. +func (s *UpdateHostRequest) GetTag() OptNilString { + return s.Tag +} + +// GetIsHidden returns the value of IsHidden. +func (s *UpdateHostRequest) GetIsHidden() OptBool { + return s.IsHidden +} + +// GetOverrideSniFromAddress returns the value of OverrideSniFromAddress. +func (s *UpdateHostRequest) GetOverrideSniFromAddress() OptBool { + return s.OverrideSniFromAddress +} + +// GetKeepSniBlank returns the value of KeepSniBlank. +func (s *UpdateHostRequest) GetKeepSniBlank() OptBool { + return s.KeepSniBlank +} + +// GetVlessRouteId returns the value of VlessRouteId. +func (s *UpdateHostRequest) GetVlessRouteId() OptNilInt { + return s.VlessRouteId +} + +// GetAllowInsecure returns the value of AllowInsecure. +func (s *UpdateHostRequest) GetAllowInsecure() OptBool { + return s.AllowInsecure +} + +// GetShuffleHost returns the value of ShuffleHost. +func (s *UpdateHostRequest) GetShuffleHost() OptBool { + return s.ShuffleHost +} + +// GetMihomoX25519 returns the value of MihomoX25519. +func (s *UpdateHostRequest) GetMihomoX25519() OptBool { + return s.MihomoX25519 +} + +// GetNodes returns the value of Nodes. +func (s *UpdateHostRequest) GetNodes() []uuid.UUID { + return s.Nodes +} + +// GetXrayJsonTemplateUuid returns the value of XrayJsonTemplateUuid. +func (s *UpdateHostRequest) GetXrayJsonTemplateUuid() OptNilUUID { + return s.XrayJsonTemplateUuid +} + +// GetExcludedInternalSquads returns the value of ExcludedInternalSquads. +func (s *UpdateHostRequest) GetExcludedInternalSquads() []uuid.UUID { + return s.ExcludedInternalSquads +} + +// GetExcludeFromSubscriptionTypes returns the value of ExcludeFromSubscriptionTypes. +func (s *UpdateHostRequest) GetExcludeFromSubscriptionTypes() []UpdateHostRequestExcludeFromSubscriptionTypesItem { + return s.ExcludeFromSubscriptionTypes +} + +// SetUUID sets the value of UUID. +func (s *UpdateHostRequest) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetInbound sets the value of Inbound. +func (s *UpdateHostRequest) SetInbound(val OptInboundRef) { + s.Inbound = val +} + +// SetRemark sets the value of Remark. +func (s *UpdateHostRequest) SetRemark(val OptString) { + s.Remark = val +} + +// SetAddress sets the value of Address. +func (s *UpdateHostRequest) SetAddress(val OptString) { + s.Address = val +} + +// SetPort sets the value of Port. +func (s *UpdateHostRequest) SetPort(val OptInt) { + s.Port = val +} + +// SetPath sets the value of Path. +func (s *UpdateHostRequest) SetPath(val OptString) { + s.Path = val +} + +// SetSni sets the value of Sni. +func (s *UpdateHostRequest) SetSni(val OptString) { + s.Sni = val +} + +// SetHost sets the value of Host. +func (s *UpdateHostRequest) SetHost(val OptString) { + s.Host = val +} + +// SetAlpn sets the value of Alpn. +func (s *UpdateHostRequest) SetAlpn(val OptNilUpdateHostRequestAlpn) { + s.Alpn = val +} + +// SetFingerprint sets the value of Fingerprint. +func (s *UpdateHostRequest) SetFingerprint(val OptNilUpdateHostRequestFingerprint) { + s.Fingerprint = val +} + +// SetIsDisabled sets the value of IsDisabled. +func (s *UpdateHostRequest) SetIsDisabled(val OptBool) { + s.IsDisabled = val +} + +// SetSecurityLayer sets the value of SecurityLayer. +func (s *UpdateHostRequest) SetSecurityLayer(val OptUpdateHostRequestSecurityLayer) { + s.SecurityLayer = val +} + +// SetXHttpExtraParams sets the value of XHttpExtraParams. +func (s *UpdateHostRequest) SetXHttpExtraParams(val jx.Raw) { + s.XHttpExtraParams = val +} + +// SetMuxParams sets the value of MuxParams. +func (s *UpdateHostRequest) SetMuxParams(val jx.Raw) { + s.MuxParams = val +} + +// SetSockoptParams sets the value of SockoptParams. +func (s *UpdateHostRequest) SetSockoptParams(val jx.Raw) { + s.SockoptParams = val +} + +// SetFinalMask sets the value of FinalMask. +func (s *UpdateHostRequest) SetFinalMask(val jx.Raw) { + s.FinalMask = val +} + +// SetServerDescription sets the value of ServerDescription. +func (s *UpdateHostRequest) SetServerDescription(val OptNilString) { + s.ServerDescription = val +} + +// SetTag sets the value of Tag. +func (s *UpdateHostRequest) SetTag(val OptNilString) { + s.Tag = val +} + +// SetIsHidden sets the value of IsHidden. +func (s *UpdateHostRequest) SetIsHidden(val OptBool) { + s.IsHidden = val +} + +// SetOverrideSniFromAddress sets the value of OverrideSniFromAddress. +func (s *UpdateHostRequest) SetOverrideSniFromAddress(val OptBool) { + s.OverrideSniFromAddress = val +} + +// SetKeepSniBlank sets the value of KeepSniBlank. +func (s *UpdateHostRequest) SetKeepSniBlank(val OptBool) { + s.KeepSniBlank = val +} + +// SetVlessRouteId sets the value of VlessRouteId. +func (s *UpdateHostRequest) SetVlessRouteId(val OptNilInt) { + s.VlessRouteId = val +} + +// SetAllowInsecure sets the value of AllowInsecure. +func (s *UpdateHostRequest) SetAllowInsecure(val OptBool) { + s.AllowInsecure = val +} + +// SetShuffleHost sets the value of ShuffleHost. +func (s *UpdateHostRequest) SetShuffleHost(val OptBool) { + s.ShuffleHost = val +} + +// SetMihomoX25519 sets the value of MihomoX25519. +func (s *UpdateHostRequest) SetMihomoX25519(val OptBool) { + s.MihomoX25519 = val +} + +// SetNodes sets the value of Nodes. +func (s *UpdateHostRequest) SetNodes(val []uuid.UUID) { + s.Nodes = val +} + +// SetXrayJsonTemplateUuid sets the value of XrayJsonTemplateUuid. +func (s *UpdateHostRequest) SetXrayJsonTemplateUuid(val OptNilUUID) { + s.XrayJsonTemplateUuid = val +} + +// SetExcludedInternalSquads sets the value of ExcludedInternalSquads. +func (s *UpdateHostRequest) SetExcludedInternalSquads(val []uuid.UUID) { + s.ExcludedInternalSquads = val +} + +// SetExcludeFromSubscriptionTypes sets the value of ExcludeFromSubscriptionTypes. +func (s *UpdateHostRequest) SetExcludeFromSubscriptionTypes(val []UpdateHostRequestExcludeFromSubscriptionTypesItem) { + s.ExcludeFromSubscriptionTypes = val +} + +type UpdateHostRequestAlpn string + +const ( + UpdateHostRequestAlpnH3 UpdateHostRequestAlpn = "h3" + UpdateHostRequestAlpnH2 UpdateHostRequestAlpn = "h2" + UpdateHostRequestAlpnHTTP11 UpdateHostRequestAlpn = "http/1.1" + UpdateHostRequestAlpnH2HTTP11 UpdateHostRequestAlpn = "h2,http/1.1" + UpdateHostRequestAlpnH3H2HTTP11 UpdateHostRequestAlpn = "h3,h2,http/1.1" + UpdateHostRequestAlpnH3H2 UpdateHostRequestAlpn = "h3,h2" +) + +// AllValues returns all UpdateHostRequestAlpn values. +func (UpdateHostRequestAlpn) AllValues() []UpdateHostRequestAlpn { + return []UpdateHostRequestAlpn{ + UpdateHostRequestAlpnH3, + UpdateHostRequestAlpnH2, + UpdateHostRequestAlpnHTTP11, + UpdateHostRequestAlpnH2HTTP11, + UpdateHostRequestAlpnH3H2HTTP11, + UpdateHostRequestAlpnH3H2, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s UpdateHostRequestAlpn) MarshalText() ([]byte, error) { + switch s { + case UpdateHostRequestAlpnH3: + return []byte(s), nil + case UpdateHostRequestAlpnH2: + return []byte(s), nil + case UpdateHostRequestAlpnHTTP11: + return []byte(s), nil + case UpdateHostRequestAlpnH2HTTP11: + return []byte(s), nil + case UpdateHostRequestAlpnH3H2HTTP11: + return []byte(s), nil + case UpdateHostRequestAlpnH3H2: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *UpdateHostRequestAlpn) UnmarshalText(data []byte) error { + switch UpdateHostRequestAlpn(data) { + case UpdateHostRequestAlpnH3: + *s = UpdateHostRequestAlpnH3 + return nil + case UpdateHostRequestAlpnH2: + *s = UpdateHostRequestAlpnH2 + return nil + case UpdateHostRequestAlpnHTTP11: + *s = UpdateHostRequestAlpnHTTP11 + return nil + case UpdateHostRequestAlpnH2HTTP11: + *s = UpdateHostRequestAlpnH2HTTP11 + return nil + case UpdateHostRequestAlpnH3H2HTTP11: + *s = UpdateHostRequestAlpnH3H2HTTP11 + return nil + case UpdateHostRequestAlpnH3H2: + *s = UpdateHostRequestAlpnH3H2 + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +type UpdateHostRequestExcludeFromSubscriptionTypesItem string + +const ( + UpdateHostRequestExcludeFromSubscriptionTypesItemXRAYJSON UpdateHostRequestExcludeFromSubscriptionTypesItem = "XRAY_JSON" + UpdateHostRequestExcludeFromSubscriptionTypesItemXRAYBASE64 UpdateHostRequestExcludeFromSubscriptionTypesItem = "XRAY_BASE64" + UpdateHostRequestExcludeFromSubscriptionTypesItemMIHOMO UpdateHostRequestExcludeFromSubscriptionTypesItem = "MIHOMO" + UpdateHostRequestExcludeFromSubscriptionTypesItemSTASH UpdateHostRequestExcludeFromSubscriptionTypesItem = "STASH" + UpdateHostRequestExcludeFromSubscriptionTypesItemCLASH UpdateHostRequestExcludeFromSubscriptionTypesItem = "CLASH" + UpdateHostRequestExcludeFromSubscriptionTypesItemSINGBOX UpdateHostRequestExcludeFromSubscriptionTypesItem = "SINGBOX" +) + +// AllValues returns all UpdateHostRequestExcludeFromSubscriptionTypesItem values. +func (UpdateHostRequestExcludeFromSubscriptionTypesItem) AllValues() []UpdateHostRequestExcludeFromSubscriptionTypesItem { + return []UpdateHostRequestExcludeFromSubscriptionTypesItem{ + UpdateHostRequestExcludeFromSubscriptionTypesItemXRAYJSON, + UpdateHostRequestExcludeFromSubscriptionTypesItemXRAYBASE64, + UpdateHostRequestExcludeFromSubscriptionTypesItemMIHOMO, + UpdateHostRequestExcludeFromSubscriptionTypesItemSTASH, + UpdateHostRequestExcludeFromSubscriptionTypesItemCLASH, + UpdateHostRequestExcludeFromSubscriptionTypesItemSINGBOX, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s UpdateHostRequestExcludeFromSubscriptionTypesItem) MarshalText() ([]byte, error) { + switch s { + case UpdateHostRequestExcludeFromSubscriptionTypesItemXRAYJSON: + return []byte(s), nil + case UpdateHostRequestExcludeFromSubscriptionTypesItemXRAYBASE64: + return []byte(s), nil + case UpdateHostRequestExcludeFromSubscriptionTypesItemMIHOMO: + return []byte(s), nil + case UpdateHostRequestExcludeFromSubscriptionTypesItemSTASH: + return []byte(s), nil + case UpdateHostRequestExcludeFromSubscriptionTypesItemCLASH: + return []byte(s), nil + case UpdateHostRequestExcludeFromSubscriptionTypesItemSINGBOX: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *UpdateHostRequestExcludeFromSubscriptionTypesItem) UnmarshalText(data []byte) error { + switch UpdateHostRequestExcludeFromSubscriptionTypesItem(data) { + case UpdateHostRequestExcludeFromSubscriptionTypesItemXRAYJSON: + *s = UpdateHostRequestExcludeFromSubscriptionTypesItemXRAYJSON + return nil + case UpdateHostRequestExcludeFromSubscriptionTypesItemXRAYBASE64: + *s = UpdateHostRequestExcludeFromSubscriptionTypesItemXRAYBASE64 + return nil + case UpdateHostRequestExcludeFromSubscriptionTypesItemMIHOMO: + *s = UpdateHostRequestExcludeFromSubscriptionTypesItemMIHOMO + return nil + case UpdateHostRequestExcludeFromSubscriptionTypesItemSTASH: + *s = UpdateHostRequestExcludeFromSubscriptionTypesItemSTASH + return nil + case UpdateHostRequestExcludeFromSubscriptionTypesItemCLASH: + *s = UpdateHostRequestExcludeFromSubscriptionTypesItemCLASH + return nil + case UpdateHostRequestExcludeFromSubscriptionTypesItemSINGBOX: + *s = UpdateHostRequestExcludeFromSubscriptionTypesItemSINGBOX + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +type UpdateHostRequestFingerprint string + +const ( + UpdateHostRequestFingerprintChrome UpdateHostRequestFingerprint = "chrome" + UpdateHostRequestFingerprintFirefox UpdateHostRequestFingerprint = "firefox" + UpdateHostRequestFingerprintSafari UpdateHostRequestFingerprint = "safari" + UpdateHostRequestFingerprintIos UpdateHostRequestFingerprint = "ios" + UpdateHostRequestFingerprintAndroid UpdateHostRequestFingerprint = "android" + UpdateHostRequestFingerprintEdge UpdateHostRequestFingerprint = "edge" + UpdateHostRequestFingerprintQq UpdateHostRequestFingerprint = "qq" + UpdateHostRequestFingerprintRandom UpdateHostRequestFingerprint = "random" + UpdateHostRequestFingerprintRandomized UpdateHostRequestFingerprint = "randomized" +) + +// AllValues returns all UpdateHostRequestFingerprint values. +func (UpdateHostRequestFingerprint) AllValues() []UpdateHostRequestFingerprint { + return []UpdateHostRequestFingerprint{ + UpdateHostRequestFingerprintChrome, + UpdateHostRequestFingerprintFirefox, + UpdateHostRequestFingerprintSafari, + UpdateHostRequestFingerprintIos, + UpdateHostRequestFingerprintAndroid, + UpdateHostRequestFingerprintEdge, + UpdateHostRequestFingerprintQq, + UpdateHostRequestFingerprintRandom, + UpdateHostRequestFingerprintRandomized, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s UpdateHostRequestFingerprint) MarshalText() ([]byte, error) { + switch s { + case UpdateHostRequestFingerprintChrome: + return []byte(s), nil + case UpdateHostRequestFingerprintFirefox: + return []byte(s), nil + case UpdateHostRequestFingerprintSafari: + return []byte(s), nil + case UpdateHostRequestFingerprintIos: + return []byte(s), nil + case UpdateHostRequestFingerprintAndroid: + return []byte(s), nil + case UpdateHostRequestFingerprintEdge: + return []byte(s), nil + case UpdateHostRequestFingerprintQq: + return []byte(s), nil + case UpdateHostRequestFingerprintRandom: + return []byte(s), nil + case UpdateHostRequestFingerprintRandomized: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *UpdateHostRequestFingerprint) UnmarshalText(data []byte) error { + switch UpdateHostRequestFingerprint(data) { + case UpdateHostRequestFingerprintChrome: + *s = UpdateHostRequestFingerprintChrome + return nil + case UpdateHostRequestFingerprintFirefox: + *s = UpdateHostRequestFingerprintFirefox + return nil + case UpdateHostRequestFingerprintSafari: + *s = UpdateHostRequestFingerprintSafari + return nil + case UpdateHostRequestFingerprintIos: + *s = UpdateHostRequestFingerprintIos + return nil + case UpdateHostRequestFingerprintAndroid: + *s = UpdateHostRequestFingerprintAndroid + return nil + case UpdateHostRequestFingerprintEdge: + *s = UpdateHostRequestFingerprintEdge + return nil + case UpdateHostRequestFingerprintQq: + *s = UpdateHostRequestFingerprintQq + return nil + case UpdateHostRequestFingerprintRandom: + *s = UpdateHostRequestFingerprintRandom + return nil + case UpdateHostRequestFingerprintRandomized: + *s = UpdateHostRequestFingerprintRandomized + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +type UpdateHostRequestSecurityLayer string + +const ( + UpdateHostRequestSecurityLayerDEFAULT UpdateHostRequestSecurityLayer = "DEFAULT" + UpdateHostRequestSecurityLayerTLS UpdateHostRequestSecurityLayer = "TLS" + UpdateHostRequestSecurityLayerNONE UpdateHostRequestSecurityLayer = "NONE" +) + +// AllValues returns all UpdateHostRequestSecurityLayer values. +func (UpdateHostRequestSecurityLayer) AllValues() []UpdateHostRequestSecurityLayer { + return []UpdateHostRequestSecurityLayer{ + UpdateHostRequestSecurityLayerDEFAULT, + UpdateHostRequestSecurityLayerTLS, + UpdateHostRequestSecurityLayerNONE, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s UpdateHostRequestSecurityLayer) MarshalText() ([]byte, error) { + switch s { + case UpdateHostRequestSecurityLayerDEFAULT: + return []byte(s), nil + case UpdateHostRequestSecurityLayerTLS: + return []byte(s), nil + case UpdateHostRequestSecurityLayerNONE: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *UpdateHostRequestSecurityLayer) UnmarshalText(data []byte) error { + switch UpdateHostRequestSecurityLayer(data) { + case UpdateHostRequestSecurityLayerDEFAULT: + *s = UpdateHostRequestSecurityLayerDEFAULT + return nil + case UpdateHostRequestSecurityLayerTLS: + *s = UpdateHostRequestSecurityLayerTLS + return nil + case UpdateHostRequestSecurityLayerNONE: + *s = UpdateHostRequestSecurityLayerNONE + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/UpdateInfraBillingNodeRequest +type UpdateInfraBillingNodeRequest struct { + Uuids []uuid.UUID `json:"uuids"` + NextBillingAt time.Time `json:"nextBillingAt"` +} + +// GetUuids returns the value of Uuids. +func (s *UpdateInfraBillingNodeRequest) GetUuids() []uuid.UUID { + return s.Uuids +} + +// GetNextBillingAt returns the value of NextBillingAt. +func (s *UpdateInfraBillingNodeRequest) GetNextBillingAt() time.Time { + return s.NextBillingAt +} + +// SetUuids sets the value of Uuids. +func (s *UpdateInfraBillingNodeRequest) SetUuids(val []uuid.UUID) { + s.Uuids = val +} + +// SetNextBillingAt sets the value of NextBillingAt. +func (s *UpdateInfraBillingNodeRequest) SetNextBillingAt(val time.Time) { + s.NextBillingAt = val +} + +// Ref: #/components/schemas/UpdateInfraProviderRequest +type UpdateInfraProviderRequest struct { + UUID uuid.UUID `json:"uuid"` + Name OptString `json:"name"` + FaviconLink OptNilURI `json:"faviconLink"` + LoginUrl OptNilURI `json:"loginUrl"` +} + +// GetUUID returns the value of UUID. +func (s *UpdateInfraProviderRequest) GetUUID() uuid.UUID { + return s.UUID +} + +// GetName returns the value of Name. +func (s *UpdateInfraProviderRequest) GetName() OptString { + return s.Name +} + +// GetFaviconLink returns the value of FaviconLink. +func (s *UpdateInfraProviderRequest) GetFaviconLink() OptNilURI { + return s.FaviconLink +} + +// GetLoginUrl returns the value of LoginUrl. +func (s *UpdateInfraProviderRequest) GetLoginUrl() OptNilURI { + return s.LoginUrl +} + +// SetUUID sets the value of UUID. +func (s *UpdateInfraProviderRequest) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetName sets the value of Name. +func (s *UpdateInfraProviderRequest) SetName(val OptString) { + s.Name = val +} + +// SetFaviconLink sets the value of FaviconLink. +func (s *UpdateInfraProviderRequest) SetFaviconLink(val OptNilURI) { + s.FaviconLink = val +} + +// SetLoginUrl sets the value of LoginUrl. +func (s *UpdateInfraProviderRequest) SetLoginUrl(val OptNilURI) { + s.LoginUrl = val +} + +// Ref: #/components/schemas/UpdateInternalSquadRequest +type UpdateInternalSquadRequest struct { + UUID uuid.UUID `json:"uuid"` + Name OptString `json:"name"` + Inbounds []uuid.UUID `json:"inbounds"` +} + +// GetUUID returns the value of UUID. +func (s *UpdateInternalSquadRequest) GetUUID() uuid.UUID { + return s.UUID +} + +// GetName returns the value of Name. +func (s *UpdateInternalSquadRequest) GetName() OptString { + return s.Name +} + +// GetInbounds returns the value of Inbounds. +func (s *UpdateInternalSquadRequest) GetInbounds() []uuid.UUID { + return s.Inbounds +} + +// SetUUID sets the value of UUID. +func (s *UpdateInternalSquadRequest) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetName sets the value of Name. +func (s *UpdateInternalSquadRequest) SetName(val OptString) { + s.Name = val +} + +// SetInbounds sets the value of Inbounds. +func (s *UpdateInternalSquadRequest) SetInbounds(val []uuid.UUID) { + s.Inbounds = val +} + +// Ref: #/components/schemas/UpdateNodePluginRequest +type UpdateNodePluginRequest struct { + UUID uuid.UUID `json:"uuid"` + Name OptString `json:"name"` + PluginConfig jx.Raw `json:"pluginConfig"` +} + +// GetUUID returns the value of UUID. +func (s *UpdateNodePluginRequest) GetUUID() uuid.UUID { + return s.UUID +} + +// GetName returns the value of Name. +func (s *UpdateNodePluginRequest) GetName() OptString { + return s.Name +} + +// GetPluginConfig returns the value of PluginConfig. +func (s *UpdateNodePluginRequest) GetPluginConfig() jx.Raw { + return s.PluginConfig +} + +// SetUUID sets the value of UUID. +func (s *UpdateNodePluginRequest) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetName sets the value of Name. +func (s *UpdateNodePluginRequest) SetName(val OptString) { + s.Name = val +} + +// SetPluginConfig sets the value of PluginConfig. +func (s *UpdateNodePluginRequest) SetPluginConfig(val jx.Raw) { + s.PluginConfig = val +} + +// Ref: #/components/schemas/UpdateNodeRequest +type UpdateNodeRequest struct { + UUID uuid.UUID `json:"uuid"` + Name OptString `json:"name"` + Address OptString `json:"address"` + Port OptFloat64 `json:"port"` + IsTrafficTrackingActive OptBool `json:"isTrafficTrackingActive"` + TrafficLimitBytes OptFloat64 `json:"trafficLimitBytes"` + NotifyPercent OptFloat64 `json:"notifyPercent"` + TrafficResetDay OptFloat64 `json:"trafficResetDay"` + CountryCode OptString `json:"countryCode"` + ConsumptionMultiplier OptFloat64 `json:"consumptionMultiplier"` + ConfigProfile OptConfigProfileRef `json:"configProfile"` + ProviderUuid OptNilUUID `json:"providerUuid"` + Tags []string `json:"tags"` + ActivePluginUuid OptNilUUID `json:"activePluginUuid"` +} + +// GetUUID returns the value of UUID. +func (s *UpdateNodeRequest) GetUUID() uuid.UUID { + return s.UUID +} + +// GetName returns the value of Name. +func (s *UpdateNodeRequest) GetName() OptString { + return s.Name +} + +// GetAddress returns the value of Address. +func (s *UpdateNodeRequest) GetAddress() OptString { + return s.Address +} + +// GetPort returns the value of Port. +func (s *UpdateNodeRequest) GetPort() OptFloat64 { + return s.Port +} + +// GetIsTrafficTrackingActive returns the value of IsTrafficTrackingActive. +func (s *UpdateNodeRequest) GetIsTrafficTrackingActive() OptBool { + return s.IsTrafficTrackingActive +} + +// GetTrafficLimitBytes returns the value of TrafficLimitBytes. +func (s *UpdateNodeRequest) GetTrafficLimitBytes() OptFloat64 { + return s.TrafficLimitBytes +} + +// GetNotifyPercent returns the value of NotifyPercent. +func (s *UpdateNodeRequest) GetNotifyPercent() OptFloat64 { + return s.NotifyPercent +} + +// GetTrafficResetDay returns the value of TrafficResetDay. +func (s *UpdateNodeRequest) GetTrafficResetDay() OptFloat64 { + return s.TrafficResetDay +} + +// GetCountryCode returns the value of CountryCode. +func (s *UpdateNodeRequest) GetCountryCode() OptString { + return s.CountryCode +} + +// GetConsumptionMultiplier returns the value of ConsumptionMultiplier. +func (s *UpdateNodeRequest) GetConsumptionMultiplier() OptFloat64 { + return s.ConsumptionMultiplier +} + +// GetConfigProfile returns the value of ConfigProfile. +func (s *UpdateNodeRequest) GetConfigProfile() OptConfigProfileRef { + return s.ConfigProfile +} + +// GetProviderUuid returns the value of ProviderUuid. +func (s *UpdateNodeRequest) GetProviderUuid() OptNilUUID { + return s.ProviderUuid +} + +// GetTags returns the value of Tags. +func (s *UpdateNodeRequest) GetTags() []string { + return s.Tags +} + +// GetActivePluginUuid returns the value of ActivePluginUuid. +func (s *UpdateNodeRequest) GetActivePluginUuid() OptNilUUID { + return s.ActivePluginUuid +} + +// SetUUID sets the value of UUID. +func (s *UpdateNodeRequest) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetName sets the value of Name. +func (s *UpdateNodeRequest) SetName(val OptString) { + s.Name = val +} + +// SetAddress sets the value of Address. +func (s *UpdateNodeRequest) SetAddress(val OptString) { + s.Address = val +} + +// SetPort sets the value of Port. +func (s *UpdateNodeRequest) SetPort(val OptFloat64) { + s.Port = val +} + +// SetIsTrafficTrackingActive sets the value of IsTrafficTrackingActive. +func (s *UpdateNodeRequest) SetIsTrafficTrackingActive(val OptBool) { + s.IsTrafficTrackingActive = val +} + +// SetTrafficLimitBytes sets the value of TrafficLimitBytes. +func (s *UpdateNodeRequest) SetTrafficLimitBytes(val OptFloat64) { + s.TrafficLimitBytes = val +} + +// SetNotifyPercent sets the value of NotifyPercent. +func (s *UpdateNodeRequest) SetNotifyPercent(val OptFloat64) { + s.NotifyPercent = val +} + +// SetTrafficResetDay sets the value of TrafficResetDay. +func (s *UpdateNodeRequest) SetTrafficResetDay(val OptFloat64) { + s.TrafficResetDay = val +} + +// SetCountryCode sets the value of CountryCode. +func (s *UpdateNodeRequest) SetCountryCode(val OptString) { + s.CountryCode = val +} + +// SetConsumptionMultiplier sets the value of ConsumptionMultiplier. +func (s *UpdateNodeRequest) SetConsumptionMultiplier(val OptFloat64) { + s.ConsumptionMultiplier = val +} + +// SetConfigProfile sets the value of ConfigProfile. +func (s *UpdateNodeRequest) SetConfigProfile(val OptConfigProfileRef) { + s.ConfigProfile = val +} + +// SetProviderUuid sets the value of ProviderUuid. +func (s *UpdateNodeRequest) SetProviderUuid(val OptNilUUID) { + s.ProviderUuid = val +} + +// SetTags sets the value of Tags. +func (s *UpdateNodeRequest) SetTags(val []string) { + s.Tags = val +} + +// SetActivePluginUuid sets the value of ActivePluginUuid. +func (s *UpdateNodeRequest) SetActivePluginUuid(val OptNilUUID) { + s.ActivePluginUuid = val +} + +// Ref: #/components/schemas/UpdatePasskeyRequest +type UpdatePasskeyRequest struct { + ID string `json:"id"` + Name string `json:"name"` +} + +// GetID returns the value of ID. +func (s *UpdatePasskeyRequest) GetID() string { + return s.ID +} + +// GetName returns the value of Name. +func (s *UpdatePasskeyRequest) GetName() string { + return s.Name +} + +// SetID sets the value of ID. +func (s *UpdatePasskeyRequest) SetID(val string) { + s.ID = val +} + +// SetName sets the value of Name. +func (s *UpdatePasskeyRequest) SetName(val string) { + s.Name = val +} + +// Ref: #/components/schemas/UpdateRemnawaveSettingsRequest +type UpdateRemnawaveSettingsRequest struct { + PasskeySettings OptNilPasskeySettings `json:"passkeySettings"` + Oauth2Settings OptNilOauth2Settings `json:"oauth2Settings"` + PasswordSettings OptNilPasswordSettings `json:"passwordSettings"` + BrandingSettings OptNilBrandingSettings `json:"brandingSettings"` +} + +// GetPasskeySettings returns the value of PasskeySettings. +func (s *UpdateRemnawaveSettingsRequest) GetPasskeySettings() OptNilPasskeySettings { + return s.PasskeySettings +} + +// GetOauth2Settings returns the value of Oauth2Settings. +func (s *UpdateRemnawaveSettingsRequest) GetOauth2Settings() OptNilOauth2Settings { + return s.Oauth2Settings +} + +// GetPasswordSettings returns the value of PasswordSettings. +func (s *UpdateRemnawaveSettingsRequest) GetPasswordSettings() OptNilPasswordSettings { + return s.PasswordSettings +} + +// GetBrandingSettings returns the value of BrandingSettings. +func (s *UpdateRemnawaveSettingsRequest) GetBrandingSettings() OptNilBrandingSettings { + return s.BrandingSettings +} + +// SetPasskeySettings sets the value of PasskeySettings. +func (s *UpdateRemnawaveSettingsRequest) SetPasskeySettings(val OptNilPasskeySettings) { + s.PasskeySettings = val +} + +// SetOauth2Settings sets the value of Oauth2Settings. +func (s *UpdateRemnawaveSettingsRequest) SetOauth2Settings(val OptNilOauth2Settings) { + s.Oauth2Settings = val +} + +// SetPasswordSettings sets the value of PasswordSettings. +func (s *UpdateRemnawaveSettingsRequest) SetPasswordSettings(val OptNilPasswordSettings) { + s.PasswordSettings = val +} + +// SetBrandingSettings sets the value of BrandingSettings. +func (s *UpdateRemnawaveSettingsRequest) SetBrandingSettings(val OptNilBrandingSettings) { + s.BrandingSettings = val +} + +// Ref: #/components/schemas/UpdateSubscriptionPageConfigRequest +type UpdateSubscriptionPageConfigRequest struct { + UUID uuid.UUID `json:"uuid"` + Name OptString `json:"name"` + Config jx.Raw `json:"config"` +} + +// GetUUID returns the value of UUID. +func (s *UpdateSubscriptionPageConfigRequest) GetUUID() uuid.UUID { + return s.UUID +} + +// GetName returns the value of Name. +func (s *UpdateSubscriptionPageConfigRequest) GetName() OptString { + return s.Name +} + +// GetConfig returns the value of Config. +func (s *UpdateSubscriptionPageConfigRequest) GetConfig() jx.Raw { + return s.Config +} + +// SetUUID sets the value of UUID. +func (s *UpdateSubscriptionPageConfigRequest) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetName sets the value of Name. +func (s *UpdateSubscriptionPageConfigRequest) SetName(val OptString) { + s.Name = val +} + +// SetConfig sets the value of Config. +func (s *UpdateSubscriptionPageConfigRequest) SetConfig(val jx.Raw) { + s.Config = val +} + +// Ref: #/components/schemas/UpdateSubscriptionSettingsRequest +type UpdateSubscriptionSettingsRequest struct { + UUID uuid.UUID `json:"uuid"` + ProfileTitle OptString `json:"profileTitle"` + SupportLink OptString `json:"supportLink"` + ProfileUpdateInterval OptInt `json:"profileUpdateInterval"` + IsProfileWebpageUrlEnabled OptBool `json:"isProfileWebpageUrlEnabled"` + ServeJsonAtBaseSubscription OptBool `json:"serveJsonAtBaseSubscription"` + HappAnnounce OptNilString `json:"happAnnounce"` + HappRouting OptNilString `json:"happRouting"` + IsShowCustomRemarks OptBool `json:"isShowCustomRemarks"` + CustomRemarks OptNilCustomRemark `json:"customRemarks"` + CustomResponseHeaders OptUpdateSubscriptionSettingsRequestCustomResponseHeaders `json:"customResponseHeaders"` + RandomizeHosts OptBool `json:"randomizeHosts"` + ResponseRules OptResponseRules `json:"responseRules"` + HwidSettings OptNilHwidSettings `json:"hwidSettings"` +} + +// GetUUID returns the value of UUID. +func (s *UpdateSubscriptionSettingsRequest) GetUUID() uuid.UUID { + return s.UUID +} + +// GetProfileTitle returns the value of ProfileTitle. +func (s *UpdateSubscriptionSettingsRequest) GetProfileTitle() OptString { + return s.ProfileTitle +} + +// GetSupportLink returns the value of SupportLink. +func (s *UpdateSubscriptionSettingsRequest) GetSupportLink() OptString { + return s.SupportLink +} + +// GetProfileUpdateInterval returns the value of ProfileUpdateInterval. +func (s *UpdateSubscriptionSettingsRequest) GetProfileUpdateInterval() OptInt { + return s.ProfileUpdateInterval +} + +// GetIsProfileWebpageUrlEnabled returns the value of IsProfileWebpageUrlEnabled. +func (s *UpdateSubscriptionSettingsRequest) GetIsProfileWebpageUrlEnabled() OptBool { + return s.IsProfileWebpageUrlEnabled +} + +// GetServeJsonAtBaseSubscription returns the value of ServeJsonAtBaseSubscription. +func (s *UpdateSubscriptionSettingsRequest) GetServeJsonAtBaseSubscription() OptBool { + return s.ServeJsonAtBaseSubscription +} + +// GetHappAnnounce returns the value of HappAnnounce. +func (s *UpdateSubscriptionSettingsRequest) GetHappAnnounce() OptNilString { + return s.HappAnnounce +} + +// GetHappRouting returns the value of HappRouting. +func (s *UpdateSubscriptionSettingsRequest) GetHappRouting() OptNilString { + return s.HappRouting +} + +// GetIsShowCustomRemarks returns the value of IsShowCustomRemarks. +func (s *UpdateSubscriptionSettingsRequest) GetIsShowCustomRemarks() OptBool { + return s.IsShowCustomRemarks +} + +// GetCustomRemarks returns the value of CustomRemarks. +func (s *UpdateSubscriptionSettingsRequest) GetCustomRemarks() OptNilCustomRemark { + return s.CustomRemarks +} + +// GetCustomResponseHeaders returns the value of CustomResponseHeaders. +func (s *UpdateSubscriptionSettingsRequest) GetCustomResponseHeaders() OptUpdateSubscriptionSettingsRequestCustomResponseHeaders { + return s.CustomResponseHeaders +} + +// GetRandomizeHosts returns the value of RandomizeHosts. +func (s *UpdateSubscriptionSettingsRequest) GetRandomizeHosts() OptBool { + return s.RandomizeHosts +} + +// GetResponseRules returns the value of ResponseRules. +func (s *UpdateSubscriptionSettingsRequest) GetResponseRules() OptResponseRules { + return s.ResponseRules +} + +// GetHwidSettings returns the value of HwidSettings. +func (s *UpdateSubscriptionSettingsRequest) GetHwidSettings() OptNilHwidSettings { + return s.HwidSettings +} + +// SetUUID sets the value of UUID. +func (s *UpdateSubscriptionSettingsRequest) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetProfileTitle sets the value of ProfileTitle. +func (s *UpdateSubscriptionSettingsRequest) SetProfileTitle(val OptString) { + s.ProfileTitle = val +} + +// SetSupportLink sets the value of SupportLink. +func (s *UpdateSubscriptionSettingsRequest) SetSupportLink(val OptString) { + s.SupportLink = val +} + +// SetProfileUpdateInterval sets the value of ProfileUpdateInterval. +func (s *UpdateSubscriptionSettingsRequest) SetProfileUpdateInterval(val OptInt) { + s.ProfileUpdateInterval = val +} + +// SetIsProfileWebpageUrlEnabled sets the value of IsProfileWebpageUrlEnabled. +func (s *UpdateSubscriptionSettingsRequest) SetIsProfileWebpageUrlEnabled(val OptBool) { + s.IsProfileWebpageUrlEnabled = val +} + +// SetServeJsonAtBaseSubscription sets the value of ServeJsonAtBaseSubscription. +func (s *UpdateSubscriptionSettingsRequest) SetServeJsonAtBaseSubscription(val OptBool) { + s.ServeJsonAtBaseSubscription = val +} + +// SetHappAnnounce sets the value of HappAnnounce. +func (s *UpdateSubscriptionSettingsRequest) SetHappAnnounce(val OptNilString) { + s.HappAnnounce = val +} + +// SetHappRouting sets the value of HappRouting. +func (s *UpdateSubscriptionSettingsRequest) SetHappRouting(val OptNilString) { + s.HappRouting = val +} + +// SetIsShowCustomRemarks sets the value of IsShowCustomRemarks. +func (s *UpdateSubscriptionSettingsRequest) SetIsShowCustomRemarks(val OptBool) { + s.IsShowCustomRemarks = val +} + +// SetCustomRemarks sets the value of CustomRemarks. +func (s *UpdateSubscriptionSettingsRequest) SetCustomRemarks(val OptNilCustomRemark) { + s.CustomRemarks = val +} + +// SetCustomResponseHeaders sets the value of CustomResponseHeaders. +func (s *UpdateSubscriptionSettingsRequest) SetCustomResponseHeaders(val OptUpdateSubscriptionSettingsRequestCustomResponseHeaders) { + s.CustomResponseHeaders = val +} + +// SetRandomizeHosts sets the value of RandomizeHosts. +func (s *UpdateSubscriptionSettingsRequest) SetRandomizeHosts(val OptBool) { + s.RandomizeHosts = val +} + +// SetResponseRules sets the value of ResponseRules. +func (s *UpdateSubscriptionSettingsRequest) SetResponseRules(val OptResponseRules) { + s.ResponseRules = val +} + +// SetHwidSettings sets the value of HwidSettings. +func (s *UpdateSubscriptionSettingsRequest) SetHwidSettings(val OptNilHwidSettings) { + s.HwidSettings = val +} + +type UpdateSubscriptionSettingsRequestCustomResponseHeaders map[string]string + +func (s *UpdateSubscriptionSettingsRequestCustomResponseHeaders) init() UpdateSubscriptionSettingsRequestCustomResponseHeaders { + m := *s + if m == nil { + m = map[string]string{} + *s = m + } + return m +} + +// Ref: #/components/schemas/UpdateTemplateRequest +type UpdateTemplateRequest struct { + UUID uuid.UUID `json:"uuid"` + Name OptString `json:"name"` + TemplateJson *UpdateTemplateRequestTemplateJson `json:"templateJson"` + EncodedTemplateYaml OptString `json:"encodedTemplateYaml"` +} + +// GetUUID returns the value of UUID. +func (s *UpdateTemplateRequest) GetUUID() uuid.UUID { + return s.UUID +} + +// GetName returns the value of Name. +func (s *UpdateTemplateRequest) GetName() OptString { + return s.Name +} + +// GetTemplateJson returns the value of TemplateJson. +func (s *UpdateTemplateRequest) GetTemplateJson() *UpdateTemplateRequestTemplateJson { + return s.TemplateJson +} + +// GetEncodedTemplateYaml returns the value of EncodedTemplateYaml. +func (s *UpdateTemplateRequest) GetEncodedTemplateYaml() OptString { + return s.EncodedTemplateYaml +} + +// SetUUID sets the value of UUID. +func (s *UpdateTemplateRequest) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetName sets the value of Name. +func (s *UpdateTemplateRequest) SetName(val OptString) { + s.Name = val +} + +// SetTemplateJson sets the value of TemplateJson. +func (s *UpdateTemplateRequest) SetTemplateJson(val *UpdateTemplateRequestTemplateJson) { + s.TemplateJson = val +} + +// SetEncodedTemplateYaml sets the value of EncodedTemplateYaml. +func (s *UpdateTemplateRequest) SetEncodedTemplateYaml(val OptString) { + s.EncodedTemplateYaml = val +} + +type UpdateTemplateRequestTemplateJson struct{} + +// Ref: #/components/schemas/UpdateUserRequest +type UpdateUserRequest struct { + // Username of the user. + Username OptString `json:"username"` + // UUID of the user. UUID has higher priority than username, so if both are provided, username will + // be ignored. + UUID OptUUID `json:"uuid"` + Status OptUpdateUserRequestStatus `json:"status"` + // Traffic limit in bytes. 0 - unlimited. + TrafficLimitBytes OptInt `json:"trafficLimitBytes"` + // Available reset periods. + TrafficLimitStrategy OptUpdateUserRequestTrafficLimitStrategy `json:"trafficLimitStrategy"` + // Expiration date: 2025-01-17T15:38:45.065Z. + ExpireAt OptDateTime `json:"expireAt"` + Description OptNilString `json:"description"` + Tag OptNilString `json:"tag"` + TelegramId OptNilInt `json:"telegramId"` + Email OptNilString `json:"email"` + HwidDeviceLimit OptNilInt `json:"hwidDeviceLimit"` + ActiveInternalSquads []uuid.UUID `json:"activeInternalSquads"` + // Optional. External squad UUID. + ExternalSquadUuid OptNilUUID `json:"externalSquadUuid"` +} + +// GetUsername returns the value of Username. +func (s *UpdateUserRequest) GetUsername() OptString { + return s.Username +} + +// GetUUID returns the value of UUID. +func (s *UpdateUserRequest) GetUUID() OptUUID { + return s.UUID +} + +// GetStatus returns the value of Status. +func (s *UpdateUserRequest) GetStatus() OptUpdateUserRequestStatus { + return s.Status +} + +// GetTrafficLimitBytes returns the value of TrafficLimitBytes. +func (s *UpdateUserRequest) GetTrafficLimitBytes() OptInt { + return s.TrafficLimitBytes +} + +// GetTrafficLimitStrategy returns the value of TrafficLimitStrategy. +func (s *UpdateUserRequest) GetTrafficLimitStrategy() OptUpdateUserRequestTrafficLimitStrategy { + return s.TrafficLimitStrategy +} + +// GetExpireAt returns the value of ExpireAt. +func (s *UpdateUserRequest) GetExpireAt() OptDateTime { + return s.ExpireAt +} + +// GetDescription returns the value of Description. +func (s *UpdateUserRequest) GetDescription() OptNilString { + return s.Description +} + +// GetTag returns the value of Tag. +func (s *UpdateUserRequest) GetTag() OptNilString { + return s.Tag +} + +// GetTelegramId returns the value of TelegramId. +func (s *UpdateUserRequest) GetTelegramId() OptNilInt { + return s.TelegramId +} + +// GetEmail returns the value of Email. +func (s *UpdateUserRequest) GetEmail() OptNilString { + return s.Email +} + +// GetHwidDeviceLimit returns the value of HwidDeviceLimit. +func (s *UpdateUserRequest) GetHwidDeviceLimit() OptNilInt { + return s.HwidDeviceLimit +} + +// GetActiveInternalSquads returns the value of ActiveInternalSquads. +func (s *UpdateUserRequest) GetActiveInternalSquads() []uuid.UUID { + return s.ActiveInternalSquads +} + +// GetExternalSquadUuid returns the value of ExternalSquadUuid. +func (s *UpdateUserRequest) GetExternalSquadUuid() OptNilUUID { + return s.ExternalSquadUuid +} + +// SetUsername sets the value of Username. +func (s *UpdateUserRequest) SetUsername(val OptString) { + s.Username = val +} + +// SetUUID sets the value of UUID. +func (s *UpdateUserRequest) SetUUID(val OptUUID) { + s.UUID = val +} + +// SetStatus sets the value of Status. +func (s *UpdateUserRequest) SetStatus(val OptUpdateUserRequestStatus) { + s.Status = val +} + +// SetTrafficLimitBytes sets the value of TrafficLimitBytes. +func (s *UpdateUserRequest) SetTrafficLimitBytes(val OptInt) { + s.TrafficLimitBytes = val +} + +// SetTrafficLimitStrategy sets the value of TrafficLimitStrategy. +func (s *UpdateUserRequest) SetTrafficLimitStrategy(val OptUpdateUserRequestTrafficLimitStrategy) { + s.TrafficLimitStrategy = val +} + +// SetExpireAt sets the value of ExpireAt. +func (s *UpdateUserRequest) SetExpireAt(val OptDateTime) { + s.ExpireAt = val +} + +// SetDescription sets the value of Description. +func (s *UpdateUserRequest) SetDescription(val OptNilString) { + s.Description = val +} + +// SetTag sets the value of Tag. +func (s *UpdateUserRequest) SetTag(val OptNilString) { + s.Tag = val +} + +// SetTelegramId sets the value of TelegramId. +func (s *UpdateUserRequest) SetTelegramId(val OptNilInt) { + s.TelegramId = val +} + +// SetEmail sets the value of Email. +func (s *UpdateUserRequest) SetEmail(val OptNilString) { + s.Email = val +} + +// SetHwidDeviceLimit sets the value of HwidDeviceLimit. +func (s *UpdateUserRequest) SetHwidDeviceLimit(val OptNilInt) { + s.HwidDeviceLimit = val +} + +// SetActiveInternalSquads sets the value of ActiveInternalSquads. +func (s *UpdateUserRequest) SetActiveInternalSquads(val []uuid.UUID) { + s.ActiveInternalSquads = val +} + +// SetExternalSquadUuid sets the value of ExternalSquadUuid. +func (s *UpdateUserRequest) SetExternalSquadUuid(val OptNilUUID) { + s.ExternalSquadUuid = val +} + +type UpdateUserRequestStatus string + +const ( + UpdateUserRequestStatusACTIVE UpdateUserRequestStatus = "ACTIVE" + UpdateUserRequestStatusDISABLED UpdateUserRequestStatus = "DISABLED" +) + +// AllValues returns all UpdateUserRequestStatus values. +func (UpdateUserRequestStatus) AllValues() []UpdateUserRequestStatus { + return []UpdateUserRequestStatus{ + UpdateUserRequestStatusACTIVE, + UpdateUserRequestStatusDISABLED, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s UpdateUserRequestStatus) MarshalText() ([]byte, error) { + switch s { + case UpdateUserRequestStatusACTIVE: + return []byte(s), nil + case UpdateUserRequestStatusDISABLED: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *UpdateUserRequestStatus) UnmarshalText(data []byte) error { + switch UpdateUserRequestStatus(data) { + case UpdateUserRequestStatusACTIVE: + *s = UpdateUserRequestStatusACTIVE + return nil + case UpdateUserRequestStatusDISABLED: + *s = UpdateUserRequestStatusDISABLED + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Available reset periods. +type UpdateUserRequestTrafficLimitStrategy string + +const ( + UpdateUserRequestTrafficLimitStrategyNORESET UpdateUserRequestTrafficLimitStrategy = "NO_RESET" + UpdateUserRequestTrafficLimitStrategyDAY UpdateUserRequestTrafficLimitStrategy = "DAY" + UpdateUserRequestTrafficLimitStrategyWEEK UpdateUserRequestTrafficLimitStrategy = "WEEK" + UpdateUserRequestTrafficLimitStrategyMONTH UpdateUserRequestTrafficLimitStrategy = "MONTH" + UpdateUserRequestTrafficLimitStrategyMONTHROLLING UpdateUserRequestTrafficLimitStrategy = "MONTH_ROLLING" +) + +// AllValues returns all UpdateUserRequestTrafficLimitStrategy values. +func (UpdateUserRequestTrafficLimitStrategy) AllValues() []UpdateUserRequestTrafficLimitStrategy { + return []UpdateUserRequestTrafficLimitStrategy{ + UpdateUserRequestTrafficLimitStrategyNORESET, + UpdateUserRequestTrafficLimitStrategyDAY, + UpdateUserRequestTrafficLimitStrategyWEEK, + UpdateUserRequestTrafficLimitStrategyMONTH, + UpdateUserRequestTrafficLimitStrategyMONTHROLLING, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s UpdateUserRequestTrafficLimitStrategy) MarshalText() ([]byte, error) { + switch s { + case UpdateUserRequestTrafficLimitStrategyNORESET: + return []byte(s), nil + case UpdateUserRequestTrafficLimitStrategyDAY: + return []byte(s), nil + case UpdateUserRequestTrafficLimitStrategyWEEK: + return []byte(s), nil + case UpdateUserRequestTrafficLimitStrategyMONTH: + return []byte(s), nil + case UpdateUserRequestTrafficLimitStrategyMONTHROLLING: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *UpdateUserRequestTrafficLimitStrategy) UnmarshalText(data []byte) error { + switch UpdateUserRequestTrafficLimitStrategy(data) { + case UpdateUserRequestTrafficLimitStrategyNORESET: + *s = UpdateUserRequestTrafficLimitStrategyNORESET + return nil + case UpdateUserRequestTrafficLimitStrategyDAY: + *s = UpdateUserRequestTrafficLimitStrategyDAY + return nil + case UpdateUserRequestTrafficLimitStrategyWEEK: + *s = UpdateUserRequestTrafficLimitStrategyWEEK + return nil + case UpdateUserRequestTrafficLimitStrategyMONTH: + *s = UpdateUserRequestTrafficLimitStrategyMONTH + return nil + case UpdateUserRequestTrafficLimitStrategyMONTHROLLING: + *s = UpdateUserRequestTrafficLimitStrategyMONTHROLLING + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/UpsertUserMetadataRequestBodyRequest +type UpsertUserMetadataRequestBodyRequest struct { + Metadata UpsertUserMetadataRequestBodyRequestMetadata `json:"metadata"` +} + +// GetMetadata returns the value of Metadata. +func (s *UpsertUserMetadataRequestBodyRequest) GetMetadata() UpsertUserMetadataRequestBodyRequestMetadata { + return s.Metadata +} + +// SetMetadata sets the value of Metadata. +func (s *UpsertUserMetadataRequestBodyRequest) SetMetadata(val UpsertUserMetadataRequestBodyRequestMetadata) { + s.Metadata = val +} + +type UpsertUserMetadataRequestBodyRequestMetadata struct{} + +// Ref: #/components/schemas/UserItem2 +type UserItem2 struct { + ShortUuid string `json:"shortUuid"` + DaysLeft float64 `json:"daysLeft"` + TrafficUsed string `json:"trafficUsed"` + TrafficLimit string `json:"trafficLimit"` + LifetimeTrafficUsed string `json:"lifetimeTrafficUsed"` + TrafficUsedBytes string `json:"trafficUsedBytes"` + TrafficLimitBytes string `json:"trafficLimitBytes"` + LifetimeTrafficUsedBytes string `json:"lifetimeTrafficUsedBytes"` + Username string `json:"username"` + ExpiresAt time.Time `json:"expiresAt"` + IsActive bool `json:"isActive"` + UserStatus UserItem2UserStatus `json:"userStatus"` + TrafficLimitStrategy UserItem2TrafficLimitStrategy `json:"trafficLimitStrategy"` +} + +// GetShortUuid returns the value of ShortUuid. +func (s *UserItem2) GetShortUuid() string { + return s.ShortUuid +} + +// GetDaysLeft returns the value of DaysLeft. +func (s *UserItem2) GetDaysLeft() float64 { + return s.DaysLeft +} + +// GetTrafficUsed returns the value of TrafficUsed. +func (s *UserItem2) GetTrafficUsed() string { + return s.TrafficUsed +} + +// GetTrafficLimit returns the value of TrafficLimit. +func (s *UserItem2) GetTrafficLimit() string { + return s.TrafficLimit +} + +// GetLifetimeTrafficUsed returns the value of LifetimeTrafficUsed. +func (s *UserItem2) GetLifetimeTrafficUsed() string { + return s.LifetimeTrafficUsed +} + +// GetTrafficUsedBytes returns the value of TrafficUsedBytes. +func (s *UserItem2) GetTrafficUsedBytes() string { + return s.TrafficUsedBytes +} + +// GetTrafficLimitBytes returns the value of TrafficLimitBytes. +func (s *UserItem2) GetTrafficLimitBytes() string { + return s.TrafficLimitBytes +} + +// GetLifetimeTrafficUsedBytes returns the value of LifetimeTrafficUsedBytes. +func (s *UserItem2) GetLifetimeTrafficUsedBytes() string { + return s.LifetimeTrafficUsedBytes +} + +// GetUsername returns the value of Username. +func (s *UserItem2) GetUsername() string { + return s.Username +} + +// GetExpiresAt returns the value of ExpiresAt. +func (s *UserItem2) GetExpiresAt() time.Time { + return s.ExpiresAt +} + +// GetIsActive returns the value of IsActive. +func (s *UserItem2) GetIsActive() bool { + return s.IsActive +} + +// GetUserStatus returns the value of UserStatus. +func (s *UserItem2) GetUserStatus() UserItem2UserStatus { + return s.UserStatus +} + +// GetTrafficLimitStrategy returns the value of TrafficLimitStrategy. +func (s *UserItem2) GetTrafficLimitStrategy() UserItem2TrafficLimitStrategy { + return s.TrafficLimitStrategy +} + +// SetShortUuid sets the value of ShortUuid. +func (s *UserItem2) SetShortUuid(val string) { + s.ShortUuid = val +} + +// SetDaysLeft sets the value of DaysLeft. +func (s *UserItem2) SetDaysLeft(val float64) { + s.DaysLeft = val +} + +// SetTrafficUsed sets the value of TrafficUsed. +func (s *UserItem2) SetTrafficUsed(val string) { + s.TrafficUsed = val +} + +// SetTrafficLimit sets the value of TrafficLimit. +func (s *UserItem2) SetTrafficLimit(val string) { + s.TrafficLimit = val +} + +// SetLifetimeTrafficUsed sets the value of LifetimeTrafficUsed. +func (s *UserItem2) SetLifetimeTrafficUsed(val string) { + s.LifetimeTrafficUsed = val +} + +// SetTrafficUsedBytes sets the value of TrafficUsedBytes. +func (s *UserItem2) SetTrafficUsedBytes(val string) { + s.TrafficUsedBytes = val +} + +// SetTrafficLimitBytes sets the value of TrafficLimitBytes. +func (s *UserItem2) SetTrafficLimitBytes(val string) { + s.TrafficLimitBytes = val +} + +// SetLifetimeTrafficUsedBytes sets the value of LifetimeTrafficUsedBytes. +func (s *UserItem2) SetLifetimeTrafficUsedBytes(val string) { + s.LifetimeTrafficUsedBytes = val +} + +// SetUsername sets the value of Username. +func (s *UserItem2) SetUsername(val string) { + s.Username = val +} + +// SetExpiresAt sets the value of ExpiresAt. +func (s *UserItem2) SetExpiresAt(val time.Time) { + s.ExpiresAt = val +} + +// SetIsActive sets the value of IsActive. +func (s *UserItem2) SetIsActive(val bool) { + s.IsActive = val +} + +// SetUserStatus sets the value of UserStatus. +func (s *UserItem2) SetUserStatus(val UserItem2UserStatus) { + s.UserStatus = val +} + +// SetTrafficLimitStrategy sets the value of TrafficLimitStrategy. +func (s *UserItem2) SetTrafficLimitStrategy(val UserItem2TrafficLimitStrategy) { + s.TrafficLimitStrategy = val +} + +type UserItem2TrafficLimitStrategy string + +const ( + UserItem2TrafficLimitStrategyNORESET UserItem2TrafficLimitStrategy = "NO_RESET" + UserItem2TrafficLimitStrategyDAY UserItem2TrafficLimitStrategy = "DAY" + UserItem2TrafficLimitStrategyWEEK UserItem2TrafficLimitStrategy = "WEEK" + UserItem2TrafficLimitStrategyMONTH UserItem2TrafficLimitStrategy = "MONTH" + UserItem2TrafficLimitStrategyMONTHROLLING UserItem2TrafficLimitStrategy = "MONTH_ROLLING" +) + +// AllValues returns all UserItem2TrafficLimitStrategy values. +func (UserItem2TrafficLimitStrategy) AllValues() []UserItem2TrafficLimitStrategy { + return []UserItem2TrafficLimitStrategy{ + UserItem2TrafficLimitStrategyNORESET, + UserItem2TrafficLimitStrategyDAY, + UserItem2TrafficLimitStrategyWEEK, + UserItem2TrafficLimitStrategyMONTH, + UserItem2TrafficLimitStrategyMONTHROLLING, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s UserItem2TrafficLimitStrategy) MarshalText() ([]byte, error) { + switch s { + case UserItem2TrafficLimitStrategyNORESET: + return []byte(s), nil + case UserItem2TrafficLimitStrategyDAY: + return []byte(s), nil + case UserItem2TrafficLimitStrategyWEEK: + return []byte(s), nil + case UserItem2TrafficLimitStrategyMONTH: + return []byte(s), nil + case UserItem2TrafficLimitStrategyMONTHROLLING: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *UserItem2TrafficLimitStrategy) UnmarshalText(data []byte) error { + switch UserItem2TrafficLimitStrategy(data) { + case UserItem2TrafficLimitStrategyNORESET: + *s = UserItem2TrafficLimitStrategyNORESET + return nil + case UserItem2TrafficLimitStrategyDAY: + *s = UserItem2TrafficLimitStrategyDAY + return nil + case UserItem2TrafficLimitStrategyWEEK: + *s = UserItem2TrafficLimitStrategyWEEK + return nil + case UserItem2TrafficLimitStrategyMONTH: + *s = UserItem2TrafficLimitStrategyMONTH + return nil + case UserItem2TrafficLimitStrategyMONTHROLLING: + *s = UserItem2TrafficLimitStrategyMONTHROLLING + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +type UserItem2UserStatus string + +const ( + UserItem2UserStatusACTIVE UserItem2UserStatus = "ACTIVE" + UserItem2UserStatusDISABLED UserItem2UserStatus = "DISABLED" + UserItem2UserStatusLIMITED UserItem2UserStatus = "LIMITED" + UserItem2UserStatusEXPIRED UserItem2UserStatus = "EXPIRED" +) + +// AllValues returns all UserItem2UserStatus values. +func (UserItem2UserStatus) AllValues() []UserItem2UserStatus { + return []UserItem2UserStatus{ + UserItem2UserStatusACTIVE, + UserItem2UserStatusDISABLED, + UserItem2UserStatusLIMITED, + UserItem2UserStatusEXPIRED, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s UserItem2UserStatus) MarshalText() ([]byte, error) { + switch s { + case UserItem2UserStatusACTIVE: + return []byte(s), nil + case UserItem2UserStatusDISABLED: + return []byte(s), nil + case UserItem2UserStatusLIMITED: + return []byte(s), nil + case UserItem2UserStatusEXPIRED: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *UserItem2UserStatus) UnmarshalText(data []byte) error { + switch UserItem2UserStatus(data) { + case UserItem2UserStatusACTIVE: + *s = UserItem2UserStatusACTIVE + return nil + case UserItem2UserStatusDISABLED: + *s = UserItem2UserStatusDISABLED + return nil + case UserItem2UserStatusLIMITED: + *s = UserItem2UserStatusLIMITED + return nil + case UserItem2UserStatusEXPIRED: + *s = UserItem2UserStatusEXPIRED + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/UserItemInfo +type UserItemInfo struct { + UUID uuid.UUID `json:"uuid"` + ID float64 `json:"id"` + ShortUuid string `json:"shortUuid"` + Username string `json:"username"` + Status OptUserItemInfoStatus `json:"status"` + TrafficLimitBytes OptInt `json:"trafficLimitBytes"` + // Available reset periods. + TrafficLimitStrategy OptUserItemInfoTrafficLimitStrategy `json:"trafficLimitStrategy"` + ExpireAt time.Time `json:"expireAt"` + TelegramId NilInt `json:"telegramId"` + Email NilString `json:"email"` + Description NilString `json:"description"` + Tag NilString `json:"tag"` + HwidDeviceLimit NilInt `json:"hwidDeviceLimit"` + ExternalSquadUuid NilUUID `json:"externalSquadUuid"` + TrojanPassword string `json:"trojanPassword"` + VlessUuid uuid.UUID `json:"vlessUuid"` + SsPassword string `json:"ssPassword"` + LastTriggeredThreshold OptInt `json:"lastTriggeredThreshold"` + SubRevokedAt NilDateTime `json:"subRevokedAt"` + LastTrafficResetAt NilDateTime `json:"lastTrafficResetAt"` + CreatedAt time.Time `json:"createdAt"` + UpdatedAt time.Time `json:"updatedAt"` + SubscriptionUrl string `json:"subscriptionUrl"` + ActiveInternalSquads []ActiveInternalSquad `json:"activeInternalSquads"` + UserTraffic UserTrafficItem `json:"userTraffic"` +} + +// GetUUID returns the value of UUID. +func (s *UserItemInfo) GetUUID() uuid.UUID { + return s.UUID +} + +// GetID returns the value of ID. +func (s *UserItemInfo) GetID() float64 { + return s.ID +} + +// GetShortUuid returns the value of ShortUuid. +func (s *UserItemInfo) GetShortUuid() string { + return s.ShortUuid +} + +// GetUsername returns the value of Username. +func (s *UserItemInfo) GetUsername() string { + return s.Username +} + +// GetStatus returns the value of Status. +func (s *UserItemInfo) GetStatus() OptUserItemInfoStatus { + return s.Status +} + +// GetTrafficLimitBytes returns the value of TrafficLimitBytes. +func (s *UserItemInfo) GetTrafficLimitBytes() OptInt { + return s.TrafficLimitBytes +} + +// GetTrafficLimitStrategy returns the value of TrafficLimitStrategy. +func (s *UserItemInfo) GetTrafficLimitStrategy() OptUserItemInfoTrafficLimitStrategy { + return s.TrafficLimitStrategy +} + +// GetExpireAt returns the value of ExpireAt. +func (s *UserItemInfo) GetExpireAt() time.Time { + return s.ExpireAt +} + +// GetTelegramId returns the value of TelegramId. +func (s *UserItemInfo) GetTelegramId() NilInt { + return s.TelegramId +} + +// GetEmail returns the value of Email. +func (s *UserItemInfo) GetEmail() NilString { + return s.Email +} + +// GetDescription returns the value of Description. +func (s *UserItemInfo) GetDescription() NilString { + return s.Description +} + +// GetTag returns the value of Tag. +func (s *UserItemInfo) GetTag() NilString { + return s.Tag +} + +// GetHwidDeviceLimit returns the value of HwidDeviceLimit. +func (s *UserItemInfo) GetHwidDeviceLimit() NilInt { + return s.HwidDeviceLimit +} + +// GetExternalSquadUuid returns the value of ExternalSquadUuid. +func (s *UserItemInfo) GetExternalSquadUuid() NilUUID { + return s.ExternalSquadUuid +} + +// GetTrojanPassword returns the value of TrojanPassword. +func (s *UserItemInfo) GetTrojanPassword() string { + return s.TrojanPassword +} + +// GetVlessUuid returns the value of VlessUuid. +func (s *UserItemInfo) GetVlessUuid() uuid.UUID { + return s.VlessUuid +} + +// GetSsPassword returns the value of SsPassword. +func (s *UserItemInfo) GetSsPassword() string { + return s.SsPassword +} + +// GetLastTriggeredThreshold returns the value of LastTriggeredThreshold. +func (s *UserItemInfo) GetLastTriggeredThreshold() OptInt { + return s.LastTriggeredThreshold +} + +// GetSubRevokedAt returns the value of SubRevokedAt. +func (s *UserItemInfo) GetSubRevokedAt() NilDateTime { + return s.SubRevokedAt +} + +// GetLastTrafficResetAt returns the value of LastTrafficResetAt. +func (s *UserItemInfo) GetLastTrafficResetAt() NilDateTime { + return s.LastTrafficResetAt +} + +// GetCreatedAt returns the value of CreatedAt. +func (s *UserItemInfo) GetCreatedAt() time.Time { + return s.CreatedAt +} + +// GetUpdatedAt returns the value of UpdatedAt. +func (s *UserItemInfo) GetUpdatedAt() time.Time { + return s.UpdatedAt +} + +// GetSubscriptionUrl returns the value of SubscriptionUrl. +func (s *UserItemInfo) GetSubscriptionUrl() string { + return s.SubscriptionUrl +} + +// GetActiveInternalSquads returns the value of ActiveInternalSquads. +func (s *UserItemInfo) GetActiveInternalSquads() []ActiveInternalSquad { + return s.ActiveInternalSquads +} + +// GetUserTraffic returns the value of UserTraffic. +func (s *UserItemInfo) GetUserTraffic() UserTrafficItem { + return s.UserTraffic +} + +// SetUUID sets the value of UUID. +func (s *UserItemInfo) SetUUID(val uuid.UUID) { + s.UUID = val +} + +// SetID sets the value of ID. +func (s *UserItemInfo) SetID(val float64) { + s.ID = val +} + +// SetShortUuid sets the value of ShortUuid. +func (s *UserItemInfo) SetShortUuid(val string) { + s.ShortUuid = val +} + +// SetUsername sets the value of Username. +func (s *UserItemInfo) SetUsername(val string) { + s.Username = val +} + +// SetStatus sets the value of Status. +func (s *UserItemInfo) SetStatus(val OptUserItemInfoStatus) { + s.Status = val +} + +// SetTrafficLimitBytes sets the value of TrafficLimitBytes. +func (s *UserItemInfo) SetTrafficLimitBytes(val OptInt) { + s.TrafficLimitBytes = val +} + +// SetTrafficLimitStrategy sets the value of TrafficLimitStrategy. +func (s *UserItemInfo) SetTrafficLimitStrategy(val OptUserItemInfoTrafficLimitStrategy) { + s.TrafficLimitStrategy = val +} + +// SetExpireAt sets the value of ExpireAt. +func (s *UserItemInfo) SetExpireAt(val time.Time) { + s.ExpireAt = val +} + +// SetTelegramId sets the value of TelegramId. +func (s *UserItemInfo) SetTelegramId(val NilInt) { + s.TelegramId = val +} + +// SetEmail sets the value of Email. +func (s *UserItemInfo) SetEmail(val NilString) { + s.Email = val +} + +// SetDescription sets the value of Description. +func (s *UserItemInfo) SetDescription(val NilString) { + s.Description = val +} + +// SetTag sets the value of Tag. +func (s *UserItemInfo) SetTag(val NilString) { + s.Tag = val +} + +// SetHwidDeviceLimit sets the value of HwidDeviceLimit. +func (s *UserItemInfo) SetHwidDeviceLimit(val NilInt) { + s.HwidDeviceLimit = val +} + +// SetExternalSquadUuid sets the value of ExternalSquadUuid. +func (s *UserItemInfo) SetExternalSquadUuid(val NilUUID) { + s.ExternalSquadUuid = val +} + +// SetTrojanPassword sets the value of TrojanPassword. +func (s *UserItemInfo) SetTrojanPassword(val string) { + s.TrojanPassword = val +} + +// SetVlessUuid sets the value of VlessUuid. +func (s *UserItemInfo) SetVlessUuid(val uuid.UUID) { + s.VlessUuid = val +} + +// SetSsPassword sets the value of SsPassword. +func (s *UserItemInfo) SetSsPassword(val string) { + s.SsPassword = val +} + +// SetLastTriggeredThreshold sets the value of LastTriggeredThreshold. +func (s *UserItemInfo) SetLastTriggeredThreshold(val OptInt) { + s.LastTriggeredThreshold = val +} + +// SetSubRevokedAt sets the value of SubRevokedAt. +func (s *UserItemInfo) SetSubRevokedAt(val NilDateTime) { + s.SubRevokedAt = val +} + +// SetLastTrafficResetAt sets the value of LastTrafficResetAt. +func (s *UserItemInfo) SetLastTrafficResetAt(val NilDateTime) { + s.LastTrafficResetAt = val +} + +// SetCreatedAt sets the value of CreatedAt. +func (s *UserItemInfo) SetCreatedAt(val time.Time) { + s.CreatedAt = val +} + +// SetUpdatedAt sets the value of UpdatedAt. +func (s *UserItemInfo) SetUpdatedAt(val time.Time) { + s.UpdatedAt = val +} + +// SetSubscriptionUrl sets the value of SubscriptionUrl. +func (s *UserItemInfo) SetSubscriptionUrl(val string) { + s.SubscriptionUrl = val +} + +// SetActiveInternalSquads sets the value of ActiveInternalSquads. +func (s *UserItemInfo) SetActiveInternalSquads(val []ActiveInternalSquad) { + s.ActiveInternalSquads = val +} + +// SetUserTraffic sets the value of UserTraffic. +func (s *UserItemInfo) SetUserTraffic(val UserTrafficItem) { + s.UserTraffic = val +} + +type UserItemInfoStatus string + +const ( + UserItemInfoStatusACTIVE UserItemInfoStatus = "ACTIVE" + UserItemInfoStatusDISABLED UserItemInfoStatus = "DISABLED" + UserItemInfoStatusLIMITED UserItemInfoStatus = "LIMITED" + UserItemInfoStatusEXPIRED UserItemInfoStatus = "EXPIRED" +) + +// AllValues returns all UserItemInfoStatus values. +func (UserItemInfoStatus) AllValues() []UserItemInfoStatus { + return []UserItemInfoStatus{ + UserItemInfoStatusACTIVE, + UserItemInfoStatusDISABLED, + UserItemInfoStatusLIMITED, + UserItemInfoStatusEXPIRED, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s UserItemInfoStatus) MarshalText() ([]byte, error) { + switch s { + case UserItemInfoStatusACTIVE: + return []byte(s), nil + case UserItemInfoStatusDISABLED: + return []byte(s), nil + case UserItemInfoStatusLIMITED: + return []byte(s), nil + case UserItemInfoStatusEXPIRED: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *UserItemInfoStatus) UnmarshalText(data []byte) error { + switch UserItemInfoStatus(data) { + case UserItemInfoStatusACTIVE: + *s = UserItemInfoStatusACTIVE + return nil + case UserItemInfoStatusDISABLED: + *s = UserItemInfoStatusDISABLED + return nil + case UserItemInfoStatusLIMITED: + *s = UserItemInfoStatusLIMITED + return nil + case UserItemInfoStatusEXPIRED: + *s = UserItemInfoStatusEXPIRED + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Available reset periods. +type UserItemInfoTrafficLimitStrategy string + +const ( + UserItemInfoTrafficLimitStrategyNORESET UserItemInfoTrafficLimitStrategy = "NO_RESET" + UserItemInfoTrafficLimitStrategyDAY UserItemInfoTrafficLimitStrategy = "DAY" + UserItemInfoTrafficLimitStrategyWEEK UserItemInfoTrafficLimitStrategy = "WEEK" + UserItemInfoTrafficLimitStrategyMONTH UserItemInfoTrafficLimitStrategy = "MONTH" + UserItemInfoTrafficLimitStrategyMONTHROLLING UserItemInfoTrafficLimitStrategy = "MONTH_ROLLING" +) + +// AllValues returns all UserItemInfoTrafficLimitStrategy values. +func (UserItemInfoTrafficLimitStrategy) AllValues() []UserItemInfoTrafficLimitStrategy { + return []UserItemInfoTrafficLimitStrategy{ + UserItemInfoTrafficLimitStrategyNORESET, + UserItemInfoTrafficLimitStrategyDAY, + UserItemInfoTrafficLimitStrategyWEEK, + UserItemInfoTrafficLimitStrategyMONTH, + UserItemInfoTrafficLimitStrategyMONTHROLLING, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s UserItemInfoTrafficLimitStrategy) MarshalText() ([]byte, error) { + switch s { + case UserItemInfoTrafficLimitStrategyNORESET: + return []byte(s), nil + case UserItemInfoTrafficLimitStrategyDAY: + return []byte(s), nil + case UserItemInfoTrafficLimitStrategyWEEK: + return []byte(s), nil + case UserItemInfoTrafficLimitStrategyMONTH: + return []byte(s), nil + case UserItemInfoTrafficLimitStrategyMONTHROLLING: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *UserItemInfoTrafficLimitStrategy) UnmarshalText(data []byte) error { + switch UserItemInfoTrafficLimitStrategy(data) { + case UserItemInfoTrafficLimitStrategyNORESET: + *s = UserItemInfoTrafficLimitStrategyNORESET + return nil + case UserItemInfoTrafficLimitStrategyDAY: + *s = UserItemInfoTrafficLimitStrategyDAY + return nil + case UserItemInfoTrafficLimitStrategyWEEK: + *s = UserItemInfoTrafficLimitStrategyWEEK + return nil + case UserItemInfoTrafficLimitStrategyMONTH: + *s = UserItemInfoTrafficLimitStrategyMONTH + return nil + case UserItemInfoTrafficLimitStrategyMONTHROLLING: + *s = UserItemInfoTrafficLimitStrategyMONTHROLLING + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/UserMetadataResponseResponse +type UserMetadataResponseResponse struct { + Response UserMetadataResponseResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *UserMetadataResponseResponse) GetResponse() UserMetadataResponseResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *UserMetadataResponseResponse) SetResponse(val UserMetadataResponseResponseResponse) { + s.Response = val +} + +func (*UserMetadataResponseResponse) metadataGetNodeMetadataRes() {} +func (*UserMetadataResponseResponse) metadataGetUserMetadataRes() {} +func (*UserMetadataResponseResponse) metadataUpsertNodeMetadataRes() {} +func (*UserMetadataResponseResponse) metadataUpsertUserMetadataRes() {} + +type UserMetadataResponseResponseResponse struct { + Metadata UserMetadataResponseResponseResponseMetadata `json:"metadata"` +} + +// GetMetadata returns the value of Metadata. +func (s *UserMetadataResponseResponseResponse) GetMetadata() UserMetadataResponseResponseResponseMetadata { + return s.Metadata +} + +// SetMetadata sets the value of Metadata. +func (s *UserMetadataResponseResponseResponse) SetMetadata(val UserMetadataResponseResponseResponseMetadata) { + s.Metadata = val +} + +type UserMetadataResponseResponseResponseMetadata struct{} + +// Ref: #/components/schemas/UserResponse +type UserResponse struct { + Response UserItemInfo `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *UserResponse) GetResponse() UserItemInfo { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *UserResponse) SetResponse(val UserItemInfo) { + s.Response = val +} + +func (*UserResponse) usersCreateUserRes() {} +func (*UserResponse) usersDisableUserRes() {} +func (*UserResponse) usersEnableUserRes() {} +func (*UserResponse) usersGetUserByIdRes() {} +func (*UserResponse) usersGetUserByShortUuidRes() {} +func (*UserResponse) usersGetUserByUsernameRes() {} +func (*UserResponse) usersGetUserByUuidRes() {} +func (*UserResponse) usersResetUserTrafficRes() {} +func (*UserResponse) usersRevokeUserSubscriptionRes() {} +func (*UserResponse) usersUpdateUserRes() {} + +// Ref: #/components/schemas/UserSubscriptionHistory +type UserSubscriptionHistory struct { + Total float64 `json:"total"` + Records []Record `json:"records"` +} + +// GetTotal returns the value of Total. +func (s *UserSubscriptionHistory) GetTotal() float64 { + return s.Total +} + +// GetRecords returns the value of Records. +func (s *UserSubscriptionHistory) GetRecords() []Record { + return s.Records +} + +// SetTotal sets the value of Total. +func (s *UserSubscriptionHistory) SetTotal(val float64) { + s.Total = val +} + +// SetRecords sets the value of Records. +func (s *UserSubscriptionHistory) SetRecords(val []Record) { + s.Records = val +} + +// Ref: #/components/schemas/UserTrafficItem +type UserTrafficItem struct { + UsedTrafficBytes float64 `json:"usedTrafficBytes"` + LifetimeUsedTrafficBytes float64 `json:"lifetimeUsedTrafficBytes"` + OnlineAt NilDateTime `json:"onlineAt"` + FirstConnectedAt NilDateTime `json:"firstConnectedAt"` + LastConnectedNodeUuid NilUUID `json:"lastConnectedNodeUuid"` +} + +// GetUsedTrafficBytes returns the value of UsedTrafficBytes. +func (s *UserTrafficItem) GetUsedTrafficBytes() float64 { + return s.UsedTrafficBytes +} + +// GetLifetimeUsedTrafficBytes returns the value of LifetimeUsedTrafficBytes. +func (s *UserTrafficItem) GetLifetimeUsedTrafficBytes() float64 { + return s.LifetimeUsedTrafficBytes +} + +// GetOnlineAt returns the value of OnlineAt. +func (s *UserTrafficItem) GetOnlineAt() NilDateTime { + return s.OnlineAt +} + +// GetFirstConnectedAt returns the value of FirstConnectedAt. +func (s *UserTrafficItem) GetFirstConnectedAt() NilDateTime { + return s.FirstConnectedAt +} + +// GetLastConnectedNodeUuid returns the value of LastConnectedNodeUuid. +func (s *UserTrafficItem) GetLastConnectedNodeUuid() NilUUID { + return s.LastConnectedNodeUuid +} + +// SetUsedTrafficBytes sets the value of UsedTrafficBytes. +func (s *UserTrafficItem) SetUsedTrafficBytes(val float64) { + s.UsedTrafficBytes = val +} + +// SetLifetimeUsedTrafficBytes sets the value of LifetimeUsedTrafficBytes. +func (s *UserTrafficItem) SetLifetimeUsedTrafficBytes(val float64) { + s.LifetimeUsedTrafficBytes = val +} + +// SetOnlineAt sets the value of OnlineAt. +func (s *UserTrafficItem) SetOnlineAt(val NilDateTime) { + s.OnlineAt = val +} + +// SetFirstConnectedAt sets the value of FirstConnectedAt. +func (s *UserTrafficItem) SetFirstConnectedAt(val NilDateTime) { + s.FirstConnectedAt = val +} + +// SetLastConnectedNodeUuid sets the value of LastConnectedNodeUuid. +func (s *UserTrafficItem) SetLastConnectedNodeUuid(val NilUUID) { + s.LastConnectedNodeUuid = val +} + +// Ref: #/components/schemas/UsersResponse +type UsersResponse struct { + Response []UserItemInfo `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *UsersResponse) GetResponse() []UserItemInfo { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *UsersResponse) SetResponse(val []UserItemInfo) { + s.Response = val +} + +func (*UsersResponse) usersGetUserByTelegramIdRes() {} +func (*UsersResponse) usersGetUsersByEmailRes() {} +func (*UsersResponse) usersGetUsersByTagRes() {} + +// Ref: #/components/schemas/ValidationError +type ValidationError struct { + Validation string `json:"validation"` + Code string `json:"code"` + Message string `json:"message"` + Path []string `json:"path"` +} + +// GetValidation returns the value of Validation. +func (s *ValidationError) GetValidation() string { + return s.Validation +} + +// GetCode returns the value of Code. +func (s *ValidationError) GetCode() string { + return s.Code +} + +// GetMessage returns the value of Message. +func (s *ValidationError) GetMessage() string { + return s.Message +} + +// GetPath returns the value of Path. +func (s *ValidationError) GetPath() []string { + return s.Path +} + +// SetValidation sets the value of Validation. +func (s *ValidationError) SetValidation(val string) { + s.Validation = val +} + +// SetCode sets the value of Code. +func (s *ValidationError) SetCode(val string) { + s.Code = val +} + +// SetMessage sets the value of Message. +func (s *ValidationError) SetMessage(val string) { + s.Message = val +} + +// SetPath sets the value of Path. +func (s *ValidationError) SetPath(val []string) { + s.Path = val +} + +// Ref: #/components/schemas/VerifyPasskeyRegistrationResponse +type VerifyPasskeyRegistrationResponse struct { + Response VerifyPasskeyRegistrationResponseResponse `json:"response"` +} + +// GetResponse returns the value of Response. +func (s *VerifyPasskeyRegistrationResponse) GetResponse() VerifyPasskeyRegistrationResponseResponse { + return s.Response +} + +// SetResponse sets the value of Response. +func (s *VerifyPasskeyRegistrationResponse) SetResponse(val VerifyPasskeyRegistrationResponseResponse) { + s.Response = val +} + +type VerifyPasskeyRegistrationResponseResponse struct { + Verified bool `json:"verified"` +} + +// GetVerified returns the value of Verified. +func (s *VerifyPasskeyRegistrationResponseResponse) GetVerified() bool { + return s.Verified +} + +// SetVerified sets the value of Verified. +func (s *VerifyPasskeyRegistrationResponseResponse) SetVerified(val bool) { + s.Verified = val +} + +// VerifyPasskeyRegistrationResponseStatusCode wraps VerifyPasskeyRegistrationResponse with StatusCode. +type VerifyPasskeyRegistrationResponseStatusCode struct { + StatusCode int + Response VerifyPasskeyRegistrationResponse +} + +// GetStatusCode returns the value of StatusCode. +func (s *VerifyPasskeyRegistrationResponseStatusCode) GetStatusCode() int { + return s.StatusCode +} + +// GetResponse returns the value of Response. +func (s *VerifyPasskeyRegistrationResponseStatusCode) GetResponse() VerifyPasskeyRegistrationResponse { + return s.Response +} + +// SetStatusCode sets the value of StatusCode. +func (s *VerifyPasskeyRegistrationResponseStatusCode) SetStatusCode(val int) { + s.StatusCode = val +} + +// SetResponse sets the value of Response. +func (s *VerifyPasskeyRegistrationResponseStatusCode) SetResponse(val VerifyPasskeyRegistrationResponse) { + s.Response = val +} + +func (*VerifyPasskeyRegistrationResponseStatusCode) passkeyPasskeyRegistrationVerifyRes() {} + +// Ref: #/components/schemas/Version +type Version struct { + Xray string `json:"xray"` + Node string `json:"node"` +} + +// GetXray returns the value of Xray. +func (s *Version) GetXray() string { + return s.Xray +} + +// GetNode returns the value of Node. +func (s *Version) GetNode() string { + return s.Node +} + +// SetXray sets the value of Xray. +func (s *Version) SetXray(val string) { + s.Xray = val +} + +// SetNode sets the value of Node. +func (s *Version) SetNode(val string) { + s.Node = val +} + +// Ref: #/components/schemas/XrayReportItem +type XrayReportItem struct { + Email NilString `json:"email"` + Level NilFloat64 `json:"level"` + Protocol NilString `json:"protocol"` + Network string `json:"network"` + Source NilString `json:"source"` + Destination string `json:"destination"` + RouteTarget NilString `json:"routeTarget"` + OriginalTarget NilString `json:"originalTarget"` + InboundTag NilString `json:"inboundTag"` + InboundName NilString `json:"inboundName"` + InboundLocal NilString `json:"inboundLocal"` + OutboundTag NilString `json:"outboundTag"` + Ts float64 `json:"ts"` +} + +// GetEmail returns the value of Email. +func (s *XrayReportItem) GetEmail() NilString { + return s.Email +} + +// GetLevel returns the value of Level. +func (s *XrayReportItem) GetLevel() NilFloat64 { + return s.Level +} + +// GetProtocol returns the value of Protocol. +func (s *XrayReportItem) GetProtocol() NilString { + return s.Protocol +} + +// GetNetwork returns the value of Network. +func (s *XrayReportItem) GetNetwork() string { + return s.Network +} + +// GetSource returns the value of Source. +func (s *XrayReportItem) GetSource() NilString { + return s.Source +} + +// GetDestination returns the value of Destination. +func (s *XrayReportItem) GetDestination() string { + return s.Destination +} + +// GetRouteTarget returns the value of RouteTarget. +func (s *XrayReportItem) GetRouteTarget() NilString { + return s.RouteTarget +} + +// GetOriginalTarget returns the value of OriginalTarget. +func (s *XrayReportItem) GetOriginalTarget() NilString { + return s.OriginalTarget +} + +// GetInboundTag returns the value of InboundTag. +func (s *XrayReportItem) GetInboundTag() NilString { + return s.InboundTag +} + +// GetInboundName returns the value of InboundName. +func (s *XrayReportItem) GetInboundName() NilString { + return s.InboundName +} + +// GetInboundLocal returns the value of InboundLocal. +func (s *XrayReportItem) GetInboundLocal() NilString { + return s.InboundLocal +} + +// GetOutboundTag returns the value of OutboundTag. +func (s *XrayReportItem) GetOutboundTag() NilString { + return s.OutboundTag +} + +// GetTs returns the value of Ts. +func (s *XrayReportItem) GetTs() float64 { + return s.Ts +} + +// SetEmail sets the value of Email. +func (s *XrayReportItem) SetEmail(val NilString) { + s.Email = val +} + +// SetLevel sets the value of Level. +func (s *XrayReportItem) SetLevel(val NilFloat64) { + s.Level = val +} + +// SetProtocol sets the value of Protocol. +func (s *XrayReportItem) SetProtocol(val NilString) { + s.Protocol = val +} + +// SetNetwork sets the value of Network. +func (s *XrayReportItem) SetNetwork(val string) { + s.Network = val +} + +// SetSource sets the value of Source. +func (s *XrayReportItem) SetSource(val NilString) { + s.Source = val +} + +// SetDestination sets the value of Destination. +func (s *XrayReportItem) SetDestination(val string) { + s.Destination = val +} + +// SetRouteTarget sets the value of RouteTarget. +func (s *XrayReportItem) SetRouteTarget(val NilString) { + s.RouteTarget = val +} + +// SetOriginalTarget sets the value of OriginalTarget. +func (s *XrayReportItem) SetOriginalTarget(val NilString) { + s.OriginalTarget = val +} + +// SetInboundTag sets the value of InboundTag. +func (s *XrayReportItem) SetInboundTag(val NilString) { + s.InboundTag = val +} + +// SetInboundName sets the value of InboundName. +func (s *XrayReportItem) SetInboundName(val NilString) { + s.InboundName = val +} + +// SetInboundLocal sets the value of InboundLocal. +func (s *XrayReportItem) SetInboundLocal(val NilString) { + s.InboundLocal = val +} + +// SetOutboundTag sets the value of OutboundTag. +func (s *XrayReportItem) SetOutboundTag(val NilString) { + s.OutboundTag = val +} + +// SetTs sets the value of Ts. +func (s *XrayReportItem) SetTs(val float64) { + s.Ts = val +} diff --git a/api/oas_security_gen.go b/api/oas_security_gen.go new file mode 100644 index 0000000..b197e62 --- /dev/null +++ b/api/oas_security_gen.go @@ -0,0 +1,226 @@ +// 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{}, + BandwidthStatsNodesGetNodeUserUsageOperation: []string{}, + BandwidthStatsNodesGetStatsNodeUsersUsageOperation: []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{}, + HostsBulkActionsSetInboundToHostsOperation: []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{}, + SystemEncryptHappCryptoLinkOperation: []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{}, + 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 +} diff --git a/api/oas_test_examples_gen_test.go b/api/oas_test_examples_gen_test.go new file mode 100644 index 0000000..6a7302d --- /dev/null +++ b/api/oas_test_examples_gen_test.go @@ -0,0 +1,5229 @@ +// Code generated by ogen, DO NOT EDIT. + +package api + +import ( + "github.com/go-faster/jx" + + std "encoding/json" + "testing" + + "github.com/stretchr/testify/require" +) + +func TestActionReportItem_EncodeDecode(t *testing.T) { + var typ ActionReportItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 ActionReportItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestActiveInternalSquad_EncodeDecode(t *testing.T) { + var typ ActiveInternalSquad + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 ActiveInternalSquad + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestAllHwidDevices_EncodeDecode(t *testing.T) { + var typ AllHwidDevices + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 AllHwidDevices + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestBadRequestError_EncodeDecode(t *testing.T) { + var typ BadRequestError + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 BadRequestError + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestBandwidthLastTwoDays_EncodeDecode(t *testing.T) { + var typ BandwidthLastTwoDays + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 BandwidthLastTwoDays + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestBillingHistoryItem_EncodeDecode(t *testing.T) { + var typ BillingHistoryItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 BillingHistoryItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestBillingHistoryResponse_EncodeDecode(t *testing.T) { + var typ BillingHistoryResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 BillingHistoryResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestBillingHistoryResponseResponse_EncodeDecode(t *testing.T) { + var typ BillingHistoryResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 BillingHistoryResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestBillingHistoryResponseResponseRecordsItem_EncodeDecode(t *testing.T) { + var typ BillingHistoryResponseResponseRecordsItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 BillingHistoryResponseResponseRecordsItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestBillingHistoryResponseResponseRecordsItemProvider_EncodeDecode(t *testing.T) { + var typ BillingHistoryResponseResponseRecordsItemProvider + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 BillingHistoryResponseResponseRecordsItemProvider + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestBillingNode_EncodeDecode(t *testing.T) { + var typ BillingNode + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 BillingNode + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestBillingNodesResponse_EncodeDecode(t *testing.T) { + var typ BillingNodesResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 BillingNodesResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestBillingNodesResponseResponse_EncodeDecode(t *testing.T) { + var typ BillingNodesResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 BillingNodesResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestBillingNodesResponseResponseBillingNodesItem_EncodeDecode(t *testing.T) { + var typ BillingNodesResponseResponseBillingNodesItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 BillingNodesResponseResponseBillingNodesItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestBillingNodesResponseResponseBillingNodesItemProvider_EncodeDecode(t *testing.T) { + var typ BillingNodesResponseResponseBillingNodesItemProvider + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 BillingNodesResponseResponseBillingNodesItemProvider + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestBillingNodesResponseResponseStats_EncodeDecode(t *testing.T) { + var typ BillingNodesResponseResponseStats + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 BillingNodesResponseResponseStats + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestBrandingSettings_EncodeDecode(t *testing.T) { + var typ BrandingSettings + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 BrandingSettings + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestBulkActionResponse_EncodeDecode(t *testing.T) { + var typ BulkActionResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 BulkActionResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestBulkActionResponseResponse_EncodeDecode(t *testing.T) { + var typ BulkActionResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 BulkActionResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestBulkAllExtendExpirationDateRequest_EncodeDecode(t *testing.T) { + var typ BulkAllExtendExpirationDateRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 BulkAllExtendExpirationDateRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestBulkAllUpdateUsersRequest_EncodeDecode(t *testing.T) { + var typ BulkAllUpdateUsersRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 BulkAllUpdateUsersRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestBulkAllUpdateUsersRequestStatus_EncodeDecode(t *testing.T) { + var typ BulkAllUpdateUsersRequestStatus + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 BulkAllUpdateUsersRequestStatus + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestBulkAllUpdateUsersRequestTrafficLimitStrategy_EncodeDecode(t *testing.T) { + var typ BulkAllUpdateUsersRequestTrafficLimitStrategy + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 BulkAllUpdateUsersRequestTrafficLimitStrategy + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestBulkDeleteUsersByStatusRequest_EncodeDecode(t *testing.T) { + var typ BulkDeleteUsersByStatusRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 BulkDeleteUsersByStatusRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestBulkDeleteUsersByStatusRequestStatus_EncodeDecode(t *testing.T) { + var typ BulkDeleteUsersByStatusRequestStatus + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 BulkDeleteUsersByStatusRequestStatus + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestBulkExtendExpirationDateRequest_EncodeDecode(t *testing.T) { + var typ BulkExtendExpirationDateRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 BulkExtendExpirationDateRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestBulkNodesActionsRequest_EncodeDecode(t *testing.T) { + var typ BulkNodesActionsRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 BulkNodesActionsRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestBulkNodesActionsRequestAction_EncodeDecode(t *testing.T) { + var typ BulkNodesActionsRequestAction + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 BulkNodesActionsRequestAction + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestBulkNodesUpdateRequest_EncodeDecode(t *testing.T) { + var typ BulkNodesUpdateRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 BulkNodesUpdateRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestBulkNodesUpdateRequestFields_EncodeDecode(t *testing.T) { + var typ BulkNodesUpdateRequestFields + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 BulkNodesUpdateRequestFields + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestBulkUpdateUsersRequest_EncodeDecode(t *testing.T) { + var typ BulkUpdateUsersRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 BulkUpdateUsersRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestBulkUpdateUsersRequestFields_EncodeDecode(t *testing.T) { + var typ BulkUpdateUsersRequestFields + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 BulkUpdateUsersRequestFields + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestBulkUpdateUsersRequestFieldsStatus_EncodeDecode(t *testing.T) { + var typ BulkUpdateUsersRequestFieldsStatus + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 BulkUpdateUsersRequestFieldsStatus + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestBulkUpdateUsersRequestFieldsTrafficLimitStrategy_EncodeDecode(t *testing.T) { + var typ BulkUpdateUsersRequestFieldsTrafficLimitStrategy + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 BulkUpdateUsersRequestFieldsTrafficLimitStrategy + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestBulkUpdateUsersSquadsRequest_EncodeDecode(t *testing.T) { + var typ BulkUpdateUsersSquadsRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 BulkUpdateUsersSquadsRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestBulkUuidsRequest_EncodeDecode(t *testing.T) { + var typ BulkUuidsRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 BulkUuidsRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestBulkUuidsRequest2_EncodeDecode(t *testing.T) { + var typ BulkUuidsRequest2 + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 BulkUuidsRequest2 + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestByAppItem_EncodeDecode(t *testing.T) { + var typ ByAppItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 ByAppItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestCloneNodePluginRequestRequest_EncodeDecode(t *testing.T) { + var typ CloneNodePluginRequestRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 CloneNodePluginRequestRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestCondition_EncodeDecode(t *testing.T) { + var typ Condition + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 Condition + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestConditionOperator_EncodeDecode(t *testing.T) { + var typ ConditionOperator + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 ConditionOperator + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestConfig_EncodeDecode(t *testing.T) { + var typ Config + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 Config + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestConfigProfile_EncodeDecode(t *testing.T) { + var typ ConfigProfile + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 ConfigProfile + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestConfigProfileItem_EncodeDecode(t *testing.T) { + var typ ConfigProfileItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 ConfigProfileItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestConfigProfileRef_EncodeDecode(t *testing.T) { + var typ ConfigProfileRef + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 ConfigProfileRef + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestConfigProfileResponse_EncodeDecode(t *testing.T) { + var typ ConfigProfileResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 ConfigProfileResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestConfigProfilesResponse_EncodeDecode(t *testing.T) { + var typ ConfigProfilesResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 ConfigProfilesResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestConfigProfilesResponseResponse_EncodeDecode(t *testing.T) { + var typ ConfigProfilesResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 ConfigProfilesResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestCreateApiTokenRequest_EncodeDecode(t *testing.T) { + var typ CreateApiTokenRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 CreateApiTokenRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestCreateApiTokenResponse_EncodeDecode(t *testing.T) { + var typ CreateApiTokenResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 CreateApiTokenResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestCreateApiTokenResponseResponse_EncodeDecode(t *testing.T) { + var typ CreateApiTokenResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 CreateApiTokenResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestCreateConfigProfileRequest_EncodeDecode(t *testing.T) { + var typ CreateConfigProfileRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 CreateConfigProfileRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestCreateConfigProfileRequestConfig_EncodeDecode(t *testing.T) { + var typ CreateConfigProfileRequestConfig + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 CreateConfigProfileRequestConfig + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestCreateExternalSquadRequest_EncodeDecode(t *testing.T) { + var typ CreateExternalSquadRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 CreateExternalSquadRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestCreateHostRequest_EncodeDecode(t *testing.T) { + var typ CreateHostRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 CreateHostRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestCreateHostRequestAlpn_EncodeDecode(t *testing.T) { + var typ CreateHostRequestAlpn + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 CreateHostRequestAlpn + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestCreateHostRequestExcludeFromSubscriptionTypesItem_EncodeDecode(t *testing.T) { + var typ CreateHostRequestExcludeFromSubscriptionTypesItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 CreateHostRequestExcludeFromSubscriptionTypesItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestCreateHostRequestFingerprint_EncodeDecode(t *testing.T) { + var typ CreateHostRequestFingerprint + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 CreateHostRequestFingerprint + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestCreateHostRequestSecurityLayer_EncodeDecode(t *testing.T) { + var typ CreateHostRequestSecurityLayer + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 CreateHostRequestSecurityLayer + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestCreateInfraBillingHistoryRecordRequest_EncodeDecode(t *testing.T) { + var typ CreateInfraBillingHistoryRecordRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 CreateInfraBillingHistoryRecordRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestCreateInfraBillingNodeRequest_EncodeDecode(t *testing.T) { + var typ CreateInfraBillingNodeRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 CreateInfraBillingNodeRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestCreateInfraProviderRequest_EncodeDecode(t *testing.T) { + var typ CreateInfraProviderRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 CreateInfraProviderRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestCreateInternalSquadRequest_EncodeDecode(t *testing.T) { + var typ CreateInternalSquadRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 CreateInternalSquadRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestCreateNodePluginRequest_EncodeDecode(t *testing.T) { + var typ CreateNodePluginRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 CreateNodePluginRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestCreateNodePluginResponse_EncodeDecode(t *testing.T) { + var typ CreateNodePluginResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 CreateNodePluginResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestCreateNodeRequest_EncodeDecode(t *testing.T) { + var typ CreateNodeRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 CreateNodeRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestCreateSubscriptionPageConfigRequest_EncodeDecode(t *testing.T) { + var typ CreateSubscriptionPageConfigRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 CreateSubscriptionPageConfigRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestCreateSubscriptionPageConfigResponse_EncodeDecode(t *testing.T) { + var typ CreateSubscriptionPageConfigResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 CreateSubscriptionPageConfigResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestCreateSubscriptionTemplateRequest_EncodeDecode(t *testing.T) { + var typ CreateSubscriptionTemplateRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 CreateSubscriptionTemplateRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestCreateSubscriptionTemplateRequestTemplateType_EncodeDecode(t *testing.T) { + var typ CreateSubscriptionTemplateRequestTemplateType + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 CreateSubscriptionTemplateRequestTemplateType + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestCreateUserHwidDeviceRequest_EncodeDecode(t *testing.T) { + var typ CreateUserHwidDeviceRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 CreateUserHwidDeviceRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestCreateUserRequest_EncodeDecode(t *testing.T) { + var typ CreateUserRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 CreateUserRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestCreateUserRequestStatus_EncodeDecode(t *testing.T) { + var typ CreateUserRequestStatus + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 CreateUserRequestStatus + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestCreateUserRequestTrafficLimitStrategy_EncodeDecode(t *testing.T) { + var typ CreateUserRequestTrafficLimitStrategy + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 CreateUserRequestTrafficLimitStrategy + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestCustomRemark_EncodeDecode(t *testing.T) { + var typ CustomRemark + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 CustomRemark + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestDebugSrrMatcherRequest_EncodeDecode(t *testing.T) { + var typ DebugSrrMatcherRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 DebugSrrMatcherRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestDebugSrrMatcherResponse_EncodeDecode(t *testing.T) { + var typ DebugSrrMatcherResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 DebugSrrMatcherResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestDebugSrrMatcherResponseResponse_EncodeDecode(t *testing.T) { + var typ DebugSrrMatcherResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 DebugSrrMatcherResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestDebugSrrMatcherResponseResponseInputHeaders_EncodeDecode(t *testing.T) { + var typ DebugSrrMatcherResponseResponseInputHeaders + typ = make(DebugSrrMatcherResponseResponseInputHeaders) + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 DebugSrrMatcherResponseResponseInputHeaders + typ2 = make(DebugSrrMatcherResponseResponseInputHeaders) + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestDebugSrrMatcherResponseResponseOutputHeaders_EncodeDecode(t *testing.T) { + var typ DebugSrrMatcherResponseResponseOutputHeaders + typ = make(DebugSrrMatcherResponseResponseOutputHeaders) + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 DebugSrrMatcherResponseResponseOutputHeaders + typ2 = make(DebugSrrMatcherResponseResponseOutputHeaders) + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestDebugSrrMatcherResponseResponseResponseType_EncodeDecode(t *testing.T) { + var typ DebugSrrMatcherResponseResponseResponseType + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 DebugSrrMatcherResponseResponseResponseType + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestDebugSrrMatcherSettings_EncodeDecode(t *testing.T) { + var typ DebugSrrMatcherSettings + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 DebugSrrMatcherSettings + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestDeleteAllUserHwidDevicesRequest_EncodeDecode(t *testing.T) { + var typ DeleteAllUserHwidDevicesRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 DeleteAllUserHwidDevicesRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestDeleteApiTokenResponse_EncodeDecode(t *testing.T) { + var typ DeleteApiTokenResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 DeleteApiTokenResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestDeletePasskeyRequest_EncodeDecode(t *testing.T) { + var typ DeletePasskeyRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 DeletePasskeyRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestDeleteResponse_EncodeDecode(t *testing.T) { + var typ DeleteResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 DeleteResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestDeleteResponseResponse_EncodeDecode(t *testing.T) { + var typ DeleteResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 DeleteResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestDeleteSnippetRequest_EncodeDecode(t *testing.T) { + var typ DeleteSnippetRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 DeleteSnippetRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestDeleteUserHwidDeviceRequest_EncodeDecode(t *testing.T) { + var typ DeleteUserHwidDeviceRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 DeleteUserHwidDeviceRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestDevice_EncodeDecode(t *testing.T) { + var typ Device + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 Device + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestDropConnectionsRequest_EncodeDecode(t *testing.T) { + var typ DropConnectionsRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 DropConnectionsRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestDropConnectionsRequestDropBy_EncodeDecode(t *testing.T) { + var typ DropConnectionsRequestDropBy + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 DropConnectionsRequestDropBy + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestDropConnectionsRequestDropBy0_EncodeDecode(t *testing.T) { + var typ DropConnectionsRequestDropBy0 + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 DropConnectionsRequestDropBy0 + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestDropConnectionsRequestDropBy0By_EncodeDecode(t *testing.T) { + var typ DropConnectionsRequestDropBy0By + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 DropConnectionsRequestDropBy0By + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestDropConnectionsRequestDropBy1_EncodeDecode(t *testing.T) { + var typ DropConnectionsRequestDropBy1 + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 DropConnectionsRequestDropBy1 + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestDropConnectionsRequestDropBy1By_EncodeDecode(t *testing.T) { + var typ DropConnectionsRequestDropBy1By + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 DropConnectionsRequestDropBy1By + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestDropConnectionsRequestTargetNodes_EncodeDecode(t *testing.T) { + var typ DropConnectionsRequestTargetNodes + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 DropConnectionsRequestTargetNodes + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestDropConnectionsRequestTargetNodes0_EncodeDecode(t *testing.T) { + var typ DropConnectionsRequestTargetNodes0 + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 DropConnectionsRequestTargetNodes0 + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestDropConnectionsRequestTargetNodes0Target_EncodeDecode(t *testing.T) { + var typ DropConnectionsRequestTargetNodes0Target + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 DropConnectionsRequestTargetNodes0Target + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestDropConnectionsRequestTargetNodes1_EncodeDecode(t *testing.T) { + var typ DropConnectionsRequestTargetNodes1 + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 DropConnectionsRequestTargetNodes1 + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestDropConnectionsRequestTargetNodes1Target_EncodeDecode(t *testing.T) { + var typ DropConnectionsRequestTargetNodes1Target + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 DropConnectionsRequestTargetNodes1Target + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestEncryptHappCryptoLinkRequest_EncodeDecode(t *testing.T) { + var typ EncryptHappCryptoLinkRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 EncryptHappCryptoLinkRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestEncryptHappCryptoLinkResponse_EncodeDecode(t *testing.T) { + var typ EncryptHappCryptoLinkResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 EncryptHappCryptoLinkResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestEncryptHappCryptoLinkResponseResponse_EncodeDecode(t *testing.T) { + var typ EncryptHappCryptoLinkResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 EncryptHappCryptoLinkResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestEventResponse_EncodeDecode(t *testing.T) { + var typ EventResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 EventResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestEventResponseResponse_EncodeDecode(t *testing.T) { + var typ EventResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 EventResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestExternalSquad_EncodeDecode(t *testing.T) { + var typ ExternalSquad + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 ExternalSquad + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestExternalSquadResponseHeaders_EncodeDecode(t *testing.T) { + var typ ExternalSquadResponseHeaders + typ = make(ExternalSquadResponseHeaders) + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 ExternalSquadResponseHeaders + typ2 = make(ExternalSquadResponseHeaders) + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestExternalSquadResponseResponse_EncodeDecode(t *testing.T) { + var typ ExternalSquadResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 ExternalSquadResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestExternalSquadsResponInfoItem_EncodeDecode(t *testing.T) { + var typ ExternalSquadsResponInfoItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 ExternalSquadsResponInfoItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestExternalSquadsResponse_EncodeDecode(t *testing.T) { + var typ ExternalSquadsResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 ExternalSquadsResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestExternalSquadsResponseResponse_EncodeDecode(t *testing.T) { + var typ ExternalSquadsResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 ExternalSquadsResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestFetchIpsResultResponse_EncodeDecode(t *testing.T) { + var typ FetchIpsResultResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 FetchIpsResultResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestFetchIpsResultResponseResponse_EncodeDecode(t *testing.T) { + var typ FetchIpsResultResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 FetchIpsResultResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestFetchIpsResultResponseResponseProgress_EncodeDecode(t *testing.T) { + var typ FetchIpsResultResponseResponseProgress + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 FetchIpsResultResponseResponseProgress + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestFetchIpsResultResponseResponseResult_EncodeDecode(t *testing.T) { + var typ FetchIpsResultResponseResponseResult + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 FetchIpsResultResponseResponseResult + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestFetchIpsResultResponseResponseResultNodesItem_EncodeDecode(t *testing.T) { + var typ FetchIpsResultResponseResponseResultNodesItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 FetchIpsResultResponseResponseResultNodesItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestFetchUsersIpsResultResponse_EncodeDecode(t *testing.T) { + var typ FetchUsersIpsResultResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 FetchUsersIpsResultResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestFetchUsersIpsResultResponseResponse_EncodeDecode(t *testing.T) { + var typ FetchUsersIpsResultResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 FetchUsersIpsResultResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestFetchUsersIpsResultResponseResponseResult_EncodeDecode(t *testing.T) { + var typ FetchUsersIpsResultResponseResponseResult + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 FetchUsersIpsResultResponseResponseResult + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestFetchUsersIpsResultResponseResponseResultUsersItem_EncodeDecode(t *testing.T) { + var typ FetchUsersIpsResultResponseResponseResultUsersItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 FetchUsersIpsResultResponseResponseResultUsersItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestFindAllApiTokensResponse_EncodeDecode(t *testing.T) { + var typ FindAllApiTokensResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 FindAllApiTokensResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestFindAllApiTokensResponseResponse_EncodeDecode(t *testing.T) { + var typ FindAllApiTokensResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 FindAllApiTokensResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestFindAllApiTokensResponseResponseApiKeysItem_EncodeDecode(t *testing.T) { + var typ FindAllApiTokensResponseResponseApiKeysItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 FindAllApiTokensResponseResponseApiKeysItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestFindAllApiTokensResponseResponseDocs_EncodeDecode(t *testing.T) { + var typ FindAllApiTokensResponseResponseDocs + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 FindAllApiTokensResponseResponseDocs + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestForbiddenError_EncodeDecode(t *testing.T) { + var typ ForbiddenError + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 ForbiddenError + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGenerateX25519Response_EncodeDecode(t *testing.T) { + var typ GenerateX25519Response + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GenerateX25519Response + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGenerateX25519ResponseResponse_EncodeDecode(t *testing.T) { + var typ GenerateX25519ResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GenerateX25519ResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGenerateX25519ResponseResponseKeypairsItem_EncodeDecode(t *testing.T) { + var typ GenerateX25519ResponseResponseKeypairsItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GenerateX25519ResponseResponseKeypairsItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGeneric_EncodeDecode(t *testing.T) { + var typ Generic + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 Generic + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetAllHwidDevicesResponse_EncodeDecode(t *testing.T) { + var typ GetAllHwidDevicesResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetAllHwidDevicesResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetAllSubscriptionsResponse_EncodeDecode(t *testing.T) { + var typ GetAllSubscriptionsResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetAllSubscriptionsResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetAllSubscriptionsResponseResponse_EncodeDecode(t *testing.T) { + var typ GetAllSubscriptionsResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetAllSubscriptionsResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetAllUsersResponse_EncodeDecode(t *testing.T) { + var typ GetAllUsersResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetAllUsersResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetAllUsersResponseResponse_EncodeDecode(t *testing.T) { + var typ GetAllUsersResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetAllUsersResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetBandwidthStatsResponse_EncodeDecode(t *testing.T) { + var typ GetBandwidthStatsResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetBandwidthStatsResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetBandwidthStatsResponseResponse_EncodeDecode(t *testing.T) { + var typ GetBandwidthStatsResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetBandwidthStatsResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetConnectionKeysByUuidResponse_EncodeDecode(t *testing.T) { + var typ GetConnectionKeysByUuidResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetConnectionKeysByUuidResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetConnectionKeysByUuidResponseResponse_EncodeDecode(t *testing.T) { + var typ GetConnectionKeysByUuidResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetConnectionKeysByUuidResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetHwidDevicesStatsResponse_EncodeDecode(t *testing.T) { + var typ GetHwidDevicesStatsResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetHwidDevicesStatsResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetHwidDevicesStatsResponseResponse_EncodeDecode(t *testing.T) { + var typ GetHwidDevicesStatsResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetHwidDevicesStatsResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetHwidDevicesStatsResponseResponseByPlatformItem_EncodeDecode(t *testing.T) { + var typ GetHwidDevicesStatsResponseResponseByPlatformItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetHwidDevicesStatsResponseResponseByPlatformItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetHwidDevicesStatsResponseResponseStats_EncodeDecode(t *testing.T) { + var typ GetHwidDevicesStatsResponseResponseStats + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetHwidDevicesStatsResponseResponseStats + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetInfraProvidersResponse_EncodeDecode(t *testing.T) { + var typ GetInfraProvidersResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetInfraProvidersResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetInfraProvidersResponseResponse_EncodeDecode(t *testing.T) { + var typ GetInfraProvidersResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetInfraProvidersResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetInternalSquadAccessibleNodesResponse_EncodeDecode(t *testing.T) { + var typ GetInternalSquadAccessibleNodesResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetInternalSquadAccessibleNodesResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetInternalSquadAccessibleNodesResponseResponse_EncodeDecode(t *testing.T) { + var typ GetInternalSquadAccessibleNodesResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetInternalSquadAccessibleNodesResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetInternalSquadAccessibleNodesResponseResponseAccessibleNodesItem_EncodeDecode(t *testing.T) { + var typ GetInternalSquadAccessibleNodesResponseResponseAccessibleNodesItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetInternalSquadAccessibleNodesResponseResponseAccessibleNodesItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetLegacyStatsNodesUsersUsageResponse_EncodeDecode(t *testing.T) { + var typ GetLegacyStatsNodesUsersUsageResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetLegacyStatsNodesUsersUsageResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetLegacyStatsNodesUsersUsageResponseResponseItem_EncodeDecode(t *testing.T) { + var typ GetLegacyStatsNodesUsersUsageResponseResponseItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetLegacyStatsNodesUsersUsageResponseResponseItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetLegacyStatsUserUsageResponse_EncodeDecode(t *testing.T) { + var typ GetLegacyStatsUserUsageResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetLegacyStatsUserUsageResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetLegacyStatsUserUsageResponseResponseItem_EncodeDecode(t *testing.T) { + var typ GetLegacyStatsUserUsageResponseResponseItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetLegacyStatsUserUsageResponseResponseItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetMetadataResponse_EncodeDecode(t *testing.T) { + var typ GetMetadataResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetMetadataResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetMetadataResponseResponse_EncodeDecode(t *testing.T) { + var typ GetMetadataResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetMetadataResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetMetadataResponseResponseBuild_EncodeDecode(t *testing.T) { + var typ GetMetadataResponseResponseBuild + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetMetadataResponseResponseBuild + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetMetadataResponseResponseGit_EncodeDecode(t *testing.T) { + var typ GetMetadataResponseResponseGit + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetMetadataResponseResponseGit + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetMetadataResponseResponseGitBackend_EncodeDecode(t *testing.T) { + var typ GetMetadataResponseResponseGitBackend + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetMetadataResponseResponseGitBackend + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetMetadataResponseResponseGitFrontend_EncodeDecode(t *testing.T) { + var typ GetMetadataResponseResponseGitFrontend + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetMetadataResponseResponseGitFrontend + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetNodesMetricsResponse_EncodeDecode(t *testing.T) { + var typ GetNodesMetricsResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetNodesMetricsResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetNodesMetricsResponseResponse_EncodeDecode(t *testing.T) { + var typ GetNodesMetricsResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetNodesMetricsResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetNodesMetricsResponseResponseNodesItem_EncodeDecode(t *testing.T) { + var typ GetNodesMetricsResponseResponseNodesItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetNodesMetricsResponseResponseNodesItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetNodesStatisticsResponse_EncodeDecode(t *testing.T) { + var typ GetNodesStatisticsResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetNodesStatisticsResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetNodesStatisticsResponseResponse_EncodeDecode(t *testing.T) { + var typ GetNodesStatisticsResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetNodesStatisticsResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetNodesStatisticsResponseResponseLastSevenDaysItem_EncodeDecode(t *testing.T) { + var typ GetNodesStatisticsResponseResponseLastSevenDaysItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetNodesStatisticsResponseResponseLastSevenDaysItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetPubKeyResponse_EncodeDecode(t *testing.T) { + var typ GetPubKeyResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetPubKeyResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetPubKeyResponseResponse_EncodeDecode(t *testing.T) { + var typ GetPubKeyResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetPubKeyResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponse_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponse_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseConvertedUserInfo_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseConvertedUserInfo + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseConvertedUserInfo + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseHeaders_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseHeaders + typ = make(GetRawSubscriptionByShortUuidResponseResponseHeaders) + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseHeaders + typ2 = make(GetRawSubscriptionByShortUuidResponseResponseHeaders) + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemClientOverrides_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemClientOverrides + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemClientOverrides + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItem_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocol_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocol + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocol + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0 + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0 + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0Flow_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0Flow + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0Flow + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1 + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1 + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2 + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2 + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3 + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3 + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurity_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurity + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurity + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0 + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions0 + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1 + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurityOptions1 + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemStreamOverrides_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemStreamOverrides + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemStreamOverrides + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransport_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransport + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransport + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0 + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0 + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0 + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0 + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0Type_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0Type + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0Type + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1 + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1 + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Request + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders + typ = make(GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders) + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders + typ2 = make(GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1RequestHeaders) + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Response + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders + typ = make(GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders) + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders + typ2 = make(GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1ResponseHeaders) + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Type_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Type + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Type + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1 + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1 + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra + typ = make(GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra) + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra + typ2 = make(GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Extra) + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Mode_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Mode + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Mode + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2 + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2 + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers + typ = make(GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers) + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers + typ2 = make(GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2Headers) + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3 + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3 + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers + typ = make(GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers) + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers + typ2 = make(GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3Headers) + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4 + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4 + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5 + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5 + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6_EncodeDecode(t *testing.T) { + var typ GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6 + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6 + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRecapResponse_EncodeDecode(t *testing.T) { + var typ GetRecapResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRecapResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRecapResponseResponse_EncodeDecode(t *testing.T) { + var typ GetRecapResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRecapResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRecapResponseResponseThisMonth_EncodeDecode(t *testing.T) { + var typ GetRecapResponseResponseThisMonth + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRecapResponseResponseThisMonth + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRecapResponseResponseTotal_EncodeDecode(t *testing.T) { + var typ GetRecapResponseResponseTotal + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRecapResponseResponseTotal + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRemnawaveHealthResponse_EncodeDecode(t *testing.T) { + var typ GetRemnawaveHealthResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRemnawaveHealthResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRemnawaveHealthResponseResponse_EncodeDecode(t *testing.T) { + var typ GetRemnawaveHealthResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRemnawaveHealthResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetRemnawaveHealthResponseResponseRuntimeMetricsItem_EncodeDecode(t *testing.T) { + var typ GetRemnawaveHealthResponseResponseRuntimeMetricsItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetRemnawaveHealthResponseResponseRuntimeMetricsItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetStatsNodeUsersUsageResponse_EncodeDecode(t *testing.T) { + var typ GetStatsNodeUsersUsageResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetStatsNodeUsersUsageResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetStatsNodeUsersUsageResponseResponse_EncodeDecode(t *testing.T) { + var typ GetStatsNodeUsersUsageResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetStatsNodeUsersUsageResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetStatsNodeUsersUsageResponseResponseTopUsersItem_EncodeDecode(t *testing.T) { + var typ GetStatsNodeUsersUsageResponseResponseTopUsersItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetStatsNodeUsersUsageResponseResponseTopUsersItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetStatsResponse_EncodeDecode(t *testing.T) { + var typ GetStatsResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetStatsResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetStatsResponseResponse_EncodeDecode(t *testing.T) { + var typ GetStatsResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetStatsResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetStatsResponseResponseCPU_EncodeDecode(t *testing.T) { + var typ GetStatsResponseResponseCPU + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetStatsResponseResponseCPU + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetStatsResponseResponseMemory_EncodeDecode(t *testing.T) { + var typ GetStatsResponseResponseMemory + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetStatsResponseResponseMemory + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetStatsResponseResponseNodes_EncodeDecode(t *testing.T) { + var typ GetStatsResponseResponseNodes + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetStatsResponseResponseNodes + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetStatsResponseResponseOnlineStats_EncodeDecode(t *testing.T) { + var typ GetStatsResponseResponseOnlineStats + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetStatsResponseResponseOnlineStats + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetStatsResponseResponseUsers_EncodeDecode(t *testing.T) { + var typ GetStatsResponseResponseUsers + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetStatsResponseResponseUsers + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetStatsResponseResponseUsersStatusCounts_EncodeDecode(t *testing.T) { + var typ GetStatsResponseResponseUsersStatusCounts + typ = make(GetStatsResponseResponseUsersStatusCounts) + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetStatsResponseResponseUsersStatusCounts + typ2 = make(GetStatsResponseResponseUsersStatusCounts) + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetStatusResponse_EncodeDecode(t *testing.T) { + var typ GetStatusResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetStatusResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetStatusResponseResponse_EncodeDecode(t *testing.T) { + var typ GetStatusResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetStatusResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetStatusResponseResponseAuthentication_EncodeDecode(t *testing.T) { + var typ GetStatusResponseResponseAuthentication + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetStatusResponseResponseAuthentication + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetStatusResponseResponseAuthenticationOAuth2_EncodeDecode(t *testing.T) { + var typ GetStatusResponseResponseAuthenticationOAuth2 + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetStatusResponseResponseAuthenticationOAuth2 + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetStatusResponseResponseAuthenticationOAuth2Providers_EncodeDecode(t *testing.T) { + var typ GetStatusResponseResponseAuthenticationOAuth2Providers + typ = make(GetStatusResponseResponseAuthenticationOAuth2Providers) + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetStatusResponseResponseAuthenticationOAuth2Providers + typ2 = make(GetStatusResponseResponseAuthenticationOAuth2Providers) + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetStatusResponseResponseBranding_EncodeDecode(t *testing.T) { + var typ GetStatusResponseResponseBranding + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetStatusResponseResponseBranding + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetSubpageConfigByShortUuidRequestBody_EncodeDecode(t *testing.T) { + var typ GetSubpageConfigByShortUuidRequestBody + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetSubpageConfigByShortUuidRequestBody + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetSubpageConfigByShortUuidRequestBodyRequestHeaders_EncodeDecode(t *testing.T) { + var typ GetSubpageConfigByShortUuidRequestBodyRequestHeaders + typ = make(GetSubpageConfigByShortUuidRequestBodyRequestHeaders) + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetSubpageConfigByShortUuidRequestBodyRequestHeaders + typ2 = make(GetSubpageConfigByShortUuidRequestBodyRequestHeaders) + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetSubpageConfigByShortUuidResponse_EncodeDecode(t *testing.T) { + var typ GetSubpageConfigByShortUuidResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetSubpageConfigByShortUuidResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetSubpageConfigByShortUuidResponseResponse_EncodeDecode(t *testing.T) { + var typ GetSubpageConfigByShortUuidResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetSubpageConfigByShortUuidResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetSubscriptionRequestHistoryResponse_EncodeDecode(t *testing.T) { + var typ GetSubscriptionRequestHistoryResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetSubscriptionRequestHistoryResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetSubscriptionRequestHistoryStatsResponse_EncodeDecode(t *testing.T) { + var typ GetSubscriptionRequestHistoryStatsResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetSubscriptionRequestHistoryStatsResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetSubscriptionRequestHistoryStatsResponseResponse_EncodeDecode(t *testing.T) { + var typ GetSubscriptionRequestHistoryStatsResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetSubscriptionRequestHistoryStatsResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetSubscriptionRequestHistoryStatsResponseResponseHourlyRequestStatsItem_EncodeDecode(t *testing.T) { + var typ GetSubscriptionRequestHistoryStatsResponseResponseHourlyRequestStatsItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetSubscriptionRequestHistoryStatsResponseResponseHourlyRequestStatsItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetTopUsersByHwidDevicesResponse_EncodeDecode(t *testing.T) { + var typ GetTopUsersByHwidDevicesResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetTopUsersByHwidDevicesResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetTopUsersByHwidDevicesResponseResponse_EncodeDecode(t *testing.T) { + var typ GetTopUsersByHwidDevicesResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetTopUsersByHwidDevicesResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetTopUsersByHwidDevicesResponseResponseUsersItem_EncodeDecode(t *testing.T) { + var typ GetTopUsersByHwidDevicesResponseResponseUsersItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetTopUsersByHwidDevicesResponseResponseUsersItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetTorrentBlockerReportsStatsResponse_EncodeDecode(t *testing.T) { + var typ GetTorrentBlockerReportsStatsResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetTorrentBlockerReportsStatsResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetTorrentBlockerReportsStatsResponseResponse_EncodeDecode(t *testing.T) { + var typ GetTorrentBlockerReportsStatsResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetTorrentBlockerReportsStatsResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetTorrentBlockerReportsStatsResponseResponseStats_EncodeDecode(t *testing.T) { + var typ GetTorrentBlockerReportsStatsResponseResponseStats + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetTorrentBlockerReportsStatsResponseResponseStats + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetTorrentBlockerReportsStatsResponseResponseTopUsersItem_EncodeDecode(t *testing.T) { + var typ GetTorrentBlockerReportsStatsResponseResponseTopUsersItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetTorrentBlockerReportsStatsResponseResponseTopUsersItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetUserAccessibleNodesResponse_EncodeDecode(t *testing.T) { + var typ GetUserAccessibleNodesResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetUserAccessibleNodesResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetUserAccessibleNodesResponseResponse_EncodeDecode(t *testing.T) { + var typ GetUserAccessibleNodesResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetUserAccessibleNodesResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetUserAccessibleNodesResponseResponseActiveNodesItem_EncodeDecode(t *testing.T) { + var typ GetUserAccessibleNodesResponseResponseActiveNodesItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetUserAccessibleNodesResponseResponseActiveNodesItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetUserAccessibleNodesResponseResponseActiveNodesItemActiveSquadsItem_EncodeDecode(t *testing.T) { + var typ GetUserAccessibleNodesResponseResponseActiveNodesItemActiveSquadsItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetUserAccessibleNodesResponseResponseActiveNodesItemActiveSquadsItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGetUserSubscriptionRequestHistoryResponse_EncodeDecode(t *testing.T) { + var typ GetUserSubscriptionRequestHistoryResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 GetUserSubscriptionRequestHistoryResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestGithub_EncodeDecode(t *testing.T) { + var typ Github + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 Github + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestHeader_EncodeDecode(t *testing.T) { + var typ Header + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 Header + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestHostItem_EncodeDecode(t *testing.T) { + var typ HostItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 HostItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestHostItemExcludeFromSubscriptionTypesItem_EncodeDecode(t *testing.T) { + var typ HostItemExcludeFromSubscriptionTypesItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 HostItemExcludeFromSubscriptionTypesItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestHostItemSecurityLayer_EncodeDecode(t *testing.T) { + var typ HostItemSecurityLayer + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 HostItemSecurityLayer + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestHostListResponse_EncodeDecode(t *testing.T) { + var typ HostListResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 HostListResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestHostOverride_EncodeDecode(t *testing.T) { + var typ HostOverride + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 HostOverride + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestHostResponse_EncodeDecode(t *testing.T) { + var typ HostResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 HostResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestHwidDevicesResponse_EncodeDecode(t *testing.T) { + var typ HwidDevicesResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 HwidDevicesResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestHwidSettings_EncodeDecode(t *testing.T) { + var typ HwidSettings + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 HwidSettings + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestInbound_EncodeDecode(t *testing.T) { + var typ Inbound + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 Inbound + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestInboundItem_EncodeDecode(t *testing.T) { + var typ InboundItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 InboundItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestInboundRef_EncodeDecode(t *testing.T) { + var typ InboundRef + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 InboundRef + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestInboundsResponse_EncodeDecode(t *testing.T) { + var typ InboundsResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 InboundsResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestInboundsResponseResponse_EncodeDecode(t *testing.T) { + var typ InboundsResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 InboundsResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestInboundsResponseResponseInboundsItem_EncodeDecode(t *testing.T) { + var typ InboundsResponseResponseInboundsItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 InboundsResponseResponseInboundsItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestInboundsStat_EncodeDecode(t *testing.T) { + var typ InboundsStat + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 InboundsStat + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestInfraProviderResponseResponse_EncodeDecode(t *testing.T) { + var typ InfraProviderResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 InfraProviderResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestInterfaceItem_EncodeDecode(t *testing.T) { + var typ InterfaceItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 InterfaceItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestInternalServerError_EncodeDecode(t *testing.T) { + var typ InternalServerError + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 InternalServerError + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestInternalSquad_EncodeDecode(t *testing.T) { + var typ InternalSquad + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 InternalSquad + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestInternalSquadResponseResponse_EncodeDecode(t *testing.T) { + var typ InternalSquadResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 InternalSquadResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestInternalSquadsResponInfoItem_EncodeDecode(t *testing.T) { + var typ InternalSquadsResponInfoItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 InternalSquadsResponInfoItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestInternalSquadsResponse_EncodeDecode(t *testing.T) { + var typ InternalSquadsResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 InternalSquadsResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestInternalSquadsResponseResponse_EncodeDecode(t *testing.T) { + var typ InternalSquadsResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 InternalSquadsResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestIps_EncodeDecode(t *testing.T) { + var typ Ips + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 Ips + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestIpsResponseResponse_EncodeDecode(t *testing.T) { + var typ IpsResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 IpsResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestIpsResponseResponseResponse_EncodeDecode(t *testing.T) { + var typ IpsResponseResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 IpsResponseResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestKeycloak_EncodeDecode(t *testing.T) { + var typ Keycloak + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 Keycloak + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestLoginRequest_EncodeDecode(t *testing.T) { + var typ LoginRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 LoginRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestNode_EncodeDecode(t *testing.T) { + var typ Node + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 Node + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestNodePlugin_EncodeDecode(t *testing.T) { + var typ NodePlugin + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 NodePlugin + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestNodePluginResponseResponse_EncodeDecode(t *testing.T) { + var typ NodePluginResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 NodePluginResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestNodePluginResponseResponseResponse_EncodeDecode(t *testing.T) { + var typ NodePluginResponseResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 NodePluginResponseResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestNodePluginsResponseResponse_EncodeDecode(t *testing.T) { + var typ NodePluginsResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 NodePluginsResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestNodePluginsResponseResponseResponse_EncodeDecode(t *testing.T) { + var typ NodePluginsResponseResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 NodePluginsResponseResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestNodeResponse_EncodeDecode(t *testing.T) { + var typ NodeResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 NodeResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestNodeResponseDataItem_EncodeDecode(t *testing.T) { + var typ NodeResponseDataItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 NodeResponseDataItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestNodeResponseInfoItem_EncodeDecode(t *testing.T) { + var typ NodeResponseInfoItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 NodeResponseInfoItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestNodesResponse_EncodeDecode(t *testing.T) { + var typ NodesResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 NodesResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestNotFoundError_EncodeDecode(t *testing.T) { + var typ NotFoundError + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 NotFoundError + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestOAuth2AuthorizeRequest_EncodeDecode(t *testing.T) { + var typ OAuth2AuthorizeRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 OAuth2AuthorizeRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestOAuth2AuthorizeRequestProvider_EncodeDecode(t *testing.T) { + var typ OAuth2AuthorizeRequestProvider + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 OAuth2AuthorizeRequestProvider + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestOAuth2AuthorizeResponse_EncodeDecode(t *testing.T) { + var typ OAuth2AuthorizeResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 OAuth2AuthorizeResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestOAuth2AuthorizeResponseResponse_EncodeDecode(t *testing.T) { + var typ OAuth2AuthorizeResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 OAuth2AuthorizeResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestOAuth2CallbackRequest_EncodeDecode(t *testing.T) { + var typ OAuth2CallbackRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 OAuth2CallbackRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestOAuth2CallbackRequestProvider_EncodeDecode(t *testing.T) { + var typ OAuth2CallbackRequestProvider + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 OAuth2CallbackRequestProvider + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestOauth2Settings_EncodeDecode(t *testing.T) { + var typ Oauth2Settings + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 Oauth2Settings + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestPasskeyOptions_EncodeDecode(t *testing.T) { + var typ PasskeyOptions + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 PasskeyOptions + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestPasskeySettings_EncodeDecode(t *testing.T) { + var typ PasskeySettings + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 PasskeySettings + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestPasskeysResponse_EncodeDecode(t *testing.T) { + var typ PasskeysResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 PasskeysResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestPasskeysResponseResponse_EncodeDecode(t *testing.T) { + var typ PasskeysResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 PasskeysResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestPasskeysResponseResponsePasskeysItem_EncodeDecode(t *testing.T) { + var typ PasskeysResponseResponsePasskeysItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 PasskeysResponseResponsePasskeysItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestPasswordSettings_EncodeDecode(t *testing.T) { + var typ PasswordSettings + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 PasswordSettings + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestPluginExecutorRequest_EncodeDecode(t *testing.T) { + var typ PluginExecutorRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 PluginExecutorRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestPluginExecutorRequestCommand_EncodeDecode(t *testing.T) { + var typ PluginExecutorRequestCommand + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 PluginExecutorRequestCommand + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestPluginExecutorRequestCommand0_EncodeDecode(t *testing.T) { + var typ PluginExecutorRequestCommand0 + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 PluginExecutorRequestCommand0 + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestPluginExecutorRequestCommand0Command_EncodeDecode(t *testing.T) { + var typ PluginExecutorRequestCommand0Command + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 PluginExecutorRequestCommand0Command + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestPluginExecutorRequestCommand0IpsItem_EncodeDecode(t *testing.T) { + var typ PluginExecutorRequestCommand0IpsItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 PluginExecutorRequestCommand0IpsItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestPluginExecutorRequestCommand1_EncodeDecode(t *testing.T) { + var typ PluginExecutorRequestCommand1 + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 PluginExecutorRequestCommand1 + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestPluginExecutorRequestCommand1Command_EncodeDecode(t *testing.T) { + var typ PluginExecutorRequestCommand1Command + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 PluginExecutorRequestCommand1Command + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestPluginExecutorRequestCommand2_EncodeDecode(t *testing.T) { + var typ PluginExecutorRequestCommand2 + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 PluginExecutorRequestCommand2 + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestPluginExecutorRequestCommand2Command_EncodeDecode(t *testing.T) { + var typ PluginExecutorRequestCommand2Command + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 PluginExecutorRequestCommand2Command + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestPluginExecutorRequestTargetNodes_EncodeDecode(t *testing.T) { + var typ PluginExecutorRequestTargetNodes + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 PluginExecutorRequestTargetNodes + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestPluginExecutorRequestTargetNodes0_EncodeDecode(t *testing.T) { + var typ PluginExecutorRequestTargetNodes0 + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 PluginExecutorRequestTargetNodes0 + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestPluginExecutorRequestTargetNodes0Target_EncodeDecode(t *testing.T) { + var typ PluginExecutorRequestTargetNodes0Target + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 PluginExecutorRequestTargetNodes0Target + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestPluginExecutorRequestTargetNodes1_EncodeDecode(t *testing.T) { + var typ PluginExecutorRequestTargetNodes1 + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 PluginExecutorRequestTargetNodes1 + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestPluginExecutorRequestTargetNodes1Target_EncodeDecode(t *testing.T) { + var typ PluginExecutorRequestTargetNodes1Target + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 PluginExecutorRequestTargetNodes1Target + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestPocketid_EncodeDecode(t *testing.T) { + var typ Pocketid + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 Pocketid + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestProfileModificationRequest_EncodeDecode(t *testing.T) { + var typ ProfileModificationRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 ProfileModificationRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestProfileModificationRequestConfigProfile_EncodeDecode(t *testing.T) { + var typ ProfileModificationRequestConfigProfile + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 ProfileModificationRequestConfigProfile + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestProvider_EncodeDecode(t *testing.T) { + var typ Provider + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 Provider + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestProviderItem_EncodeDecode(t *testing.T) { + var typ ProviderItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 ProviderItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestRecord_EncodeDecode(t *testing.T) { + var typ Record + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 Record + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestRegisterRequest_EncodeDecode(t *testing.T) { + var typ RegisterRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 RegisterRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestReorderHostRequest_EncodeDecode(t *testing.T) { + var typ ReorderHostRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 ReorderHostRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestReorderHostResponse_EncodeDecode(t *testing.T) { + var typ ReorderHostResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 ReorderHostResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestReorderHostResponseResponse_EncodeDecode(t *testing.T) { + var typ ReorderHostResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 ReorderHostResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestReorderNodeRequest_EncodeDecode(t *testing.T) { + var typ ReorderNodeRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 ReorderNodeRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestReorderRequest_EncodeDecode(t *testing.T) { + var typ ReorderRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 ReorderRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestReorderRequestItem_EncodeDecode(t *testing.T) { + var typ ReorderRequestItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 ReorderRequestItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestReportItem_EncodeDecode(t *testing.T) { + var typ ReportItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 ReportItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestResolveUserRequestBody_EncodeDecode(t *testing.T) { + var typ ResolveUserRequestBody + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 ResolveUserRequestBody + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestResolveUserResponse_EncodeDecode(t *testing.T) { + var typ ResolveUserResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 ResolveUserResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestResolveUserResponseResponse_EncodeDecode(t *testing.T) { + var typ ResolveUserResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 ResolveUserResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestResponseModification_EncodeDecode(t *testing.T) { + var typ ResponseModification + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 ResponseModification + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestResponseRules_EncodeDecode(t *testing.T) { + var typ ResponseRules + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 ResponseRules + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestResponseRulesVersion_EncodeDecode(t *testing.T) { + var typ ResponseRulesVersion + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 ResponseRulesVersion + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestRestartAllNodesRequestBody_EncodeDecode(t *testing.T) { + var typ RestartAllNodesRequestBody + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 RestartAllNodesRequestBody + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestRevokeUserSubscriptionBody_EncodeDecode(t *testing.T) { + var typ RevokeUserSubscriptionBody + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 RevokeUserSubscriptionBody + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestRule_EncodeDecode(t *testing.T) { + var typ Rule + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 Rule + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestRuleOperator_EncodeDecode(t *testing.T) { + var typ RuleOperator + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 RuleOperator + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestRuleResponseType_EncodeDecode(t *testing.T) { + var typ RuleResponseType + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 RuleResponseType + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestSetInboundToManyHostsRequest_EncodeDecode(t *testing.T) { + var typ SetInboundToManyHostsRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 SetInboundToManyHostsRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestSetPortToManyHostsRequest_EncodeDecode(t *testing.T) { + var typ SetPortToManyHostsRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 SetPortToManyHostsRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestSettingsResponse_EncodeDecode(t *testing.T) { + var typ SettingsResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 SettingsResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestSettingsResponseResponse_EncodeDecode(t *testing.T) { + var typ SettingsResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 SettingsResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestSnippetRequest_EncodeDecode(t *testing.T) { + var typ SnippetRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 SnippetRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestSnippetRequestSnippetItem_EncodeDecode(t *testing.T) { + var typ SnippetRequestSnippetItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 SnippetRequestSnippetItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestSnippetsResponse_EncodeDecode(t *testing.T) { + var typ SnippetsResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 SnippetsResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestSnippetsResponseResponse_EncodeDecode(t *testing.T) { + var typ SnippetsResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 SnippetsResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestSnippetsResponseResponseSnippetsItem_EncodeDecode(t *testing.T) { + var typ SnippetsResponseResponseSnippetsItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 SnippetsResponseResponseSnippetsItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestStat_EncodeDecode(t *testing.T) { + var typ Stat + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 Stat + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestStatsUserUsageResponseResponse_EncodeDecode(t *testing.T) { + var typ StatsUserUsageResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 StatsUserUsageResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestStatsUserUsageResponseResponseResponse_EncodeDecode(t *testing.T) { + var typ StatsUserUsageResponseResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 StatsUserUsageResponseResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestStatsUserUsageResponseResponseResponseSeriesItem_EncodeDecode(t *testing.T) { + var typ StatsUserUsageResponseResponseResponseSeriesItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 StatsUserUsageResponseResponseResponseSeriesItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestSubscription_EncodeDecode(t *testing.T) { + var typ Subscription + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 Subscription + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestSubscriptionPageConfigResponseResponse_EncodeDecode(t *testing.T) { + var typ SubscriptionPageConfigResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 SubscriptionPageConfigResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestSubscriptionPageConfigResponseResponseResponse_EncodeDecode(t *testing.T) { + var typ SubscriptionPageConfigResponseResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 SubscriptionPageConfigResponseResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestSubscriptionPageConfigsResponseResponse_EncodeDecode(t *testing.T) { + var typ SubscriptionPageConfigsResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 SubscriptionPageConfigsResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestSubscriptionPageConfigsResponseResponseResponse_EncodeDecode(t *testing.T) { + var typ SubscriptionPageConfigsResponseResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 SubscriptionPageConfigsResponseResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestSubscriptionResponse_EncodeDecode(t *testing.T) { + var typ SubscriptionResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 SubscriptionResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestSubscriptionSettings_EncodeDecode(t *testing.T) { + var typ SubscriptionSettings + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 SubscriptionSettings + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestSubscriptionSettingsResponse_EncodeDecode(t *testing.T) { + var typ SubscriptionSettingsResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 SubscriptionSettingsResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestSubscriptionSettingsResponseResponse_EncodeDecode(t *testing.T) { + var typ SubscriptionSettingsResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 SubscriptionSettingsResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestSubscriptionSettingsResponseResponseCustomResponseHeaders_EncodeDecode(t *testing.T) { + var typ SubscriptionSettingsResponseResponseCustomResponseHeaders + typ = make(SubscriptionSettingsResponseResponseCustomResponseHeaders) + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 SubscriptionSettingsResponseResponseCustomResponseHeaders + typ2 = make(SubscriptionSettingsResponseResponseCustomResponseHeaders) + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestSubscriptionSsConfLinks_EncodeDecode(t *testing.T) { + var typ SubscriptionSsConfLinks + typ = make(SubscriptionSsConfLinks) + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 SubscriptionSsConfLinks + typ2 = make(SubscriptionSsConfLinks) + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestSystemItem_EncodeDecode(t *testing.T) { + var typ SystemItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 SystemItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestTagsResponse_EncodeDecode(t *testing.T) { + var typ TagsResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 TagsResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestTagsResponseResponse_EncodeDecode(t *testing.T) { + var typ TagsResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 TagsResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestTelegram_EncodeDecode(t *testing.T) { + var typ Telegram + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 Telegram + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestTemplate_EncodeDecode(t *testing.T) { + var typ Template + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 Template + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestTemplateRef_EncodeDecode(t *testing.T) { + var typ TemplateRef + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 TemplateRef + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestTemplateRefTemplateType_EncodeDecode(t *testing.T) { + var typ TemplateRefTemplateType + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 TemplateRefTemplateType + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestTemplateResponse_EncodeDecode(t *testing.T) { + var typ TemplateResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 TemplateResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestTemplateTemplateType_EncodeDecode(t *testing.T) { + var typ TemplateTemplateType + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 TemplateTemplateType + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestTemplatesResponse_EncodeDecode(t *testing.T) { + var typ TemplatesResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 TemplatesResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestTemplatesResponseResponse_EncodeDecode(t *testing.T) { + var typ TemplatesResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 TemplatesResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestTokenResponse_EncodeDecode(t *testing.T) { + var typ TokenResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 TokenResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestTokenResponseResponse_EncodeDecode(t *testing.T) { + var typ TokenResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 TokenResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestTopNode_EncodeDecode(t *testing.T) { + var typ TopNode + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 TopNode + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestTorrentBlockerReportsResponseResponse_EncodeDecode(t *testing.T) { + var typ TorrentBlockerReportsResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 TorrentBlockerReportsResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestTorrentBlockerReportsResponseResponseResponse_EncodeDecode(t *testing.T) { + var typ TorrentBlockerReportsResponseResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 TorrentBlockerReportsResponseResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestTorrentBlockerReportsResponseResponseResponseRecordsItem_EncodeDecode(t *testing.T) { + var typ TorrentBlockerReportsResponseResponseResponseRecordsItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 TorrentBlockerReportsResponseResponseResponseRecordsItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestTorrentBlockerReportsResponseResponseResponseRecordsItemUser_EncodeDecode(t *testing.T) { + var typ TorrentBlockerReportsResponseResponseResponseRecordsItemUser + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 TorrentBlockerReportsResponseResponseResponseRecordsItemUser + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUnauthorizedError_EncodeDecode(t *testing.T) { + var typ UnauthorizedError + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UnauthorizedError + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUpdateConfigProfileRequest_EncodeDecode(t *testing.T) { + var typ UpdateConfigProfileRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UpdateConfigProfileRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUpdateConfigProfileRequestConfig_EncodeDecode(t *testing.T) { + var typ UpdateConfigProfileRequestConfig + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UpdateConfigProfileRequestConfig + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUpdateExternalSquadRequest_EncodeDecode(t *testing.T) { + var typ UpdateExternalSquadRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UpdateExternalSquadRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUpdateExternalSquadRequestResponseHeaders_EncodeDecode(t *testing.T) { + var typ UpdateExternalSquadRequestResponseHeaders + typ = make(UpdateExternalSquadRequestResponseHeaders) + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UpdateExternalSquadRequestResponseHeaders + typ2 = make(UpdateExternalSquadRequestResponseHeaders) + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUpdateHostRequest_EncodeDecode(t *testing.T) { + var typ UpdateHostRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UpdateHostRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUpdateHostRequestAlpn_EncodeDecode(t *testing.T) { + var typ UpdateHostRequestAlpn + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UpdateHostRequestAlpn + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUpdateHostRequestExcludeFromSubscriptionTypesItem_EncodeDecode(t *testing.T) { + var typ UpdateHostRequestExcludeFromSubscriptionTypesItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UpdateHostRequestExcludeFromSubscriptionTypesItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUpdateHostRequestFingerprint_EncodeDecode(t *testing.T) { + var typ UpdateHostRequestFingerprint + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UpdateHostRequestFingerprint + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUpdateHostRequestSecurityLayer_EncodeDecode(t *testing.T) { + var typ UpdateHostRequestSecurityLayer + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UpdateHostRequestSecurityLayer + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUpdateInfraBillingNodeRequest_EncodeDecode(t *testing.T) { + var typ UpdateInfraBillingNodeRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UpdateInfraBillingNodeRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUpdateInfraProviderRequest_EncodeDecode(t *testing.T) { + var typ UpdateInfraProviderRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UpdateInfraProviderRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUpdateInternalSquadRequest_EncodeDecode(t *testing.T) { + var typ UpdateInternalSquadRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UpdateInternalSquadRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUpdateNodePluginRequest_EncodeDecode(t *testing.T) { + var typ UpdateNodePluginRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UpdateNodePluginRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUpdateNodeRequest_EncodeDecode(t *testing.T) { + var typ UpdateNodeRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UpdateNodeRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUpdatePasskeyRequest_EncodeDecode(t *testing.T) { + var typ UpdatePasskeyRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UpdatePasskeyRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUpdateRemnawaveSettingsRequest_EncodeDecode(t *testing.T) { + var typ UpdateRemnawaveSettingsRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UpdateRemnawaveSettingsRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUpdateSubscriptionPageConfigRequest_EncodeDecode(t *testing.T) { + var typ UpdateSubscriptionPageConfigRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UpdateSubscriptionPageConfigRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUpdateSubscriptionSettingsRequest_EncodeDecode(t *testing.T) { + var typ UpdateSubscriptionSettingsRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UpdateSubscriptionSettingsRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUpdateSubscriptionSettingsRequestCustomResponseHeaders_EncodeDecode(t *testing.T) { + var typ UpdateSubscriptionSettingsRequestCustomResponseHeaders + typ = make(UpdateSubscriptionSettingsRequestCustomResponseHeaders) + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UpdateSubscriptionSettingsRequestCustomResponseHeaders + typ2 = make(UpdateSubscriptionSettingsRequestCustomResponseHeaders) + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUpdateTemplateRequest_EncodeDecode(t *testing.T) { + var typ UpdateTemplateRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UpdateTemplateRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUpdateTemplateRequestTemplateJson_EncodeDecode(t *testing.T) { + var typ UpdateTemplateRequestTemplateJson + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UpdateTemplateRequestTemplateJson + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUpdateUserRequest_EncodeDecode(t *testing.T) { + var typ UpdateUserRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UpdateUserRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUpdateUserRequestStatus_EncodeDecode(t *testing.T) { + var typ UpdateUserRequestStatus + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UpdateUserRequestStatus + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUpdateUserRequestTrafficLimitStrategy_EncodeDecode(t *testing.T) { + var typ UpdateUserRequestTrafficLimitStrategy + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UpdateUserRequestTrafficLimitStrategy + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUpsertUserMetadataRequestBodyRequest_EncodeDecode(t *testing.T) { + var typ UpsertUserMetadataRequestBodyRequest + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UpsertUserMetadataRequestBodyRequest + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUpsertUserMetadataRequestBodyRequestMetadata_EncodeDecode(t *testing.T) { + var typ UpsertUserMetadataRequestBodyRequestMetadata + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UpsertUserMetadataRequestBodyRequestMetadata + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUserItem2_EncodeDecode(t *testing.T) { + var typ UserItem2 + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UserItem2 + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUserItem2TrafficLimitStrategy_EncodeDecode(t *testing.T) { + var typ UserItem2TrafficLimitStrategy + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UserItem2TrafficLimitStrategy + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUserItem2UserStatus_EncodeDecode(t *testing.T) { + var typ UserItem2UserStatus + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UserItem2UserStatus + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUserItemInfo_EncodeDecode(t *testing.T) { + var typ UserItemInfo + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UserItemInfo + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUserItemInfoStatus_EncodeDecode(t *testing.T) { + var typ UserItemInfoStatus + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UserItemInfoStatus + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUserItemInfoTrafficLimitStrategy_EncodeDecode(t *testing.T) { + var typ UserItemInfoTrafficLimitStrategy + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UserItemInfoTrafficLimitStrategy + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUserMetadataResponseResponse_EncodeDecode(t *testing.T) { + var typ UserMetadataResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UserMetadataResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUserMetadataResponseResponseResponse_EncodeDecode(t *testing.T) { + var typ UserMetadataResponseResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UserMetadataResponseResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUserMetadataResponseResponseResponseMetadata_EncodeDecode(t *testing.T) { + var typ UserMetadataResponseResponseResponseMetadata + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UserMetadataResponseResponseResponseMetadata + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUserResponse_EncodeDecode(t *testing.T) { + var typ UserResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UserResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUserSubscriptionHistory_EncodeDecode(t *testing.T) { + var typ UserSubscriptionHistory + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UserSubscriptionHistory + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUserTrafficItem_EncodeDecode(t *testing.T) { + var typ UserTrafficItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UserTrafficItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestUsersResponse_EncodeDecode(t *testing.T) { + var typ UsersResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 UsersResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestValidationError_EncodeDecode(t *testing.T) { + var typ ValidationError + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 ValidationError + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestVerifyPasskeyRegistrationResponse_EncodeDecode(t *testing.T) { + var typ VerifyPasskeyRegistrationResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 VerifyPasskeyRegistrationResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestVerifyPasskeyRegistrationResponseResponse_EncodeDecode(t *testing.T) { + var typ VerifyPasskeyRegistrationResponseResponse + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 VerifyPasskeyRegistrationResponseResponse + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestVersion_EncodeDecode(t *testing.T) { + var typ Version + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 Version + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} +func TestXrayReportItem_EncodeDecode(t *testing.T) { + var typ XrayReportItem + typ.SetFake() + + e := jx.Encoder{} + typ.Encode(&e) + data := e.Bytes() + require.True(t, std.Valid(data), "Encoded: %s", data) + + var typ2 XrayReportItem + require.NoError(t, typ2.Decode(jx.DecodeBytes(data))) +} diff --git a/api/oas_validators_gen.go b/api/oas_validators_gen.go new file mode 100644 index 0000000..37da795 --- /dev/null +++ b/api/oas_validators_gen.go @@ -0,0 +1,12301 @@ +// Code generated by ogen, DO NOT EDIT. + +package api + +import ( + "fmt" + + "github.com/go-faster/errors" + "github.com/ogen-go/ogen/validate" +) + +func (s *ActionReportItem) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.BlockDuration)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "blockDuration", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *AllHwidDevices) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Devices == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "devices", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Total)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "total", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *BadRequestError) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.StatusCode)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "statusCode", + Error: err, + }) + } + if err := func() error { + if s.Errors == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.Errors { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "errors", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *BillingHistoryItem) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.TotalAmount)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "totalAmount", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.TotalBills)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "totalBills", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *BillingHistoryResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *BillingHistoryResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Records == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.Records { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "records", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Total)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "total", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *BillingHistoryResponseResponseRecordsItem) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Amount)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "amount", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *BillingNodesResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *BillingNodesResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.TotalBillingNodes)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "totalBillingNodes", + Error: err, + }) + } + if err := func() error { + if s.BillingNodes == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "billingNodes", + Error: err, + }) + } + if err := func() error { + if s.AvailableBillingNodes == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "availableBillingNodes", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.TotalAvailableBillingNodes)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "totalAvailableBillingNodes", + Error: err, + }) + } + if err := func() error { + if err := s.Stats.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "stats", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *BillingNodesResponseResponseStats) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.UpcomingNodesCount)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "upcomingNodesCount", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.CurrentMonthPayments)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "currentMonthPayments", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.TotalSpent)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "totalSpent", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *BulkActionResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *BulkActionResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.AffectedRows)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "affectedRows", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *BulkAllExtendExpirationDateRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Int{ + MinSet: true, + Min: 1, + MaxSet: false, + Max: 0, + MinExclusive: false, + MaxExclusive: false, + MultipleOfSet: false, + MultipleOf: 0, + Pattern: nil, + }).Validate(int64(s.ExtendDays)); err != nil { + return errors.Wrap(err, "int") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "extendDays", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *BulkAllUpdateUsersRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if value, ok := s.Status.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "status", + Error: err, + }) + } + if err := func() error { + if value, ok := s.TrafficLimitBytes.Get(); ok { + if err := func() error { + if err := (validate.Int{ + MinSet: true, + Min: 0, + MaxSet: false, + Max: 0, + MinExclusive: false, + MaxExclusive: false, + MultipleOfSet: false, + MultipleOf: 0, + Pattern: nil, + }).Validate(int64(value)); err != nil { + return errors.Wrap(err, "int") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "trafficLimitBytes", + Error: err, + }) + } + if err := func() error { + if value, ok := s.TrafficLimitStrategy.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "trafficLimitStrategy", + Error: err, + }) + } + if err := func() error { + if value, ok := s.Email.Get(); ok { + if err := func() error { + if err := (validate.String{ + MinLength: 0, + MinLengthSet: false, + MaxLength: 0, + MaxLengthSet: false, + Email: true, + Hostname: false, + Regex: nil, + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "email", + Error: err, + }) + } + if err := func() error { + if value, ok := s.Tag.Get(); ok { + if err := func() error { + if err := (validate.String{ + MinLength: 0, + MinLengthSet: false, + MaxLength: 16, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: regexMap["^[A-Z0-9_]+$"], + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "tag", + Error: err, + }) + } + if err := func() error { + if value, ok := s.HwidDeviceLimit.Get(); ok { + if err := func() error { + if err := (validate.Int{ + MinSet: true, + Min: 0, + MaxSet: false, + Max: 0, + MinExclusive: false, + MaxExclusive: false, + MultipleOfSet: false, + MultipleOf: 0, + Pattern: nil, + }).Validate(int64(value)); err != nil { + return errors.Wrap(err, "int") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "hwidDeviceLimit", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s BulkAllUpdateUsersRequestStatus) Validate() error { + switch s { + case "ACTIVE": + return nil + case "DISABLED": + return nil + case "LIMITED": + return nil + case "EXPIRED": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s BulkAllUpdateUsersRequestTrafficLimitStrategy) Validate() error { + switch s { + case "NO_RESET": + return nil + case "DAY": + return nil + case "WEEK": + return nil + case "MONTH": + return nil + case "MONTH_ROLLING": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *BulkDeleteUsersByStatusRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if value, ok := s.Status.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "status", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s BulkDeleteUsersByStatusRequestStatus) Validate() error { + switch s { + case "ACTIVE": + return nil + case "DISABLED": + return nil + case "LIMITED": + return nil + case "EXPIRED": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *BulkExtendExpirationDateRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Uuids == nil { + return errors.New("nil is invalid value") + } + if err := (validate.Array{ + MinLength: 1, + MinLengthSet: true, + MaxLength: 500, + MaxLengthSet: true, + }).ValidateLength(len(s.Uuids)); err != nil { + return errors.Wrap(err, "array") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "uuids", + Error: err, + }) + } + if err := func() error { + if err := (validate.Int{ + MinSet: true, + Min: 1, + MaxSet: true, + Max: 9999, + MinExclusive: false, + MaxExclusive: false, + MultipleOfSet: false, + MultipleOf: 0, + Pattern: nil, + }).Validate(int64(s.ExtendDays)); err != nil { + return errors.Wrap(err, "int") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "extendDays", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *BulkNodesActionsRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Uuids == nil { + return errors.New("nil is invalid value") + } + if err := (validate.Array{ + MinLength: 1, + MinLengthSet: true, + MaxLength: 0, + MaxLengthSet: false, + }).ValidateLength(len(s.Uuids)); err != nil { + return errors.Wrap(err, "array") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "uuids", + Error: err, + }) + } + if err := func() error { + if err := s.Action.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "action", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s BulkNodesActionsRequestAction) Validate() error { + switch s { + case "ENABLE": + return nil + case "DISABLE": + return nil + case "RESTART": + return nil + case "RESET_TRAFFIC": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *BulkNodesUpdateRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Uuids == nil { + return errors.New("nil is invalid value") + } + if err := (validate.Array{ + MinLength: 1, + MinLengthSet: true, + MaxLength: 0, + MaxLengthSet: false, + }).ValidateLength(len(s.Uuids)); err != nil { + return errors.Wrap(err, "array") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "uuids", + Error: err, + }) + } + if err := func() error { + if err := s.Fields.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "fields", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *BulkNodesUpdateRequestFields) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if value, ok := s.CountryCode.Get(); ok { + if err := func() error { + if err := (validate.String{ + MinLength: 0, + MinLengthSet: false, + MaxLength: 2, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: nil, + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "countryCode", + Error: err, + }) + } + if err := func() error { + if value, ok := s.ConsumptionMultiplier.Get(); ok { + if err := func() error { + if err := (validate.Float{ + MinSet: true, + Min: 0, + MaxSet: true, + Max: 100, + MinExclusive: false, + MaxExclusive: false, + MultipleOfSet: false, + MultipleOf: nil, + Pattern: nil, + }).Validate(float64(value)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "consumptionMultiplier", + Error: err, + }) + } + if err := func() error { + if s.Tags == nil { + return nil // optional + } + if err := (validate.Array{ + MinLength: 0, + MinLengthSet: false, + MaxLength: 10, + MaxLengthSet: true, + }).ValidateLength(len(s.Tags)); err != nil { + return errors.Wrap(err, "array") + } + var failures []validate.FieldError + for i, elem := range s.Tags { + if err := func() error { + if err := (validate.String{ + MinLength: 0, + MinLengthSet: false, + MaxLength: 36, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: regexMap["^[A-Z0-9_:]+$"], + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(elem)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "tags", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *BulkUpdateUsersRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Uuids == nil { + return errors.New("nil is invalid value") + } + if err := (validate.Array{ + MinLength: 1, + MinLengthSet: true, + MaxLength: 500, + MaxLengthSet: true, + }).ValidateLength(len(s.Uuids)); err != nil { + return errors.Wrap(err, "array") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "uuids", + Error: err, + }) + } + if err := func() error { + if err := s.Fields.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "fields", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *BulkUpdateUsersRequestFields) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if value, ok := s.Status.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "status", + Error: err, + }) + } + if err := func() error { + if value, ok := s.TrafficLimitBytes.Get(); ok { + if err := func() error { + if err := (validate.Int{ + MinSet: true, + Min: 0, + MaxSet: false, + Max: 0, + MinExclusive: false, + MaxExclusive: false, + MultipleOfSet: false, + MultipleOf: 0, + Pattern: nil, + }).Validate(int64(value)); err != nil { + return errors.Wrap(err, "int") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "trafficLimitBytes", + Error: err, + }) + } + if err := func() error { + if value, ok := s.TrafficLimitStrategy.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "trafficLimitStrategy", + Error: err, + }) + } + if err := func() error { + if value, ok := s.Email.Get(); ok { + if err := func() error { + if err := (validate.String{ + MinLength: 0, + MinLengthSet: false, + MaxLength: 0, + MaxLengthSet: false, + Email: true, + Hostname: false, + Regex: nil, + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "email", + Error: err, + }) + } + if err := func() error { + if value, ok := s.Tag.Get(); ok { + if err := func() error { + if err := (validate.String{ + MinLength: 0, + MinLengthSet: false, + MaxLength: 16, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: regexMap["^[A-Z0-9_]+$"], + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "tag", + Error: err, + }) + } + if err := func() error { + if value, ok := s.HwidDeviceLimit.Get(); ok { + if err := func() error { + if err := (validate.Int{ + MinSet: true, + Min: 0, + MaxSet: false, + Max: 0, + MinExclusive: false, + MaxExclusive: false, + MultipleOfSet: false, + MultipleOf: 0, + Pattern: nil, + }).Validate(int64(value)); err != nil { + return errors.Wrap(err, "int") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "hwidDeviceLimit", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s BulkUpdateUsersRequestFieldsStatus) Validate() error { + switch s { + case "ACTIVE": + return nil + case "DISABLED": + return nil + case "LIMITED": + return nil + case "EXPIRED": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s BulkUpdateUsersRequestFieldsTrafficLimitStrategy) Validate() error { + switch s { + case "NO_RESET": + return nil + case "DAY": + return nil + case "WEEK": + return nil + case "MONTH": + return nil + case "MONTH_ROLLING": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *BulkUpdateUsersSquadsRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Uuids == nil { + return errors.New("nil is invalid value") + } + if err := (validate.Array{ + MinLength: 1, + MinLengthSet: true, + MaxLength: 500, + MaxLengthSet: true, + }).ValidateLength(len(s.Uuids)); err != nil { + return errors.Wrap(err, "array") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "uuids", + Error: err, + }) + } + if err := func() error { + if s.ActiveInternalSquads == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "activeInternalSquads", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *BulkUuidsRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Uuids == nil { + return errors.New("nil is invalid value") + } + if err := (validate.Array{ + MinLength: 1, + MinLengthSet: true, + MaxLength: 500, + MaxLengthSet: true, + }).ValidateLength(len(s.Uuids)); err != nil { + return errors.Wrap(err, "array") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "uuids", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *BulkUuidsRequest2) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Uuids == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "uuids", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *ByAppItem) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Count)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "count", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *Condition) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.String{ + MinLength: 0, + MinLengthSet: false, + MaxLength: 0, + MaxLengthSet: false, + Email: false, + Hostname: false, + Regex: regexMap["^[!#$%&'*+\\-.0-9A-Z^_`a-z|~]+$"], + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(s.HeaderName)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "headerName", + Error: err, + }) + } + if err := func() error { + if err := s.Operator.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "operator", + Error: err, + }) + } + if err := func() error { + if err := (validate.String{ + MinLength: 1, + MinLengthSet: true, + MaxLength: 255, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: nil, + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(s.Value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "value", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s ConditionOperator) Validate() error { + switch s { + case "EQUALS": + return nil + case "NOT_EQUALS": + return nil + case "CONTAINS": + return nil + case "NOT_CONTAINS": + return nil + case "STARTS_WITH": + return nil + case "NOT_STARTS_WITH": + return nil + case "ENDS_WITH": + return nil + case "NOT_ENDS_WITH": + return nil + case "REGEX": + return nil + case "NOT_REGEX": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *ConfigProfile) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Inbounds == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.Inbounds { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "inbounds", + Error: err, + }) + } + if err := func() error { + if s.Nodes == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "nodes", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *ConfigProfileItem) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.ActiveInbounds == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.ActiveInbounds { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "activeInbounds", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *ConfigProfileRef) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.ActiveInbounds == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "activeInbounds", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *ConfigProfileResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *ConfigProfilesResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *ConfigProfilesResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Total)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "total", + Error: err, + }) + } + if err := func() error { + if s.ConfigProfiles == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.ConfigProfiles { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "configProfiles", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *CreateConfigProfileRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.String{ + MinLength: 2, + MinLengthSet: true, + MaxLength: 30, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: regexMap["^[A-Za-z0-9_\\s-]+$"], + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(s.Name)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "name", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *CreateExternalSquadRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.String{ + MinLength: 2, + MinLengthSet: true, + MaxLength: 30, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: regexMap["^[A-Za-z0-9_\\s-]+$"], + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(s.Name)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "name", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *CreateHostRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.String{ + MinLength: 1, + MinLengthSet: true, + MaxLength: 40, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: nil, + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(s.Remark)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "remark", + Error: err, + }) + } + if err := func() error { + if value, ok := s.Alpn.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "alpn", + Error: err, + }) + } + if err := func() error { + if value, ok := s.Fingerprint.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "fingerprint", + Error: err, + }) + } + if err := func() error { + if value, ok := s.SecurityLayer.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "securityLayer", + Error: err, + }) + } + if err := func() error { + if value, ok := s.ServerDescription.Get(); ok { + if err := func() error { + if err := (validate.String{ + MinLength: 0, + MinLengthSet: false, + MaxLength: 30, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: nil, + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "serverDescription", + Error: err, + }) + } + if err := func() error { + if value, ok := s.Tag.Get(); ok { + if err := func() error { + if err := (validate.String{ + MinLength: 0, + MinLengthSet: false, + MaxLength: 32, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: regexMap["^[A-Z0-9_:]+$"], + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "tag", + Error: err, + }) + } + if err := func() error { + if value, ok := s.VlessRouteId.Get(); ok { + if err := func() error { + if err := (validate.Int{ + MinSet: true, + Min: 0, + MaxSet: true, + Max: 65535, + MinExclusive: false, + MaxExclusive: false, + MultipleOfSet: false, + MultipleOf: 0, + Pattern: nil, + }).Validate(int64(value)); err != nil { + return errors.Wrap(err, "int") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "vlessRouteId", + Error: err, + }) + } + if err := func() error { + var failures []validate.FieldError + for i, elem := range s.ExcludeFromSubscriptionTypes { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "excludeFromSubscriptionTypes", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s CreateHostRequestAlpn) Validate() error { + switch s { + case "h3": + return nil + case "h2": + return nil + case "http/1.1": + return nil + case "h2,http/1.1": + return nil + case "h3,h2,http/1.1": + return nil + case "h3,h2": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s CreateHostRequestExcludeFromSubscriptionTypesItem) Validate() error { + switch s { + case "XRAY_JSON": + return nil + case "XRAY_BASE64": + return nil + case "MIHOMO": + return nil + case "STASH": + return nil + case "CLASH": + return nil + case "SINGBOX": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s CreateHostRequestFingerprint) Validate() error { + switch s { + case "chrome": + return nil + case "firefox": + return nil + case "safari": + return nil + case "ios": + return nil + case "android": + return nil + case "edge": + return nil + case "qq": + return nil + case "random": + return nil + case "randomized": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s CreateHostRequestSecurityLayer) Validate() error { + switch s { + case "DEFAULT": + return nil + case "TLS": + return nil + case "NONE": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *CreateInfraBillingHistoryRecordRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{ + MinSet: true, + Min: 0, + MaxSet: false, + Max: 0, + MinExclusive: false, + MaxExclusive: false, + MultipleOfSet: false, + MultipleOf: nil, + Pattern: nil, + }).Validate(float64(s.Amount)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "amount", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *CreateInfraProviderRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.String{ + MinLength: 2, + MinLengthSet: true, + MaxLength: 30, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: nil, + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(s.Name)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "name", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *CreateInternalSquadRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.String{ + MinLength: 2, + MinLengthSet: true, + MaxLength: 30, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: regexMap["^[A-Za-z0-9_\\s-]+$"], + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(s.Name)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "name", + Error: err, + }) + } + if err := func() error { + if s.Inbounds == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "inbounds", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *CreateNodePluginRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.String{ + MinLength: 2, + MinLengthSet: true, + MaxLength: 30, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: regexMap["^[A-Za-z0-9_\\s-]+$"], + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(s.Name)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "name", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *CreateNodeRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.String{ + MinLength: 3, + MinLengthSet: true, + MaxLength: 30, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: nil, + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(s.Name)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "name", + Error: err, + }) + } + if err := func() error { + if err := (validate.String{ + MinLength: 2, + MinLengthSet: true, + MaxLength: 0, + MaxLengthSet: false, + Email: false, + Hostname: false, + Regex: nil, + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(s.Address)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "address", + Error: err, + }) + } + if err := func() error { + if value, ok := s.Port.Get(); ok { + if err := func() error { + if err := (validate.Int{ + MinSet: true, + Min: 1, + MaxSet: true, + Max: 65535, + MinExclusive: false, + MaxExclusive: false, + MultipleOfSet: false, + MultipleOf: 0, + Pattern: nil, + }).Validate(int64(value)); err != nil { + return errors.Wrap(err, "int") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "port", + Error: err, + }) + } + if err := func() error { + if value, ok := s.TrafficLimitBytes.Get(); ok { + if err := func() error { + if err := (validate.Int{ + MinSet: true, + Min: 0, + MaxSet: false, + Max: 0, + MinExclusive: false, + MaxExclusive: false, + MultipleOfSet: false, + MultipleOf: 0, + Pattern: nil, + }).Validate(int64(value)); err != nil { + return errors.Wrap(err, "int") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "trafficLimitBytes", + Error: err, + }) + } + if err := func() error { + if value, ok := s.NotifyPercent.Get(); ok { + if err := func() error { + if err := (validate.Int{ + MinSet: true, + Min: 0, + MaxSet: true, + Max: 100, + MinExclusive: false, + MaxExclusive: false, + MultipleOfSet: false, + MultipleOf: 0, + Pattern: nil, + }).Validate(int64(value)); err != nil { + return errors.Wrap(err, "int") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "notifyPercent", + Error: err, + }) + } + if err := func() error { + if value, ok := s.TrafficResetDay.Get(); ok { + if err := func() error { + if err := (validate.Int{ + MinSet: true, + Min: 1, + MaxSet: true, + Max: 31, + MinExclusive: false, + MaxExclusive: false, + MultipleOfSet: false, + MultipleOf: 0, + Pattern: nil, + }).Validate(int64(value)); err != nil { + return errors.Wrap(err, "int") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "trafficResetDay", + Error: err, + }) + } + if err := func() error { + if value, ok := s.CountryCode.Get(); ok { + if err := func() error { + if err := (validate.String{ + MinLength: 0, + MinLengthSet: false, + MaxLength: 2, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: nil, + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "countryCode", + Error: err, + }) + } + if err := func() error { + if value, ok := s.ConsumptionMultiplier.Get(); ok { + if err := func() error { + if err := (validate.Float{ + MinSet: true, + Min: 0, + MaxSet: true, + Max: 100, + MinExclusive: false, + MaxExclusive: false, + MultipleOfSet: false, + MultipleOf: nil, + Pattern: nil, + }).Validate(float64(value)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "consumptionMultiplier", + Error: err, + }) + } + if err := func() error { + if err := s.ConfigProfile.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "configProfile", + Error: err, + }) + } + if err := func() error { + if s.Tags == nil { + return nil // optional + } + if err := (validate.Array{ + MinLength: 0, + MinLengthSet: false, + MaxLength: 10, + MaxLengthSet: true, + }).ValidateLength(len(s.Tags)); err != nil { + return errors.Wrap(err, "array") + } + var failures []validate.FieldError + for i, elem := range s.Tags { + if err := func() error { + if err := (validate.String{ + MinLength: 0, + MinLengthSet: false, + MaxLength: 36, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: regexMap["^[A-Z0-9_:]+$"], + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(elem)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "tags", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *CreateSubscriptionPageConfigRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.String{ + MinLength: 2, + MinLengthSet: true, + MaxLength: 30, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: regexMap["^[A-Za-z0-9_\\s-]+$"], + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(s.Name)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "name", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *CreateSubscriptionTemplateRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.String{ + MinLength: 2, + MinLengthSet: true, + MaxLength: 255, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: regexMap["^[A-Za-z0-9_\\s-]+$"], + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(s.Name)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "name", + Error: err, + }) + } + if err := func() error { + if err := s.TemplateType.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "templateType", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s CreateSubscriptionTemplateRequestTemplateType) Validate() error { + switch s { + case "XRAY_JSON": + return nil + case "XRAY_BASE64": + return nil + case "MIHOMO": + return nil + case "STASH": + return nil + case "CLASH": + return nil + case "SINGBOX": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *CreateUserRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.String{ + MinLength: 3, + MinLengthSet: true, + MaxLength: 36, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: regexMap["^[a-zA-Z0-9_-]+$"], + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(s.Username)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "username", + Error: err, + }) + } + if err := func() error { + if value, ok := s.Status.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "status", + Error: err, + }) + } + if err := func() error { + if value, ok := s.TrojanPassword.Get(); ok { + if err := func() error { + if err := (validate.String{ + MinLength: 8, + MinLengthSet: true, + MaxLength: 32, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: nil, + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "trojanPassword", + Error: err, + }) + } + if err := func() error { + if value, ok := s.SsPassword.Get(); ok { + if err := func() error { + if err := (validate.String{ + MinLength: 8, + MinLengthSet: true, + MaxLength: 32, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: nil, + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "ssPassword", + Error: err, + }) + } + if err := func() error { + if value, ok := s.TrafficLimitBytes.Get(); ok { + if err := func() error { + if err := (validate.Int{ + MinSet: true, + Min: 0, + MaxSet: false, + Max: 0, + MinExclusive: false, + MaxExclusive: false, + MultipleOfSet: false, + MultipleOf: 0, + Pattern: nil, + }).Validate(int64(value)); err != nil { + return errors.Wrap(err, "int") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "trafficLimitBytes", + Error: err, + }) + } + if err := func() error { + if value, ok := s.TrafficLimitStrategy.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "trafficLimitStrategy", + Error: err, + }) + } + if err := func() error { + if value, ok := s.Tag.Get(); ok { + if err := func() error { + if err := (validate.String{ + MinLength: 0, + MinLengthSet: false, + MaxLength: 16, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: regexMap["^[A-Z0-9_]+$"], + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "tag", + Error: err, + }) + } + if err := func() error { + if value, ok := s.Email.Get(); ok { + if err := func() error { + if err := (validate.String{ + MinLength: 0, + MinLengthSet: false, + MaxLength: 0, + MaxLengthSet: false, + Email: true, + Hostname: false, + Regex: nil, + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "email", + Error: err, + }) + } + if err := func() error { + if value, ok := s.HwidDeviceLimit.Get(); ok { + if err := func() error { + if err := (validate.Int{ + MinSet: true, + Min: 0, + MaxSet: false, + Max: 0, + MinExclusive: false, + MaxExclusive: false, + MultipleOfSet: false, + MultipleOf: 0, + Pattern: nil, + }).Validate(int64(value)); err != nil { + return errors.Wrap(err, "int") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "hwidDeviceLimit", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s CreateUserRequestStatus) Validate() error { + switch s { + case "ACTIVE": + return nil + case "DISABLED": + return nil + case "LIMITED": + return nil + case "EXPIRED": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s CreateUserRequestTrafficLimitStrategy) Validate() error { + switch s { + case "NO_RESET": + return nil + case "DAY": + return nil + case "WEEK": + return nil + case "MONTH": + return nil + case "MONTH_ROLLING": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *CustomRemark) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.ExpiredUsers == nil { + return errors.New("nil is invalid value") + } + if err := (validate.Array{ + MinLength: 1, + MinLengthSet: true, + MaxLength: 0, + MaxLengthSet: false, + }).ValidateLength(len(s.ExpiredUsers)); err != nil { + return errors.Wrap(err, "array") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "expiredUsers", + Error: err, + }) + } + if err := func() error { + if s.LimitedUsers == nil { + return errors.New("nil is invalid value") + } + if err := (validate.Array{ + MinLength: 1, + MinLengthSet: true, + MaxLength: 0, + MaxLengthSet: false, + }).ValidateLength(len(s.LimitedUsers)); err != nil { + return errors.Wrap(err, "array") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "limitedUsers", + Error: err, + }) + } + if err := func() error { + if s.DisabledUsers == nil { + return errors.New("nil is invalid value") + } + if err := (validate.Array{ + MinLength: 1, + MinLengthSet: true, + MaxLength: 0, + MaxLengthSet: false, + }).ValidateLength(len(s.DisabledUsers)); err != nil { + return errors.Wrap(err, "array") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "disabledUsers", + Error: err, + }) + } + if err := func() error { + if s.EmptyHosts == nil { + return errors.New("nil is invalid value") + } + if err := (validate.Array{ + MinLength: 1, + MinLengthSet: true, + MaxLength: 0, + MaxLengthSet: false, + }).ValidateLength(len(s.EmptyHosts)); err != nil { + return errors.Wrap(err, "array") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "emptyHosts", + Error: err, + }) + } + if err := func() error { + if s.HWIDMaxDevicesExceeded == nil { + return errors.New("nil is invalid value") + } + if err := (validate.Array{ + MinLength: 1, + MinLengthSet: true, + MaxLength: 0, + MaxLengthSet: false, + }).ValidateLength(len(s.HWIDMaxDevicesExceeded)); err != nil { + return errors.Wrap(err, "array") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "HWIDMaxDevicesExceeded", + Error: err, + }) + } + if err := func() error { + if s.HWIDNotSupported == nil { + return errors.New("nil is invalid value") + } + if err := (validate.Array{ + MinLength: 1, + MinLengthSet: true, + MaxLength: 0, + MaxLengthSet: false, + }).ValidateLength(len(s.HWIDNotSupported)); err != nil { + return errors.Wrap(err, "array") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "HWIDNotSupported", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *DebugSrrMatcherRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.ResponseRules.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "responseRules", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *DebugSrrMatcherResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *DebugSrrMatcherResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.ResponseType.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "responseType", + Error: err, + }) + } + if err := func() error { + if err := s.MatchedRule.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "matchedRule", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s DebugSrrMatcherResponseResponseResponseType) Validate() error { + switch s { + case "XRAY_JSON": + return nil + case "XRAY_BASE64": + return nil + case "MIHOMO": + return nil + case "STASH": + return nil + case "CLASH": + return nil + case "SINGBOX": + return nil + case "BROWSER": + return nil + case "BLOCK": + return nil + case "STATUS_CODE_404": + return nil + case "STATUS_CODE_451": + return nil + case "SOCKET_DROP": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *DeleteSnippetRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.String{ + MinLength: 2, + MinLengthSet: true, + MaxLength: 255, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: regexMap["^[A-Za-z0-9_\\s-]+$"], + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(s.Name)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "name", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *DropConnectionsRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.DropBy.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "dropBy", + Error: err, + }) + } + if err := func() error { + if err := s.TargetNodes.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "targetNodes", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s DropConnectionsRequestDropBy) Validate() error { + switch s.Type { + case DropConnectionsRequestDropBy0DropConnectionsRequestDropBy: + if err := s.DropConnectionsRequestDropBy0.Validate(); err != nil { + return err + } + return nil + case DropConnectionsRequestDropBy1DropConnectionsRequestDropBy: + if err := s.DropConnectionsRequestDropBy1.Validate(); err != nil { + return err + } + return nil + default: + return errors.Errorf("invalid type %q", s.Type) + } +} + +func (s *DropConnectionsRequestDropBy0) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.By.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "by", + Error: err, + }) + } + if err := func() error { + if s.UserUuids == nil { + return errors.New("nil is invalid value") + } + if err := (validate.Array{ + MinLength: 1, + MinLengthSet: true, + MaxLength: 0, + MaxLengthSet: false, + }).ValidateLength(len(s.UserUuids)); err != nil { + return errors.Wrap(err, "array") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "userUuids", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s DropConnectionsRequestDropBy0By) Validate() error { + switch s { + case "userUuids": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *DropConnectionsRequestDropBy1) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.By.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "by", + Error: err, + }) + } + if err := func() error { + if s.IpAddresses == nil { + return errors.New("nil is invalid value") + } + if err := (validate.Array{ + MinLength: 1, + MinLengthSet: true, + MaxLength: 0, + MaxLengthSet: false, + }).ValidateLength(len(s.IpAddresses)); err != nil { + return errors.Wrap(err, "array") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "ipAddresses", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s DropConnectionsRequestDropBy1By) Validate() error { + switch s { + case "ipAddresses": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s DropConnectionsRequestTargetNodes) Validate() error { + switch s.Type { + case DropConnectionsRequestTargetNodes0DropConnectionsRequestTargetNodes: + if err := s.DropConnectionsRequestTargetNodes0.Validate(); err != nil { + return err + } + return nil + case DropConnectionsRequestTargetNodes1DropConnectionsRequestTargetNodes: + if err := s.DropConnectionsRequestTargetNodes1.Validate(); err != nil { + return err + } + return nil + default: + return errors.Errorf("invalid type %q", s.Type) + } +} + +func (s *DropConnectionsRequestTargetNodes0) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Target.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "target", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s DropConnectionsRequestTargetNodes0Target) Validate() error { + switch s { + case "allNodes": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *DropConnectionsRequestTargetNodes1) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Target.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "target", + Error: err, + }) + } + if err := func() error { + if s.NodeUuids == nil { + return errors.New("nil is invalid value") + } + if err := (validate.Array{ + MinLength: 1, + MinLengthSet: true, + MaxLength: 0, + MaxLengthSet: false, + }).ValidateLength(len(s.NodeUuids)); err != nil { + return errors.Wrap(err, "array") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "nodeUuids", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s DropConnectionsRequestTargetNodes1Target) Validate() error { + switch s { + case "specificNodes": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *ExternalSquad) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Info.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "info", + Error: err, + }) + } + if err := func() error { + if s.Templates == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.Templates { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "templates", + Error: err, + }) + } + if err := func() error { + if value, ok := s.SubscriptionSettings.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "subscriptionSettings", + Error: err, + }) + } + if err := func() error { + if value, ok := s.HostOverrides.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "hostOverrides", + Error: err, + }) + } + if err := func() error { + if value, ok := s.HwidSettings.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "hwidSettings", + Error: err, + }) + } + if err := func() error { + if value, ok := s.CustomRemarks.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "customRemarks", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *ExternalSquadResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *ExternalSquadsResponInfoItem) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.MembersCount)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "membersCount", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *ExternalSquadsResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *ExternalSquadsResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Total)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "total", + Error: err, + }) + } + if err := func() error { + if s.ExternalSquads == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.ExternalSquads { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "externalSquads", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *FetchIpsResultResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *FetchIpsResultResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Progress.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "progress", + Error: err, + }) + } + if err := func() error { + if value, ok := s.Result.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "result", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *FetchIpsResultResponseResponseProgress) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Total)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "total", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Completed)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "completed", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Percent)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "percent", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *FetchIpsResultResponseResponseResult) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Nodes == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.Nodes { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "nodes", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *FetchIpsResultResponseResponseResultNodesItem) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Ips == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "ips", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *FetchUsersIpsResultResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *FetchUsersIpsResultResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if value, ok := s.Result.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "result", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *FetchUsersIpsResultResponseResponseResult) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Users == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.Users { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "users", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *FetchUsersIpsResultResponseResponseResultUsersItem) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Ips == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "ips", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *FindAllApiTokensResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *FindAllApiTokensResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.ApiKeys == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "apiKeys", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *ForbiddenError) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.StatusCode)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "statusCode", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GenerateX25519Response) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GenerateX25519ResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Keypairs == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "keypairs", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *Generic) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.AllowedEmails == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "allowedEmails", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetAllHwidDevicesResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetAllSubscriptionsResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetAllSubscriptionsResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Subscriptions == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.Subscriptions { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "subscriptions", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Total)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "total", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetAllUsersResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetAllUsersResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Users == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.Users { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "users", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Total)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "total", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetConnectionKeysByUuidResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetConnectionKeysByUuidResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.EnabledKeys == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "enabledKeys", + Error: err, + }) + } + if err := func() error { + if s.HiddenKeys == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "hiddenKeys", + Error: err, + }) + } + if err := func() error { + if s.DisabledKeys == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "disabledKeys", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetHwidDevicesStatsResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetHwidDevicesStatsResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.ByPlatform == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.ByPlatform { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "byPlatform", + Error: err, + }) + } + if err := func() error { + if s.ByApp == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.ByApp { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "byApp", + Error: err, + }) + } + if err := func() error { + if err := s.Stats.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "stats", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetHwidDevicesStatsResponseResponseByPlatformItem) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Count)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "count", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetHwidDevicesStatsResponseResponseStats) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.TotalUniqueDevices)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "totalUniqueDevices", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.TotalHwidDevices)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "totalHwidDevices", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.AverageHwidDevicesPerUser)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "averageHwidDevicesPerUser", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetInfraProvidersResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetInfraProvidersResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Total)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "total", + Error: err, + }) + } + if err := func() error { + if s.Providers == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.Providers { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "providers", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetInternalSquadAccessibleNodesResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetInternalSquadAccessibleNodesResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.AccessibleNodes == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.AccessibleNodes { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "accessibleNodes", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetInternalSquadAccessibleNodesResponseResponseAccessibleNodesItem) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.ActiveInbounds == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "activeInbounds", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetLegacyStatsNodesUsersUsageResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Response == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.Response { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetLegacyStatsNodesUsersUsageResponseResponseItem) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Total)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "total", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetLegacyStatsUserUsageResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Response == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.Response { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetLegacyStatsUserUsageResponseResponseItem) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Total)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "total", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetNodesMetricsResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetNodesMetricsResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Nodes == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.Nodes { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "nodes", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetNodesMetricsResponseResponseNodesItem) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.UsersOnline)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "usersOnline", + Error: err, + }) + } + if err := func() error { + if s.InboundsStats == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "inboundsStats", + Error: err, + }) + } + if err := func() error { + if s.OutboundsStats == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "outboundsStats", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetNodesStatisticsResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetNodesStatisticsResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.LastSevenDays == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "lastSevenDays", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetRawSubscriptionByShortUuidResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetRawSubscriptionByShortUuidResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.User.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "user", + Error: err, + }) + } + if err := func() error { + if err := s.ConvertedUserInfo.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "convertedUserInfo", + Error: err, + }) + } + if err := func() error { + if s.ResolvedProxyConfigs == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.ResolvedProxyConfigs { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "resolvedProxyConfigs", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetRawSubscriptionByShortUuidResponseResponseConvertedUserInfo) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.DaysLeft)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "daysLeft", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItem) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Int{ + MinSet: true, + Min: 0, + MaxSet: false, + Max: 0, + MinExclusive: true, + MaxExclusive: false, + MultipleOfSet: false, + MultipleOf: 0, + Pattern: nil, + }).Validate(int64(s.Port)); err != nil { + return errors.Wrap(err, "int") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "port", + Error: err, + }) + } + if err := func() error { + if err := s.Protocol.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "protocol", + Error: err, + }) + } + if err := func() error { + if err := s.ProtocolOptions.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "protocolOptions", + Error: err, + }) + } + if err := func() error { + if err := s.Transport.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "transport", + Error: err, + }) + } + if err := func() error { + if err := s.TransportOptions.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "transportOptions", + Error: err, + }) + } + if err := func() error { + if err := s.Security.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "security", + Error: err, + }) + } + if err := func() error { + if err := s.Metadata.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "metadata", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadata) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.ExcludeFromSubscriptionTypes == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.ExcludeFromSubscriptionTypes { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "excludeFromSubscriptionTypes", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemMetadataExcludeFromSubscriptionTypesItem) Validate() error { + switch s { + case "XRAY_JSON": + return nil + case "XRAY_BASE64": + return nil + case "MIHOMO": + return nil + case "STASH": + return nil + case "CLASH": + return nil + case "SINGBOX": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocol) Validate() error { + switch s { + case "vless": + return nil + case "trojan": + return nil + case "shadowsocks": + return nil + case "hysteria": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions) Validate() error { + switch s.Type { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions: + if err := s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0.Validate(); err != nil { + return err + } + return nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions: + return nil // no validation needed + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions2GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions: + return nil // no validation needed + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions3GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions: + return nil // no validation needed + default: + return errors.Errorf("invalid type %q", s.Type) + } +} + +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Flow.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "flow", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemProtocolOptions0Flow) Validate() error { + switch s { + case "": + return nil + case "xtls-rprx-vision": + return nil + case "xtls-rprx-vision-udp443": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemSecurity) Validate() error { + switch s { + case "tls": + return nil + case "reality": + return nil + case "none": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransport) Validate() error { + switch s { + case "tcp": + return nil + case "xhttp": + return nil + case "ws": + return nil + case "httpupgrade": + return nil + case "grpc": + return nil + case "kcp": + return nil + case "hysteria": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions) Validate() error { + switch s.Type { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions: + if err := s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0.Validate(); err != nil { + return err + } + return nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions: + if err := s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1.Validate(); err != nil { + return err + } + return nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions: + if err := s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2.Validate(); err != nil { + return err + } + return nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions3GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions: + return nil // no validation needed + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions4GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions: + return nil // no validation needed + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions5GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions: + return nil // no validation needed + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions6GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions: + return nil // no validation needed + default: + return errors.Errorf("invalid type %q", s.Type) + } +} + +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if value, ok := s.Header.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "header", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header) Validate() error { + switch s.Type { + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header: + if err := s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0.Validate(); err != nil { + return err + } + return nil + case GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header: + if err := s.GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1.Validate(); err != nil { + return err + } + return nil + default: + return errors.Errorf("invalid type %q", s.Type) + } +} + +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header0Type) Validate() error { + switch s { + case "none": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions0Header1Type) Validate() error { + switch s { + case "http": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Mode.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "mode", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions1Mode) Validate() error { + switch s { + case "auto": + return nil + case "packet-up": + return nil + case "stream-up": + return nil + case "stream-one": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *GetRawSubscriptionByShortUuidResponseResponseResolvedProxyConfigsItemTransportOptions2) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if value, ok := s.HeartbeatPeriod.Get(); ok { + if err := func() error { + if err := (validate.Float{}).Validate(float64(value)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "heartbeatPeriod", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetRecapResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetRecapResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.ThisMonth.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "thisMonth", + Error: err, + }) + } + if err := func() error { + if err := s.Total.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "total", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetRecapResponseResponseThisMonth) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Users)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "users", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetRecapResponseResponseTotal) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Users)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "users", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Nodes)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "nodes", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.NodesCpuCores)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "nodesCpuCores", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.DistinctCountries)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "distinctCountries", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetRemnawaveHealthResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetRemnawaveHealthResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.RuntimeMetrics == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.RuntimeMetrics { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "runtimeMetrics", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetRemnawaveHealthResponseResponseRuntimeMetricsItem) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Rss)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "rss", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.HeapUsed)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "heapUsed", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.HeapTotal)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "heapTotal", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.External)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "external", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.ArrayBuffers)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "arrayBuffers", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.EventLoopDelayMs)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "eventLoopDelayMs", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.EventLoopP99Ms)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "eventLoopP99Ms", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.ActiveHandles)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "activeHandles", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Uptime)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "uptime", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Pid)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "pid", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Timestamp)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "timestamp", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetStatsNodeUsersUsageResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetStatsNodeUsersUsageResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Categories == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "categories", + Error: err, + }) + } + if err := func() error { + if s.SparklineData == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.SparklineData { + if err := func() error { + if err := (validate.Float{}).Validate(float64(elem)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "sparklineData", + Error: err, + }) + } + if err := func() error { + if s.TopUsers == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.TopUsers { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "topUsers", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetStatsNodeUsersUsageResponseResponseTopUsersItem) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Total)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "total", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetStatsResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetStatsResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.CPU.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "cpu", + Error: err, + }) + } + if err := func() error { + if err := s.Memory.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "memory", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Uptime)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "uptime", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Timestamp)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "timestamp", + Error: err, + }) + } + if err := func() error { + if err := s.Users.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "users", + Error: err, + }) + } + if err := func() error { + if err := s.OnlineStats.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "onlineStats", + Error: err, + }) + } + if err := func() error { + if err := s.Nodes.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "nodes", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetStatsResponseResponseCPU) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Cores)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "cores", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetStatsResponseResponseMemory) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Total)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "total", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Free)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "free", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Used)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "used", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetStatsResponseResponseNodes) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.TotalOnline)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "totalOnline", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetStatsResponseResponseOnlineStats) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.LastDay)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "lastDay", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.LastWeek)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "lastWeek", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.NeverOnline)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "neverOnline", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.OnlineNow)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "onlineNow", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetStatsResponseResponseUsers) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.StatusCounts.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "statusCounts", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.TotalUsers)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "totalUsers", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s GetStatsResponseResponseUsersStatusCounts) Validate() error { + var failures []validate.FieldError + for key, elem := range s { + if err := func() error { + if err := (validate.Float{}).Validate(float64(elem)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: key, + Error: err, + }) + } + } + + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetSubscriptionRequestHistoryResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetSubscriptionRequestHistoryStatsResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetSubscriptionRequestHistoryStatsResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.ByParsedApp == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.ByParsedApp { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "byParsedApp", + Error: err, + }) + } + if err := func() error { + if s.HourlyRequestStats == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.HourlyRequestStats { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "hourlyRequestStats", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetSubscriptionRequestHistoryStatsResponseResponseHourlyRequestStatsItem) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.RequestCount)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "requestCount", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetTopUsersByHwidDevicesResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetTopUsersByHwidDevicesResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Users == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.Users { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "users", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Total)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "total", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetTopUsersByHwidDevicesResponseResponseUsersItem) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.ID)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "id", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.DevicesCount)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "devicesCount", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetTorrentBlockerReportsStatsResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetTorrentBlockerReportsStatsResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Stats.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "stats", + Error: err, + }) + } + if err := func() error { + if s.TopUsers == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.TopUsers { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "topUsers", + Error: err, + }) + } + if err := func() error { + if s.TopNodes == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.TopNodes { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "topNodes", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetTorrentBlockerReportsStatsResponseResponseStats) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.DistinctNodes)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "distinctNodes", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.DistinctUsers)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "distinctUsers", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.TotalReports)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "totalReports", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.ReportsLast24Hours)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "reportsLast24Hours", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetTorrentBlockerReportsStatsResponseResponseTopUsersItem) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Total)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "total", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetUserAccessibleNodesResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetUserAccessibleNodesResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.ActiveNodes == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.ActiveNodes { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "activeNodes", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetUserAccessibleNodesResponseResponseActiveNodesItem) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.ActiveSquads == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.ActiveSquads { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "activeSquads", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetUserAccessibleNodesResponseResponseActiveNodesItemActiveSquadsItem) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.ActiveInbounds == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "activeInbounds", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *GetUserSubscriptionRequestHistoryResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *Github) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.AllowedEmails == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "allowedEmails", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *Header) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.String{ + MinLength: 0, + MinLengthSet: false, + MaxLength: 0, + MaxLengthSet: false, + Email: false, + Hostname: false, + Regex: regexMap["^[!#$%&'*+\\-.0-9A-Z^_`a-z|~]+$"], + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(s.Key)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "key", + Error: err, + }) + } + if err := func() error { + if err := (validate.String{ + MinLength: 1, + MinLengthSet: true, + MaxLength: 0, + MaxLengthSet: false, + Email: false, + Hostname: false, + Regex: nil, + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(s.Value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "value", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *HostItem) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if value, ok := s.SecurityLayer.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "securityLayer", + Error: err, + }) + } + if err := func() error { + if value, ok := s.ServerDescription.Get(); ok { + if err := func() error { + if err := (validate.String{ + MinLength: 0, + MinLengthSet: false, + MaxLength: 30, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: nil, + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "serverDescription", + Error: err, + }) + } + if err := func() error { + if value, ok := s.VlessRouteId.Get(); ok { + if err := func() error { + if err := (validate.Int{ + MinSet: true, + Min: 0, + MaxSet: true, + Max: 65535, + MinExclusive: false, + MaxExclusive: false, + MultipleOfSet: false, + MultipleOf: 0, + Pattern: nil, + }).Validate(int64(value)); err != nil { + return errors.Wrap(err, "int") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "vlessRouteId", + Error: err, + }) + } + if err := func() error { + if s.Nodes == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "nodes", + Error: err, + }) + } + if err := func() error { + if s.ExcludedInternalSquads == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "excludedInternalSquads", + Error: err, + }) + } + if err := func() error { + var failures []validate.FieldError + for i, elem := range s.ExcludeFromSubscriptionTypes { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "excludeFromSubscriptionTypes", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s HostItemExcludeFromSubscriptionTypesItem) Validate() error { + switch s { + case "XRAY_JSON": + return nil + case "XRAY_BASE64": + return nil + case "MIHOMO": + return nil + case "STASH": + return nil + case "CLASH": + return nil + case "SINGBOX": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s HostItemSecurityLayer) Validate() error { + switch s { + case "DEFAULT": + return nil + case "TLS": + return nil + case "NONE": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *HostListResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Response == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.Response { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *HostOverride) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if value, ok := s.ServerDescription.Get(); ok { + if err := func() error { + if err := (validate.String{ + MinLength: 0, + MinLengthSet: false, + MaxLength: 30, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: nil, + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "serverDescription", + Error: err, + }) + } + if err := func() error { + if value, ok := s.VlessRouteId.Get(); ok { + if err := func() error { + if err := (validate.Int{ + MinSet: true, + Min: 0, + MaxSet: true, + Max: 65535, + MinExclusive: false, + MaxExclusive: false, + MultipleOfSet: false, + MultipleOf: 0, + Pattern: nil, + }).Validate(int64(value)); err != nil { + return errors.Wrap(err, "int") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "vlessRouteId", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *HostResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *HwidDevicesResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *HwidSettings) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.FallbackDeviceLimit)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "fallbackDeviceLimit", + Error: err, + }) + } + if err := func() error { + if value, ok := s.MaxDevicesAnnounce.Get(); ok { + if err := func() error { + if err := (validate.String{ + MinLength: 0, + MinLengthSet: false, + MaxLength: 200, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: nil, + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "maxDevicesAnnounce", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *Inbound) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if value, ok := s.Port.Get(); ok { + if err := func() error { + if err := (validate.Float{}).Validate(float64(value)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "port", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *InboundsResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *InboundsResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Total)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "total", + Error: err, + }) + } + if err := func() error { + if s.Inbounds == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.Inbounds { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "inbounds", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *InboundsResponseResponseInboundsItem) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if value, ok := s.Port.Get(); ok { + if err := func() error { + if err := (validate.Float{}).Validate(float64(value)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "port", + Error: err, + }) + } + if err := func() error { + if s.ActiveSquads == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "activeSquads", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *InfraProviderResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *InterfaceItem) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.RxBytesPerSec)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "rxBytesPerSec", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.TxBytesPerSec)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "txBytesPerSec", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.RxTotal)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "rxTotal", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.TxTotal)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "txTotal", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *InternalSquad) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Info.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "info", + Error: err, + }) + } + if err := func() error { + if s.Inbounds == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.Inbounds { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "inbounds", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *InternalSquadResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *InternalSquadsResponInfoItem) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.MembersCount)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "membersCount", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.InboundsCount)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "inboundsCount", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *InternalSquadsResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *InternalSquadsResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Total)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "total", + Error: err, + }) + } + if err := func() error { + if s.InternalSquads == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.InternalSquads { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "internalSquads", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *Keycloak) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.AllowedEmails == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "allowedEmails", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *NodePluginsResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *NodePluginsResponseResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Total)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "total", + Error: err, + }) + } + if err := func() error { + if s.NodePlugins == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "nodePlugins", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *NodeResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *NodeResponseDataItem) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if value, ok := s.TrafficLimitBytes.Get(); ok { + if err := func() error { + if err := (validate.Float{}).Validate(float64(value)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "trafficLimitBytes", + Error: err, + }) + } + if err := func() error { + if value, ok := s.TrafficUsedBytes.Get(); ok { + if err := func() error { + if err := (validate.Float{}).Validate(float64(value)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "trafficUsedBytes", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.ConsumptionMultiplier)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "consumptionMultiplier", + Error: err, + }) + } + if err := func() error { + if s.Tags == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "tags", + Error: err, + }) + } + if err := func() error { + if err := s.ConfigProfile.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "configProfile", + Error: err, + }) + } + if err := func() error { + if value, ok := s.System.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "system", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.XrayUptime)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "xrayUptime", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.UsersOnline)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "usersOnline", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *NodeResponseInfoItem) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.MemoryTotal)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "memoryTotal", + Error: err, + }) + } + if err := func() error { + if s.NetworkInterfaces == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "networkInterfaces", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *NodesResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Response == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.Response { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *NotFoundError) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.StatusCode)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "statusCode", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *OAuth2AuthorizeRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Provider.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "provider", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s OAuth2AuthorizeRequestProvider) Validate() error { + switch s { + case "telegram": + return nil + case "github": + return nil + case "pocketid": + return nil + case "yandex": + return nil + case "keycloak": + return nil + case "generic": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *OAuth2CallbackRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Provider.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "provider", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s OAuth2CallbackRequestProvider) Validate() error { + switch s { + case "telegram": + return nil + case "github": + return nil + case "pocketid": + return nil + case "yandex": + return nil + case "keycloak": + return nil + case "generic": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *Oauth2Settings) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Github.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "github", + Error: err, + }) + } + if err := func() error { + if err := s.Pocketid.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "pocketid", + Error: err, + }) + } + if err := func() error { + if err := s.Yandex.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "yandex", + Error: err, + }) + } + if err := func() error { + if value, ok := s.Keycloak.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "keycloak", + Error: err, + }) + } + if err := func() error { + if value, ok := s.Generic.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "generic", + Error: err, + }) + } + if err := func() error { + if value, ok := s.Telegram.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "telegram", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *PasskeysResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *PasskeysResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Passkeys == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "passkeys", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *PasskeysResponseStatusCode) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "Response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *PluginExecutorRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Command.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "command", + Error: err, + }) + } + if err := func() error { + if err := s.TargetNodes.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "targetNodes", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s PluginExecutorRequestCommand) Validate() error { + switch s.Type { + case PluginExecutorRequestCommand0PluginExecutorRequestCommand: + if err := s.PluginExecutorRequestCommand0.Validate(); err != nil { + return err + } + return nil + case PluginExecutorRequestCommand1PluginExecutorRequestCommand: + if err := s.PluginExecutorRequestCommand1.Validate(); err != nil { + return err + } + return nil + case PluginExecutorRequestCommand2PluginExecutorRequestCommand: + if err := s.PluginExecutorRequestCommand2.Validate(); err != nil { + return err + } + return nil + default: + return errors.Errorf("invalid type %q", s.Type) + } +} + +func (s *PluginExecutorRequestCommand0) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Command.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "command", + Error: err, + }) + } + if err := func() error { + if s.Ips == nil { + return errors.New("nil is invalid value") + } + if err := (validate.Array{ + MinLength: 1, + MinLengthSet: true, + MaxLength: 0, + MaxLengthSet: false, + }).ValidateLength(len(s.Ips)); err != nil { + return errors.Wrap(err, "array") + } + var failures []validate.FieldError + for i, elem := range s.Ips { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "ips", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s PluginExecutorRequestCommand0Command) Validate() error { + switch s { + case "blockIps": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *PluginExecutorRequestCommand0IpsItem) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Timeout)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "timeout", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *PluginExecutorRequestCommand1) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Command.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "command", + Error: err, + }) + } + if err := func() error { + if s.Ips == nil { + return errors.New("nil is invalid value") + } + if err := (validate.Array{ + MinLength: 1, + MinLengthSet: true, + MaxLength: 0, + MaxLengthSet: false, + }).ValidateLength(len(s.Ips)); err != nil { + return errors.Wrap(err, "array") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "ips", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s PluginExecutorRequestCommand1Command) Validate() error { + switch s { + case "unblockIps": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *PluginExecutorRequestCommand2) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Command.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "command", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s PluginExecutorRequestCommand2Command) Validate() error { + switch s { + case "recreateTables": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s PluginExecutorRequestTargetNodes) Validate() error { + switch s.Type { + case PluginExecutorRequestTargetNodes0PluginExecutorRequestTargetNodes: + if err := s.PluginExecutorRequestTargetNodes0.Validate(); err != nil { + return err + } + return nil + case PluginExecutorRequestTargetNodes1PluginExecutorRequestTargetNodes: + if err := s.PluginExecutorRequestTargetNodes1.Validate(); err != nil { + return err + } + return nil + default: + return errors.Errorf("invalid type %q", s.Type) + } +} + +func (s *PluginExecutorRequestTargetNodes0) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Target.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "target", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s PluginExecutorRequestTargetNodes0Target) Validate() error { + switch s { + case "allNodes": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *PluginExecutorRequestTargetNodes1) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Target.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "target", + Error: err, + }) + } + if err := func() error { + if s.NodeUuids == nil { + return errors.New("nil is invalid value") + } + if err := (validate.Array{ + MinLength: 1, + MinLengthSet: true, + MaxLength: 0, + MaxLengthSet: false, + }).ValidateLength(len(s.NodeUuids)); err != nil { + return errors.Wrap(err, "array") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "nodeUuids", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s PluginExecutorRequestTargetNodes1Target) Validate() error { + switch s { + case "specificNodes": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *Pocketid) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.AllowedEmails == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "allowedEmails", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *ProfileModificationRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Uuids == nil { + return errors.New("nil is invalid value") + } + if err := (validate.Array{ + MinLength: 1, + MinLengthSet: true, + MaxLength: 0, + MaxLengthSet: false, + }).ValidateLength(len(s.Uuids)); err != nil { + return errors.Wrap(err, "array") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "uuids", + Error: err, + }) + } + if err := func() error { + if err := s.ConfigProfile.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "configProfile", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *ProfileModificationRequestConfigProfile) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.ActiveInbounds == nil { + return errors.New("nil is invalid value") + } + if err := (validate.Array{ + MinLength: 1, + MinLengthSet: true, + MaxLength: 0, + MaxLengthSet: false, + }).ValidateLength(len(s.ActiveInbounds)); err != nil { + return errors.Wrap(err, "array") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "activeInbounds", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *Provider) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.BillingHistory.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "billingHistory", + Error: err, + }) + } + if err := func() error { + if s.BillingNodes == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "billingNodes", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *Record) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.ID)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "id", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *RegisterRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.String{ + MinLength: 24, + MinLengthSet: true, + MaxLength: 0, + MaxLengthSet: false, + Email: false, + Hostname: false, + Regex: regexMap["^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{24,}$"], + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(s.Password)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "password", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *ReorderHostRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Hosts == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "hosts", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *ReorderNodeRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Nodes == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "nodes", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *ReorderRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Items == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "items", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *ReportItem) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.ActionReport.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "actionReport", + Error: err, + }) + } + if err := func() error { + if err := s.XrayReport.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "xrayReport", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *ResolveUserRequestBody) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if value, ok := s.ID.Get(); ok { + if err := func() error { + if err := (validate.Float{}).Validate(float64(value)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "id", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *ResolveUserResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *ResolveUserResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.ID)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "id", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *ResponseModification) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + var failures []validate.FieldError + for i, elem := range s.Headers { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "headers", + Error: err, + }) + } + if err := func() error { + if value, ok := s.SubscriptionTemplate.Get(); ok { + if err := func() error { + if err := (validate.String{ + MinLength: 1, + MinLengthSet: true, + MaxLength: 0, + MaxLengthSet: false, + Email: false, + Hostname: false, + Regex: nil, + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "subscriptionTemplate", + Error: err, + }) + } + if err := func() error { + var failures []validate.FieldError + for i, elem := range s.AdditionalExtendedClientsRegex { + if err := func() error { + if err := (validate.String{ + MinLength: 1, + MinLengthSet: true, + MaxLength: 0, + MaxLengthSet: false, + Email: false, + Hostname: false, + Regex: nil, + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(elem)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "additionalExtendedClientsRegex", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *ResponseRules) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Version.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "version", + Error: err, + }) + } + if err := func() error { + if s.Rules == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.Rules { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "rules", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s ResponseRulesVersion) Validate() error { + switch s { + case "1": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *RevokeUserSubscriptionBody) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if value, ok := s.ShortUuid.Get(); ok { + if err := func() error { + if err := (validate.String{ + MinLength: 6, + MinLengthSet: true, + MaxLength: 48, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: nil, + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "shortUuid", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *Rule) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.String{ + MinLength: 1, + MinLengthSet: true, + MaxLength: 50, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: nil, + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(s.Name)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "name", + Error: err, + }) + } + if err := func() error { + if value, ok := s.Description.Get(); ok { + if err := func() error { + if err := (validate.String{ + MinLength: 1, + MinLengthSet: true, + MaxLength: 250, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: nil, + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "description", + Error: err, + }) + } + if err := func() error { + if err := s.Operator.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "operator", + Error: err, + }) + } + if err := func() error { + if s.Conditions == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.Conditions { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "conditions", + Error: err, + }) + } + if err := func() error { + if err := s.ResponseType.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "responseType", + Error: err, + }) + } + if err := func() error { + if value, ok := s.ResponseModifications.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "responseModifications", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s RuleOperator) Validate() error { + switch s { + case "AND": + return nil + case "OR": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s RuleResponseType) Validate() error { + switch s { + case "XRAY_JSON": + return nil + case "XRAY_BASE64": + return nil + case "MIHOMO": + return nil + case "STASH": + return nil + case "CLASH": + return nil + case "SINGBOX": + return nil + case "BROWSER": + return nil + case "BLOCK": + return nil + case "STATUS_CODE_404": + return nil + case "STATUS_CODE_451": + return nil + case "SOCKET_DROP": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *SetInboundToManyHostsRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Uuids == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "uuids", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *SetPortToManyHostsRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Uuids == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "uuids", + Error: err, + }) + } + if err := func() error { + if err := (validate.Int{ + MinSet: true, + Min: 1, + MaxSet: true, + Max: 65535, + MinExclusive: false, + MaxExclusive: false, + MultipleOfSet: false, + MultipleOf: 0, + Pattern: nil, + }).Validate(int64(s.Port)); err != nil { + return errors.Wrap(err, "int") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "port", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *SettingsResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *SettingsResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if value, ok := s.Oauth2Settings.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "oauth2Settings", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *SnippetRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.String{ + MinLength: 2, + MinLengthSet: true, + MaxLength: 255, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: regexMap["^[A-Za-z0-9_\\s-]+$"], + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(s.Name)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "name", + Error: err, + }) + } + if err := func() error { + if s.Snippet == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "snippet", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *SnippetsResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *SnippetsResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Total)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "total", + Error: err, + }) + } + if err := func() error { + if s.Snippets == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "snippets", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *Stat) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.MemoryFree)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "memoryFree", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.MemoryUsed)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "memoryUsed", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Uptime)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "uptime", + Error: err, + }) + } + if err := func() error { + if s.LoadAvg == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.LoadAvg { + if err := func() error { + if err := (validate.Float{}).Validate(float64(elem)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "loadAvg", + Error: err, + }) + } + if err := func() error { + if value, ok := s.Interface.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "interface", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *StatsUserUsageResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *StatsUserUsageResponseResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Categories == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "categories", + Error: err, + }) + } + if err := func() error { + if s.SparklineData == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.SparklineData { + if err := func() error { + if err := (validate.Float{}).Validate(float64(elem)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "sparklineData", + Error: err, + }) + } + if err := func() error { + if s.TopNodes == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.TopNodes { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "topNodes", + Error: err, + }) + } + if err := func() error { + if s.Series == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.Series { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "series", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *StatsUserUsageResponseResponseResponseSeriesItem) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Total)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "total", + Error: err, + }) + } + if err := func() error { + if s.Data == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.Data { + if err := func() error { + if err := (validate.Float{}).Validate(float64(elem)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "data", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *Subscription) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.User.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "user", + Error: err, + }) + } + if err := func() error { + if s.Links == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "links", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s SubscriptionGetSubscriptionByClientTypeClientType) Validate() error { + switch s { + case "stash": + return nil + case "singbox": + return nil + case "mihomo": + return nil + case "json": + return nil + case "v2ray-json": + return nil + case "clash": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *SubscriptionPageConfigsResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *SubscriptionPageConfigsResponseResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Total)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "total", + Error: err, + }) + } + if err := func() error { + if s.Configs == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "configs", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *SubscriptionResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *SubscriptionSettings) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if value, ok := s.ProfileUpdateInterval.Get(); ok { + if err := func() error { + if err := (validate.Int{ + MinSet: true, + Min: 1, + MaxSet: false, + Max: 0, + MinExclusive: false, + MaxExclusive: false, + MultipleOfSet: false, + MultipleOf: 0, + Pattern: nil, + }).Validate(int64(value)); err != nil { + return errors.Wrap(err, "int") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "profileUpdateInterval", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *SubscriptionSettingsResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *SubscriptionSettingsResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Int{ + MinSet: true, + Min: 1, + MaxSet: false, + Max: 0, + MinExclusive: false, + MaxExclusive: false, + MultipleOfSet: false, + MultipleOf: 0, + Pattern: nil, + }).Validate(int64(s.ProfileUpdateInterval)); err != nil { + return errors.Wrap(err, "int") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "profileUpdateInterval", + Error: err, + }) + } + if err := func() error { + if value, ok := s.CustomRemarks.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "customRemarks", + Error: err, + }) + } + if err := func() error { + if err := s.ResponseRules.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "responseRules", + Error: err, + }) + } + if err := func() error { + if value, ok := s.HwidSettings.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "hwidSettings", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *SystemItem) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Info.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "info", + Error: err, + }) + } + if err := func() error { + if err := s.Stats.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "stats", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *TagsResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *TagsResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Tags == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "tags", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *Telegram) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.AllowedIds == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "allowedIds", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *Template) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.TemplateType.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "templateType", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *TemplateRef) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.TemplateType.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "templateType", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s TemplateRefTemplateType) Validate() error { + switch s { + case "XRAY_JSON": + return nil + case "XRAY_BASE64": + return nil + case "MIHOMO": + return nil + case "STASH": + return nil + case "CLASH": + return nil + case "SINGBOX": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *TemplateResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s TemplateTemplateType) Validate() error { + switch s { + case "XRAY_JSON": + return nil + case "XRAY_BASE64": + return nil + case "MIHOMO": + return nil + case "STASH": + return nil + case "CLASH": + return nil + case "SINGBOX": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *TemplatesResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *TemplatesResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Total)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "total", + Error: err, + }) + } + if err := func() error { + if s.Templates == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.Templates { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "templates", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *TopNode) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Total)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "total", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *TorrentBlockerReportsResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *TorrentBlockerReportsResponseResponseResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Records == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.Records { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "records", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Total)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "total", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *TorrentBlockerReportsResponseResponseResponseRecordsItem) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.ID)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "id", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.UserId)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "userId", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.NodeId)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "nodeId", + Error: err, + }) + } + if err := func() error { + if err := s.Report.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "report", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *UnauthorizedError) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.StatusCode)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "statusCode", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *UpdateConfigProfileRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if value, ok := s.Name.Get(); ok { + if err := func() error { + if err := (validate.String{ + MinLength: 2, + MinLengthSet: true, + MaxLength: 30, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: regexMap["^[A-Za-z0-9_\\s-]+$"], + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "name", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *UpdateExternalSquadRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if value, ok := s.Name.Get(); ok { + if err := func() error { + if err := (validate.String{ + MinLength: 2, + MinLengthSet: true, + MaxLength: 30, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: regexMap["^[A-Za-z0-9_\\s-]+$"], + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "name", + Error: err, + }) + } + if err := func() error { + var failures []validate.FieldError + for i, elem := range s.Templates { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "templates", + Error: err, + }) + } + if err := func() error { + if value, ok := s.SubscriptionSettings.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "subscriptionSettings", + Error: err, + }) + } + if err := func() error { + if value, ok := s.HostOverrides.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "hostOverrides", + Error: err, + }) + } + if err := func() error { + if value, ok := s.HwidSettings.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "hwidSettings", + Error: err, + }) + } + if err := func() error { + if value, ok := s.CustomRemarks.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "customRemarks", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *UpdateHostRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if value, ok := s.Remark.Get(); ok { + if err := func() error { + if err := (validate.String{ + MinLength: 0, + MinLengthSet: false, + MaxLength: 40, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: nil, + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "remark", + Error: err, + }) + } + if err := func() error { + if value, ok := s.Alpn.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "alpn", + Error: err, + }) + } + if err := func() error { + if value, ok := s.Fingerprint.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "fingerprint", + Error: err, + }) + } + if err := func() error { + if value, ok := s.SecurityLayer.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "securityLayer", + Error: err, + }) + } + if err := func() error { + if value, ok := s.ServerDescription.Get(); ok { + if err := func() error { + if err := (validate.String{ + MinLength: 0, + MinLengthSet: false, + MaxLength: 30, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: nil, + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "serverDescription", + Error: err, + }) + } + if err := func() error { + if value, ok := s.Tag.Get(); ok { + if err := func() error { + if err := (validate.String{ + MinLength: 0, + MinLengthSet: false, + MaxLength: 32, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: regexMap["^[A-Z0-9_:]+$"], + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "tag", + Error: err, + }) + } + if err := func() error { + if value, ok := s.VlessRouteId.Get(); ok { + if err := func() error { + if err := (validate.Int{ + MinSet: true, + Min: 0, + MaxSet: true, + Max: 65535, + MinExclusive: false, + MaxExclusive: false, + MultipleOfSet: false, + MultipleOf: 0, + Pattern: nil, + }).Validate(int64(value)); err != nil { + return errors.Wrap(err, "int") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "vlessRouteId", + Error: err, + }) + } + if err := func() error { + var failures []validate.FieldError + for i, elem := range s.ExcludeFromSubscriptionTypes { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "excludeFromSubscriptionTypes", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s UpdateHostRequestAlpn) Validate() error { + switch s { + case "h3": + return nil + case "h2": + return nil + case "http/1.1": + return nil + case "h2,http/1.1": + return nil + case "h3,h2,http/1.1": + return nil + case "h3,h2": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s UpdateHostRequestExcludeFromSubscriptionTypesItem) Validate() error { + switch s { + case "XRAY_JSON": + return nil + case "XRAY_BASE64": + return nil + case "MIHOMO": + return nil + case "STASH": + return nil + case "CLASH": + return nil + case "SINGBOX": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s UpdateHostRequestFingerprint) Validate() error { + switch s { + case "chrome": + return nil + case "firefox": + return nil + case "safari": + return nil + case "ios": + return nil + case "android": + return nil + case "edge": + return nil + case "qq": + return nil + case "random": + return nil + case "randomized": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s UpdateHostRequestSecurityLayer) Validate() error { + switch s { + case "DEFAULT": + return nil + case "TLS": + return nil + case "NONE": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *UpdateInfraBillingNodeRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Uuids == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "uuids", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *UpdateInfraProviderRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if value, ok := s.Name.Get(); ok { + if err := func() error { + if err := (validate.String{ + MinLength: 2, + MinLengthSet: true, + MaxLength: 30, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: nil, + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "name", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *UpdateInternalSquadRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if value, ok := s.Name.Get(); ok { + if err := func() error { + if err := (validate.String{ + MinLength: 2, + MinLengthSet: true, + MaxLength: 30, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: regexMap["^[A-Za-z0-9_\\s-]+$"], + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "name", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *UpdateNodePluginRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if value, ok := s.Name.Get(); ok { + if err := func() error { + if err := (validate.String{ + MinLength: 2, + MinLengthSet: true, + MaxLength: 30, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: regexMap["^[A-Za-z0-9_\\s-]+$"], + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "name", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *UpdateNodeRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if value, ok := s.Name.Get(); ok { + if err := func() error { + if err := (validate.String{ + MinLength: 3, + MinLengthSet: true, + MaxLength: 30, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: nil, + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "name", + Error: err, + }) + } + if err := func() error { + if value, ok := s.Address.Get(); ok { + if err := func() error { + if err := (validate.String{ + MinLength: 2, + MinLengthSet: true, + MaxLength: 0, + MaxLengthSet: false, + Email: false, + Hostname: false, + Regex: nil, + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "address", + Error: err, + }) + } + if err := func() error { + if value, ok := s.Port.Get(); ok { + if err := func() error { + if err := (validate.Float{ + MinSet: true, + Min: 1, + MaxSet: true, + Max: 65535, + MinExclusive: false, + MaxExclusive: false, + MultipleOfSet: false, + MultipleOf: nil, + Pattern: nil, + }).Validate(float64(value)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "port", + Error: err, + }) + } + if err := func() error { + if value, ok := s.TrafficLimitBytes.Get(); ok { + if err := func() error { + if err := (validate.Float{ + MinSet: true, + Min: 0, + MaxSet: false, + Max: 0, + MinExclusive: false, + MaxExclusive: false, + MultipleOfSet: false, + MultipleOf: nil, + Pattern: nil, + }).Validate(float64(value)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "trafficLimitBytes", + Error: err, + }) + } + if err := func() error { + if value, ok := s.NotifyPercent.Get(); ok { + if err := func() error { + if err := (validate.Float{ + MinSet: true, + Min: 0, + MaxSet: true, + Max: 100, + MinExclusive: false, + MaxExclusive: false, + MultipleOfSet: false, + MultipleOf: nil, + Pattern: nil, + }).Validate(float64(value)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "notifyPercent", + Error: err, + }) + } + if err := func() error { + if value, ok := s.TrafficResetDay.Get(); ok { + if err := func() error { + if err := (validate.Float{ + MinSet: true, + Min: 1, + MaxSet: true, + Max: 31, + MinExclusive: false, + MaxExclusive: false, + MultipleOfSet: false, + MultipleOf: nil, + Pattern: nil, + }).Validate(float64(value)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "trafficResetDay", + Error: err, + }) + } + if err := func() error { + if value, ok := s.CountryCode.Get(); ok { + if err := func() error { + if err := (validate.String{ + MinLength: 0, + MinLengthSet: false, + MaxLength: 2, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: nil, + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "countryCode", + Error: err, + }) + } + if err := func() error { + if value, ok := s.ConsumptionMultiplier.Get(); ok { + if err := func() error { + if err := (validate.Float{ + MinSet: true, + Min: 0, + MaxSet: true, + Max: 100, + MinExclusive: false, + MaxExclusive: false, + MultipleOfSet: false, + MultipleOf: nil, + Pattern: nil, + }).Validate(float64(value)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "consumptionMultiplier", + Error: err, + }) + } + if err := func() error { + if value, ok := s.ConfigProfile.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "configProfile", + Error: err, + }) + } + if err := func() error { + if s.Tags == nil { + return nil // optional + } + if err := (validate.Array{ + MinLength: 0, + MinLengthSet: false, + MaxLength: 10, + MaxLengthSet: true, + }).ValidateLength(len(s.Tags)); err != nil { + return errors.Wrap(err, "array") + } + var failures []validate.FieldError + for i, elem := range s.Tags { + if err := func() error { + if err := (validate.String{ + MinLength: 0, + MinLengthSet: false, + MaxLength: 36, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: regexMap["^[A-Z0-9_:]+$"], + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(elem)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "tags", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *UpdatePasskeyRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.String{ + MinLength: 2, + MinLengthSet: true, + MaxLength: 30, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: regexMap["^[A-Za-z0-9_\\s-]+$"], + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(s.Name)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "name", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *UpdateRemnawaveSettingsRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if value, ok := s.Oauth2Settings.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "oauth2Settings", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *UpdateSubscriptionPageConfigRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if value, ok := s.Name.Get(); ok { + if err := func() error { + if err := (validate.String{ + MinLength: 2, + MinLengthSet: true, + MaxLength: 30, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: regexMap["^[A-Za-z0-9_\\s-]+$"], + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "name", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *UpdateSubscriptionSettingsRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if value, ok := s.HappAnnounce.Get(); ok { + if err := func() error { + if err := (validate.String{ + MinLength: 0, + MinLengthSet: false, + MaxLength: 200, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: nil, + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "happAnnounce", + Error: err, + }) + } + if err := func() error { + if value, ok := s.CustomRemarks.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "customRemarks", + Error: err, + }) + } + if err := func() error { + if value, ok := s.ResponseRules.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "responseRules", + Error: err, + }) + } + if err := func() error { + if value, ok := s.HwidSettings.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "hwidSettings", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *UpdateTemplateRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if value, ok := s.Name.Get(); ok { + if err := func() error { + if err := (validate.String{ + MinLength: 2, + MinLengthSet: true, + MaxLength: 255, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: regexMap["^[A-Za-z0-9_\\s-]+$"], + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "name", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *UpdateUserRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if value, ok := s.Status.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "status", + Error: err, + }) + } + if err := func() error { + if value, ok := s.TrafficLimitBytes.Get(); ok { + if err := func() error { + if err := (validate.Int{ + MinSet: true, + Min: 0, + MaxSet: false, + Max: 0, + MinExclusive: false, + MaxExclusive: false, + MultipleOfSet: false, + MultipleOf: 0, + Pattern: nil, + }).Validate(int64(value)); err != nil { + return errors.Wrap(err, "int") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "trafficLimitBytes", + Error: err, + }) + } + if err := func() error { + if value, ok := s.TrafficLimitStrategy.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "trafficLimitStrategy", + Error: err, + }) + } + if err := func() error { + if value, ok := s.Tag.Get(); ok { + if err := func() error { + if err := (validate.String{ + MinLength: 0, + MinLengthSet: false, + MaxLength: 16, + MaxLengthSet: true, + Email: false, + Hostname: false, + Regex: regexMap["^[A-Z0-9_]+$"], + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "tag", + Error: err, + }) + } + if err := func() error { + if value, ok := s.Email.Get(); ok { + if err := func() error { + if err := (validate.String{ + MinLength: 0, + MinLengthSet: false, + MaxLength: 0, + MaxLengthSet: false, + Email: true, + Hostname: false, + Regex: nil, + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "email", + Error: err, + }) + } + if err := func() error { + if value, ok := s.HwidDeviceLimit.Get(); ok { + if err := func() error { + if err := (validate.Int{ + MinSet: true, + Min: 0, + MaxSet: false, + Max: 0, + MinExclusive: false, + MaxExclusive: false, + MultipleOfSet: false, + MultipleOf: 0, + Pattern: nil, + }).Validate(int64(value)); err != nil { + return errors.Wrap(err, "int") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "hwidDeviceLimit", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s UpdateUserRequestStatus) Validate() error { + switch s { + case "ACTIVE": + return nil + case "DISABLED": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s UpdateUserRequestTrafficLimitStrategy) Validate() error { + switch s { + case "NO_RESET": + return nil + case "DAY": + return nil + case "WEEK": + return nil + case "MONTH": + return nil + case "MONTH_ROLLING": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *UserItem2) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.DaysLeft)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "daysLeft", + Error: err, + }) + } + if err := func() error { + if err := s.UserStatus.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "userStatus", + Error: err, + }) + } + if err := func() error { + if err := s.TrafficLimitStrategy.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "trafficLimitStrategy", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s UserItem2TrafficLimitStrategy) Validate() error { + switch s { + case "NO_RESET": + return nil + case "DAY": + return nil + case "WEEK": + return nil + case "MONTH": + return nil + case "MONTH_ROLLING": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s UserItem2UserStatus) Validate() error { + switch s { + case "ACTIVE": + return nil + case "DISABLED": + return nil + case "LIMITED": + return nil + case "EXPIRED": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *UserItemInfo) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.ID)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "id", + Error: err, + }) + } + if err := func() error { + if value, ok := s.Status.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "status", + Error: err, + }) + } + if err := func() error { + if value, ok := s.TrafficLimitStrategy.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "trafficLimitStrategy", + Error: err, + }) + } + if err := func() error { + if value, ok := s.Email.Get(); ok { + if err := func() error { + if err := (validate.String{ + MinLength: 0, + MinLengthSet: false, + MaxLength: 0, + MaxLengthSet: false, + Email: true, + Hostname: false, + Regex: nil, + MinNumeric: 0, + MinNumericSet: false, + MaxNumeric: 0, + MaxNumericSet: false, + }).Validate(string(value)); err != nil { + return errors.Wrap(err, "string") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "email", + Error: err, + }) + } + if err := func() error { + if s.ActiveInternalSquads == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "activeInternalSquads", + Error: err, + }) + } + if err := func() error { + if err := s.UserTraffic.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "userTraffic", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s UserItemInfoStatus) Validate() error { + switch s { + case "ACTIVE": + return nil + case "DISABLED": + return nil + case "LIMITED": + return nil + case "EXPIRED": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s UserItemInfoTrafficLimitStrategy) Validate() error { + switch s { + case "NO_RESET": + return nil + case "DAY": + return nil + case "WEEK": + return nil + case "MONTH": + return nil + case "MONTH_ROLLING": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *UserResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Response.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *UserSubscriptionHistory) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Total)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "total", + Error: err, + }) + } + if err := func() error { + if s.Records == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.Records { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "records", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *UserTrafficItem) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.UsedTrafficBytes)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "usedTrafficBytes", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.LifetimeUsedTrafficBytes)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "lifetimeUsedTrafficBytes", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *UsersResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Response == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.Response { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "response", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *ValidationError) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Path == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "path", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *XrayReportItem) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if value, ok := s.Level.Get(); ok { + if err := func() error { + if err := (validate.Float{}).Validate(float64(value)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "level", + Error: err, + }) + } + if err := func() error { + if err := (validate.Float{}).Validate(float64(s.Ts)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "ts", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..1ace370 --- /dev/null +++ b/go.mod @@ -0,0 +1,40 @@ +module git.voidsmiths.dev/shiranui/remnawave-api-go/v2 + +go 1.25 + +require ( + github.com/go-faster/errors v0.7.1 + github.com/go-faster/jx v1.2.0 + github.com/google/uuid v1.6.0 + github.com/ogen-go/ogen v1.19.0 + github.com/stretchr/testify v1.11.1 + go.opentelemetry.io/otel v1.40.0 + go.opentelemetry.io/otel/metric v1.40.0 + go.opentelemetry.io/otel/trace v1.40.0 +) + +require ( + github.com/cespare/xxhash/v2 v2.3.0 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/dlclark/regexp2 v1.11.5 // indirect + github.com/fatih/color v1.18.0 // indirect + github.com/ghodss/yaml v1.0.0 // indirect + github.com/go-faster/yaml v0.4.6 // indirect + github.com/go-logr/logr v1.4.3 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/mattn/go-colorable v0.1.14 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/segmentio/asm v1.2.1 // indirect + github.com/shopspring/decimal v1.4.0 // indirect + go.opentelemetry.io/auto/sdk v1.2.1 // indirect + go.uber.org/multierr v1.11.0 // indirect + go.uber.org/zap v1.27.1 // indirect + golang.org/x/exp v0.0.0-20251023183803-a4bb9ffd2546 // indirect + golang.org/x/net v0.50.0 // indirect + golang.org/x/sync v0.19.0 // indirect + golang.org/x/sys v0.41.0 // indirect + golang.org/x/text v0.34.0 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..f3398f0 --- /dev/null +++ b/go.sum @@ -0,0 +1,77 @@ +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dlclark/regexp2 v1.11.5 h1:Q/sSnsKerHeCkc/jSTNq1oCm7KiVgUMZRDUoRu0JQZQ= +github.com/dlclark/regexp2 v1.11.5/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= +github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= +github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= +github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/go-faster/errors v0.7.1 h1:MkJTnDoEdi9pDabt1dpWf7AA8/BaSYZqibYyhZ20AYg= +github.com/go-faster/errors v0.7.1/go.mod h1:5ySTjWFiphBs07IKuiL69nxdfd5+fzh1u7FPGZP2quo= +github.com/go-faster/jx v1.2.0 h1:T2YHJPrFaYu21fJtUxC9GzmluKu8rVIFDwwGBKTDseI= +github.com/go-faster/jx v1.2.0/go.mod h1:UWLOVDmMG597a5tBFPLIWJdUxz5/2emOpfsj9Neg0PE= +github.com/go-faster/yaml v0.4.6 h1:lOK/EhI04gCpPgPhgt0bChS6bvw7G3WwI8xxVe0sw9I= +github.com/go-faster/yaml v0.4.6/go.mod h1:390dRIvV4zbnO7qC9FGo6YYutc+wyyUSHBgbXL52eXk= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= +github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE= +github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/ogen-go/ogen v1.19.0 h1:YvdNpeQJ8A8dLLpS6Vs4WxXL53BT6tBPxH0VSjfALhA= +github.com/ogen-go/ogen v1.19.0/go.mod h1:DeShwO+TEpLYXNCuZliSAedphphXsJaTGGbmSomWUjE= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= +github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= +github.com/segmentio/asm v1.2.1 h1:DTNbBqs57ioxAD4PrArqftgypG4/qNpXoJx8TVXxPR0= +github.com/segmentio/asm v1.2.1/go.mod h1:BqMnlJP91P8d+4ibuonYZw9mfnzI9HfxselHZr5aAcs= +github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k= +github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= +go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= +go.opentelemetry.io/otel v1.40.0 h1:oA5YeOcpRTXq6NN7frwmwFR0Cn3RhTVZvXsP4duvCms= +go.opentelemetry.io/otel v1.40.0/go.mod h1:IMb+uXZUKkMXdPddhwAHm6UfOwJyh4ct1ybIlV14J0g= +go.opentelemetry.io/otel/metric v1.40.0 h1:rcZe317KPftE2rstWIBitCdVp89A2HqjkxR3c11+p9g= +go.opentelemetry.io/otel/metric v1.40.0/go.mod h1:ib/crwQH7N3r5kfiBZQbwrTge743UDc7DTFVZrrXnqc= +go.opentelemetry.io/otel/trace v1.40.0 h1:WA4etStDttCSYuhwvEa8OP8I5EWu24lkOzp+ZYblVjw= +go.opentelemetry.io/otel/trace v1.40.0/go.mod h1:zeAhriXecNGP/s2SEG3+Y8X9ujcJOTqQ5RgdEJcawiA= +go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= +go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= +go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= +go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +go.uber.org/zap v1.27.1 h1:08RqriUEv8+ArZRYSTXy1LeBScaMpVSTBhCeaZYfMYc= +go.uber.org/zap v1.27.1/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= +golang.org/x/exp v0.0.0-20251023183803-a4bb9ffd2546 h1:mgKeJMpvi0yx/sU5GsxQ7p6s2wtOnGAHZWCHUM4KGzY= +golang.org/x/exp v0.0.0-20251023183803-a4bb9ffd2546/go.mod h1:j/pmGrbnkbPtQfxEe5D0VQhZC6qKbfKifgD0oM7sR70= +golang.org/x/net v0.50.0 h1:ucWh9eiCGyDR3vtzso0WMQinm2Dnt8cFMuQa9K33J60= +golang.org/x/net v0.50.0/go.mod h1:UgoSli3F/pBgdJBHCTc+tp3gmrU4XswgGRgtnwWTfyM= +golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4= +golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.41.0 h1:Ivj+2Cp/ylzLiEU89QhWblYnOE9zerudt9Ftecq2C6k= +golang.org/x/sys v0.41.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/text v0.34.0 h1:oL/Qq0Kdaqxa1KbNeMKwQq0reLCCaFtqu2eNuSeNHbk= +golang.org/x/text v0.34.0/go.mod h1:homfLqTYRFyVYemLBFl5GgL/DWEiH5wcsQ5gSh1yziA= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/scripts/__pycache__/smart_consolidate.cpython-313.pyc b/scripts/__pycache__/smart_consolidate.cpython-313.pyc new file mode 100644 index 0000000..fa036c5 Binary files /dev/null and b/scripts/__pycache__/smart_consolidate.cpython-313.pyc differ diff --git a/scripts/create_consolidated_schema.py b/scripts/create_consolidated_schema.py new file mode 100755 index 0000000..7b2df03 --- /dev/null +++ b/scripts/create_consolidated_schema.py @@ -0,0 +1,401 @@ +#!/usr/bin/env python3 +""" +Create consolidated OpenAPI schema by extracting schemas section +and applying consolidation mappings based on detected duplicate patterns. + +This tool works with potentially malformed JSON files by extracting only +the schemas section and rebuilding a clean OpenAPI spec. +""" + +import json +import sys +from collections import defaultdict +from pathlib import Path + + +def extract_schemas_section(filepath: str) -> dict: + """Extract only the schemas section from a potentially malformed OpenAPI file.""" + with open(filepath, 'r', encoding='utf-8') as f: + content = f.read() + + schemas_start = content.find('"schemas": {') + if schemas_start < 0: + raise ValueError('Could not find "schemas" section') + + schemas_part = content[schemas_start + len('"schemas": '):] + + # Count braces to find the end + brace_count = 0 + in_string = False + escape = False + end_pos = 0 + + for i, char in enumerate(schemas_part): + if escape: + escape = False + continue + if char == '\\': + escape = True + continue + if char == '"': + in_string = not in_string + continue + if not in_string: + if char == '{': + brace_count += 1 + elif char == '}': + brace_count -= 1 + if brace_count == 0: + end_pos = i + 1 + break + + schemas_json = schemas_part[:end_pos] + wrapped = '{"schemas": ' + schemas_json + '}' + data = json.loads(wrapped) + return data['schemas'] + + +def create_consolidation_map() -> dict: + """ + Create consolidation map based on analyzed duplicate patterns. + Maps: old_schema_name -> canonical_schema_name + """ + return { + # Group 1: User Responses (9 duplicates) + 'DisableUserResponseDto': 'CreateUserResponseDto', + 'EnableUserResponseDto': 'CreateUserResponseDto', + 'GetUserByShortUuidResponseDto': 'CreateUserResponseDto', + 'GetUserByUsernameResponseDto': 'CreateUserResponseDto', + 'GetUserByUuidResponseDto': 'CreateUserResponseDto', + 'ResetUserTrafficResponseDto': 'CreateUserResponseDto', + 'RevokeUserSubscriptionResponseDto': 'CreateUserResponseDto', + 'UpdateUserResponseDto': 'CreateUserResponseDto', + + # Group 2: Delete Operations (8 duplicates) + 'DeleteConfigProfileResponseDto': 'DeleteResponseDto', + 'DeleteExternalSquadResponseDto': 'DeleteResponseDto', + 'DeleteHostResponseDto': 'DeleteResponseDto', + 'DeleteInfraProviderByUuidResponseDto': 'DeleteResponseDto', + 'DeleteInternalSquadResponseDto': 'DeleteResponseDto', + 'DeleteNodeResponseDto': 'DeleteResponseDto', + 'DeleteSubscriptionTemplateResponseDto': 'DeleteResponseDto', + 'DeleteUserResponseDto': 'DeleteResponseDto', + + # Group 3: Event Operations (8 duplicates) + 'AddUsersToExternalSquadResponseDto': 'EventResponseDto', + 'AddUsersToInternalSquadResponseDto': 'EventResponseDto', + 'BulkAllResetTrafficUsersResponseDto': 'EventResponseDto', + 'BulkAllUpdateUsersResponseDto': 'EventResponseDto', + 'RemoveUsersFromExternalSquadResponseDto': 'EventResponseDto', + 'RemoveUsersFromInternalSquadResponseDto': 'EventResponseDto', + 'RestartAllNodesResponseDto': 'EventResponseDto', + 'RestartNodeResponseDto': 'EventResponseDto', + + # Group 4: Bulk Operations Response (6 duplicates) + 'BulkDeleteUsersByStatusResponseDto': 'BulkActionResponseDto', + 'BulkDeleteUsersResponseDto': 'BulkActionResponseDto', + 'BulkResetTrafficUsersResponseDto': 'BulkActionResponseDto', + 'BulkRevokeUsersSubscriptionResponseDto': 'BulkActionResponseDto', + 'BulkUpdateUsersResponseDto': 'BulkActionResponseDto', + 'BulkUpdateUsersSquadsResponseDto': 'BulkActionResponseDto', + + # Group 5: Bulk Request (6 duplicates) + 'BulkDeleteHostsRequestDto': 'BulkUuidsRequestDto', + 'BulkDisableHostsRequestDto': 'BulkUuidsRequestDto', + 'BulkEnableHostsRequestDto': 'BulkUuidsRequestDto', + 'BulkResetTrafficUsersRequestDto': 'BulkUuidsRequestDto', + 'BulkRevokeUsersSubscriptionRequestDto': 'BulkUuidsRequestDto', + + # Group 6: Hosts Response (6 duplicates) + 'BulkDeleteHostsResponseDto': 'GetAllHostsResponseDto', + 'BulkDisableHostsResponseDto': 'GetAllHostsResponseDto', + 'BulkEnableHostsResponseDto': 'GetAllHostsResponseDto', + 'SetInboundToManyHostsResponseDto': 'GetAllHostsResponseDto', + 'SetPortToManyHostsResponseDto': 'GetAllHostsResponseDto', + + # Group 7: Token Responses (5 duplicates) + 'OAuth2CallbackResponseDto': 'LoginResponseDto', + 'RegisterResponseDto': 'LoginResponseDto', + 'TelegramCallbackResponseDto': 'LoginResponseDto', + 'VerifyPasskeyAuthenticationResponseDto': 'LoginResponseDto', + + # Group 8: Node Responses (5 duplicates) + 'DisableNodeResponseDto': 'CreateNodeResponseDto', + 'EnableNodeResponseDto': 'CreateNodeResponseDto', + 'GetOneNodeResponseDto': 'CreateNodeResponseDto', + 'UpdateNodeResponseDto': 'CreateNodeResponseDto', + + # Group 9: Empty Wrapper (4 duplicates) + 'GetPasskeyAuthenticationOptionsResponseDto': 'GetPasskeyRegistrationOptionsResponseDto', + 'VerifyPasskeyAuthenticationRequestDto': 'GetPasskeyRegistrationOptionsResponseDto', + 'VerifyPasskeyRegistrationRequestDto': 'GetPasskeyRegistrationOptionsResponseDto', + + # Group 10: Subscription Info (4 duplicates) + 'GetSubscriptionByShortUuidProtectedResponseDto': 'GetSubscriptionInfoResponseDto', + 'GetSubscriptionByUsernameResponseDto': 'GetSubscriptionInfoResponseDto', + 'GetSubscriptionByUuidResponseDto': 'GetSubscriptionInfoResponseDto', + + # Group 11: Snippet Operations (4 duplicates) + 'CreateSnippetResponseDto': 'GetSnippetsResponseDto', + 'DeleteSnippetResponseDto': 'GetSnippetsResponseDto', + 'UpdateSnippetResponseDto': 'GetSnippetsResponseDto', + + # Group 12: HWID Devices (4 duplicates) + 'CreateUserHwidDeviceResponseDto': 'GetUserHwidDevicesResponseDto', + 'DeleteAllUserHwidDevicesResponseDto': 'GetUserHwidDevicesResponseDto', + 'DeleteUserHwidDeviceResponseDto': 'GetUserHwidDevicesResponseDto', + + # Group 13: Billing Nodes (4 duplicates) + 'CreateInfraBillingNodeResponseDto': 'GetInfraBillingNodesResponseDto', + 'DeleteInfraBillingNodeByUuidResponseDto': 'GetInfraBillingNodesResponseDto', + 'UpdateInfraBillingNodeResponseDto': 'GetInfraBillingNodesResponseDto', + + # Group 14: User Search (3 duplicates) + 'GetUserByEmailResponseDto': 'GetUserByTelegramIdResponseDto', + 'GetUserByTagResponseDto': 'GetUserByTelegramIdResponseDto', + + # Group 15: Templates (3 duplicates) + 'CreateSubscriptionTemplateResponseDto': 'GetTemplateResponseDto', + 'UpdateTemplateResponseDto': 'GetTemplateResponseDto', + + # Group 16: Config Profiles (3 duplicates) + 'CreateConfigProfileResponseDto': 'GetConfigProfileByUuidResponseDto', + 'UpdateConfigProfileResponseDto': 'GetConfigProfileByUuidResponseDto', + + # Group 17: Internal Squads (3 duplicates) + 'CreateInternalSquadResponseDto': 'GetInternalSquadByUuidResponseDto', + 'UpdateInternalSquadResponseDto': 'GetInternalSquadByUuidResponseDto', + + # Group 18: External Squads (3 duplicates) + 'CreateExternalSquadResponseDto': 'GetExternalSquadByUuidResponseDto', + 'UpdateExternalSquadResponseDto': 'GetExternalSquadByUuidResponseDto', + + # Group 19: Hosts (3 duplicates) + 'CreateHostResponseDto': 'GetOneHostResponseDto', + 'UpdateHostResponseDto': 'GetOneHostResponseDto', + + # Group 20: Infrastructure Providers (3 duplicates) + 'CreateInfraProviderResponseDto': 'GetInfraProviderByUuidResponseDto', + 'UpdateInfraProviderResponseDto': 'GetInfraProviderByUuidResponseDto', + + # Group 21: Billing History (3 duplicates) + 'CreateInfraBillingHistoryRecordResponseDto': 'GetInfraBillingHistoryRecordsResponseDto', + 'DeleteInfraBillingHistoryRecordByUuidResponseDto': 'GetInfraBillingHistoryRecordsResponseDto', + + # Group 22: Settings (2 duplicates) + 'UpdateRemnawaveSettingsResponseDto': 'GetRemnawaveSettingsResponseDto', + + # Group 23: Passkeys (2 duplicates) + 'DeletePasskeyResponseDto': 'GetAllPasskeysResponseDto', + + # Group 24: Tags (2 duplicates) + 'GetAllHostTagsResponseDto': 'GetAllTagsResponseDto', + + # Group 25: Inbounds (2 duplicates) + 'GetInboundsByProfileUuidResponseDto': 'GetAllInboundsResponseDto', + + # Group 26: Snippet Requests (2 duplicates) + 'UpdateSnippetRequestDto': 'CreateSnippetRequestDto', + + # Group 27: Nodes (2 duplicates) + 'ReorderNodeResponseDto': 'GetAllNodesResponseDto', + + # Group 28: Subscription Settings (2 duplicates) + 'UpdateSubscriptionSettingsResponseDto': 'GetSubscriptionSettingsResponseDto', + } + + +def create_canonical_schemas(original_schemas: dict, consolidation_map: dict) -> dict: + """ + Create new schemas dict with canonical names and new generic schemas. + """ + # Get all canonical names from mapping + canonical_names = set(consolidation_map.values()) + duplicates_to_remove = set(consolidation_map.keys()) + + # Keep only canonical schemas + new_schemas = {} + for name, schema_def in original_schemas.items(): + if name not in duplicates_to_remove: + new_schemas[name] = schema_def + + # Add new generic schemas based on patterns found + new_schemas['DeleteResponseDto'] = { + "properties": { + "response": { + "properties": { + "isDeleted": {"type": "boolean"} + }, + "required": ["isDeleted"], + "type": "object" + } + }, + "required": ["response"], + "type": "object" + } + + new_schemas['EventResponseDto'] = { + "properties": { + "response": { + "properties": { + "eventSent": {"type": "boolean"} + }, + "required": ["eventSent"], + "type": "object" + } + }, + "required": ["response"], + "type": "object" + } + + new_schemas['BulkActionResponseDto'] = { + "properties": { + "response": { + "properties": { + "affectedRows": {"type": "number"} + }, + "required": ["affectedRows"], + "type": "object" + } + }, + "required": ["response"], + "type": "object" + } + + new_schemas['BulkUuidsRequestDto'] = { + "properties": { + "uuids": { + "items": { + "format": "uuid", + "type": "string" + }, + "type": "array" + } + }, + "required": ["uuids"], + "type": "object" + } + + return new_schemas + + +def replace_refs_in_spec(spec: dict, consolidation_map: dict) -> dict: + """Replace all $ref references to consolidated schemas throughout the spec.""" + + def replace_in_value(value): + if isinstance(value, dict): + if '$ref' in value: + ref = value['$ref'] + if ref.startswith('#/components/schemas/'): + schema_name = ref.replace('#/components/schemas/', '') + if schema_name in consolidation_map: + value['$ref'] = f"#/components/schemas/{consolidation_map[schema_name]}" + else: + for k, v in value.items(): + value[k] = replace_in_value(v) + elif isinstance(value, list): + return [replace_in_value(item) for item in value] + + return value + + replace_in_value(spec) + return spec + + +def main(): + if len(sys.argv) < 2: + print("Usage: python3 create_consolidated_schema.py [output_file]", file=sys.stderr) + print("Example: python3 create_consolidated_schema.py api-2-2-0.json api-2-2-0-consolidated.json", file=sys.stderr) + sys.exit(1) + + input_file = sys.argv[1] + output_file = sys.argv[2] if len(sys.argv) > 2 else input_file.replace('.json', '-consolidated.json') + + try: + print(f"📂 Extracting schemas from: {input_file}") + original_schemas = extract_schemas_section(input_file) + print(f"✓ Found {len(original_schemas)} schemas") + + print("\n🔍 Creating consolidation mapping...") + consolidation_map = create_consolidation_map() + + # Count consolidations + consolidations = len(consolidation_map) + canonical_count = len(set(consolidation_map.values())) + + print(f"✓ Will consolidate {consolidations} schemas into {canonical_count} canonical schemas") + + print("\n📝 Creating consolidated schemas...") + new_schemas = create_canonical_schemas(original_schemas, consolidation_map) + print(f"✓ New schema count: {len(new_schemas)}") + + print("\n📖 Loading full OpenAPI spec...") + with open(input_file, 'r', encoding='utf-8') as f: + content = f.read() + + # Find last valid JSON brace + brace_count = 0 + in_string = False + escape = False + last_valid = 0 + + for i, char in enumerate(content): + if escape: + escape = False + continue + if char == '\\': + escape = True + continue + if char == '"': + in_string = not in_string + continue + if not in_string: + if char == '{': + brace_count += 1 + elif char == '}': + brace_count -= 1 + if brace_count == 0: + last_valid = i + 1 + + # Load truncated JSON + full_spec = json.loads(content[:last_valid]) + + print("🔄 Replacing all schema references...") + full_spec = replace_refs_in_spec(full_spec, consolidation_map) + + print("📝 Updating schemas in spec...") + full_spec['components']['schemas'] = new_schemas + + print(f"\n💾 Writing consolidated spec to: {output_file}") + with open(output_file, 'w', encoding='utf-8') as f: + json.dump(full_spec, f, indent=2, ensure_ascii=False) + + # Print summary + schemas_removed = len(original_schemas) - len(new_schemas) + reduction_pct = (schemas_removed / len(original_schemas)) * 100 + + print(f"\n✅ CONSOLIDATION COMPLETE") + print(f" Original schemas: {len(original_schemas)}") + print(f" Consolidated schemas: {len(new_schemas)}") + print(f" Schemas removed: {schemas_removed}") + print(f" Reduction: {reduction_pct:.1f}%") + print(f" Generic schemas: {canonical_count}") + + # Print mapping summary + print(f"\n📋 CONSOLIDATION MAPPING:") + grouped = defaultdict(list) + for old, new in sorted(consolidation_map.items()): + grouped[new].append(old) + + for canonical, duplicates in sorted(grouped.items()): + print(f" ✓ {canonical} (← {len(duplicates)} schemas)") + + except Exception as e: + print(f"\n✗ Error: {e}", file=sys.stderr) + import traceback + traceback.print_exc() + sys.exit(1) + + +if __name__ == "__main__": + main() diff --git a/scripts/find_duplicate_schemas.py b/scripts/find_duplicate_schemas.py new file mode 100755 index 0000000..bea79cd --- /dev/null +++ b/scripts/find_duplicate_schemas.py @@ -0,0 +1,304 @@ +#!/usr/bin/env python3 +""" +OpenAPI Schema Duplicate Finder + +This script analyzes OpenAPI/Swagger JSON files to find duplicate or identical +request/response models (DTOs). Useful for identifying opportunities to consolidate +schemas and reduce API specification redundancy. + +Usage: + python3 find_duplicate_schemas.py + python3 find_duplicate_schemas.py api-2-2-2.json + python3 find_duplicate_schemas.py api-2-2-0.json + +Features: + - Handles malformed JSON files by attempting salvage through truncation + - Groups identical schemas together + - Shows detailed analysis of each duplicate group + - Outputs statistics and recommendations +""" + +import json +import sys +from collections import defaultdict +from pathlib import Path + + +def find_schemas_section(content: str) -> tuple[str, int]: + """ + Extract the schemas JSON object from OpenAPI file. + + Returns: + Tuple of (schemas_json_string, end_position) + """ + schemas_start = content.find('"schemas": {') + if schemas_start < 0: + raise ValueError('Could not find "schemas" section in JSON file') + + schemas_part = content[schemas_start + len('"schemas": '):] + + # Count braces to find the end of the schemas object + brace_count = 0 + in_string = False + escape = False + end_pos = 0 + + for i, char in enumerate(schemas_part): + if escape: + escape = False + continue + if char == '\\': + escape = True + continue + if char == '"': + in_string = not in_string + continue + if not in_string: + if char == '{': + brace_count += 1 + elif char == '}': + brace_count -= 1 + if brace_count == 0: + end_pos = i + 1 + break + + if end_pos == 0: + raise ValueError('Could not find end of schemas section') + + schemas_json = schemas_part[:end_pos] + return schemas_json, schemas_start + len('"schemas": ') + end_pos + + +def load_schemas(filepath: str) -> dict: + """ + Load schemas from an OpenAPI JSON file. + Attempts to handle malformed files by extracting only the schemas section. + """ + filepath = Path(filepath) + if not filepath.exists(): + raise FileNotFoundError(f"File not found: {filepath}") + + print(f"📂 Reading file: {filepath}", file=sys.stderr) + + with open(filepath, 'r', encoding='utf-8') as f: + content = f.read() + + file_size_mb = len(content) / (1024 * 1024) + print(f"📊 File size: {file_size_mb:.2f} MB", file=sys.stderr) + + try: + # Try parsing the entire file first + spec = json.loads(content) + schemas = spec.get('components', {}).get('schemas', {}) + print(f"✓ File parsed successfully (full JSON)", file=sys.stderr) + except json.JSONDecodeError: + print(f"⚠ Full JSON parse failed, attempting schema extraction...", file=sys.stderr) + + try: + schemas_json, _ = find_schemas_section(content) + wrapped = '{"schemas": ' + schemas_json + '}' + data = json.loads(wrapped) + schemas = data['schemas'] + print(f"✓ Schemas extracted successfully (partial extraction)", file=sys.stderr) + except (ValueError, json.JSONDecodeError) as e: + print(f"✗ Error: {e}", file=sys.stderr) + sys.exit(1) + + return schemas + + +def find_duplicates(schemas: dict) -> tuple[dict, list]: + """ + Find duplicate/identical schemas. + + Returns: + Tuple of (schema_groups_dict, sorted_duplicates_list) + """ + schema_groups = defaultdict(list) + + for name, schema_def in schemas.items(): + # Convert schema to JSON string for comparison + key = json.dumps(schema_def, sort_keys=True, default=str) + schema_groups[key].append(name) + + # Extract duplicates (groups with more than one schema) + duplicates = sorted( + [(v, k) for k, v in schema_groups.items() if len(v) > 1], + key=lambda x: len(x[0]), + reverse=True + ) + + return schema_groups, duplicates + + +def print_summary(schemas: dict, schema_groups: dict, duplicates: list) -> None: + """Print summary statistics.""" + print("\n" + "=" * 130) + print("📈 SUMMARY STATISTICS") + print("=" * 130) + print(f"Total schemas: {len(schemas)}") + print(f"Unique definitions: {len(schema_groups)}") + print(f"Duplicate groups: {len(duplicates)}") + print(f"Redundant schemas: {len(schemas) - len(schema_groups)}") + print("=" * 130 + "\n") + + +def print_duplicates(duplicates: list, max_groups: int = None) -> None: + """Print detailed information about each duplicate group.""" + if not duplicates: + print("✓ No duplicate schemas found - all schemas are unique!") + return + + print("=" * 130) + print("🔍 DUPLICATE SCHEMAS FOUND:") + print("=" * 130) + + for idx, (names, schema_json) in enumerate(duplicates[:max_groups] if max_groups else duplicates, 1): + schema_def = json.loads(schema_json) + + print(f"\n[GROUP {idx}] {len(names)} IDENTICAL MODELS") + print(f"Models: {', '.join(sorted(names))}") + + # Show schema structure details + print(f"\nSchema Type Details:") + if schema_def.get('type') == 'object': + if 'properties' in schema_def: + props = list(schema_def['properties'].keys()) + print(f" • Object with {len(props)} properties") + print(f" • Fields: {props[:8]}", end='') + if len(props) > 8: + print(f" ... (+{len(props)-8} more)") + else: + print() + if 'required' in schema_def: + print(f" • Required: {schema_def['required']}") + elif '$ref' in schema_def: + print(f" • Reference: {schema_def['$ref']}") + else: + print(f" • Type: {schema_def.get('type', 'unknown')}") + + # Show schema definition preview + schema_preview = json.dumps(schema_def, indent=2) + lines = schema_preview.split('\n')[:12] + print(f"\nSchema Definition (preview):") + for line in lines: + print(f" {line}") + if len(schema_preview.split('\n')) > 12: + print(f" ... ({len(schema_preview.split('\n')) - 12} more lines)") + + print("-" * 130) + + +def print_recommendations(duplicates: list) -> None: + """Print consolidation recommendations.""" + if not duplicates: + return + + print("\n" + "=" * 130) + print("💡 CONSOLIDATION RECOMMENDATIONS") + print("=" * 130) + + # Categorize by group size + large_groups = [d for d in duplicates if len(d[0]) >= 5] + medium_groups = [d for d in duplicates if 3 <= len(d[0]) < 5] + small_groups = [d for d in duplicates if len(d[0]) == 2] + + if large_groups: + print(f"\n🔴 HIGH PRIORITY (5+ duplicates):") + for names, _ in large_groups: + print(f" • {len(names)} models can be consolidated: {names[0]}* (and {len(names)-1} others)") + + if medium_groups: + print(f"\n🟡 MEDIUM PRIORITY (3-4 duplicates):") + for names, _ in medium_groups: + print(f" • {len(names)} models: {', '.join(names[:2])}...") + + if small_groups: + print(f"\n🟢 LOW PRIORITY (2 duplicates):") + total_pairs = len(small_groups) + print(f" • {total_pairs} pairs of duplicate schemas") + + print("\n" + "=" * 130) + + +def print_grouped_by_pattern(duplicates: list) -> None: + """Print duplicates grouped by response pattern.""" + if not duplicates: + return + + print("\n" + "=" * 130) + print("🎯 PATTERNS IDENTIFIED") + print("=" * 130) + + patterns = { + "Delete Operations": [], + "Empty Wrapper": [], + "Event Based": [], + "Bulk Operations": [], + "Token Responses": [], + "List Responses": [], + "Other": [] + } + + for names, schema_json in duplicates: + schema_def = json.loads(schema_json) + + # Categorize by pattern + if isinstance(schema_def.get('properties', {}).get('response'), dict): + resp = schema_def['properties']['response'] + if resp.get('properties', {}).get('isDeleted'): + patterns["Delete Operations"].append((len(names), names)) + elif resp.get('properties', {}).get('eventSent'): + patterns["Event Based"].append((len(names), names)) + elif resp.get('properties', {}).get('affectedRows'): + patterns["Bulk Operations"].append((len(names), names)) + elif resp.get('properties', {}).get('accessToken'): + patterns["Token Responses"].append((len(names), names)) + elif not resp.get('properties'): + patterns["Empty Wrapper"].append((len(names), names)) + elif isinstance(resp.get('items'), dict): + patterns["List Responses"].append((len(names), names)) + else: + patterns["Other"].append((len(names), names)) + else: + patterns["Other"].append((len(names), names)) + + for pattern_name, items in patterns.items(): + if items: + total_models = sum(count for count, _ in items) + print(f"\n{pattern_name}: {total_models} total models across {len(items)} groups") + for count, names in sorted(items, key=lambda x: x[0], reverse=True): + print(f" [{count}] {', '.join(names[:3])}{'...' if len(names) > 3 else ''}") + + +def main(): + if len(sys.argv) < 2: + print("Usage: python3 find_duplicate_schemas.py ", file=sys.stderr) + print("\nExamples:", file=sys.stderr) + print(" python3 find_duplicate_schemas.py api-2-2-2.json", file=sys.stderr) + print(" python3 find_duplicate_schemas.py openapi.json", file=sys.stderr) + sys.exit(1) + + filepath = sys.argv[1] + max_groups = int(sys.argv[2]) if len(sys.argv) > 2 else None + + try: + # Load schemas + schemas = load_schemas(filepath) + + # Find duplicates + schema_groups, duplicates = find_duplicates(schemas) + + # Print results + print_summary(schemas, schema_groups, duplicates) + print_duplicates(duplicates, max_groups) + print_recommendations(duplicates) + print_grouped_by_pattern(duplicates) + + except Exception as e: + print(f"\n✗ Error: {e}", file=sys.stderr) + sys.exit(1) + + +if __name__ == "__main__": + main() diff --git a/scripts/generate_client_ext.py b/scripts/generate_client_ext.py new file mode 100755 index 0000000..25ff15e --- /dev/null +++ b/scripts/generate_client_ext.py @@ -0,0 +1,179 @@ +#!/usr/bin/env python3 +""" +Generate complete client_ext.go with all API operations organized by controller. + +This script parses the OpenAPI spec and generates organized sub-clients for all API endpoints. +""" + +import json +import re +from pathlib import Path + + +def to_camel_case(snake_str): + """Convert snake_case to camelCase""" + components = snake_str.split('_') + return components[0] + ''.join(x.title() for x in components[1:]) + + +def get_method_name(operation_id): + """Extract method name from operationId like 'UsersController_createUser' -> 'CreateUser'""" + parts = operation_id.split('_') + if len(parts) >= 2: + return to_camel_case('_'.join(parts[1:])) + return operation_id + + +def get_client_name(tag): + """Convert tag to client name like 'Users Controller' -> 'UsersClient'""" + # Remove brackets, clean up + clean_tag = tag.replace('[', '').replace(']', '').replace(' ', '_').replace('-', '_') + words = clean_tag.split('_') + return ''.join(w.title() for w in words if w) + 'Client' + + +def get_field_name(tag): + """Convert tag to field name like 'Users Controller' -> 'users'""" + clean_tag = tag.replace('[', '').replace(']', '').replace(' ', '_').replace('-', '_') + words = clean_tag.split('_') + name = ''.join(w.title() for w in words if w) + return name[0].lower() + name[1:] if name else 'client' + + +def parse_operation_id(operation_id): + """Parse operation ID to extract controller and method parts""" + parts = operation_id.split('_') + return parts[0] if parts else '', '_'.join(parts[1:]) if len(parts) > 1 else '' + + +def generate_client_method(operation_id, op_details): + """Generate a method signature for the operation""" + method_name = get_method_name(operation_id) + + # Determine parameters + params_part = "" + return_type = "error" + + # Check for parameters + if op_details.get('params'): + params_part = f"params {operation_id.split('_')[0]}*" + + # Check for request body + if op_details.get('requestBody'): + if params_part: + params_part += ", " + request_type = f"*{operation_id.split('_')[0]}" + params_part += f"request {request_type}" + + # Simple method - delegate to base client + return f"""func ({get_field_name("dummy")[0]}c *{get_client_name("dummy")}) {method_name}(ctx context.Context{", " + params_part if params_part else ""}) error {{ +\treturn nil // Implementation delegated to base Client +}}""" + + +def main(): + with open('api-2-2-2-consolidated.json', 'r') as f: + spec = json.load(f) + + paths = spec.get('paths', {}) + operations_by_controller = {} + + # Group operations by controller + for path, methods in paths.items(): + for method, details in methods.items(): + if isinstance(details, dict) and 'operationId' in details: + tag = details.get('tags', ['Unknown'])[0] + + if tag not in operations_by_controller: + operations_by_controller[tag] = [] + + operations_by_controller[tag].append({ + 'operationId': details['operationId'], + 'method': method.upper(), + 'path': path, + }) + + # Generate client_ext.go content + content = '''// Code generated by client_ext generator. DO NOT EDIT manually. +// This file extends the base Client with organized sub-client access patterns for all API operations. + +package api + +import "context" + +// ClientExt wraps the base Client and adds organized sub-client methods. +type ClientExt struct { +\t*Client +''' + + # Add fields + field_names = set() + for tag in sorted(operations_by_controller.keys()): + field_name = get_field_name(tag) + if field_name not in field_names: + field_names.add(field_name) + content += f'\t{field_name} *{get_client_name(tag)}\n' + + content += '''} + +// NewClientExt wraps an existing Client with sub-client access. +func NewClientExt(client *Client) *ClientExt { +\treturn &ClientExt{ +\t\tClient: client, +''' + + # Add initializations + for tag in sorted(operations_by_controller.keys()): + field_name = get_field_name(tag) + client_name = get_client_name(tag) + content += f'\t\t{field_name}: New{client_name}(client),\n' + + content += '''\t} +} + +''' + + # Add accessor methods + for tag in sorted(operations_by_controller.keys()): + field_name = get_field_name(tag) + client_name = get_client_name(tag) + content += f'func (c *ClientExt) {to_camel_case(field_name)}() *{client_name} {{ return c.{field_name} }}\n' + + content += '\n' + + # Generate sub-client types and methods + for tag in sorted(operations_by_controller.keys()): + client_name = get_client_name(tag) + field_name = get_field_name(tag) + operations = operations_by_controller[tag] + + content += f''' +// {client_name} provides organized access to {tag.lower()} operations +type {client_name} struct{{ client *Client }} +func New{client_name}(c *Client) *{client_name} {{ return &{client_name}{{client: c}} }} + +''' + + # Generate methods for this controller + for op in operations: + op_id = op['operationId'] + method_name = get_method_name(op_id) + + # Simplified approach - just delegate to base client + content += f"func ({field_name[0]}c *{client_name}) {method_name}(ctx context.Context) error {{\n" + content += f"\t// Delegate to base client method\n" + content += f"\treturn nil\n" + content += f"}}\n\n" + + # Write to file + output_path = Path('api/client_ext.go') + with open(output_path, 'w') as f: + f.write(content) + + print(f"✅ Generated {output_path}") + print(f" {len(operations_by_controller)} controllers") + print(f" {sum(len(ops) for ops in operations_by_controller.values())} total operations") + + +if __name__ == '__main__': + main() diff --git a/scripts/generate_clientext_final.py b/scripts/generate_clientext_final.py new file mode 100755 index 0000000..856ab23 --- /dev/null +++ b/scripts/generate_clientext_final.py @@ -0,0 +1,234 @@ +#!/usr/bin/env python3 +""" +Final client_ext.go generator that actually works. +Reads api-2-2-2-consolidated.json and oas_client_gen.go +""" +import json +import re + +print("=" * 70) +print("CLIENT_EXT.GO GENERATOR") +print("=" * 70) + +# Step 1: Parse oas_client_gen.go for method signatures +print("\n[1/4] Parsing oas_client_gen.go...") +with open('api/oas_client_gen.go', 'r') as f: + content = f.read() + +# Extract method signatures more carefully +methods = {} +# Match: func (c *Client) MethodName(ctx context.Context, ...) (...) { +pattern = r'func \(c \*Client\) (\w+)\((ctx context\.Context(?:,\s*[^)]+)?)\)\s*\(([^)]+)\)' + +for match in re.finditer(pattern, content, re.MULTILINE): + method_name = match.group(1) + if method_name in ['requestURL', 'sendApiTokensControllerCreate']: # Skip internal + continue + if method_name.startswith('send'): + continue + + full_params = match.group(2) # "ctx context.Context, request *Type, params ParamsType" + returns = match.group(3) # "TypeRes, error" + + # Parse params (skip ctx) + params_list = [] + if ', ' in full_params: + params_str = full_params.split(', ', 1)[1] # Remove "ctx context.Context" + # Split remaining params carefully + for param in re.findall(r'(\w+)\s+([\*\w\.]+)', params_str): + params_list.append((param[0], param[1])) + + # Parse returns + returns_list = [r.strip() for r in returns.split(',')] + + methods[method_name] = { + 'params': params_list, + 'returns': returns_list + } + +print(f" ✓ Found {len(methods)} client methods") + +# Step 2: Parse api-2-2-2-consolidated.json for operations +print("\n[2/4] Parsing api-2-2-2-consolidated.json...") +with open('api-2-2-2-consolidated.json', 'r') as f: + spec = json.load(f) + +operations_by_controller = {} + +for path, path_item in spec.get('paths', {}).items(): + for http_method, op_spec in path_item.items(): + if http_method not in ['get', 'post', 'put', 'patch', 'delete']: + continue + + op_id = op_spec.get('operationId') + if not op_id or '_' not in op_id: + continue + + # Parse: "ApiTokensController_create" -> controller="ApiTokensController", method="create" + parts = op_id.split('_', 1) + controller_full = parts[0] # e.g., "ApiTokensController" + method_snake = parts[1] # e.g., "create" + + # Controller name without "Controller" suffix + controller = controller_full.replace('Controller', '') + + # Convert method to PascalCase: findAll -> FindAll, get_status -> GetStatus + # Just capitalize first letter of each word, preserve rest + def to_pascal(s): + if not s: + return s + # Capitalize first letter, keep rest as-is + return s[0].upper() + s[1:] + + # Split by underscore and capitalize each part + parts = method_snake.split('_') + method_pascal = ''.join(to_pascal(p) for p in parts) + + # The actual Go method name in oas_client_gen.go + go_method = controller_full + method_pascal # e.g., "ApiTokensControllerCreate" + + if controller not in operations_by_controller: + operations_by_controller[controller] = [] + + operations_by_controller[controller].append({ + 'operationId': op_id, + 'goMethod': go_method, + 'displayMethod': method_pascal + }) + +total_ops = sum(len(ops) for ops in operations_by_controller.values()) +print(f" ✓ Found {total_ops} operations in {len(operations_by_controller)} controllers") + +# Step 3: Generate code +print("\n[3/4] Generating code...") + +def to_camel(s): + """PascalCase -> camelCase""" + return s[0].lower() + s[1:] if s else s + +code = '''// Code generated by generate_clientext_final.py. DO NOT EDIT manually. +// Generated from api-2-2-2-consolidated.json with renamed schemas. + +package api + +import "context" + +// ClientExt wraps the base Client with organized sub-client access. +type ClientExt struct { +\t*Client +''' + +# Add fields for each controller +for controller in sorted(operations_by_controller.keys()): + field_name = to_camel(controller) + code += f'\t{field_name} *{controller}Client\n' + +code += '''} + +// NewClientExt creates a new ClientExt wrapper. +func NewClientExt(client *Client) *ClientExt { +\treturn &ClientExt{ +\t\tClient: client, +''' + +# Initialize fields +for controller in sorted(operations_by_controller.keys()): + field_name = to_camel(controller) + code += f'\t\t{field_name}: New{controller}Client(client),\n' + +code += '''\t} +} + +''' + +# Accessor methods +for controller in sorted(operations_by_controller.keys()): + field_name = to_camel(controller) + code += f'''// {controller} returns the {controller}Client. +func (ce *ClientExt) {controller}() *{controller}Client {{ +\treturn ce.{field_name} +}} + +''' + +# Sub-client types and methods +for controller in sorted(operations_by_controller.keys()): + code += f'''// {controller}Client provides {controller} operations. +type {controller}Client struct {{ +\tclient *Client +}} + +// New{controller}Client creates a new {controller}Client. +func New{controller}Client(client *Client) *{controller}Client {{ +\treturn &{controller}Client{{client: client}} +}} + +''' + + # Generate methods for this controller + for op in sorted(operations_by_controller[controller], key=lambda x: x['goMethod']): + go_method = op['goMethod'] + display_method = op['displayMethod'] + op_id = op['operationId'] + + if go_method not in methods: + print(f" ⚠ Warning: {go_method} not found in oas_client_gen.go") + continue + + method_info = methods[go_method] + params = method_info['params'] + returns = method_info['returns'] + + # Build parameter list + if params: + params_sig = ', '.join([f'{p[0]} {p[1]}' for p in params]) + params_call = ', '.join([p[0] for p in params]) + else: + params_sig = '' + params_call = '' + + # Build return type + if returns: + ret_type = ', '.join(returns) + if len(returns) > 1: + ret_type = f'({ret_type})' + else: + ret_type = '' + + # Generate method + code += f'''// {display_method} calls {op_id}. +func (sc *{controller}Client) {display_method}(ctx context.Context''' + + if params_sig: + code += f', {params_sig}' + + code += ')' + + if ret_type: + code += f' {ret_type}' + + code += ' {\n' + + if returns: + code += f'\treturn sc.client.{go_method}(ctx' + else: + code += f'\tsc.client.{go_method}(ctx' + + if params_call: + code += f', {params_call}' + + code += ')\n}\n\n' + +# Step 4: Write to file +print("\n[4/4] Writing api/client_ext.go...") +with open('api/client_ext.go', 'w') as f: + f.write(code) + +print("\n" + "=" * 70) +print(f"✅ SUCCESS!") +print("=" * 70) +print(f" Controllers: {len(operations_by_controller)}") +print(f" Operations: {total_ops}") +print(f" File: api/client_ext.go") +print(f" Uses: api-2-2-2-consolidated.json (renamed schemas)") +print("=" * 70) diff --git a/scripts/pipeline.py b/scripts/pipeline.py new file mode 100755 index 0000000..c90f26a --- /dev/null +++ b/scripts/pipeline.py @@ -0,0 +1,792 @@ +#!/usr/bin/env python3 +""" +Complete API Processing Pipeline +================================= + +This script processes OpenAPI specs through the complete workflow: +1. Smart consolidate schemas (unify duplicates + error responses) +2. Generate Go client via ogen +3. Generate client_ext.go wrapper + +Usage: + cd /path/to/remnawave-api-go + python3 scripts/pipeline.py specs/api-2-3-0.json +""" + +import json +import subprocess +import sys +import re +from pathlib import Path +from typing import Dict, List, Tuple + +from smart_consolidate import SmartConsolidator, InlineSchemaExtractor, unify_error_responses, fix_nullable_without_type + + +class Colors: + HEADER = '\033[95m' + BLUE = '\033[94m' + CYAN = '\033[96m' + GREEN = '\033[92m' + YELLOW = '\033[93m' + RED = '\033[91m' + END = '\033[0m' + BOLD = '\033[1m' + + +def print_step(step: int, total: int, title: str): + """Print a step header""" + print(f"\n{Colors.BOLD}{Colors.CYAN}{'='*70}") + print(f"STEP {step}/{total}: {title}") + print(f"{'='*70}{Colors.END}\n") + + +def print_success(message: str): + print(f"{Colors.GREEN}✓ {message}{Colors.END}") + + +def print_warning(message: str): + print(f"{Colors.YELLOW}⚠ {message}{Colors.END}") + + +def print_error(message: str): + print(f"{Colors.RED}✗ {message}{Colors.END}") + + +def print_info(message: str): + print(f"{Colors.BLUE}→ {message}{Colors.END}") + + +# ============================================================================ +# STEP 1: SMART CONSOLIDATE SCHEMAS +# ============================================================================ + +def smart_consolidate_schemas(input_file: str, output_file: str, skip_inline_extraction: bool = False) -> Tuple[int, int, dict]: + """ + Consolidate duplicate schemas using smart analysis. + Combines old Steps 1 (consolidate) and 2 (rename) into one step. + """ + print_info(f"Loading {input_file}...") + with open(input_file, 'r') as f: + spec = json.load(f) + + original_count = len(spec.get('components', {}).get('schemas', {})) + + print_info("Analyzing schemas with SmartConsolidator...") + consolidator = SmartConsolidator(spec) + + # Analyze duplicates + report = consolidator.analyze_duplicates() + print_info(f"Found {report['exact']['count']} exact duplicate groups ({report['exact']['total_schemas']} schemas)") + print_info(f"Found {report['structural']['count']} structural duplicate groups") + + if report['near_duplicates']['count'] > 0: + print_warning(f"Found {report['near_duplicates']['count']} near-duplicate groups (metadata differs)") + + if report['constraint_only']['count'] > 0: + print_warning(f"Found {report['constraint_only']['count']} constraint-only groups (validation differs)") + + # Consolidate + rename_map, stats = consolidator.consolidate() + + if not rename_map: + print_warning("No duplicates to consolidate") + return original_count, original_count, {} + + # Apply consolidation + new_spec = consolidator.apply_consolidation(rename_map) + + # Unify error responses + print_info("Unifying error responses...") + new_spec, error_stats = unify_error_responses(new_spec) + if error_stats['total_replaced'] > 0: + print_info(f"Unified {error_stats['total_replaced']} error responses (400: {error_stats['responses_unified'].get('400', 0)}, 401: {error_stats['responses_unified'].get('401', 0)})") + stats['unified_errors'] = error_stats['total_replaced'] + + # Fix nullable properties without type (ogen requires type for nullable fields) + print_info("Fixing nullable properties without type...") + new_spec, nullable_fixed = fix_nullable_without_type(new_spec) + if nullable_fixed > 0: + print_info(f"Fixed {nullable_fixed} nullable properties without type") + stats['nullable_fixed'] = nullable_fixed + + # Extract inline schemas for reuse (optional - can cause conflicts in some specs) + if not skip_inline_extraction: + print_info("Extracting inline schemas for reuse...") + extractor = InlineSchemaExtractor(new_spec) + new_spec, extract_stats = extractor.extract_inline_schemas() + + if extract_stats['extracted_count'] > 0: + print_info(f"Extracted {extract_stats['extracted_count']} inline schemas") + stats['extracted_schemas'] = extract_stats['extracted_count'] + else: + print_info("Skipping inline schema extraction") + + print_info(f"Writing {output_file}...") + with open(output_file, 'w') as f: + json.dump(new_spec, f, indent=2, ensure_ascii=False) + + # Print top consolidated groups + print_info("Top consolidated groups:") + for name, schemas in sorted(stats['consolidated_names'].items(), key=lambda x: -len(x[1]))[:5]: + print(f" {name} <- {len(schemas)} schemas") + + new_count = len(new_spec.get('components', {}).get('schemas', {})) + stats['final_count'] = new_count + print_success(f"Consolidated {original_count} → {new_count} schemas (-{original_count - new_count}, -{(original_count-new_count)*100//original_count}%)") + + return original_count, new_count, stats + + +# ============================================================================ +# STEP 1.5: PATCH SPEC FOR TEXT/PLAIN SUBSCRIPTION ENDPOINTS +# ============================================================================ + +# These subscription endpoints return text/plain (subscription configs as strings), +# but the OpenAPI spec doesn't declare response content, causing ogen to skip them. +SUBSCRIPTION_TEXT_OPERATIONS = [ + 'SubscriptionController_getSubscription', + 'SubscriptionController_getSubscriptionByClientType', + 'SubscriptionController_getSubscriptionWithType', +] + + +def patch_subscription_text_responses(spec: dict) -> int: + """ + Patch the spec to add text/plain response content + for subscription endpoints that return raw subscription configs. + Modifies spec in-place. Returns the number of operations patched. + """ + patched = 0 + for path, path_item in spec.get('paths', {}).items(): + for http_method, op in path_item.items(): + if not isinstance(op, dict): + continue + op_id = op.get('operationId', '') + if op_id not in SUBSCRIPTION_TEXT_OPERATIONS: + continue + + responses = op.get('responses', {}) + resp_200 = responses.get('200', {}) + + # Add text/plain content if not already present + if 'content' not in resp_200: + resp_200['content'] = {} + if 'text/plain' not in resp_200['content']: + resp_200['content']['text/plain'] = { + 'schema': {'type': 'string'} + } + patched += 1 + print_info(f"Patched {op_id} with text/plain response") + + responses['200'] = resp_200 + op['responses'] = responses + + return patched + + +# ============================================================================ +# STEP 1.6: SHORTEN OPERATION IDS +# ============================================================================ + +def shorten_operation_ids(spec: dict) -> int: + """ + Strip 'Controller' from all operationIds to produce shorter Go type names. + E.g. SubscriptionController_getSubscription → Subscription_getSubscription + Modifies spec in-place. Returns the number of operations renamed. + """ + renamed = 0 + for path, path_item in spec.get('paths', {}).items(): + for http_method, op in path_item.items(): + if not isinstance(op, dict): + continue + op_id = op.get('operationId', '') + if 'Controller' in op_id: + op['operationId'] = op_id.replace('Controller', '') + renamed += 1 + return renamed + + +# ============================================================================ +# STEP 1.7: STRIP 'Dto' SUFFIX FROM SCHEMA NAMES +# ============================================================================ + +def strip_dto_suffix(spec: dict) -> int: + """ + Remove 'Dto' suffix from all schema names and update all $ref pointers. + E.g. CreateUserRequestDto → CreateUserRequest + Modifies spec in-place. Returns the number of schemas renamed. + """ + schemas = spec.get('components', {}).get('schemas', {}) + rename_map = {} + + for name in list(schemas.keys()): + if name.endswith('Dto'): + new_name = name[:-3] + # Avoid collision with existing schema + if new_name not in schemas and new_name not in rename_map.values(): + rename_map[name] = new_name + + if not rename_map: + return 0 + + # Rename schemas + new_schemas = {} + for name, schema in schemas.items(): + new_name = rename_map.get(name, name) + new_schemas[new_name] = schema + spec['components']['schemas'] = new_schemas + + # Update all $ref pointers throughout the spec + old_prefix = '#/components/schemas/' + ref_map = {f'{old_prefix}{old}': f'{old_prefix}{new}' for old, new in rename_map.items()} + + def _update_refs(obj): + if isinstance(obj, dict): + if '$ref' in obj and obj['$ref'] in ref_map: + obj['$ref'] = ref_map[obj['$ref']] + for v in obj.values(): + _update_refs(v) + elif isinstance(obj, list): + for item in obj: + _update_refs(item) + + _update_refs(spec) + return len(rename_map) + + +# ============================================================================ +# STEP 1.8: FIX NUMERIC QUERY PARAMETERS THAT SHOULD BE INTEGERS +# ============================================================================ + +# Query parameter names that are semantically integers (pagination, limits, counts) +INTEGER_QUERY_PARAMS = {'size', 'start', 'topUsersLimit', 'topNodesLimit', 'limit', 'offset', 'page', 'count'} + + +def fix_number_query_params(spec: dict) -> int: + """ + Change query parameters with type 'number' to 'integer' when they represent + pagination or limit values. The upstream OpenAPI spec incorrectly uses 'number' + for these, which produces float64 in Go instead of int. + Modifies spec in-place. Returns the number of parameters fixed. + """ + fixed = 0 + for path, path_item in spec.get('paths', {}).items(): + for http_method, op in path_item.items(): + if not isinstance(op, dict): + continue + for param in op.get('parameters', []): + if param.get('in') != 'query': + continue + schema = param.get('schema', {}) + if schema.get('type') == 'number' and param.get('name') in INTEGER_QUERY_PARAMS: + schema['type'] = 'integer' + fixed += 1 + return fixed + + +# ============================================================================ +# STEP 2: GENERATE GO CLIENT WITH OGEN +# ============================================================================ + +def generate_ogen_client(spec_file: str) -> bool: + """Generate Go client using ogen""" + print_info(f"Running ogen with {spec_file}...") + + try: + result = subprocess.run( + [ + 'go', 'run', 'github.com/ogen-go/ogen/cmd/ogen@v1.19.0', + '--config', '.ogen.yml', + '--target', 'api', + '--package', 'api', + '--clean', + spec_file + ], + capture_output=True, + text=True, + timeout=120 + ) + + if result.returncode == 0: + print_success(f"Go client generated from {spec_file}") + return True + else: + print_error(f"ogen generation failed: {result.stderr}") + return False + except subprocess.TimeoutExpired: + print_error("ogen generation timed out") + return False + except Exception as e: + print_error(f"Error running ogen: {e}") + return False + + +# ============================================================================ +# STEP 3: GENERATE CLIENT_EXT.GO +# ============================================================================ + +def parse_oas_client_methods(client_file: str) -> dict: + """Parse method signatures from oas_client_gen.go""" + with open(client_file, 'r') as f: + content = f.read() + + methods = {} + pattern = r'func \(c \*Client\) (\w+)\((ctx context\.Context(?:,\s*[^)]+)?)\)\s*\(([^)]+)\)' + + for match in re.finditer(pattern, content, re.MULTILINE): + method_name = match.group(1) + if method_name in ['requestURL'] or method_name.startswith('send'): + continue + + full_params = match.group(2) + returns = match.group(3) + + # Parse params (skip ctx and variadic options) + params_list = [] + has_options = False + if ', ' in full_params: + params_str = full_params.split(', ', 1)[1] + # Detect variadic ...RequestOption + if '...RequestOption' in params_str: + has_options = True + # Remove variadic param before parsing regular params + params_str = re.sub(r',?\s*options\s+\.\.\.RequestOption', '', params_str).strip() + for param in re.findall(r'(\w+)\s+([\*\w\.]+)', params_str): + params_list.append((param[0], param[1])) + + returns_list = [r.strip() for r in returns.split(',')] + + methods[method_name] = { + 'params': params_list, + 'returns': returns_list, + 'has_options': has_options, + } + + return methods + + +def parse_params_structs(params_file: str) -> dict: + """Parse Params struct fields from oas_parameters_gen.go""" + with open(params_file, 'r') as f: + content = f.read() + + params_structs = {} + + # Match struct definitions with their fields + # Pattern: type XXXParams struct {\n\tField Type\n} + pattern = r'type (\w+Params) struct \{([^}]*)\}' + + for match in re.finditer(pattern, content, re.DOTALL): + struct_name = match.group(1) + fields_block = match.group(2) + + fields = [] + # Parse fields: Name Type or Name Type `json:"..."` + for line in fields_block.strip().split('\n'): + line = line.strip() + if not line or line.startswith('//'): + continue + # Match field: UUID string or Size OptFloat64 + field_match = re.match(r'^(\w+)\s+([\w\.\*\[\]]+)', line) + if field_match: + field_name = field_match.group(1) + field_type = field_match.group(2) + fields.append((field_name, field_type)) + + params_structs[struct_name] = fields + + return params_structs + + +def simplify_param_type(param_type: str) -> str: + """Convert ogen types to simpler Go types for method signatures""" + # OptString -> string, OptFloat64 -> float64, etc. + type_map = { + 'OptString': 'string', + 'OptInt': 'int', + 'OptFloat64': 'float64', + 'OptBool': 'bool', + } + return type_map.get(param_type, param_type) + + +# Go reserved keywords that cannot be used as identifiers +GO_KEYWORDS = { + 'break', 'case', 'chan', 'const', 'continue', 'default', 'defer', 'else', + 'fallthrough', 'for', 'func', 'go', 'goto', 'if', 'import', 'interface', + 'map', 'package', 'range', 'return', 'select', 'struct', 'switch', 'type', + 'var', +} + + +def safe_param_name(name: str) -> str: + """Convert a field name to a safe Go parameter name, avoiding reserved keywords.""" + lower = name.lower() + if lower in GO_KEYWORDS: + return lower + 'Val' + return lower + + +def _to_pascal(s: str) -> str: + """Convert first letter to uppercase, preserving camelCase.""" + if not s: + return s + return s[0].upper() + s[1:] + + +def parse_operations(spec_file: str) -> dict: + """Parse operations from OpenAPI spec""" + with open(spec_file, 'r') as f: + spec = json.load(f) + + operations_by_controller = {} + + for path, path_item in spec.get('paths', {}).items(): + for http_method, op_spec in path_item.items(): + if http_method not in ['get', 'post', 'put', 'patch', 'delete']: + continue + + op_id = op_spec.get('operationId') + if not op_id or '_' not in op_id: + continue + + parts = op_id.split('_', 1) + controller_full = parts[0] + method_snake = parts[1] + + controller = controller_full.replace('Controller', '') + + method_parts = method_snake.split('_') + method_pascal = ''.join(_to_pascal(p) for p in method_parts) + + go_method = controller_full + method_pascal + + if controller not in operations_by_controller: + operations_by_controller[controller] = [] + + operations_by_controller[controller].append({ + 'operationId': op_id, + 'goMethod': go_method, + 'displayMethod': method_pascal + }) + + return operations_by_controller + + +def generate_client_ext(spec_file: str, client_file: str, output_file: str) -> Tuple[int, int]: + """Generate client_ext.go wrapper with simplified method signatures""" + print_info("Parsing oas_client_gen.go...") + methods = parse_oas_client_methods(client_file) + print_success(f"Found {len(methods)} client methods") + + # Parse params structs for simplification + params_file = client_file.replace('oas_client_gen.go', 'oas_parameters_gen.go') + print_info("Parsing oas_parameters_gen.go...") + params_structs = parse_params_structs(params_file) + print_success(f"Found {len(params_structs)} param structs") + + print_info("Parsing operations from spec...") + operations_by_controller = parse_operations(spec_file) + total_ops = sum(len(ops) for ops in operations_by_controller.values()) + print_success(f"Found {total_ops} operations in {len(operations_by_controller)} controllers") + + def to_camel(s): + return s[0].lower() + s[1:] if s else s + + def can_simplify_params(params_type: str) -> tuple: + """ + Check if Params struct can be simplified to individual arguments. + Returns (can_simplify, [(field_name, field_type, simple_type), ...]) + """ + struct_name = params_type.lstrip('*') + if struct_name not in params_structs: + return False, [] + + fields = params_structs[struct_name] + if not fields: + return False, [] + + # Only simplify if all fields are simple types + simple_types = {'string', 'int', 'int64', 'float64', 'bool', + 'OptString', 'OptInt', 'OptInt64', 'OptFloat64', 'OptBool'} + + simplified = [] + for field_name, field_type in fields: + if field_type in simple_types or field_type.startswith('Opt'): + simple = simplify_param_type(field_type) + simplified.append((field_name, field_type, simple)) + else: + # Complex type, don't simplify + return False, [] + + return True, simplified + + # Generate code + code = '''// Code generated by pipeline.py. DO NOT EDIT manually. + +package api + +import "context" + +// ClientExt wraps the base Client with organized sub-client access. +// Use controller methods (e.g., client.Users().GetByUuid()) to call API operations. +type ClientExt struct { +\tclient *Client +''' + + for controller in sorted(operations_by_controller.keys()): + field_name = to_camel(controller) + code += f'\t{field_name} *{controller}Client\n' + + code += '''} + +// NewClientExt creates a new ClientExt wrapper. +func NewClientExt(client *Client) *ClientExt { +\treturn &ClientExt{ +\t\tclient: client, +''' + + for controller in sorted(operations_by_controller.keys()): + field_name = to_camel(controller) + code += f'\t\t{field_name}: New{controller}Client(client),\n' + + code += '''\t} +} + +// Client returns the underlying ogen Client. +func (ce *ClientExt) Client() *Client { +\treturn ce.client +} + +''' + + for controller in sorted(operations_by_controller.keys()): + field_name = to_camel(controller) + code += f'''// {controller} returns the {controller}Client. +func (ce *ClientExt) {controller}() *{controller}Client {{ +\treturn ce.{field_name} +}} + +''' + + matched_methods = 0 + + for controller in sorted(operations_by_controller.keys()): + code += f'''// {controller}Client provides {controller} operations. +type {controller}Client struct {{ +\tclient *Client +}} + +// New{controller}Client creates a new {controller}Client. +func New{controller}Client(client *Client) *{controller}Client {{ +\treturn &{controller}Client{{client: client}} +}} + +''' + + for op in sorted(operations_by_controller[controller], key=lambda x: x['goMethod']): + go_method = op['goMethod'] + display_method = op['displayMethod'] + op_id = op['operationId'] + + if go_method not in methods: + continue + + matched_methods += 1 + method_info = methods[go_method] + params = method_info['params'] + returns = method_info['returns'] + has_options = method_info.get('has_options', False) + + # options suffix for signature and call + opts_sig = ', options ...RequestOption' if has_options else '' + opts_call = ', options...' if has_options else '' + + # Check if we can simplify Params struct to individual args + simplified_params = None + params_index = None + for i, (pname, ptype) in enumerate(params): + if ptype.endswith('Params'): + can_simplify, simplified = can_simplify_params(ptype) + if can_simplify: + simplified_params = simplified + params_index = i + break + + if returns: + ret_type = ', '.join(returns) + if len(returns) > 1: + ret_type = f'({ret_type})' + else: + ret_type = '' + + # Generate method with simplified params or original + if simplified_params and params_index is not None: + params_type = params[params_index][1] + + sig_parts = [] + for i, (pname, ptype) in enumerate(params): + if i == params_index: + for field_name, field_type, simple_type in simplified_params: + sig_parts.append(f'{safe_param_name(field_name)} {simple_type}') + else: + sig_parts.append(f'{pname} {ptype}') + + simple_args = ', '.join(sig_parts) + + params_init = f'{params_type}{{\n' + for field_name, field_type, simple_type in simplified_params: + arg_name = safe_param_name(field_name) + if field_type.startswith('Opt'): + params_init += f'\t\t{field_name}: NewOpt{simple_type.title()}({arg_name}),\n' + else: + params_init += f'\t\t{field_name}: {arg_name},\n' + params_init += '\t}' + + call_args = [] + for i, (pname, ptype) in enumerate(params): + if i == params_index: + call_args.append(params_init) + else: + call_args.append(pname) + + code += f'''// {display_method} calls {op_id}. +func (sc *{controller}Client) {display_method}(ctx context.Context, {simple_args}{opts_sig}) {ret_type} {{ +\treturn sc.client.{go_method}(ctx, {', '.join(call_args)}{opts_call}) +}} + +''' + else: + # Original params + if params: + params_sig = ', '.join([f'{p[0]} {p[1]}' for p in params]) + params_call = ', '.join([p[0] for p in params]) + else: + params_sig = '' + params_call = '' + + code += f'''// {display_method} calls {op_id}. +func (sc *{controller}Client) {display_method}(ctx context.Context''' + + if params_sig: + code += f', {params_sig}' + + code += opts_sig + ')' + + if ret_type: + code += f' {ret_type}' + + code += ' {\n' + + if returns: + code += f'\treturn sc.client.{go_method}(ctx' + else: + code += f'\tsc.client.{go_method}(ctx' + + if params_call: + code += f', {params_call}' + + code += opts_call + ')\n}\n\n' + + print_info(f"Writing {output_file}...") + with open(output_file, 'w') as f: + f.write(code) + + print_success(f"Generated {matched_methods}/{total_ops} methods") + + return len(operations_by_controller), matched_methods + + +# ============================================================================ +# MAIN PIPELINE +# ============================================================================ + +def main(): + if len(sys.argv) < 2: + print_error("Usage: python3 pipeline.py ") + sys.exit(1) + + input_spec = sys.argv[1] + + if not Path(input_spec).exists(): + print_error(f"File not found: {input_spec}") + sys.exit(1) + + print(f"{Colors.BOLD}{Colors.HEADER}") + print("="*70) + print(" API PROCESSING PIPELINE") + print("="*70) + print(f"{Colors.END}") + print(f"Input: {input_spec}") + + # File paths - now we only need one output file since smart_consolidate does both steps + final_file = input_spec.replace('.json', '-final.json') + client_gen_file = 'api/oas_client_gen.go' + client_ext_file = 'api/client_ext.go' + + try: + # Step 1: Smart consolidate (combines old Steps 1 & 2) + print_step(1, 3, "SMART CONSOLIDATE SCHEMAS") + orig_count, new_count, stats = smart_consolidate_schemas(input_spec, final_file) + + # Step 1.5: Post-process the consolidated spec (in-memory) + print_info("Post-processing consolidated spec...") + with open(final_file, 'r') as f: + final_spec = json.load(f) + + patched_count = patch_subscription_text_responses(final_spec) + if patched_count > 0: + print_success(f"Patched {patched_count} subscription endpoints with text/plain response") + + renamed_count = shorten_operation_ids(final_spec) + if renamed_count > 0: + print_success(f"Shortened {renamed_count} operationIds (removed 'Controller')") + + dto_count = strip_dto_suffix(final_spec) + if dto_count > 0: + print_success(f"Stripped 'Dto' suffix from {dto_count} schema names") + + int_count = fix_number_query_params(final_spec) + if int_count > 0: + print_success(f"Fixed {int_count} query parameters: number → integer") + + with open(final_file, 'w') as f: + json.dump(final_spec, f, indent=2, ensure_ascii=False) + + # Step 2: Generate with ogen + print_step(2, 3, "GENERATE GO CLIENT WITH OGEN") + if not generate_ogen_client(final_file): + print_error("Failed to generate Go client") + sys.exit(1) + + # Step 3: Generate client_ext + print_step(3, 3, "GENERATE CLIENT_EXT.GO WRAPPER") + ctrl_count, method_count = generate_client_ext(final_file, client_gen_file, client_ext_file) + + # Summary + print(f"\n{Colors.BOLD}{Colors.GREEN}") + print("="*70) + print(" PIPELINE COMPLETED SUCCESSFULLY") + print("="*70) + print(f"{Colors.END}") + print(f"\n{Colors.BOLD}Results:{Colors.END}") + print(f" • Schemas: {orig_count} → {new_count} (-{orig_count - new_count}, -{(orig_count-new_count)*100//orig_count}%)") + print(f" • Groups: {stats.get('duplicate_groups', 0)} consolidated") + print(f" • Controllers: {ctrl_count}") + print(f" • Methods: {method_count}") + print(f"\n{Colors.BOLD}Generated files:{Colors.END}") + print(f" • {final_file}") + print(f" • {client_gen_file}") + print(f" • {client_ext_file}") + print() + + except Exception as e: + print_error(f"Pipeline failed: {e}") + import traceback + traceback.print_exc() + sys.exit(1) + + +if __name__ == '__main__': + main() diff --git a/scripts/rename_schemas.py b/scripts/rename_schemas.py new file mode 100755 index 0000000..3e3ae46 --- /dev/null +++ b/scripts/rename_schemas.py @@ -0,0 +1,243 @@ +#!/usr/bin/env python3 +""" +Rename consolidated schemas to more common naming conventions. + +Changes patterns like: +- CreateUserResponseDto → UserResponse +- DeleteResponseDto → DeleteResponse +- EventResponseDto → EventResponse +- BulkActionResponseDto → BulkActionResponse +- BulkUuidsRequestDto → BulkUuidsRequest +""" + +import json +import sys +from pathlib import Path + + +def create_rename_map() -> dict: + """Create mapping from old names to new common names.""" + return { + # User responses (9 schemas) + 'CreateUserResponseDto': 'UserResponse', + 'DisableUserResponseDto': 'UserResponse', + 'EnableUserResponseDto': 'UserResponse', + 'GetUserByShortUuidResponseDto': 'UserResponse', + 'GetUserByUsernameResponseDto': 'UserResponse', + 'GetUserByUuidResponseDto': 'UserResponse', + 'ResetUserTrafficResponseDto': 'UserResponse', + 'RevokeUserSubscriptionResponseDto': 'UserResponse', + 'UpdateUserResponseDto': 'UserResponse', + + # Delete operations (8 schemas) + 'DeleteConfigProfileResponseDto': 'DeleteResponse', + 'DeleteExternalSquadResponseDto': 'DeleteResponse', + 'DeleteHostResponseDto': 'DeleteResponse', + 'DeleteInfraProviderByUuidResponseDto': 'DeleteResponse', + 'DeleteInternalSquadResponseDto': 'DeleteResponse', + 'DeleteNodeResponseDto': 'DeleteResponse', + 'DeleteSubscriptionTemplateResponseDto': 'DeleteResponse', + 'DeleteUserResponseDto': 'DeleteResponse', + 'DeletePasskeyResponseDto': 'DeleteResponse', + + # Event operations (8 schemas) + 'AddUsersToExternalSquadResponseDto': 'EventResponse', + 'AddUsersToInternalSquadResponseDto': 'EventResponse', + 'BulkAllResetTrafficUsersResponseDto': 'EventResponse', + 'BulkAllUpdateUsersResponseDto': 'EventResponse', + 'RemoveUsersFromExternalSquadResponseDto': 'EventResponse', + 'RemoveUsersFromInternalSquadResponseDto': 'EventResponse', + 'RestartAllNodesResponseDto': 'EventResponse', + 'RestartNodeResponseDto': 'EventResponse', + + # Bulk responses (6 schemas) + 'BulkDeleteUsersByStatusResponseDto': 'BulkActionResponse', + 'BulkDeleteUsersResponseDto': 'BulkActionResponse', + 'BulkResetTrafficUsersResponseDto': 'BulkActionResponse', + 'BulkRevokeUsersSubscriptionResponseDto': 'BulkActionResponse', + 'BulkUpdateUsersResponseDto': 'BulkActionResponse', + 'BulkUpdateUsersSquadsResponseDto': 'BulkActionResponse', + + # Bulk requests (6 schemas) + 'BulkDeleteHostsRequestDto': 'BulkUuidsRequest', + 'BulkDisableHostsRequestDto': 'BulkUuidsRequest', + 'BulkEnableHostsRequestDto': 'BulkUuidsRequest', + 'BulkResetTrafficUsersRequestDto': 'BulkUuidsRequest', + 'BulkRevokeUsersSubscriptionRequestDto': 'BulkUuidsRequest', + 'BulkUuidsRequestDto': 'BulkUuidsRequest', + + # Hosts (6 schemas) + 'BulkDeleteHostsResponseDto': 'HostListResponse', + 'BulkDisableHostsResponseDto': 'HostListResponse', + 'BulkEnableHostsResponseDto': 'HostListResponse', + 'GetAllHostsResponseDto': 'HostListResponse', + 'SetInboundToManyHostsResponseDto': 'HostListResponse', + 'SetPortToManyHostsResponseDto': 'HostListResponse', + + # Auth tokens (5 schemas) + 'LoginResponseDto': 'TokenResponse', + 'OAuth2CallbackResponseDto': 'TokenResponse', + 'RegisterResponseDto': 'TokenResponse', + 'TelegramCallbackResponseDto': 'TokenResponse', + 'VerifyPasskeyAuthenticationResponseDto': 'TokenResponse', + + # Node responses (5 schemas) + 'CreateNodeResponseDto': 'NodeResponse', + 'DisableNodeResponseDto': 'NodeResponse', + 'EnableNodeResponseDto': 'NodeResponse', + 'GetOneNodeResponseDto': 'NodeResponse', + 'UpdateNodeResponseDto': 'NodeResponse', + + # Passkey/Auth + 'GetPasskeyRegistrationOptionsResponseDto': 'PasskeyOptionsResponse', + 'GetPasskeyAuthenticationOptionsResponseDto': 'PasskeyOptionsResponse', + 'VerifyPasskeyAuthenticationRequestDto': 'PasskeyOptionsResponse', + 'VerifyPasskeyRegistrationRequestDto': 'PasskeyOptionsResponse', + + # Subscriptions (4 schemas) + 'GetSubscriptionByShortUuidProtectedResponseDto': 'SubscriptionResponse', + 'GetSubscriptionByUsernameResponseDto': 'SubscriptionResponse', + 'GetSubscriptionByUuidResponseDto': 'SubscriptionResponse', + 'GetSubscriptionInfoResponseDto': 'SubscriptionResponse', + + # Snippets (4 schemas) + 'CreateSnippetResponseDto': 'SnippetsResponse', + 'DeleteSnippetResponseDto': 'SnippetsResponse', + 'GetSnippetsResponseDto': 'SnippetsResponse', + 'UpdateSnippetResponseDto': 'SnippetsResponse', + + # HWID Devices (4 schemas) + 'CreateUserHwidDeviceResponseDto': 'HwidDevicesResponse', + 'DeleteAllUserHwidDevicesResponseDto': 'HwidDevicesResponse', + 'DeleteUserHwidDeviceResponseDto': 'HwidDevicesResponse', + 'GetUserHwidDevicesResponseDto': 'HwidDevicesResponse', + + # Billing Nodes (4 schemas) + 'CreateInfraBillingNodeResponseDto': 'BillingNodesResponse', + 'DeleteInfraBillingNodeByUuidResponseDto': 'BillingNodesResponse', + 'GetInfraBillingNodesResponseDto': 'BillingNodesResponse', + 'UpdateInfraBillingNodeResponseDto': 'BillingNodesResponse', + + # Other mappings for remaining schemas + 'GetUserByEmailResponseDto': 'UsersResponse', + 'GetUserByTagResponseDto': 'UsersResponse', + 'GetUserByTelegramIdResponseDto': 'UsersResponse', + + 'CreateSubscriptionTemplateResponseDto': 'TemplateResponse', + 'GetTemplateResponseDto': 'TemplateResponse', + 'UpdateTemplateResponseDto': 'TemplateResponse', + + 'CreateConfigProfileResponseDto': 'ConfigProfileResponse', + 'GetConfigProfileByUuidResponseDto': 'ConfigProfileResponse', + 'UpdateConfigProfileResponseDto': 'ConfigProfileResponse', + + 'CreateInternalSquadResponseDto': 'InternalSquadResponse', + 'GetInternalSquadByUuidResponseDto': 'InternalSquadResponse', + 'UpdateInternalSquadResponseDto': 'InternalSquadResponse', + + 'CreateExternalSquadResponseDto': 'ExternalSquadResponse', + 'GetExternalSquadByUuidResponseDto': 'ExternalSquadResponse', + 'UpdateExternalSquadResponseDto': 'ExternalSquadResponse', + + 'CreateHostResponseDto': 'HostResponse', + 'GetOneHostResponseDto': 'HostResponse', + 'UpdateHostResponseDto': 'HostResponse', + + 'CreateInfraProviderResponseDto': 'InfraProviderResponse', + 'GetInfraProviderByUuidResponseDto': 'InfraProviderResponse', + 'UpdateInfraProviderResponseDto': 'InfraProviderResponse', + + 'CreateInfraBillingHistoryRecordResponseDto': 'BillingHistoryResponse', + 'DeleteInfraBillingHistoryRecordByUuidResponseDto': 'BillingHistoryResponse', + 'GetInfraBillingHistoryRecordsResponseDto': 'BillingHistoryResponse', + + 'GetRemnawaveSettingsResponseDto': 'SettingsResponse', + 'UpdateRemnawaveSettingsResponseDto': 'SettingsResponse', + + 'GetAllPasskeysResponseDto': 'PasskeysResponse', + + 'GetAllTagsResponseDto': 'TagsResponse', + 'GetAllHostTagsResponseDto': 'TagsResponse', + + 'GetAllInboundsResponseDto': 'InboundsResponse', + 'GetInboundsByProfileUuidResponseDto': 'InboundsResponse', + + 'CreateSnippetRequestDto': 'SnippetRequest', + 'UpdateSnippetRequestDto': 'SnippetRequest', + + 'GetAllNodesResponseDto': 'NodesResponse', + 'ReorderNodeResponseDto': 'NodesResponse', + + 'GetSubscriptionSettingsResponseDto': 'SubscriptionSettingsResponse', + 'UpdateSubscriptionSettingsResponseDto': 'SubscriptionSettingsResponse', + } + + +def rename_schemas_in_spec(spec: dict, rename_map: dict) -> dict: + """Rename all schemas in the OpenAPI spec.""" + schemas = spec.get('components', {}).get('schemas', {}) + + new_schemas = {} + for old_name, schema_def in schemas.items(): + new_name = rename_map.get(old_name, old_name) + new_schemas[new_name] = schema_def + + spec['components']['schemas'] = new_schemas + return spec + + +def update_schema_references(spec: dict, rename_map: dict) -> dict: + """Update all $ref references to use new schema names.""" + + def replace_refs(obj): + if isinstance(obj, dict): + for key, value in obj.items(): + if key == '$ref' and isinstance(value, str): + if value.startswith('#/components/schemas/'): + old_name = value.replace('#/components/schemas/', '') + new_name = rename_map.get(old_name, old_name) + obj[key] = f'#/components/schemas/{new_name}' + else: + replace_refs(value) + elif isinstance(obj, list): + for item in obj: + replace_refs(item) + + replace_refs(spec) + return spec + + +def main(): + if len(sys.argv) < 2: + print("Usage: python3 rename_schemas.py [output_file]") + print("Example: python3 rename_schemas.py api-2-2-2-consolidated.json api-2-2-2-renamed.json") + sys.exit(1) + + input_file = sys.argv[1] + output_file = sys.argv[2] if len(sys.argv) > 2 else input_file.replace('.json', '-renamed.json') + + print(f"📂 Loading {input_file}...") + with open(input_file, 'r') as f: + spec = json.load(f) + + rename_map = create_rename_map() + + print(f"🔄 Renaming {len(rename_map)} schemas to common names...") + spec = rename_schemas_in_spec(spec, rename_map) + + print(f"🔗 Updating all schema references...") + spec = update_schema_references(spec, rename_map) + + print(f"💾 Saving to {output_file}...") + with open(output_file, 'w') as f: + json.dump(spec, f, indent=2, ensure_ascii=False) + + print(f"✅ Done! Renamed schemas saved to {output_file}") + print(f"\nSchema name mappings applied:") + for old, new in sorted(rename_map.items()): + if old != new: + print(f" {old} → {new}") + + +if __name__ == "__main__": + main() diff --git a/scripts/smart_consolidate.py b/scripts/smart_consolidate.py new file mode 100755 index 0000000..ea65d68 --- /dev/null +++ b/scripts/smart_consolidate.py @@ -0,0 +1,1268 @@ +#!/usr/bin/env python3 +""" +Smart Schema Consolidation +========================== + +Intelligent consolidation of duplicate OpenAPI schemas with smart naming. + +Key improvements over basic consolidation: +1. Semantic analysis of schema names to find common entity +2. Priority-based canonical name selection +3. Automatic detection of Response/Request/List types +4. No manual rename_map needed +""" + +import copy +import json +import re +from collections import Counter, defaultdict +from typing import Dict, List, Tuple, Optional + + +class SchemaStructureAnalyzer: + """Analyzes schema structure to find duplicates based on attributes""" + + @classmethod + def get_structural_signature(cls, schema: dict, depth: int = 0, include_constraints: bool = True) -> str: + """ + Generate a structural signature for a schema, ignoring metadata. + This allows finding schemas with identical structure but different descriptions. + + Args: + schema: The schema to analyze + depth: Current recursion depth + include_constraints: If True, include validation constraints (minLength, pattern, etc.) + If False, only compare type structure + """ + if not isinstance(schema, dict): + return str(schema) + + sig_parts = [] + + # Type + if 'type' in schema: + sig_parts.append(f"type={schema['type']}") + + # Format + if 'format' in schema: + sig_parts.append(f"format={schema['format']}") + + # $ref + if '$ref' in schema: + sig_parts.append(f"ref={schema['$ref']}") + + # Validation constraints (if enabled) + if include_constraints: + for constraint in ['minLength', 'maxLength', 'minimum', 'maximum', + 'pattern', 'minItems', 'maxItems', 'uniqueItems']: + if constraint in schema: + sig_parts.append(f"{constraint}={schema[constraint]}") + + # Properties (sorted by name, recursive) + if 'properties' in schema: + props = [] + for prop_name, prop_def in sorted(schema['properties'].items()): + prop_sig = cls.get_structural_signature(prop_def, depth + 1, include_constraints) + nullable = prop_def.get('nullable', False) + props.append(f"{prop_name}:{prop_sig}:n={nullable}") + sig_parts.append(f"props=[{';'.join(props)}]") + + # Required fields + if 'required' in schema: + sig_parts.append(f"req={sorted(schema['required'])}") + + # Enum values + if 'enum' in schema: + sig_parts.append(f"enum={sorted(str(e) for e in schema['enum'])}") + + # Array items + if 'items' in schema: + sig_parts.append(f"items={cls.get_structural_signature(schema['items'], depth + 1, include_constraints)}") + + # AllOf/OneOf/AnyOf + for key in ['allOf', 'oneOf', 'anyOf']: + if key in schema: + sigs = sorted(cls.get_structural_signature(s, depth + 1, include_constraints) for s in schema[key]) + sig_parts.append(f"{key}=[{';'.join(sigs)}]") + + # AdditionalProperties + if 'additionalProperties' in schema: + ap = schema['additionalProperties'] + if isinstance(ap, dict): + sig_parts.append(f"addProps={cls.get_structural_signature(ap, depth + 1, include_constraints)}") + else: + sig_parts.append(f"addProps={ap}") + + return '|'.join(sig_parts) + + @classmethod + def get_attribute_set(cls, schema: dict) -> frozenset: + """ + Get the set of attribute names in a schema (for quick comparison). + """ + if not isinstance(schema, dict): + return frozenset() + + attrs = set() + if 'properties' in schema: + for prop_name, prop_def in schema['properties'].items(): + prop_type = prop_def.get('type', 'ref' if '$ref' in prop_def else 'unknown') + attrs.add((prop_name, prop_type)) + + return frozenset(attrs) + + @classmethod + def compare_schemas(cls, schema1: dict, schema2: dict) -> dict: + """ + Compare two schemas and return similarity metrics. + + Returns: + dict with keys: + - exact_match: bool - identical JSON + - structural_match: bool - same structure ignoring metadata + - attribute_match: float - Jaccard similarity of attributes (0-1) + - missing_in_1: set - attributes in schema2 but not schema1 + - missing_in_2: set - attributes in schema1 but not schema2 + """ + exact = json.dumps(schema1, sort_keys=True) == json.dumps(schema2, sort_keys=True) + structural = cls.get_structural_signature(schema1) == cls.get_structural_signature(schema2) + + attrs1 = cls.get_attribute_set(schema1) + attrs2 = cls.get_attribute_set(schema2) + + if attrs1 or attrs2: + intersection = attrs1 & attrs2 + union = attrs1 | attrs2 + jaccard = len(intersection) / len(union) if union else 1.0 + else: + jaccard = 1.0 if exact else 0.0 + + return { + 'exact_match': exact, + 'structural_match': structural, + 'attribute_match': jaccard, + 'missing_in_1': attrs2 - attrs1, + 'missing_in_2': attrs1 - attrs2, + } + + +class SchemaNameAnalyzer: + """Analyzes schema names to extract semantic information""" + + # Operations that return lists + LIST_INDICATORS = {'GetAll', 'FindAll', 'List', 'Bulk'} + + @staticmethod + def remove_dto_suffix(name: str) -> str: + """Remove Dto suffix but keep Response/Request""" + return re.sub(r'Dto$', '', name) + + @staticmethod + def extract_type_suffix(name: str) -> str: + """Extract Response/Request type""" + if 'Response' in name: + return 'Response' + elif 'Request' in name: + return 'Request' + elif 'Body' in name: + return 'Request' # Body is usually a request + return '' + + @classmethod + def extract_entity(cls, name: str) -> Tuple[str, str, bool]: + """ + Extract entity name, action type, and whether it's a list operation. + + Returns: (entity, action_type, is_list) + """ + clean = cls.remove_dto_suffix(name) + type_suffix = cls.extract_type_suffix(name) + + # Check if it's a list operation + is_list = any(indicator in clean for indicator in cls.LIST_INDICATORS) + + # Patterns to extract entity (ordered by specificity) + patterns = [ + # GetUserByXxx -> User + (r'^Get(\w+?)By\w+$', 1), + # GetOneUser -> User + (r'^GetOne(\w+)$', 1), + # GetAllUsers -> User (remove trailing 's') + (r'^GetAll(\w+?)s?$', 1), + # CreateUser -> User + (r'^Create(\w+)$', 1), + # UpdateUser -> User + (r'^Update(\w+)$', 1), + # DeleteUser -> User + (r'^Delete(\w+)$', 1), + # DisableUser -> User + (r'^Disable(\w+)$', 1), + # EnableUser -> User + (r'^Enable(\w+)$', 1), + # ResetUserTraffic -> User + (r'^Reset(\w+?)(?:Traffic|Data|State)$', 1), + # RevokeUserSubscription -> User + (r'^Revoke(\w+?)Subscription$', 1), + # RestartNode -> Node + (r'^Restart(\w+)$', 1), + # BulkDeleteUsers -> User + (r'^Bulk(?:All)?(?:Delete|Update|Reset|Revoke|Enable|Disable)(\w+?)s?$', 1), + # AddUsersToSquad -> Squad (operation on squad) + (r'^(?:Add|Remove)\w+To(\w+)$', 1), + (r'^(?:Add|Remove)\w+From(\w+)$', 1), + # ReorderNodes -> Node + (r'^Reorder(\w+?)s?$', 1), + # SetInboundToManyHosts -> Host + (r'^Set\w+ToMany(\w+?)s?$', 1), + # VerifyPasskeyAuthentication -> Passkey + (r'^Verify(\w+?)(?:Authentication|Registration)$', 1), + # GetPasskeyAuthenticationOptions -> Passkey + (r'^Get(\w+?)(?:Authentication|Registration)Options$', 1), + # LoginResponse -> Auth + (r'^(Login|Register|OAuth2Callback|TelegramCallback)$', 0), + ] + + for pattern, group in patterns: + match = re.match(pattern, clean) + if match: + if group == 0: + # Special case: Auth-related + return 'Token', 'auth', is_list + entity = match.group(group) + # Remove trailing 's' for plural + if entity.endswith('s') and len(entity) > 3: + entity = entity[:-1] + return entity, 'crud', is_list + + # Fallback: try to extract meaningful name + # Remove common prefixes + for prefix in ['Get', 'Create', 'Update', 'Delete', 'Find', 'Fetch']: + if clean.startswith(prefix): + clean = clean[len(prefix):] + break + + return clean, 'unknown', is_list + + @classmethod + def analyze_group(cls, names: List[str]) -> Dict: + """Analyze a group of duplicate schema names""" + entities = [] + types = set() + is_list_group = False + actions = set() + + for name in names: + entity, action, is_list = cls.extract_entity(name) + entities.append(entity) + types.add(cls.extract_type_suffix(name)) + is_list_group = is_list_group or is_list + actions.add(action) + + # Find most common entity + entity_counts = defaultdict(int) + for e in entities: + entity_counts[e] += 1 + + primary_entity = max(entity_counts.keys(), key=lambda x: (entity_counts[x], -len(x))) + + # Determine response type + has_response = 'Response' in types + has_request = 'Request' in types + + return { + 'entity': primary_entity, + 'is_response': has_response and not has_request, + 'is_request': has_request and not has_response, + 'is_mixed': has_response and has_request, + 'is_list': is_list_group, + 'actions': actions, + 'all_entities': list(set(entities)), + } + + +class SmartConsolidator: + """Smart schema consolidation with intelligent naming""" + + # Schema name pairs that must NEVER be consolidated, even if structurally identical. + # Each entry is a frozenset of schema names that should remain separate. + DO_NOT_MERGE = [ + frozenset({'CreateExternalSquadRequestDto', 'CreateSubscriptionPageConfigRequestDto'}), + ] + + # Known entity groupings (for disambiguation) + ENTITY_GROUPS = { + # Auth-related + 'Token': {'Login', 'Register', 'OAuth2Callback', 'TelegramCallback', 'VerifyPasskeyAuthentication'}, + # Settings + 'Settings': {'RemnawaveSettings', 'SubscriptionSettings'}, + } + + # Special naming rules - ordered by specificity (most specific first) + # Check if MAJORITY of names in group match the pattern + SPECIAL_PATTERNS = { + # === HIGH PRIORITY: Specific patterns === + + # Event responses (async operations) - very specific pattern + 'EventResponse': [ + r'^BulkAll\w+Response', + r'^(Add|Remove)UsersTo\w+Response', + r'^(Add|Remove)UsersFrom\w+Response', + r'^Restart(All)?Node\w*Response', + r'^ResetNodeTrafficResponse', + ], + # Delete responses (simple success) - only Delete* prefix + 'DeleteResponse': [ + r'^Delete\w+Response', + ], + # Bulk action results (user operations) + 'BulkActionResponse': [ + r'^Bulk(Delete|Reset|Revoke|Update)Users\w*Response', + ], + # Bulk UUID requests + 'BulkUuidsRequest': [ + r'^Bulk(Delete|Disable|Enable|Reset|Revoke)\w+Request', + ], + # Reorder requests + 'ReorderRequest': [ + r'^Reorder\w+Request', + ], + # Token/Auth responses + 'TokenResponse': [ + r'^(Login|Register|OAuth2Callback|TelegramCallback|VerifyPasskeyAuthentication)Response', + ], + # Passkey options (mixed request/response with same structure) + 'PasskeyOptions': [ + r'^(Get|Verify)Passkey(Authentication|Registration)(Options)?(Response)?$', + r'^VerifyPasskey(Authentication|Registration)Request', + ], + # Tags list response + 'TagsResponse': [ + r'^GetAll\w*Tags\w*Response', + ], + # Inbounds list + 'InboundsResponse': [ + r'^(GetAllInbounds|GetInboundsBy\w+)Response', + ], + # Subscription response (single) + 'SubscriptionResponse': [ + r'^GetSubscription(By\w+|Info)\w*Response', + ], + # Settings responses + 'SettingsResponse': [ + r'^(Get|Update)RemnawaveSettings\w*Response', + ], + 'SubscriptionSettingsResponse': [ + r'^(Get|Update)SubscriptionSettings\w*Response', + ], + # Passkeys list + 'PasskeysResponse': [ + r'^(GetAllPasskeys|DeletePasskey|UpdatePasskey)\w*Response', + ], + # Snippet request + 'SnippetRequest': [ + r'^(Create|Update)Snippet\w*Request', + ], + # Snippets response + 'SnippetsResponse': [ + r'^(Create|Update|Delete|Get)Snippets?\w*Response', + ], + + # === MEDIUM PRIORITY: Entity-specific patterns === + + # Users list response (multiple users) - MUST BE BEFORE UserResponse! + 'UsersResponse': [ + r'^GetUserBy(Email|Tag|TelegramId)\w*Response', + ], + # User single responses (CRUD on single user) + 'UserResponse': [ + r'^(Create|Update|Disable|Enable)UserResponse', + r'^GetUserBy(Uuid|Username|ShortUuid)\w*Response', + r'^(Reset|Revoke)User\w+Response', + ], + # Host list responses + 'HostListResponse': [ + r'^GetAllHostsResponse', + r'^Bulk(Delete|Disable|Enable)HostsResponse', + r'^Set\w+ToManyHostsResponse', + ], + # Host single response + 'HostResponse': [ + r'^(Create|Update|GetOne)HostResponse', + ], + # Node responses (single) + 'NodeResponse': [ + r'^(Create|Update|GetOne|Disable|Enable)NodeResponse', + ], + # Nodes list + 'NodesResponse': [ + r'^(GetAllNodes|ReorderNode)Response', + ], + # Template single response + 'TemplateResponse': [ + r'^(Create|Update|Get)(?:Subscription)?TemplateResponse', + ], + # Templates list response + 'TemplatesResponse': [ + r'^(GetTemplates|Reorder\w+Templates)Response', + ], + # Config profile single + 'ConfigProfileResponse': [ + r'^(Create|Update|Get(Computed)?ConfigProfileBy\w+)Response', + ], + # Config profiles list + 'ConfigProfilesResponse': [ + r'^(GetConfigProfiles|ReorderConfigProfiles)Response', + ], + # Internal squad single + 'InternalSquadResponse': [ + r'^(Create|Update|GetInternalSquadBy\w+)Response', + ], + # Internal squads list + 'InternalSquadsResponse': [ + r'^(GetInternalSquads|ReorderInternalSquads)Response', + ], + # External squad single + 'ExternalSquadResponse': [ + r'^(Create|Update|GetExternalSquadBy\w+)Response', + ], + # External squads list + 'ExternalSquadsResponse': [ + r'^(GetExternalSquads|ReorderExternalSquads)Response', + ], + # Infra provider + 'InfraProviderResponse': [ + r'^(Create|Update|GetInfraProviderBy\w+)Response', + ], + # Billing nodes + 'BillingNodesResponse': [ + r'^(Create|Update|Delete|Get)InfraBillingNode\w*Response', + ], + # Billing history + 'BillingHistoryResponse': [ + r'^(Create|Delete|Get)InfraBillingHistoryRecord\w*Response', + ], + # HWID devices + 'HwidDevicesResponse': [ + r'^(Create|Delete(All)?|Get)UserHwidDevice\w*Response', + ], + } + + def __init__(self, spec: dict): + self.spec = spec + self.schemas = spec.get('components', {}).get('schemas', {}) + self.name_analyzer = SchemaNameAnalyzer() + self.structure_analyzer = SchemaStructureAnalyzer() + + def find_duplicates(self, mode: str = 'exact') -> Dict[str, List[str]]: + """ + Find duplicate schemas. + + Args: + mode: 'exact' - identical JSON content (default) + 'structural' - same structure ignoring metadata (description, example) + 'attributes' - same attribute names and types + """ + if mode == 'exact': + return self._find_exact_duplicates() + elif mode == 'structural': + return self._find_structural_duplicates() + elif mode == 'attributes': + return self._find_attribute_duplicates() + else: + raise ValueError(f"Unknown mode: {mode}") + + def _find_exact_duplicates(self) -> Dict[str, List[str]]: + """Find duplicate schemas by exact JSON content""" + content_to_names = defaultdict(list) + + for name, schema_def in self.schemas.items(): + content = json.dumps(schema_def, sort_keys=True) + content_to_names[content].append(name) + + return {k: v for k, v in content_to_names.items() if len(v) > 1} + + def _find_structural_duplicates(self, include_constraints: bool = True) -> Dict[str, List[str]]: + """Find duplicate schemas by structure (ignoring metadata like descriptions)""" + sig_to_names = defaultdict(list) + + for name, schema_def in self.schemas.items(): + sig = self.structure_analyzer.get_structural_signature( + schema_def, include_constraints=include_constraints + ) + sig_to_names[sig].append(name) + + return {k: v for k, v in sig_to_names.items() if len(v) > 1} + + def _find_attribute_duplicates(self) -> Dict[str, List[str]]: + """Find duplicate schemas by attribute set (name + type pairs)""" + attrs_to_names = defaultdict(list) + + for name, schema_def in self.schemas.items(): + attrs = self.structure_analyzer.get_attribute_set(schema_def) + attrs_to_names[attrs].append(name) + + return {k: v for k, v in attrs_to_names.items() if len(v) > 1} + + def analyze_duplicates(self) -> Dict: + """ + Analyze duplicates at all levels and return comprehensive report. + + Returns dict with: + - exact: Identical JSON content + - structural: Same structure with constraints (safe to consolidate) + - structural_loose: Same structure without constraints (may have different validation) + - attribute: Same attribute names/types (different structure possible) + - near_duplicates: Structural matches that aren't exact (metadata differs) + - constraint_only: Schemas that differ only in validation constraints + """ + exact = self._find_exact_duplicates() + structural = self._find_structural_duplicates(include_constraints=True) + structural_loose = self._find_structural_duplicates(include_constraints=False) + attribute = self._find_attribute_duplicates() + + # Find near-duplicates (structural but not exact) + exact_groups = set(frozenset(v) for v in exact.values()) + near_duplicates = {} + for sig, names in structural.items(): + names_set = frozenset(names) + if names_set not in exact_groups: + near_duplicates[sig] = names + + # Find constraint-only differences (structural_loose but not structural) + structural_groups = set(frozenset(v) for v in structural.values()) + constraint_only = {} + for sig, names in structural_loose.items(): + names_set = frozenset(names) + if names_set not in structural_groups and len(names) > 1: + constraint_only[sig] = names + + return { + 'exact': { + 'count': len(exact), + 'total_schemas': sum(len(v) for v in exact.values()), + 'groups': exact, + }, + 'structural': { + 'count': len(structural), + 'total_schemas': sum(len(v) for v in structural.values()), + 'groups': structural, + }, + 'structural_loose': { + 'count': len(structural_loose), + 'total_schemas': sum(len(v) for v in structural_loose.values()), + 'groups': structural_loose, + }, + 'attribute': { + 'count': len(attribute), + 'total_schemas': sum(len(v) for v in attribute.values()), + 'groups': attribute, + }, + 'near_duplicates': { + 'count': len(near_duplicates), + 'total_schemas': sum(len(v) for v in near_duplicates.values()), + 'groups': near_duplicates, + }, + 'constraint_only': { + 'count': len(constraint_only), + 'total_schemas': sum(len(v) for v in constraint_only.values()), + 'groups': constraint_only, + }, + } + + def generate_canonical_name(self, names: List[str]) -> str: + """Generate best canonical name for a group of duplicates""" + + clean_names = [self.name_analyzer.remove_dto_suffix(n) for n in names] + + # Count how many names match each pattern + pattern_scores = {} + for canonical_name, patterns in self.SPECIAL_PATTERNS.items(): + matches = 0 + for pattern in patterns: + for clean_name in clean_names: + if re.match(pattern, clean_name): + matches += 1 + if matches > 0: + # Score = percentage of names that match + pattern_scores[canonical_name] = matches / len(names) + + # Choose pattern with highest coverage (if > 50% match) + if pattern_scores: + best_pattern = max(pattern_scores.keys(), key=lambda x: pattern_scores[x]) + if pattern_scores[best_pattern] >= 0.5: + return best_pattern + + # Fallback: analyze the group semantically + analysis = self.name_analyzer.analyze_group(names) + entity = analysis['entity'] + + # Build canonical name + if analysis['is_request']: + if analysis['is_list'] or 'Bulk' in str(names): + return f'{entity}BulkRequest' + return f'{entity}Request' + elif analysis['is_response']: + if analysis['is_list']: + return f'{entity}ListResponse' + return f'{entity}Response' + else: + # Mixed or unclear + return entity + + def consolidate(self) -> Tuple[Dict[str, str], Dict]: + """ + Consolidate duplicate schemas. + + Returns: (rename_map, stats) + """ + duplicates = self.find_duplicates() + rename_map = {} + used_canonical_names = set() + stats = { + 'original_count': len(self.schemas), + 'duplicate_groups': len(duplicates), + 'consolidated_names': {}, + } + + for content, names in duplicates.items(): + # Check DO_NOT_MERGE: split the group if it contains schemas that must stay separate + names_set = set(names) + must_split = False + for exclusion in self.DO_NOT_MERGE: + if exclusion.issubset(names_set): + must_split = True + break + + if must_split: + # Exclude the protected schemas from this group + excluded = set() + for exclusion in self.DO_NOT_MERGE: + if exclusion.issubset(names_set): + excluded.update(exclusion) + remaining = [n for n in names if n not in excluded] + # Only consolidate the remaining names (if 2+) + if len(remaining) < 2: + continue + names = remaining + + canonical = self.generate_canonical_name(names) + + # Ensure unique canonical names - if already used, make unique + base_canonical = canonical + counter = 2 + while canonical in used_canonical_names: + canonical = f"{base_canonical}{counter}" + counter += 1 + + used_canonical_names.add(canonical) + stats['consolidated_names'][canonical] = names + + for name in names: + rename_map[name] = canonical + + # Calculate actual reduction from rename_map (accounts for DO_NOT_MERGE splits) + renamed_count = len(rename_map) + canonical_count = len(set(rename_map.values())) + stats['final_count'] = len(self.schemas) - renamed_count + canonical_count + stats['reduction'] = stats['original_count'] - stats['final_count'] + + return rename_map, stats + + def apply_consolidation(self, rename_map: Dict[str, str]) -> dict: + """Apply consolidation to the spec""" + new_spec = copy.deepcopy(self.spec) + + # Update schemas + new_schemas = {} + for name, schema_def in new_spec['components']['schemas'].items(): + canonical = rename_map.get(name, name) + if canonical not in new_schemas: + new_schemas[canonical] = schema_def + + new_spec['components']['schemas'] = new_schemas + + # Update all $ref references + def update_refs(obj): + if isinstance(obj, dict): + for key, value in list(obj.items()): + if key == '$ref' and isinstance(value, str): + if value.startswith('#/components/schemas/'): + old_name = value.replace('#/components/schemas/', '') + new_name = rename_map.get(old_name, old_name) + obj[key] = f'#/components/schemas/{new_name}' + else: + update_refs(value) + elif isinstance(obj, list): + for item in obj: + update_refs(item) + + update_refs(new_spec) + + return new_spec + + +class InlineSchemaExtractor: + """ + Extracts inline schemas into $ref definitions to enable ogen reuse. + + For example, if UserResponse.response and UsersResponse.response[].item + have the same structure, extract it as a shared schema. + + Also handles deeply nested inline schemas like: + - GetExternalSquadsResponseDto.response.externalSquads[].subscriptionSettings + - CreateUserResponseDto.response.activeInternalSquads[] + """ + + def __init__(self, spec: dict): + self.spec = copy.deepcopy(spec) + self.schemas = self.spec.get('components', {}).get('schemas', {}) + self.structure_analyzer = SchemaStructureAnalyzer() + + def get_inline_schema_signature(self, schema: dict) -> Optional[str]: + """Get structural signature for an inline object schema""" + if not isinstance(schema, dict): + return None + if schema.get('type') != 'object' or 'properties' not in schema: + return None + return self.structure_analyzer.get_structural_signature(schema) + + def find_all_inline_schemas(self) -> Dict[str, List[Tuple[str, str, dict]]]: + """ + Find ALL inline object schemas across all schema definitions at any depth. + + Returns: {signature: [(parent_schema, property_path, inline_schema), ...]} + """ + inline_schemas = defaultdict(list) + + def extract_recursive(parent_name: str, obj: dict, path: str = ""): + """Recursively extract all inline object schemas""" + if not isinstance(obj, dict): + return + + # Check properties + if 'properties' in obj: + for prop_name, prop_schema in obj['properties'].items(): + prop_path = f"{path}.{prop_name}" if path else prop_name + + # Direct inline object + if prop_schema.get('type') == 'object' and 'properties' in prop_schema: + # Skip empty objects (no meaningful properties to share) + if not prop_schema['properties']: + continue + sig = self.get_inline_schema_signature(prop_schema) + if sig: + inline_schemas[sig].append((parent_name, prop_path, prop_schema)) + # Recurse into nested properties + extract_recursive(parent_name, prop_schema, prop_path) + + # Array of inline objects + elif prop_schema.get('type') == 'array': + items = prop_schema.get('items', {}) + if items.get('type') == 'object' and 'properties' in items: + # Skip empty objects + if not items['properties']: + continue + sig = self.get_inline_schema_signature(items) + if sig: + inline_schemas[sig].append((parent_name, f"{prop_path}[]", items)) + # Recurse into array item properties + extract_recursive(parent_name, items, f"{prop_path}[]") + + for schema_name, schema_def in self.schemas.items(): + extract_recursive(schema_name, schema_def) + + # Return only groups with duplicates (2+ occurrences) + return {k: v for k, v in inline_schemas.items() if len(v) >= 2} + + def generate_extracted_name(self, locations: List[Tuple[str, str, dict]]) -> str: + """Generate a name for extracted schema based on usage locations""" + + parent_names = [loc[0] for loc in locations] + paths = [loc[1] for loc in locations] + + # If all paths are "response" or "response[]", use parent entity + if all(p in ('response', 'response[]') for p in paths): + entities = [] + for name in parent_names: + clean = name.replace('Response', '').replace('Request', '').replace('Dto', '') + for prefix in ['Create', 'Update', 'Get', 'Delete', 'Bulk', 'GetAll', 'GetOne']: + if clean.startswith(prefix): + clean = clean[len(prefix):] + break + if clean: + entities.append(clean) + + if entities: + common = Counter(entities).most_common(1)[0][0] + is_array = any('[]' in p for p in paths) + if is_array: + return f"{common}Item" + return common + + # Extract last property name from paths + last_props = [] + for path in paths: + parts = path.replace('[]', '').split('.') + last_prop = parts[-1] if parts else '' + if last_prop and last_prop != 'response': + last_props.append(last_prop) + + if last_props: + common_prop = Counter(last_props).most_common(1)[0][0] + # Capitalize first letter + name = common_prop[0].upper() + common_prop[1:] if common_prop else common_prop + + # Generic names need context from parent entity + generic_names = {'Config', 'Items', 'Data', 'Info', 'Details', 'Settings', + 'Options', 'Params', 'Json', 'Object', 'Value', 'Item'} + if name in generic_names or name.endswith('Item'): + # Extract entity context from parent schemas + entities = [] + for parent in parent_names: + clean = parent.replace('ResponseDto', '').replace('RequestDto', '').replace('Dto', '') + for prefix in ['Create', 'Update', 'Get', 'Delete', 'Bulk', 'GetAll', 'GetOne', + 'GetRaw', 'Subscription', 'By', 'All']: + if clean.startswith(prefix): + clean = clean[len(prefix):] + # Take first meaningful word + if clean: + entities.append(clean[:20]) # Limit length + + if entities: + common_entity = Counter(entities).most_common(1)[0][0] + # Extract just the entity name (e.g., "SubscriptionByShortUuid" -> "Subscription") + for suffix in ['ByShortUuid', 'ByUuid', 'ByUsername', 'ByEmail', 'ById']: + common_entity = common_entity.replace(suffix, '') + name = f"{common_entity}{name}" + + # Check if array item + is_array = any('[]' in p for p in paths) + if is_array and not name.endswith('Item') and not name.endswith('s'): + name = f"{name}Item" + + # Remove trailing 's' for arrays (users[] -> User) + if is_array and name.endswith('s') and len(name) > 3 and not name.endswith('Settings'): + name = name[:-1] + + return name + + # Fallback: use first parent + path + first_parent = parent_names[0].replace('ResponseDto', '').replace('RequestDto', '').replace('Dto', '') + first_path = paths[0].replace('[]', '').split('.')[-1] + return f"{first_parent}{first_path[0].upper() + first_path[1:] if first_path else ''}" + + def _resolve_conflict_suffix(self, base_name: str, locations: List[Tuple[str, str, dict]], + all_groups: List[Tuple[str, List]]) -> str: + """ + Generate a unique suffix for a conflicting schema name based on context. + """ + paths = [loc[1] for loc in locations] + parents = [loc[0] for loc in locations] + + # Helper to check patterns + def has_pattern(pattern, in_paths=True, in_parents=False): + if in_paths: + return any(pattern in p for p in paths) + if in_parents: + return any(pattern in p for p in parents) + return False + + # Context-based suffix rules + rules = [ + # Request types (CreateNodeRequestDto.configProfile -> ConfigProfileRef) + (lambda: any('Request' in p for p in parents) and not any('Response' in p for p in parents), 'Ref'), + + # Delete response (simple object with isDeleted field) + (lambda: any('Delete' in p for p in parents) and base_name == 'User', 'Deleted'), + + # Subscription user info (nested .user field) + (lambda: any('.user' in p for p in paths), 'Info'), + + # Subscription settings in squads vs global settings + (lambda: base_name == 'SubscriptionSettings' and has_pattern('Squad', in_parents=True), 'Squad'), + + # Templates in squads vs standalone templates + (lambda: base_name == 'Template' and has_pattern('Squad', in_parents=True), 'Ref'), + + # Billing records vs subscription request history records + (lambda: base_name == 'Record' and has_pattern('Billing', in_parents=True), 'Billing'), + + # Snippets response vs snippet items + (lambda: base_name == 'Snippet' and has_pattern('snippets[]', in_paths=True), 'Item'), + + # Inbounds in config profiles vs standalone inbounds + (lambda: base_name == 'Inbound' and has_pattern('GetAllInbounds', in_parents=True), 'Full'), + (lambda: base_name == 'Inbound' and has_pattern('.inbound', in_paths=True) and not has_pattern('inbounds[]', in_paths=True), 'Embed'), + + # Nodes in reorder requests + (lambda: base_name == 'Node' and has_pattern('Reorder', in_parents=True), 'Order'), + + # Billing nodes in providers vs standalone + (lambda: base_name == 'BillingNode' and has_pattern('Provider', in_parents=True), 'Ref'), + + # Provider in different contexts + (lambda: base_name == 'ProviderItem' and has_pattern('BillingHistory', in_parents=True), 'HistoryRef'), + (lambda: base_name == 'ProviderItem' and has_pattern('BillingNode', in_parents=True), 'BillingRef'), + ] + + for condition, suffix in rules: + try: + if condition(): + return suffix + except Exception: + pass + + return "" + + def extract_inline_schemas(self) -> Tuple[dict, Dict]: + """ + Extract duplicate inline schemas into shared definitions. + Processes from deepest to shallowest to avoid conflicts. + Handles name conflicts by adding context-based suffixes. + + Returns: (new_spec, stats) + """ + duplicates = self.find_all_inline_schemas() + + if not duplicates: + return self.spec, {'extracted_count': 0, 'extracted_schemas': {}} + + # First pass: group by generated name to detect conflicts + name_to_groups = defaultdict(list) + for sig, locations in duplicates.items(): + base_name = self.generate_extracted_name(locations) + name_to_groups[base_name].append((sig, locations)) + + # Sort by path depth (deepest first) to avoid replacing parent before child + sorted_duplicates = sorted( + duplicates.items(), + key=lambda x: -max(loc[1].count('.') + loc[1].count('[]') for loc in x[1]) + ) + + extracted_schemas = {} + extraction_log = {} + sig_to_name = {} # Map signature to final name for conflict resolution + + # Resolve name conflicts + for base_name, groups in name_to_groups.items(): + if len(groups) == 1: + # No conflict + sig, locations = groups[0] + sig_to_name[sig] = base_name + else: + # Conflict: need unique names for each structure + used_suffixes = set() + for i, (sig, locations) in enumerate(groups): + suffix = self._resolve_conflict_suffix(base_name, locations, groups) + + # If suffix already used or empty, use index + if not suffix or suffix in used_suffixes: + suffix = str(i + 1) if i > 0 else "" + + used_suffixes.add(suffix) + final_name = f"{base_name}{suffix}" if suffix else base_name + sig_to_name[sig] = final_name + + for sig, locations in sorted_duplicates: + # Get resolved name + extracted_name = sig_to_name.get(sig, self.generate_extracted_name(locations)) + + # Ensure unique name (safety check for edge cases) + base_name = extracted_name + counter = 2 + while extracted_name in self.schemas or extracted_name in extracted_schemas: + extracted_name = f"{base_name}{counter}" + counter += 1 + + # Use first schema as the definition + schema_def = copy.deepcopy(locations[0][2]) + extracted_schemas[extracted_name] = schema_def + extraction_log[extracted_name] = [f"{loc[0]}.{loc[1]}" for loc in locations] + + # Replace all occurrences with $ref + for parent_name, prop_path, _ in locations: + self._replace_with_ref(parent_name, prop_path, extracted_name) + + # Add extracted schemas to spec + self.spec['components']['schemas'].update(extracted_schemas) + + return self.spec, { + 'extracted_count': len(extracted_schemas), + 'extracted_schemas': extraction_log + } + + def _replace_with_ref(self, schema_name: str, prop_path: str, ref_name: str): + """Replace inline schema at path with $ref""" + schema = self.schemas.get(schema_name) + if not schema: + return + + parts = prop_path.replace('[]', '.[]').split('.') + parts = [p for p in parts if p] # Remove empty strings + + current = schema + for i, part in enumerate(parts[:-1]): + if part == '[]': + current = current.get('items', {}) + elif 'properties' in current: + current = current['properties'].get(part, {}) + else: + return + + last_part = parts[-1] + if last_part == '[]': + # Replace array items + current['items'] = {'$ref': f'#/components/schemas/{ref_name}'} + elif 'properties' in current and last_part in current['properties']: + # Replace property + current['properties'][last_part] = {'$ref': f'#/components/schemas/{ref_name}'} + + +def fix_nullable_without_type(spec: dict) -> Tuple[dict, int]: + """ + Fix schema properties that have 'nullable: true' but no 'type' field. + Ogen generates invalid code for such properties. + + For empty objects with nullable: true, we use x-ogen-name with {} to make ogen + generate jx.Raw type which properly handles null values. + + Returns: (spec, count_of_fixed_properties) + """ + spec = copy.deepcopy(spec) + fixed_count = 0 + + def is_empty_object(schema: dict) -> bool: + """Check if schema is an empty object (type: object with no/empty properties)""" + if schema.get('type') != 'object': + return False + props = schema.get('properties', {}) + return len(props) == 0 + + def fix_schema(schema: dict, path: str = "") -> int: + """Recursively fix nullable properties without type""" + count = 0 + + if not isinstance(schema, dict): + return 0 + + # For nullable empty objects (or nullable without type), convert to {} (any JSON) + # This makes ogen generate jx.Raw which properly handles null + if schema.get('nullable') is True and 'type' not in schema and '$ref' not in schema: + # No type → treat as empty object, strip to bare {nullable: true} + schema.pop('properties', None) + count += 1 + elif schema.get('nullable') is True and is_empty_object(schema): + # Has type: object but no properties → strip to bare {nullable: true} + schema.pop('properties', None) + schema.pop('type', None) + count += 1 + + # Recurse into properties + if 'properties' in schema: + for prop_name, prop_def in schema['properties'].items(): + if isinstance(prop_def, dict): + count += fix_schema(prop_def, f"{path}.properties.{prop_name}") + + # Recurse into items + if 'items' in schema and isinstance(schema['items'], dict): + count += fix_schema(schema['items'], f"{path}.items") + + # Recurse into allOf/oneOf/anyOf + for key in ['allOf', 'oneOf', 'anyOf']: + if key in schema: + for i, sub_schema in enumerate(schema[key]): + if isinstance(sub_schema, dict): + count += fix_schema(sub_schema, f"{path}.{key}[{i}]") + + # Recurse into additionalProperties + if 'additionalProperties' in schema and isinstance(schema['additionalProperties'], dict): + count += fix_schema(schema['additionalProperties'], f"{path}.additionalProperties") + + return count + + # Fix schemas in components + for schema_name, schema_def in spec.get('components', {}).get('schemas', {}).items(): + fixed_count += fix_schema(schema_def, f"#/components/schemas/{schema_name}") + + # Fix inline schemas in paths + for path, methods in spec.get('paths', {}).items(): + for method, op in methods.items(): + if not isinstance(op, dict): + continue + + # Fix request body + if 'requestBody' in op: + for content_type, content in op['requestBody'].get('content', {}).items(): + if 'schema' in content: + fixed_count += fix_schema(content['schema'], f"paths.{path}.{method}.requestBody") + + # Fix responses + for status, response in op.get('responses', {}).items(): + if isinstance(response, dict): + for content_type, content in response.get('content', {}).items(): + if 'schema' in content: + fixed_count += fix_schema(content['schema'], f"paths.{path}.{method}.responses.{status}") + + return spec, fixed_count + + +def unify_error_responses(spec: dict) -> Tuple[dict, Dict]: + """ + Unify duplicate error response schemas (400 BadRequest, 401 Unauthorized, etc.) + by extracting common inline schemas into shared definitions. + + Returns: (new_spec, stats) + """ + spec = copy.deepcopy(spec) + + # Define common error schemas to extract + ERROR_SCHEMAS = { + 'BadRequestError': { + 'type': 'object', + 'properties': { + 'message': {'type': 'string'}, + 'statusCode': {'type': 'number', 'example': 400}, + 'errors': { + 'type': 'array', + 'items': { + '$ref': '#/components/schemas/ValidationError' + } + } + }, + 'required': ['message', 'statusCode', 'errors'] + }, + 'ValidationError': { + 'type': 'object', + 'properties': { + 'validation': {'type': 'string', 'example': 'uuid'}, + 'code': {'type': 'string', 'example': 'invalid_string'}, + 'message': {'type': 'string', 'example': 'Invalid uuid'}, + 'path': { + 'type': 'array', + 'items': {'type': 'string'}, + 'example': ['uuid'] + } + }, + 'required': ['validation', 'code', 'message', 'path'] + }, + 'UnauthorizedError': { + 'type': 'object', + 'properties': { + 'message': {'type': 'string', 'example': 'Unauthorized'}, + 'statusCode': {'type': 'number', 'example': 401} + }, + 'required': ['message', 'statusCode'] + }, + 'ForbiddenError': { + 'type': 'object', + 'properties': { + 'message': {'type': 'string', 'example': 'Forbidden'}, + 'statusCode': {'type': 'number', 'example': 403} + }, + 'required': ['message', 'statusCode'] + }, + 'NotFoundError': { + 'type': 'object', + 'properties': { + 'message': {'type': 'string', 'example': 'Not Found'}, + 'statusCode': {'type': 'number', 'example': 404} + }, + 'required': ['message', 'statusCode'] + }, + 'InternalServerError': { + 'type': 'object', + 'properties': { + 'timestamp': {'type': 'string'}, + 'path': {'type': 'string'}, + 'message': {'type': 'string'}, + 'errorCode': {'type': 'string'} + } + } + } + + # Add schemas to spec + if 'components' not in spec: + spec['components'] = {} + if 'schemas' not in spec['components']: + spec['components']['schemas'] = {} + + spec['components']['schemas'].update(ERROR_SCHEMAS) + + # Map status codes to schema names + STATUS_TO_SCHEMA = { + '400': 'BadRequestError', + '401': 'UnauthorizedError', + '403': 'ForbiddenError', + '404': 'NotFoundError', + '500': 'InternalServerError', + } + + # Replace inline error schemas with $ref + replaced_count = {status: 0 for status in STATUS_TO_SCHEMA} + + for path, methods in spec.get('paths', {}).items(): + for method, op in methods.items(): + if not isinstance(op, dict) or 'responses' not in op: + continue + + for status_code, schema_name in STATUS_TO_SCHEMA.items(): + if status_code in op['responses']: + response = op['responses'][status_code] + + # For 404 responses without content, add content with NotFoundError schema + # This prevents ogen from generating empty per-operation NotFound structs + if status_code == '404' and 'content' not in response: + response['content'] = { + 'application/json': { + 'schema': { + '$ref': f'#/components/schemas/{schema_name}' + } + } + } + replaced_count[status_code] += 1 + elif 'content' in response and 'application/json' in response['content']: + # Replace inline schema with $ref + response['content']['application/json']['schema'] = { + '$ref': f'#/components/schemas/{schema_name}' + } + replaced_count[status_code] += 1 + + total_replaced = sum(replaced_count.values()) + + return spec, { + 'schemas_added': len(ERROR_SCHEMAS), + 'responses_unified': replaced_count, + 'total_replaced': total_replaced + } + + +def analyze_spec(spec_file: str): + """Analyze a spec file and show consolidation suggestions""" + with open(spec_file, 'r') as f: + spec = json.load(f) + + consolidator = SmartConsolidator(spec) + rename_map, stats = consolidator.consolidate() + + print(f"=== SMART CONSOLIDATION ANALYSIS ===\n") + print(f"Original schemas: {stats['original_count']}") + print(f"Duplicate groups: {stats['duplicate_groups']}") + print(f"After consolidation: {stats['final_count']}") + print(f"Reduction: {stats['reduction']} ({stats['reduction']*100//stats['original_count']}%)") + + print(f"\n=== CONSOLIDATED NAMES ===\n") + for canonical, names in sorted(stats['consolidated_names'].items()): + print(f"\n{canonical} ({len(names)} merged):") + for n in sorted(names): + print(f" <- {n}") + + return consolidator, rename_map, stats + + +if __name__ == '__main__': + import sys + if len(sys.argv) < 2: + print("Usage: python smart_consolidate.py ") + sys.exit(1) + + analyze_spec(sys.argv[1]) diff --git a/specs/2.7.4-final.json b/specs/2.7.4-final.json new file mode 100644 index 0000000..f5f1551 --- /dev/null +++ b/specs/2.7.4-final.json @@ -0,0 +1,19511 @@ +{ + "openapi": "3.0.0", + "paths": { + "/api/remnawave-settings": { + "get": { + "operationId": "RemnawaveSettings_getSettings", + "parameters": [], + "responses": { + "200": { + "description": "Remnawave settings retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SettingsResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get Remnawave settings", + "tags": [ + "Remnawave Settings Controller" + ] + }, + "patch": { + "operationId": "RemnawaveSettings_updateSettings", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateRemnawaveSettingsRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Subscription settings updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SettingsResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update Remnawave settings", + "tags": [ + "Remnawave Settings Controller" + ] + } + }, + "/api/passkeys/registration/options": { + "get": { + "operationId": "Passkey_passkeyRegistrationOptions", + "parameters": [], + "responses": { + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + }, + "default": { + "description": "Get passkey registration options", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PasskeyOptions" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get registration options for passkey", + "tags": [ + "Passkeys Controller" + ] + } + }, + "/api/passkeys/registration/verify": { + "post": { + "operationId": "Passkey_passkeyRegistrationVerify", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PasskeyOptions" + } + } + } + }, + "responses": { + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + }, + "default": { + "description": "Verify passkey registration result", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VerifyPasskeyRegistrationResponse" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Verify registration for passkey", + "tags": [ + "Passkeys Controller" + ] + } + }, + "/api/passkeys": { + "get": { + "operationId": "Passkey_getActivePasskeys", + "parameters": [], + "responses": { + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + }, + "default": { + "description": "Get all passkeys", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PasskeysResponse" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all passkeys", + "tags": [ + "Passkeys Controller" + ] + }, + "delete": { + "operationId": "Passkey_deletePasskey", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeletePasskeyRequest" + } + } + } + }, + "responses": { + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + }, + "default": { + "description": "Delete passkey result", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PasskeysResponse" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete a passkey by ID", + "tags": [ + "Passkeys Controller" + ] + }, + "patch": { + "operationId": "Passkey_updatePasskey", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdatePasskeyRequest" + } + } + } + }, + "responses": { + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + }, + "default": { + "description": "Update passkey", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PasskeysResponse" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update passkey", + "tags": [ + "Passkeys Controller" + ] + } + }, + "/api/auth/login": { + "post": { + "operationId": "Auth_login", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LoginRequest" + } + } + } + }, + "responses": { + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "401": { + "description": "Unauthorized - Invalid credentials", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UnauthorizedError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + }, + "default": { + "description": "Access token for further requests", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TokenResponse" + } + } + } + } + }, + "summary": "Login as superadmin", + "tags": [ + "Auth Controller" + ] + } + }, + "/api/auth/register": { + "post": { + "operationId": "Auth_register", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RegisterRequest" + } + } + } + }, + "responses": { + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "403": { + "description": "Forbidden - Registration is not allowed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ForbiddenError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + }, + "default": { + "description": "Access token for further requests", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TokenResponse" + } + } + } + } + }, + "summary": "Register as superadmin", + "tags": [ + "Auth Controller" + ] + } + }, + "/api/auth/status": { + "get": { + "operationId": "Auth_getStatus", + "parameters": [], + "responses": { + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + }, + "default": { + "description": "Status of the system", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetStatusResponse" + } + } + } + } + }, + "summary": "Get the status of the authentication", + "tags": [ + "Auth Controller" + ] + } + }, + "/api/auth/oauth2/authorize": { + "post": { + "operationId": "Auth_oauth2Authorize", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OAuth2AuthorizeRequest" + } + } + } + }, + "responses": { + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + }, + "default": { + "description": "OAuth2 authorization URL", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OAuth2AuthorizeResponse" + } + } + } + } + }, + "summary": "Initiate OAuth2 authorization", + "tags": [ + "Auth Controller" + ] + } + }, + "/api/auth/oauth2/callback": { + "post": { + "operationId": "Auth_oauth2Callback", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OAuth2CallbackRequest" + } + } + } + }, + "responses": { + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + }, + "default": { + "description": "Access token for further requests", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TokenResponse" + } + } + } + } + }, + "summary": "Callback from OAuth2", + "tags": [ + "Auth Controller" + ] + } + }, + "/api/auth/passkey/authentication/options": { + "get": { + "operationId": "Auth_passkeyAuthenticationOptions", + "parameters": [], + "responses": { + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + }, + "default": { + "description": "Passkey authentication options", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PasskeyOptions" + } + } + } + } + }, + "summary": "Get the authentication options for passkey", + "tags": [ + "Auth Controller" + ] + } + }, + "/api/auth/passkey/authentication/verify": { + "post": { + "operationId": "Auth_passkeyAuthenticationVerify", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PasskeyOptions" + } + } + } + }, + "responses": { + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + }, + "default": { + "description": "JWT access token after successful passkey authentication", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TokenResponse" + } + } + } + } + }, + "summary": "Verify the authentication for passkey", + "tags": [ + "Auth Controller" + ] + } + }, + "/api/subscription-page-configs": { + "get": { + "operationId": "SubscriptionPageConfig_getAllConfigs", + "parameters": [], + "responses": { + "200": { + "description": "Subscription page configs retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubscriptionPageConfigsResponseResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all subscription page configs", + "tags": [ + "Subscription Page Configs Controller" + ] + }, + "patch": { + "operationId": "SubscriptionPageConfig_updateConfig", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateSubscriptionPageConfigRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Subscription page config updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubscriptionPageConfigResponseResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update subscription page config", + "tags": [ + "Subscription Page Configs Controller" + ] + }, + "post": { + "operationId": "SubscriptionPageConfig_createConfig", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateSubscriptionPageConfigRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Subscription page config created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateSubscriptionPageConfigResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Create subscription page config", + "tags": [ + "Subscription Page Configs Controller" + ] + } + }, + "/api/subscription-page-configs/{uuid}": { + "get": { + "operationId": "SubscriptionPageConfig_getConfigByUuid", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "Subscription page config UUID", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Subscription page config retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubscriptionPageConfigResponseResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get subscription page config by uuid", + "tags": [ + "Subscription Page Configs Controller" + ] + }, + "delete": { + "operationId": "SubscriptionPageConfig_deleteConfig", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "Subscription page config UUID", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Subscription page config deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete subscription page config", + "tags": [ + "Subscription Page Configs Controller" + ] + } + }, + "/api/subscription-page-configs/actions/reorder": { + "post": { + "operationId": "SubscriptionPageConfig_reorderSubscriptionPageConfigs", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReorderRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Subscription page configs reordered successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubscriptionPageConfigsResponseResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Reorder subscription page configs", + "tags": [ + "Subscription Page Configs Controller" + ] + } + }, + "/api/subscription-page-configs/actions/clone": { + "post": { + "operationId": "SubscriptionPageConfig_cloneSubscriptionPageConfig", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloneNodePluginRequestRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Subscription page config cloned successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubscriptionPageConfigResponseResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Clone subscription page config", + "tags": [ + "Subscription Page Configs Controller" + ] + } + }, + "/api/users": { + "post": { + "operationId": "Users_createUser", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateUserRequest" + } + } + } + }, + "responses": { + "201": { + "description": "User created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Create a new user", + "tags": [ + "Users Controller" + ] + }, + "patch": { + "operationId": "Users_updateUser", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateUserRequest" + } + } + } + }, + "responses": { + "200": { + "description": "User updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update a user by UUID or username", + "tags": [ + "Users Controller" + ] + }, + "get": { + "operationId": "Users_getAllUsers", + "parameters": [ + { + "name": "size", + "required": false, + "in": "query", + "description": "Page size for pagination", + "schema": { + "type": "integer" + } + }, + { + "name": "start", + "required": false, + "in": "query", + "description": "Offset for pagination", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Users fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetAllUsersResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all users", + "tags": [ + "Users Controller" + ] + } + }, + "/api/users/{uuid}": { + "delete": { + "operationId": "Users_deleteUser", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "User deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "User not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete user", + "tags": [ + "Users Controller" + ] + }, + "get": { + "operationId": "Users_getUserByUuid", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "User fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "User not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get user by UUID", + "tags": [ + "Users Controller" + ] + } + }, + "/api/users/tags": { + "get": { + "operationId": "Users_getAllTags", + "parameters": [], + "responses": { + "200": { + "description": "Tags fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TagsResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all existing user tags", + "tags": [ + "Users Controller" + ] + } + }, + "/api/users/{uuid}/accessible-nodes": { + "get": { + "operationId": "Users_getUserAccessibleNodes", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "User accessible nodes fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetUserAccessibleNodesResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "User not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get user accessible nodes", + "tags": [ + "Users Controller" + ] + } + }, + "/api/users/{uuid}/subscription-request-history": { + "get": { + "operationId": "Users_getUserSubscriptionRequestHistory", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "User subscription request history fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetUserSubscriptionRequestHistoryResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "User not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get user subscription request history, recent 24 records", + "tags": [ + "Users Controller" + ] + } + }, + "/api/users/by-short-uuid/{shortUuid}": { + "get": { + "operationId": "Users_getUserByShortUuid", + "parameters": [ + { + "name": "shortUuid", + "required": true, + "in": "path", + "description": "Short UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "User fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "User not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get user by Short UUID", + "tags": [ + "Users Controller" + ] + } + }, + "/api/users/by-username/{username}": { + "get": { + "operationId": "Users_getUserByUsername", + "parameters": [ + { + "name": "username", + "required": true, + "in": "path", + "description": "Username of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "User fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "User not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get user by username", + "tags": [ + "Users Controller" + ] + } + }, + "/api/users/by-id/{id}": { + "get": { + "operationId": "Users_getUserById", + "parameters": [ + { + "name": "id", + "required": true, + "in": "path", + "description": "ID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "User fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "User not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get user by ID", + "tags": [ + "Users Controller" + ] + } + }, + "/api/users/by-telegram-id/{telegramId}": { + "get": { + "operationId": "Users_getUserByTelegramId", + "parameters": [ + { + "name": "telegramId", + "required": true, + "in": "path", + "description": "Telegram ID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Users fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UsersResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get users by telegram ID", + "tags": [ + "Users Controller" + ] + } + }, + "/api/users/by-email/{email}": { + "get": { + "operationId": "Users_getUsersByEmail", + "parameters": [ + { + "name": "email", + "required": true, + "in": "path", + "description": "Email of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Users fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UsersResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get users by email", + "tags": [ + "Users Controller" + ] + } + }, + "/api/users/by-tag/{tag}": { + "get": { + "operationId": "Users_getUsersByTag", + "parameters": [ + { + "name": "tag", + "required": true, + "in": "path", + "description": "Tag of the user", + "schema": { + "example": "PROMO_1", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Users fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UsersResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get users by tag", + "tags": [ + "Users Controller" + ] + } + }, + "/api/users/{uuid}/actions/revoke": { + "post": { + "operationId": "Users_revokeUserSubscription", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the user", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RevokeUserSubscriptionBody" + } + } + } + }, + "responses": { + "200": { + "description": "User subscription revoked successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "User not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Revoke user subscription", + "tags": [ + "Users Controller" + ] + } + }, + "/api/users/{uuid}/actions/disable": { + "post": { + "operationId": "Users_disableUser", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "User disabled successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "User not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Disable user", + "tags": [ + "Users Controller" + ] + } + }, + "/api/users/{uuid}/actions/enable": { + "post": { + "operationId": "Users_enableUser", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "User enabled successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "User not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Enable user", + "tags": [ + "Users Controller" + ] + } + }, + "/api/users/{uuid}/actions/reset-traffic": { + "post": { + "operationId": "Users_resetUserTraffic", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "User traffic reset successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "User not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Reset user traffic", + "tags": [ + "Users Controller" + ] + } + }, + "/api/users/resolve": { + "post": { + "operationId": "Users_resolveUser", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResolveUserRequestBody" + } + } + } + }, + "responses": { + "200": { + "description": "User resolved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResolveUserResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "User not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Resolve a user", + "tags": [ + "Users Controller" + ] + } + }, + "/api/users/bulk/delete-by-status": { + "post": { + "operationId": "UsersBulkActions_bulkDeleteUsersByStatus", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkDeleteUsersByStatusRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Users deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkActionResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Bulk delete users by status", + "tags": [ + "Users Bulk Actions Controller" + ] + } + }, + "/api/users/bulk/delete": { + "post": { + "operationId": "UsersBulkActions_bulkDeleteUsers", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkUuidsRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Users deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkActionResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Bulk delete users by UUIDs", + "tags": [ + "Users Bulk Actions Controller" + ] + } + }, + "/api/users/bulk/revoke-subscription": { + "post": { + "operationId": "UsersBulkActions_bulkRevokeUsersSubscription", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkUuidsRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Users subscription revoked successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkActionResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Revoke users subscription by User UUIDs", + "tags": [ + "Users Bulk Actions Controller" + ] + } + }, + "/api/users/bulk/reset-traffic": { + "post": { + "operationId": "UsersBulkActions_bulkResetUserTraffic", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkUuidsRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Users traffic reset successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkActionResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Bulk reset traffic users by UUIDs", + "tags": [ + "Users Bulk Actions Controller" + ] + } + }, + "/api/users/bulk/update": { + "post": { + "operationId": "UsersBulkActions_bulkUpdateUsers", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkUpdateUsersRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Users updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkActionResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Bulk update users by UUIDs", + "tags": [ + "Users Bulk Actions Controller" + ] + } + }, + "/api/users/bulk/update-squads": { + "post": { + "operationId": "UsersBulkActions_bulkUpdateUsersInternalSquads", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkUpdateUsersSquadsRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Internal squads updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkActionResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Bulk update users internal squads by UUIDs", + "tags": [ + "Users Bulk Actions Controller" + ] + } + }, + "/api/users/bulk/extend-expiration-date": { + "post": { + "description": "Bulk extend all users expiration date", + "operationId": "UsersBulkActions_bulkExtendExpirationDate", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkExtendExpirationDateRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Users expiration date extended successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkActionResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Bulk Extend Users Expiration Date", + "tags": [ + "Users Bulk Actions Controller" + ] + } + }, + "/api/users/bulk/all/update": { + "post": { + "operationId": "UsersBulkActions_bulkUpdateAllUsers", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkAllUpdateUsersRequest" + } + } + } + }, + "responses": { + "200": { + "description": "All users updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EventResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Bulk update all users", + "tags": [ + "Users Bulk Actions Controller" + ] + } + }, + "/api/users/bulk/all/reset-traffic": { + "post": { + "description": "Bulk reset all users traffic", + "operationId": "UsersBulkActions_bulkAllResetUserTraffic", + "parameters": [], + "responses": { + "200": { + "description": "All users traffic reset successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EventResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Bulk Reset All Users Traffic", + "tags": [ + "Users Bulk Actions Controller" + ] + } + }, + "/api/users/bulk/all/extend-expiration-date": { + "post": { + "description": "Bulk extend all users expiration date", + "operationId": "UsersBulkActions_bulkAllExtendExpirationDate", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkAllExtendExpirationDateRequest" + } + } + } + }, + "responses": { + "200": { + "description": "All users expiration date extended successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EventResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Bulk Extend All Users Expiration Date", + "tags": [ + "Users Bulk Actions Controller" + ] + } + }, + "/api/sub/{shortUuid}/info": { + "get": { + "operationId": "Subscription_getSubscriptionInfoByShortUuid", + "parameters": [ + { + "name": "shortUuid", + "required": true, + "in": "path", + "description": "Short UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Subscription info fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubscriptionResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "summary": "Get Subscription Info by Short UUID", + "tags": [ + "[Public] Subscription Controller" + ] + } + }, + "/api/sub/{shortUuid}": { + "get": { + "operationId": "Subscription_getSubscription", + "parameters": [ + { + "name": "shortUuid", + "required": true, + "in": "path", + "description": "Short UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + } + } + } + }, + "tags": [ + "[Public] Subscription Controller" + ] + } + }, + "/api/sub/{shortUuid}/{clientType}": { + "get": { + "operationId": "Subscription_getSubscriptionByClientType", + "parameters": [ + { + "name": "clientType", + "required": true, + "in": "path", + "description": "Client type", + "schema": { + "enum": [ + "stash", + "singbox", + "mihomo", + "json", + "v2ray-json", + "clash" + ], + "type": "string" + } + }, + { + "name": "shortUuid", + "required": true, + "in": "path", + "description": "Short UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + } + } + } + }, + "tags": [ + "[Public] Subscription Controller" + ] + } + }, + "/api/subscriptions": { + "get": { + "operationId": "Subscriptions_getAllSubscriptions", + "parameters": [ + { + "name": "size", + "required": false, + "in": "query", + "description": "Number of subscriptions to return, no more than 500", + "schema": { + "example": 25, + "type": "integer" + } + }, + { + "name": "start", + "required": false, + "in": "query", + "description": "Start index (offset) of the users to return, default is 0", + "schema": { + "example": 0, + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Users fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetAllSubscriptionsResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all subscriptions", + "tags": [ + "[Protected] Subscriptions Controller" + ] + } + }, + "/api/subscriptions/by-username/{username}": { + "get": { + "operationId": "Subscriptions_getSubscriptionByUsername", + "parameters": [ + { + "name": "username", + "required": true, + "in": "path", + "description": "Username of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Subscription fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubscriptionResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "User not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get subscription by username", + "tags": [ + "[Protected] Subscriptions Controller" + ] + } + }, + "/api/subscriptions/by-short-uuid/{shortUuid}": { + "get": { + "operationId": "Subscriptions_getSubscriptionByShortUuidProtected", + "parameters": [ + { + "name": "shortUuid", + "required": true, + "in": "path", + "description": "Short uuid of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Subscription fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubscriptionResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "User not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get subscription by short uuid (protected route)", + "tags": [ + "[Protected] Subscriptions Controller" + ] + } + }, + "/api/subscriptions/by-uuid/{uuid}": { + "get": { + "operationId": "Subscriptions_getSubscriptionByUuid", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "Uuid of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Subscription fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubscriptionResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "User not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get subscription by uuid", + "tags": [ + "[Protected] Subscriptions Controller" + ] + } + }, + "/api/subscriptions/by-short-uuid/{shortUuid}/raw": { + "get": { + "operationId": "Subscriptions_getRawSubscriptionByShortUuid", + "parameters": [ + { + "name": "withDisabledHosts", + "required": false, + "in": "query", + "description": "Include disabled hosts in the subscription. Default is false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "shortUuid", + "required": true, + "in": "path", + "description": "Short UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Raw subscription fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetRawSubscriptionByShortUuidResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get Raw Subscription by Short UUID", + "tags": [ + "[Protected] Subscriptions Controller" + ] + } + }, + "/api/subscriptions/subpage-config/{shortUuid}": { + "get": { + "operationId": "Subscriptions_getSubpageConfigByShortUuid", + "parameters": [ + { + "name": "shortUuid", + "required": true, + "in": "path", + "description": "Short UUID of the user", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetSubpageConfigByShortUuidRequestBody" + } + } + } + }, + "responses": { + "200": { + "description": "Subpage config fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetSubpageConfigByShortUuidResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get Subpage Config by Short UUID", + "tags": [ + "[Protected] Subscriptions Controller" + ] + } + }, + "/api/subscriptions/connection-keys/{uuid}": { + "get": { + "operationId": "Subscriptions_getConnectionKeysByUuid", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Connection keys fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetConnectionKeysByUuidResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get connection keys (base64 format) by uuid", + "tags": [ + "[Protected] Subscriptions Controller" + ] + } + }, + "/api/subscription-templates": { + "get": { + "operationId": "SubscriptionTemplate_getAllTemplates", + "parameters": [], + "responses": { + "200": { + "description": "Templates retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TemplatesResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all subscription templates (wihout content)", + "tags": [ + "Subscription Template Controller" + ] + }, + "patch": { + "operationId": "SubscriptionTemplate_updateTemplate", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateTemplateRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Template updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TemplateResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update subscription template", + "tags": [ + "Subscription Template Controller" + ] + }, + "post": { + "operationId": "SubscriptionTemplate_createTemplate", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateSubscriptionTemplateRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Template created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TemplateResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Create subscription template", + "tags": [ + "Subscription Template Controller" + ] + } + }, + "/api/subscription-templates/{uuid}": { + "get": { + "operationId": "SubscriptionTemplate_getTemplateByUuid", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "Template UUID", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Template retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TemplateResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get subscription template by uuid", + "tags": [ + "Subscription Template Controller" + ] + }, + "delete": { + "operationId": "SubscriptionTemplate_deleteTemplate", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "Template UUID", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Template deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete subscription template", + "tags": [ + "Subscription Template Controller" + ] + } + }, + "/api/subscription-templates/actions/reorder": { + "post": { + "operationId": "SubscriptionTemplate_reorderSubscriptionTemplates", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReorderRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Subscription templates reordered successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TemplatesResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Reorder subscription templates", + "tags": [ + "Subscription Template Controller" + ] + } + }, + "/api/tokens": { + "post": { + "description": "This endpoint is forbidden to use via \"API-key\". It can only be used with an admin JWT-token.", + "operationId": "ApiTokens_create", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateApiTokenRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Token created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateApiTokenResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Create a new API token", + "tags": [ + "API Tokens Controller" + ] + }, + "get": { + "description": "This endpoint is forbidden to use via \"API-key\". It can only be used with admin JWT-token.", + "operationId": "ApiTokens_findAll", + "parameters": [], + "responses": { + "200": { + "description": "Tokens fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FindAllApiTokensResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all API tokens", + "tags": [ + "API Tokens Controller" + ] + } + }, + "/api/tokens/{uuid}": { + "delete": { + "description": "This endpoint is forbidden to use via \"API-key\". It can be used only with an admin JWT-token.", + "operationId": "ApiTokens_delete", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the API token", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Token deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteApiTokenResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete an API token by UUID", + "tags": [ + "API Tokens Controller" + ] + } + }, + "/api/config-profiles": { + "get": { + "operationId": "ConfigProfile_getConfigProfiles", + "parameters": [], + "responses": { + "200": { + "description": "Config profiles retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConfigProfilesResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get config profiles", + "tags": [ + "Config Profiles Controller" + ] + }, + "post": { + "operationId": "ConfigProfile_createConfigProfile", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateConfigProfileRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Config profile created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConfigProfileResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "409": { + "description": "Config profile name already exists or inbound tags are not unique. Inbound tags must be unique in global scope." + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Create config profile", + "tags": [ + "Config Profiles Controller" + ] + }, + "patch": { + "operationId": "ConfigProfile_updateConfigProfile", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateConfigProfileRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Config profile updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConfigProfileResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "Config profile not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "409": { + "description": "Config profile name already exists or inbound tags are not unique. Inbound tags must be unique in global scope." + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update Core Config in specific config profile", + "tags": [ + "Config Profiles Controller" + ] + } + }, + "/api/config-profiles/inbounds": { + "get": { + "operationId": "ConfigProfile_getAllInbounds", + "parameters": [], + "responses": { + "200": { + "description": "Inbounds retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InboundsResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all inbounds from all config profiles", + "tags": [ + "Config Profiles Controller" + ] + } + }, + "/api/config-profiles/{uuid}/inbounds": { + "get": { + "operationId": "ConfigProfile_getInboundsByProfileUuid", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Inbounds retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InboundsResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "Config profile not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get inbounds by profile uuid", + "tags": [ + "Config Profiles Controller" + ] + } + }, + "/api/config-profiles/{uuid}": { + "get": { + "operationId": "ConfigProfile_getConfigProfileByUuid", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Config profile retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConfigProfileResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "Config profile not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get config profile by uuid", + "tags": [ + "Config Profiles Controller" + ] + }, + "delete": { + "operationId": "ConfigProfile_deleteConfigProfileByUuid", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Config profile deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "Config profile not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete config profile", + "tags": [ + "Config Profiles Controller" + ] + } + }, + "/api/config-profiles/{uuid}/computed-config": { + "get": { + "operationId": "ConfigProfile_getComputedConfigProfileByUuid", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Computed config profile retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConfigProfileResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "Config profile not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get computed config profile by uuid", + "tags": [ + "Config Profiles Controller" + ] + } + }, + "/api/config-profiles/actions/reorder": { + "post": { + "operationId": "ConfigProfile_reorderConfigProfiles", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReorderRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Config profiles reordered successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConfigProfilesResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Reorder config profiles", + "tags": [ + "Config Profiles Controller" + ] + } + }, + "/api/snippets": { + "get": { + "operationId": "Snippets_getSnippets", + "parameters": [], + "responses": { + "200": { + "description": "Snippets retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SnippetsResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get snippets", + "tags": [ + "Snippets Controller" + ] + }, + "delete": { + "operationId": "Snippets_deleteSnippetByName", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteSnippetRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Snippet deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SnippetsResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "Snippet not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete snippet", + "tags": [ + "Snippets Controller" + ] + }, + "post": { + "operationId": "Snippets_createSnippet", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SnippetRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Snippet created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SnippetsResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "409": { + "description": "Snippet name already exists." + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Create snippet", + "tags": [ + "Snippets Controller" + ] + }, + "patch": { + "operationId": "Snippets_updateSnippet", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SnippetRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Snippet updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SnippetsResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "Snippet not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "409": { + "description": "Snippet name already exists." + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update snippet", + "tags": [ + "Snippets Controller" + ] + } + }, + "/api/internal-squads": { + "get": { + "operationId": "InternalSquad_getInternalSquads", + "parameters": [], + "responses": { + "200": { + "description": "Internal squads retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalSquadsResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all internal squads", + "tags": [ + "Internal Squads Controller" + ] + }, + "post": { + "operationId": "InternalSquad_createInternalSquad", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateInternalSquadRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Internal squad created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalSquadResponseResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "409": { + "description": "Internal squad already exists" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Create internal squad", + "tags": [ + "Internal Squads Controller" + ] + }, + "patch": { + "operationId": "InternalSquad_updateInternalSquad", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateInternalSquadRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Internal squad updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalSquadResponseResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "Internal squad not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "409": { + "description": "Internal squad already exists" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update internal squad", + "tags": [ + "Internal Squads Controller" + ] + } + }, + "/api/internal-squads/{uuid}": { + "get": { + "operationId": "InternalSquad_getInternalSquadByUuid", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Internal squad retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalSquadResponseResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get internal squad by uuid", + "tags": [ + "Internal Squads Controller" + ] + }, + "delete": { + "operationId": "InternalSquad_deleteInternalSquad", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Internal squad deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "Internal squad not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete internal squad", + "tags": [ + "Internal Squads Controller" + ] + } + }, + "/api/internal-squads/{uuid}/accessible-nodes": { + "get": { + "operationId": "InternalSquad_getInternalSquadAccessibleNodes", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the internal squad", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Internal squad accessible nodes fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetInternalSquadAccessibleNodesResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "Internal squad not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get internal squad accessible nodes", + "tags": [ + "Internal Squads Controller" + ] + } + }, + "/api/internal-squads/{uuid}/bulk-actions/add-users": { + "post": { + "operationId": "InternalSquad_addUsersToInternalSquad", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Task added to internal job queue", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EventResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "Internal squad not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Add all users to internal squad", + "tags": [ + "Internal Squads Controller" + ] + } + }, + "/api/internal-squads/{uuid}/bulk-actions/remove-users": { + "delete": { + "operationId": "InternalSquad_removeUsersFromInternalSquad", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Task added to internal job queue", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EventResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "Internal squad not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete users from internal squad", + "tags": [ + "Internal Squads Controller" + ] + } + }, + "/api/internal-squads/actions/reorder": { + "post": { + "operationId": "InternalSquad_reorderInternalSquads", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReorderRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Internal squads reordered successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalSquadsResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Reorder internal squads", + "tags": [ + "Internal Squads Controller" + ] + } + }, + "/api/external-squads": { + "get": { + "operationId": "ExternalSquad_getExternalSquads", + "parameters": [], + "responses": { + "200": { + "description": "External squads retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExternalSquadsResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all external squads", + "tags": [ + "External Squads Controller" + ] + }, + "post": { + "operationId": "ExternalSquad_createExternalSquad", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateExternalSquadRequest" + } + } + } + }, + "responses": { + "201": { + "description": "External squad created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExternalSquadResponseResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "409": { + "description": "External squad already exists" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Create external squad", + "tags": [ + "External Squads Controller" + ] + }, + "patch": { + "operationId": "ExternalSquad_updateExternalSquad", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateExternalSquadRequest" + } + } + } + }, + "responses": { + "200": { + "description": "External squad updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExternalSquadResponseResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "External squad not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "409": { + "description": "External squad already exists" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update external squad", + "tags": [ + "External Squads Controller" + ] + } + }, + "/api/external-squads/{uuid}": { + "get": { + "operationId": "ExternalSquad_getExternalSquadByUuid", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "External squad retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExternalSquadResponseResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get external squad by uuid", + "tags": [ + "External Squads Controller" + ] + }, + "delete": { + "operationId": "ExternalSquad_deleteExternalSquad", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "External squad deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "External squad not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete external squad", + "tags": [ + "External Squads Controller" + ] + } + }, + "/api/external-squads/{uuid}/bulk-actions/add-users": { + "post": { + "operationId": "ExternalSquad_addUsersToExternalSquad", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Task added to external job queue", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EventResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "External squad not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Add all users to external squad", + "tags": [ + "External Squads Controller" + ] + } + }, + "/api/external-squads/{uuid}/bulk-actions/remove-users": { + "delete": { + "operationId": "ExternalSquad_removeUsersFromExternalSquad", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Task added to external job queue", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EventResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "External squad not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete users from external squad", + "tags": [ + "External Squads Controller" + ] + } + }, + "/api/external-squads/actions/reorder": { + "post": { + "operationId": "ExternalSquad_reorderExternalSquads", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReorderRequest" + } + } + } + }, + "responses": { + "200": { + "description": "External squads reordered successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExternalSquadsResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Reorder external squads", + "tags": [ + "External Squads Controller" + ] + } + }, + "/api/keygen": { + "get": { + "operationId": "Keygen_generateKey", + "parameters": [], + "responses": { + "200": { + "description": "Get SECRET_KEY for Remnawave Node", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetPubKeyResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get SECRET_KEY for Remnawave Node", + "tags": [ + "Keygen Controller" + ] + } + }, + "/api/nodes/tags": { + "get": { + "operationId": "Nodes_getAllNodesTags", + "parameters": [], + "responses": { + "200": { + "description": "Nodes tags fetched", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TagsResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all existing nodes tags", + "tags": [ + "Nodes Controller" + ] + } + }, + "/api/nodes": { + "post": { + "operationId": "Nodes_createNode", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateNodeRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Node created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NodeResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Create a new node", + "tags": [ + "Nodes Controller" + ] + }, + "get": { + "operationId": "Nodes_getAllNodes", + "parameters": [], + "responses": { + "200": { + "description": "Nodes fetched", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NodesResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all nodes", + "tags": [ + "Nodes Controller" + ] + }, + "patch": { + "operationId": "Nodes_updateNode", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateNodeRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Node updated", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NodeResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update node", + "tags": [ + "Nodes Controller" + ] + } + }, + "/api/nodes/{uuid}": { + "get": { + "operationId": "Nodes_getOneNode", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "Node UUID", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Node fetched", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NodeResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get node by UUID", + "tags": [ + "Nodes Controller" + ] + }, + "delete": { + "operationId": "Nodes_deleteNode", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "Node UUID", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Node deleted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete a node", + "tags": [ + "Nodes Controller" + ] + } + }, + "/api/nodes/{uuid}/actions/enable": { + "post": { + "operationId": "Nodes_enableNode", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "Node UUID", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Node enabled", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NodeResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Enable a node", + "tags": [ + "Nodes Controller" + ] + } + }, + "/api/nodes/{uuid}/actions/disable": { + "post": { + "operationId": "Nodes_disableNode", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "Node UUID", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Node disabled", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NodeResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Disable a node", + "tags": [ + "Nodes Controller" + ] + } + }, + "/api/nodes/{uuid}/actions/restart": { + "post": { + "operationId": "Nodes_restartNode", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "Node UUID", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Node restarted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EventResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Restart node", + "tags": [ + "Nodes Controller" + ] + } + }, + "/api/nodes/{uuid}/actions/reset-traffic": { + "post": { + "operationId": "Nodes_resetNodeTraffic", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "Node UUID", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Event sent", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EventResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Reset Node Traffic", + "tags": [ + "Nodes Controller" + ] + } + }, + "/api/nodes/actions/restart-all": { + "post": { + "operationId": "Nodes_restartAllNodes", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RestartAllNodesRequestBody" + } + } + } + }, + "responses": { + "200": { + "description": "All nodes restarted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EventResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Restart all nodes", + "tags": [ + "Nodes Controller" + ] + } + }, + "/api/nodes/actions/reorder": { + "post": { + "operationId": "Nodes_reorderNodes", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReorderNodeRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Nodes reordered successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NodesResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Reorder nodes", + "tags": [ + "Nodes Controller" + ] + } + }, + "/api/nodes/bulk-actions/profile-modification": { + "post": { + "operationId": "Nodes_profileModification", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProfileModificationRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Event sent successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EventResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Modify Inbounds & Profile for many nodes", + "tags": [ + "Nodes Controller" + ] + } + }, + "/api/nodes/bulk-actions": { + "post": { + "operationId": "Nodes_bulkNodesActions", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkNodesActionsRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Event sent successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EventResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Perform actions for many nodes", + "tags": [ + "Nodes Controller" + ] + } + }, + "/api/nodes/bulk-actions/update": { + "post": { + "operationId": "Nodes_bulkNodesUpdate", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkNodesUpdateRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Event sent successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EventResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update many nodes", + "tags": [ + "Nodes Controller" + ] + } + }, + "/api/node-plugins/torrent-blocker": { + "get": { + "operationId": "TorrentBlockerReports_getTorrentBlockerReports", + "parameters": [ + { + "name": "size", + "required": false, + "in": "query", + "description": "Page size for pagination", + "schema": { + "type": "integer" + } + }, + { + "name": "start", + "required": false, + "in": "query", + "description": "Offset for pagination", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Torrent blocker reports fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TorrentBlockerReportsResponseResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get Torrent Blocker Reports", + "tags": [ + "Node Plugins Controller" + ] + } + }, + "/api/node-plugins/torrent-blocker/stats": { + "get": { + "operationId": "TorrentBlockerReports_getTorrentBlockerReportsStats", + "parameters": [], + "responses": { + "200": { + "description": "Torrent blocker reports stats fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetTorrentBlockerReportsStatsResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get Torrent Blocker Reports Stats", + "tags": [ + "Node Plugins Controller" + ] + } + }, + "/api/node-plugins/torrent-blocker/truncate": { + "delete": { + "operationId": "TorrentBlockerReports_truncateTorrentBlockerReports", + "parameters": [], + "responses": { + "200": { + "description": "Torrent blocker reports truncated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TorrentBlockerReportsResponseResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Truncate Torrent Blocker Reports", + "tags": [ + "Node Plugins Controller" + ] + } + }, + "/api/node-plugins": { + "get": { + "operationId": "NodePlugin_getAllConfigs", + "parameters": [], + "responses": { + "200": { + "description": "Node plugins retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NodePluginsResponseResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all Node Plugins", + "tags": [ + "Node Plugins Controller" + ] + }, + "patch": { + "operationId": "NodePlugin_updateConfig", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateNodePluginRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Node plugin updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NodePluginResponseResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update Node Plugin", + "tags": [ + "Node Plugins Controller" + ] + }, + "post": { + "operationId": "NodePlugin_createConfig", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateNodePluginRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Node plugin created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateNodePluginResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Create Node Plugin", + "tags": [ + "Node Plugins Controller" + ] + } + }, + "/api/node-plugins/{uuid}": { + "get": { + "operationId": "NodePlugin_getConfigByUuid", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "Node plugin UUID", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Node plugin retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NodePluginResponseResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get Node Plugin by uuid", + "tags": [ + "Node Plugins Controller" + ] + }, + "delete": { + "operationId": "NodePlugin_deleteConfig", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "Node plugin UUID", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Node plugin deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete Node Plugin", + "tags": [ + "Node Plugins Controller" + ] + } + }, + "/api/node-plugins/actions/reorder": { + "post": { + "operationId": "NodePlugin_reorderNodePlugins", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReorderRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Node plugins reordered successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NodePluginsResponseResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Reorder Node Plugins", + "tags": [ + "Node Plugins Controller" + ] + } + }, + "/api/node-plugins/actions/clone": { + "post": { + "operationId": "NodePlugin_cloneNodePlugin", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloneNodePluginRequestRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Node plugin cloned successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NodePluginResponseResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Clone Node Plugin", + "tags": [ + "Node Plugins Controller" + ] + } + }, + "/api/node-plugins/executor": { + "post": { + "operationId": "NodePlugin_pluginExecutor", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PluginExecutorRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Node plugin cloned successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EventResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Execute command on node plugins", + "tags": [ + "Node Plugins Controller" + ] + } + }, + "/api/hosts/tags": { + "get": { + "operationId": "Hosts_getAllHostTags", + "parameters": [], + "responses": { + "200": { + "description": "Host tags fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TagsResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all existing host tags", + "tags": [ + "Hosts Controller" + ] + } + }, + "/api/hosts": { + "post": { + "operationId": "Hosts_createHost", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateHostRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Host created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HostResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Create a new host", + "tags": [ + "Hosts Controller" + ] + }, + "patch": { + "operationId": "Hosts_updateHost", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateHostRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Host updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HostResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update a host", + "tags": [ + "Hosts Controller" + ] + }, + "get": { + "operationId": "Hosts_getAllHosts", + "parameters": [], + "responses": { + "200": { + "description": "Hosts fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HostListResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all hosts", + "tags": [ + "Hosts Controller" + ] + } + }, + "/api/hosts/{uuid}": { + "get": { + "operationId": "Hosts_getOneHost", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the host", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Host fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HostResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get a host by UUID", + "tags": [ + "Hosts Controller" + ] + }, + "delete": { + "operationId": "Hosts_deleteHost", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the host", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Host deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "Host not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete a host by UUID", + "tags": [ + "Hosts Controller" + ] + } + }, + "/api/hosts/actions/reorder": { + "post": { + "operationId": "Hosts_reorderHosts", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReorderHostRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Hosts reordered successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReorderHostResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Reorder hosts", + "tags": [ + "Hosts Controller" + ] + } + }, + "/api/hosts/bulk/delete": { + "post": { + "operationId": "HostsBulkActions_deleteHosts", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkUuidsRequest2" + } + } + } + }, + "responses": { + "200": { + "description": "Hosts deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HostListResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete hosts by UUIDs", + "tags": [ + "Hosts Bulk Actions Controller" + ] + } + }, + "/api/hosts/bulk/disable": { + "post": { + "operationId": "HostsBulkActions_disableHosts", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkUuidsRequest2" + } + } + } + }, + "responses": { + "200": { + "description": "Hosts disabled successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HostListResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Disable hosts by UUIDs", + "tags": [ + "Hosts Bulk Actions Controller" + ] + } + }, + "/api/hosts/bulk/enable": { + "post": { + "operationId": "HostsBulkActions_enableHosts", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkUuidsRequest2" + } + } + } + }, + "responses": { + "200": { + "description": "Hosts enabled successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HostListResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Enable hosts by UUIDs", + "tags": [ + "Hosts Bulk Actions Controller" + ] + } + }, + "/api/hosts/bulk/set-inbound": { + "post": { + "operationId": "HostsBulkActions_setInboundToHosts", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SetInboundToManyHostsRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Hosts inbound set successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HostListResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Set inbound to hosts by UUIDs", + "tags": [ + "Hosts Bulk Actions Controller" + ] + } + }, + "/api/hosts/bulk/set-port": { + "post": { + "operationId": "HostsBulkActions_setPortToHosts", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SetPortToManyHostsRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Hosts port set successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HostListResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Set port to hosts by UUIDs", + "tags": [ + "Hosts Bulk Actions Controller" + ] + } + }, + "/api/bandwidth-stats/nodes/{uuid}/users/legacy": { + "get": { + "operationId": "BandwidthStatsNodes_getNodeUserUsage", + "parameters": [ + { + "name": "start", + "required": true, + "in": "query", + "description": "Start date", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "name": "end", + "required": true, + "in": "query", + "description": "End date", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the node", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Nodes users usage by range (legacy) fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetLegacyStatsNodesUsersUsageResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get Node User Usage by Range and Node UUID (Legacy)", + "tags": [ + "Bandwidth Stats Controller" + ] + } + }, + "/api/bandwidth-stats/nodes/{uuid}/users": { + "get": { + "operationId": "BandwidthStatsNodes_getStatsNodeUsersUsage", + "parameters": [ + { + "name": "topUsersLimit", + "required": true, + "in": "query", + "description": "Limit of top users to return", + "schema": { + "type": "integer" + } + }, + { + "name": "start", + "required": true, + "in": "query", + "description": "Start date (YYYY-MM-DD)", + "schema": { + "format": "date", + "example": "2026-01-31", + "type": "string" + } + }, + { + "name": "end", + "required": true, + "in": "query", + "description": "End date (YYYY-MM-DD)", + "schema": { + "format": "date", + "example": "2026-01-01", + "type": "string" + } + }, + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the node", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Stats node users usage fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetStatsNodeUsersUsageResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get Node Users Usage by Node UUID", + "tags": [ + "Bandwidth Stats Controller" + ] + } + }, + "/api/bandwidth-stats/users/{uuid}/legacy": { + "get": { + "operationId": "BandwidthStatsUsers_getUserUsageByRange", + "parameters": [ + { + "name": "start", + "required": true, + "in": "query", + "description": "Start date", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "name": "end", + "required": true, + "in": "query", + "description": "End date", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "User usage by range (legacy) fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetLegacyStatsUserUsageResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "User not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get User Usage by Range (Legacy)", + "tags": [ + "Bandwidth Stats Controller" + ] + } + }, + "/api/bandwidth-stats/users/{uuid}": { + "get": { + "operationId": "BandwidthStatsUsers_getStatsNodesUsage", + "parameters": [ + { + "name": "topNodesLimit", + "required": true, + "in": "query", + "description": "Limit of top nodes to return", + "schema": { + "type": "integer" + } + }, + { + "name": "start", + "required": true, + "in": "query", + "description": "Start date (YYYY-MM-DD)", + "schema": { + "format": "date", + "example": "2026-01-31", + "type": "string" + } + }, + { + "name": "end", + "required": true, + "in": "query", + "description": "End date (YYYY-MM-DD)", + "schema": { + "format": "date", + "example": "2026-01-01", + "type": "string" + } + }, + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Stats user usage fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StatsUserUsageResponseResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get User Usage by Range", + "tags": [ + "Bandwidth Stats Controller" + ] + } + }, + "/api/hwid/devices": { + "get": { + "operationId": "HwidUserDevices_getAllUsers", + "parameters": [ + { + "name": "size", + "required": false, + "in": "query", + "description": "Page size for pagination", + "schema": { + "type": "integer" + } + }, + { + "name": "start", + "required": false, + "in": "query", + "description": "Offset for pagination", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Hwid devices fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetAllHwidDevicesResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all HWID devices", + "tags": [ + "HWID User Devices Controller" + ] + }, + "post": { + "operationId": "HwidUserDevices_createUserHwidDevice", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateUserHwidDeviceRequest" + } + } + } + }, + "responses": { + "200": { + "description": "User HWID device created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HwidDevicesResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "One of requested resources not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Create a user HWID device", + "tags": [ + "HWID User Devices Controller" + ] + } + }, + "/api/hwid/devices/delete": { + "post": { + "operationId": "HwidUserDevices_deleteUserHwidDevice", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteUserHwidDeviceRequest" + } + } + } + }, + "responses": { + "200": { + "description": "User HWID device deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HwidDevicesResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "One of requested resources not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete a user HWID device", + "tags": [ + "HWID User Devices Controller" + ] + } + }, + "/api/hwid/devices/delete-all": { + "post": { + "operationId": "HwidUserDevices_deleteAllUserHwidDevices", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteAllUserHwidDevicesRequest" + } + } + } + }, + "responses": { + "200": { + "description": "User HWID devices deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HwidDevicesResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "One of requested resources not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete all user HWID devices", + "tags": [ + "HWID User Devices Controller" + ] + } + }, + "/api/hwid/devices/stats": { + "get": { + "operationId": "HwidUserDevices_getHwidDevicesStats", + "parameters": [], + "responses": { + "200": { + "description": "Hwid devices stats fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetHwidDevicesStatsResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get HWID devices stats", + "tags": [ + "HWID User Devices Controller" + ] + } + }, + "/api/hwid/devices/top-users": { + "get": { + "operationId": "HwidUserDevices_getTopUsersByHwidDevices", + "parameters": [ + { + "name": "size", + "required": false, + "in": "query", + "description": "Page size for pagination", + "schema": { + "type": "integer" + } + }, + { + "name": "start", + "required": false, + "in": "query", + "description": "Offset for pagination", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Top users by HWID devices fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetTopUsersByHwidDevicesResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get top users by HWID devices", + "tags": [ + "HWID User Devices Controller" + ] + } + }, + "/api/hwid/devices/{userUuid}": { + "get": { + "operationId": "HwidUserDevices_getUserHwidDevices", + "parameters": [ + { + "name": "userUuid", + "required": true, + "in": "path", + "description": "UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "User HWID devices fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HwidDevicesResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "One of requested resources not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get user HWID devices", + "tags": [ + "HWID User Devices Controller" + ] + } + }, + "/api/bandwidth-stats/nodes": { + "get": { + "operationId": "NodesUsageHistory_getStatsNodesUsage", + "parameters": [ + { + "name": "topNodesLimit", + "required": true, + "in": "query", + "description": "Limit of top nodes to return", + "schema": { + "type": "integer" + } + }, + { + "name": "start", + "required": true, + "in": "query", + "description": "Start date (YYYY-MM-DD)", + "schema": { + "format": "date", + "example": "2026-01-31", + "type": "string" + } + }, + { + "name": "end", + "required": true, + "in": "query", + "description": "End date (YYYY-MM-DD)", + "schema": { + "format": "date", + "example": "2026-01-01", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Stats nodes usage fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StatsUserUsageResponseResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get Nodes Usage by Range", + "tags": [ + "Bandwidth Stats Controller" + ] + } + }, + "/api/infra-billing/providers": { + "get": { + "operationId": "InfraBilling_getInfraProviders", + "parameters": [], + "responses": { + "200": { + "description": "Infra providers retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetInfraProvidersResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all infra providers", + "tags": [ + "Infra Billing Controller" + ] + }, + "post": { + "operationId": "InfraBilling_createInfraProvider", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateInfraProviderRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Infra provider created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InfraProviderResponseResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Create infra provider", + "tags": [ + "Infra Billing Controller" + ] + }, + "patch": { + "operationId": "InfraBilling_updateInfraProvider", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateInfraProviderRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Infra provider updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InfraProviderResponseResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update infra provider", + "tags": [ + "Infra Billing Controller" + ] + } + }, + "/api/infra-billing/providers/{uuid}": { + "get": { + "operationId": "InfraBilling_getInfraProviderByUuid", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Infra provider retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InfraProviderResponseResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "Infra provider not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get infra provider by uuid", + "tags": [ + "Infra Billing Controller" + ] + }, + "delete": { + "operationId": "InfraBilling_deleteInfraProviderByUuid", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Infra provider deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete infra provider by uuid", + "tags": [ + "Infra Billing Controller" + ] + } + }, + "/api/infra-billing/history": { + "post": { + "operationId": "InfraBilling_createInfraBillingHistoryRecord", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateInfraBillingHistoryRecordRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Infra billing history record created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BillingHistoryResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Create infra billing history", + "tags": [ + "Infra Billing Controller" + ] + }, + "get": { + "operationId": "InfraBilling_getInfraBillingHistoryRecords", + "parameters": [], + "responses": { + "200": { + "description": "Infra billing history records retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BillingHistoryResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get infra billing history", + "tags": [ + "Infra Billing Controller" + ] + } + }, + "/api/infra-billing/history/{uuid}": { + "delete": { + "operationId": "InfraBilling_deleteInfraBillingHistoryRecordByUuid", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Infra billing history record deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BillingHistoryResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete infra billing history", + "tags": [ + "Infra Billing Controller" + ] + } + }, + "/api/infra-billing/nodes": { + "get": { + "operationId": "InfraBilling_getBillingNodes", + "parameters": [], + "responses": { + "200": { + "description": "Infra billing nodes retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BillingNodesResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get infra billing nodes", + "tags": [ + "Infra Billing Controller" + ] + }, + "patch": { + "operationId": "InfraBilling_updateInfraBillingNode", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateInfraBillingNodeRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Infra billing node updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BillingNodesResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update infra billing nodes", + "tags": [ + "Infra Billing Controller" + ] + }, + "post": { + "operationId": "InfraBilling_createInfraBillingNode", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateInfraBillingNodeRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Infra billing node created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BillingNodesResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Create infra billing node", + "tags": [ + "Infra Billing Controller" + ] + } + }, + "/api/infra-billing/nodes/{uuid}": { + "delete": { + "operationId": "InfraBilling_deleteInfraBillingNodeByUuid", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Infra billing node deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BillingNodesResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete infra billing node", + "tags": [ + "Infra Billing Controller" + ] + } + }, + "/api/subscription-request-history": { + "get": { + "operationId": "UserSubscriptionRequestHistory_getSubscriptionRequestHistory", + "parameters": [ + { + "name": "size", + "required": false, + "in": "query", + "description": "Page size for pagination", + "schema": { + "type": "integer" + } + }, + { + "name": "start", + "required": false, + "in": "query", + "description": "Offset for pagination", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Subscription request history fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetSubscriptionRequestHistoryResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all subscription request history", + "tags": [ + "Subscription Request History Controller" + ] + } + }, + "/api/subscription-request-history/stats": { + "get": { + "operationId": "UserSubscriptionRequestHistory_getSubscriptionRequestHistoryStats", + "parameters": [], + "responses": { + "200": { + "description": "User subscription request history stats fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetSubscriptionRequestHistoryStatsResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get subscription request history stats", + "tags": [ + "Subscription Request History Controller" + ] + } + }, + "/api/system/metadata": { + "get": { + "operationId": "System_getMetadata", + "parameters": [], + "responses": { + "200": { + "description": "Returns system metadata", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetMetadataResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get Remnawave Information", + "tags": [ + "System Controller" + ] + } + }, + "/api/system/stats": { + "get": { + "operationId": "System_getStats", + "parameters": [], + "responses": { + "200": { + "description": "Returns system statistics", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetStatsResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get Stats", + "tags": [ + "System Controller" + ] + } + }, + "/api/system/stats/bandwidth": { + "get": { + "operationId": "System_getBandwidthStats", + "parameters": [], + "responses": { + "200": { + "description": "Returns bandwidth statistics", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetBandwidthStatsResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get Bandwidth Stats", + "tags": [ + "System Controller" + ] + } + }, + "/api/system/stats/nodes": { + "get": { + "operationId": "System_getNodesStatistics", + "parameters": [], + "responses": { + "200": { + "description": "Returns nodes statistics", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetNodesStatisticsResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get Nodes Statistics", + "tags": [ + "System Controller" + ] + } + }, + "/api/system/health": { + "get": { + "operationId": "System_getRemnawaveHealth", + "parameters": [], + "responses": { + "200": { + "description": "Returns Remnawave health", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetRemnawaveHealthResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get Remnawave Health", + "tags": [ + "System Controller" + ] + } + }, + "/api/system/nodes/metrics": { + "get": { + "operationId": "System_getNodesMetrics", + "parameters": [], + "responses": { + "200": { + "description": "Returns nodes metrics from Prometheus metrics endpoint", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetNodesMetricsResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get Nodes Metrics", + "tags": [ + "System Controller" + ] + } + }, + "/api/system/tools/x25519/generate": { + "get": { + "operationId": "System_getX25519Keypairs", + "parameters": [], + "responses": { + "200": { + "description": "Returns x25519 keypairs", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GenerateX25519Response" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Generate 30 X25519 keypairs", + "tags": [ + "System Controller" + ] + } + }, + "/api/system/tools/happ/encrypt": { + "post": { + "operationId": "System_encryptHappCryptoLink", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EncryptHappCryptoLinkRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Returns encrypted Happ crypto link", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EncryptHappCryptoLinkResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Encrypt Happ Crypto Link", + "tags": [ + "System Controller" + ] + } + }, + "/api/system/testers/srr-matcher": { + "post": { + "operationId": "System_debugSrrMatcher", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebugSrrMatcherRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Debug SRR matcher information", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebugSrrMatcherResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Test SRR Matcher", + "tags": [ + "System Controller" + ] + } + }, + "/api/system/stats/recap": { + "get": { + "operationId": "System_getRecap", + "parameters": [], + "responses": { + "200": { + "description": "Returns system recap", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetRecapResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get Recap", + "tags": [ + "System Controller" + ] + } + }, + "/api/subscription-settings": { + "get": { + "operationId": "SubscriptionSettings_getSettings", + "parameters": [], + "responses": { + "200": { + "description": "Subscription settings retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubscriptionSettingsResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get subscription settings", + "tags": [ + "Subscription Settings Controller" + ] + }, + "patch": { + "operationId": "SubscriptionSettings_updateSettings", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateSubscriptionSettingsRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Subscription settings updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubscriptionSettingsResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update subscription settings", + "tags": [ + "Subscription Settings Controller" + ] + } + }, + "/api/ip-control/fetch-ips/{uuid}": { + "post": { + "operationId": "IpControl_fetchUserIps", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Return jobId for further processing", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IpsResponseResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "User not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Request IP List for User", + "tags": [ + "IP Management Controller" + ] + } + }, + "/api/ip-control/fetch-ips/result/{jobId}": { + "get": { + "operationId": "IpControl_getFetchIpsResult", + "parameters": [ + { + "name": "jobId", + "required": true, + "in": "path", + "description": "Job ID", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Return result or status of the job", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FetchIpsResultResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "Job not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get IP List Result by Job ID", + "tags": [ + "IP Management Controller" + ] + } + }, + "/api/ip-control/drop-connections": { + "post": { + "operationId": "IpControl_dropConnections", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DropConnectionsRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Event sent to background executor", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EventResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "User not found // Connected nodes not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Drop Connections for Users or IPs", + "tags": [ + "IP Management Controller" + ] + } + }, + "/api/ip-control/fetch-users-ips/{nodeUuid}": { + "post": { + "operationId": "IpControl_fetchUsersIps", + "parameters": [ + { + "name": "nodeUuid", + "required": true, + "in": "path", + "description": "UUID of the node", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Return jobId for further processing", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IpsResponseResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "Node not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Request Users IPs List for Node", + "tags": [ + "IP Management Controller" + ] + } + }, + "/api/ip-control/fetch-users-ips/result/{jobId}": { + "get": { + "operationId": "IpControl_getFetchUsersIpsResult", + "parameters": [ + { + "name": "jobId", + "required": true, + "in": "path", + "description": "Job ID", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Return result or status of the job", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FetchUsersIpsResultResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "Job not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get Users IPs List Result by Job ID", + "tags": [ + "IP Management Controller" + ] + } + }, + "/api/metadata/user/{uuid}": { + "get": { + "operationId": "Metadata_getUserMetadata", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "User Metadata retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserMetadataResponseResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "User or Metadata not found (see errorCode for more details)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get user metadata", + "tags": [ + "Metadata Controller" + ] + }, + "put": { + "operationId": "Metadata_upsertUserMetadata", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the user", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpsertUserMetadataRequestBodyRequest" + } + } + } + }, + "responses": { + "200": { + "description": "User Metadata upserted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserMetadataResponseResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "User not found (see errorCode for more details)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update or create User Metadata", + "tags": [ + "Metadata Controller" + ] + } + }, + "/api/metadata/node/{uuid}": { + "get": { + "operationId": "Metadata_getNodeMetadata", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the node", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Node Metadata retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserMetadataResponseResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "Node or Metadata not found (see errorCode for more details)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get node metadata", + "tags": [ + "Metadata Controller" + ] + }, + "put": { + "operationId": "Metadata_upsertNodeMetadata", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the node", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpsertUserMetadataRequestBodyRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Node Metadata upserted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserMetadataResponseResponse" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BadRequestError" + } + } + } + }, + "404": { + "description": "Node not found (see errorCode for more details)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotFoundError" + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalServerError" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update or create Node Metadata", + "tags": [ + "Metadata Controller" + ] + } + } + }, + "info": { + "title": "Remnawave API v2.7.4", + "description": "\nRemnawave is a powerful proxy managment tool, built on top of Xray-core, with a focus on simplicity and ease of use.\n\n## Resources\n* https://t.me/remnawave\n* https://github.com/remnawave\n* https://docs.rw\n", + "version": "2.7.4", + "contact": {}, + "license": { + "name": "AGPL-3.0", + "url": "https://github.com/remnawave/panel?tab=AGPL-3.0-1-ov-file" + } + }, + "tags": [ + { + "name": "Auth Controller", + "description": "Used to authenticate admin users." + }, + { + "name": "Passkeys Controller", + "description": "Management of Passkeys." + }, + { + "name": "API Tokens Controller", + "description": "Manage API tokens to use in your code. This controller can't be used with API token, only with Admin JWT token" + }, + { + "name": "Users Controller", + "description": "Manage users, change their status, reset traffic, etc." + }, + { + "name": "Users Bulk Actions Controller", + "description": "Bulk actions with users." + }, + { + "name": "HWID User Devices Controller", + "description": "" + }, + { + "name": "[Public] Subscription Controller", + "description": "Public Subscription Controller. Methods of this controller are not protected with auth. Use it only for public requests." + }, + { + "name": "[Protected] Subscriptions Controller", + "description": "Methods of this controller are protected with auth, most of them is returning the same informations as public Subscription Controller." + }, + { + "name": "Nodes Controller", + "description": "" + }, + { + "name": "Node Plugins Controller", + "description": "" + }, + { + "name": "Bandwidth Stats Controller", + "description": "" + }, + { + "name": "IP Management Controller", + "description": "Management of IP addresses and connections." + }, + { + "name": "Config Profiles Controller", + "description": "Management of Config Profiles." + }, + { + "name": "Internal Squads Controller", + "description": "Management of Internal Squads." + }, + { + "name": "External Squads Controller", + "description": "Management of External Squads." + }, + { + "name": "Hosts Controller", + "description": "" + }, + { + "name": "Hosts Bulk Actions Controller", + "description": "" + }, + { + "name": "Subscription Template Controller", + "description": "" + }, + { + "name": "Subscription Settings Controller", + "description": "" + }, + { + "name": "Infra Billing Controller", + "description": "" + }, + { + "name": "System Controller", + "description": "" + }, + { + "name": "Keygen Controller", + "description": "Generation of SECRET_KEY for Remnawave Node." + }, + { + "name": "Subscription Request History Controller", + "description": "" + }, + { + "name": "Snippets Controller", + "description": "" + }, + { + "name": "Remnawave Settings Controller", + "description": "" + }, + { + "name": "Subscription Page Configs Controller", + "description": "" + }, + { + "name": "Metadata Controller", + "description": "Manage arbitrary metadata for Users and Nodes." + } + ], + "servers": [], + "components": { + "securitySchemes": { + "Authorization": { + "scheme": "bearer", + "bearerFormat": "JWT", + "type": "http", + "name": "Authorization", + "description": "JWT obtained login." + }, + "Prometheus": { + "type": "http", + "scheme": "basic", + "name": "Prometheus", + "description": "Prometheus Basic Auth" + } + }, + "schemas": { + "SettingsResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "passkeySettings": { + "$ref": "#/components/schemas/PasskeySettings" + }, + "oauth2Settings": { + "$ref": "#/components/schemas/Oauth2Settings" + }, + "passwordSettings": { + "$ref": "#/components/schemas/PasswordSettings" + }, + "brandingSettings": { + "$ref": "#/components/schemas/BrandingSettings" + } + }, + "required": [ + "passkeySettings", + "oauth2Settings", + "passwordSettings", + "brandingSettings" + ] + } + }, + "required": [ + "response" + ] + }, + "UpdateRemnawaveSettingsRequest": { + "type": "object", + "properties": { + "passkeySettings": { + "$ref": "#/components/schemas/PasskeySettings" + }, + "oauth2Settings": { + "$ref": "#/components/schemas/Oauth2Settings" + }, + "passwordSettings": { + "$ref": "#/components/schemas/PasswordSettings" + }, + "brandingSettings": { + "$ref": "#/components/schemas/BrandingSettings" + } + } + }, + "PasskeyOptions": { + "type": "object", + "properties": { + "response": {} + }, + "required": [ + "response" + ] + }, + "VerifyPasskeyRegistrationResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "verified": { + "type": "boolean" + } + }, + "required": [ + "verified" + ] + } + }, + "required": [ + "response" + ] + }, + "PasskeysResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "passkeys": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "createdAt": { + "description": "Created date. Format: 2025-01-17T15:38:45.065Z", + "type": "string", + "format": "date-time" + }, + "lastUsedAt": { + "description": "Last used date. Format: 2025-01-17T15:38:45.065Z", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "createdAt", + "lastUsedAt" + ] + } + } + }, + "required": [ + "passkeys" + ] + } + }, + "required": [ + "response" + ] + }, + "DeletePasskeyRequest": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + }, + "UpdatePasskeyRequest": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string", + "minLength": 2, + "maxLength": 30, + "pattern": "^[A-Za-z0-9_\\s-]+$" + } + }, + "required": [ + "id", + "name" + ] + }, + "LoginRequest": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "required": [ + "username", + "password" + ] + }, + "TokenResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "accessToken": { + "type": "string" + } + }, + "required": [ + "accessToken" + ] + } + }, + "required": [ + "response" + ] + }, + "RegisterRequest": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "password": { + "type": "string", + "minLength": 24, + "pattern": "^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{24,}$" + } + }, + "required": [ + "username", + "password" + ] + }, + "GetStatusResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "isLoginAllowed": { + "type": "boolean" + }, + "isRegisterAllowed": { + "type": "boolean" + }, + "authentication": { + "type": "object", + "properties": { + "passkey": { + "$ref": "#/components/schemas/PasswordSettings" + }, + "oauth2": { + "type": "object", + "properties": { + "providers": { + "type": "object", + "additionalProperties": { + "type": "boolean" + } + } + }, + "required": [ + "providers" + ] + }, + "password": { + "$ref": "#/components/schemas/PasswordSettings" + } + }, + "required": [ + "passkey", + "oauth2", + "password" + ], + "nullable": true + }, + "branding": { + "type": "object", + "properties": { + "title": { + "type": "string", + "nullable": true + }, + "logoUrl": { + "type": "string", + "nullable": true + } + }, + "required": [ + "title", + "logoUrl" + ] + } + }, + "required": [ + "isLoginAllowed", + "isRegisterAllowed", + "authentication", + "branding" + ] + } + }, + "required": [ + "response" + ] + }, + "OAuth2AuthorizeRequest": { + "type": "object", + "properties": { + "provider": { + "type": "string", + "enum": [ + "telegram", + "github", + "pocketid", + "yandex", + "keycloak", + "generic" + ], + "x-enumNames": [ + "TELEGRAM", + "GITHUB", + "POCKETID", + "YANDEX", + "KEYCLOAK", + "GENERIC" + ] + } + }, + "required": [ + "provider" + ] + }, + "OAuth2AuthorizeResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "authorizationUrl": { + "type": "string", + "format": "uri", + "nullable": true + } + }, + "required": [ + "authorizationUrl" + ] + } + }, + "required": [ + "response" + ] + }, + "OAuth2CallbackRequest": { + "type": "object", + "properties": { + "provider": { + "type": "string", + "enum": [ + "telegram", + "github", + "pocketid", + "yandex", + "keycloak", + "generic" + ], + "x-enumNames": [ + "TELEGRAM", + "GITHUB", + "POCKETID", + "YANDEX", + "KEYCLOAK", + "GENERIC" + ] + }, + "code": { + "type": "string" + }, + "state": { + "type": "string" + } + }, + "required": [ + "provider", + "code", + "state" + ] + }, + "SubscriptionPageConfigsResponseResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "configs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Config" + } + } + }, + "required": [ + "total", + "configs" + ] + } + }, + "required": [ + "response" + ] + }, + "SubscriptionPageConfigResponseResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "config": {} + }, + "required": [ + "uuid", + "viewPosition", + "name", + "config" + ] + } + }, + "required": [ + "response" + ] + }, + "UpdateSubscriptionPageConfigRequest": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string", + "minLength": 2, + "maxLength": 30, + "pattern": "^[A-Za-z0-9_\\s-]+$" + }, + "config": {} + }, + "required": [ + "uuid" + ] + }, + "DeleteResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "isDeleted": { + "type": "boolean" + } + }, + "required": [ + "isDeleted" + ] + } + }, + "required": [ + "response" + ] + }, + "CreateSubscriptionPageConfigRequest": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 2, + "maxLength": 30, + "pattern": "^[A-Za-z0-9_\\s-]+$" + } + }, + "required": [ + "name" + ] + }, + "CreateSubscriptionPageConfigResponse": { + "type": "object", + "properties": { + "response": { + "$ref": "#/components/schemas/Config" + } + }, + "required": [ + "response" + ] + }, + "ReorderRequest": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ReorderRequestItem" + } + } + }, + "required": [ + "items" + ] + }, + "CloneNodePluginRequestRequest": { + "type": "object", + "properties": { + "cloneFromUuid": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "cloneFromUuid" + ] + }, + "CreateUserRequest": { + "type": "object", + "properties": { + "username": { + "description": "Unique username for the user. Required. Must be 3-36 characters long and contain only letters, numbers, underscores and dashes.", + "type": "string", + "pattern": "^[a-zA-Z0-9_-]+$", + "maxLength": 36, + "minLength": 3 + }, + "status": { + "description": "Optional. User account status. Defaults to ACTIVE.", + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "x-enumNames": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "default": "ACTIVE" + }, + "shortUuid": { + "description": "Optional. Short UUID identifier for the user.", + "type": "string" + }, + "trojanPassword": { + "description": "Optional. Password for Trojan protocol. Must be 8-32 characters.", + "type": "string", + "minLength": 8, + "maxLength": 32 + }, + "vlessUuid": { + "description": "Optional. UUID for VLESS protocol. Must be a valid UUID format.", + "type": "string", + "format": "uuid" + }, + "ssPassword": { + "description": "Optional. Password for Shadowsocks protocol. Must be 8-32 characters.", + "type": "string", + "minLength": 8, + "maxLength": 32 + }, + "trafficLimitBytes": { + "description": "Optional. Traffic limit in bytes. Set to 0 for unlimited traffic.", + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false + }, + "trafficLimitStrategy": { + "description": "Available reset periods", + "type": "string", + "enum": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "x-enumNames": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "default": "NO_RESET" + }, + "expireAt": { + "description": "Account expiration date. Required. Format: 2025-01-17T15:38:45.065Z", + "type": "string", + "format": "date-time" + }, + "createdAt": { + "description": "Optional. Account creation date. Format: 2025-01-17T15:38:45.065Z", + "type": "string", + "format": "date-time" + }, + "lastTrafficResetAt": { + "description": "Optional. Date of last traffic reset. Format: 2025-01-17T15:38:45.065Z", + "type": "string", + "format": "date-time" + }, + "description": { + "description": "Optional. Additional notes or description for the user account.", + "type": "string" + }, + "tag": { + "description": "Optional. User tag for categorization. Max 16 characters, uppercase letters, numbers and underscores only.", + "type": "string", + "pattern": "^[A-Z0-9_]+$", + "maxLength": 16, + "nullable": true + }, + "telegramId": { + "description": "Optional. Telegram user ID for notifications. Must be an integer.", + "type": "integer", + "nullable": true + }, + "email": { + "description": "Optional. User email address. Must be a valid email format.", + "type": "string", + "format": "email", + "nullable": true + }, + "hwidDeviceLimit": { + "description": "Optional. Maximum number of hardware devices allowed. Must be a positive integer.", + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false + }, + "activeInternalSquads": { + "description": "Optional. Array of UUIDs representing enabled internal squads.", + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "uuid": { + "description": "Optional. Pass UUID to create user with specific UUID, otherwise it will be generated automatically.", + "type": "string", + "format": "uuid" + }, + "externalSquadUuid": { + "description": "Optional. External squad UUID.", + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "username", + "expireAt" + ] + }, + "UserResponse": { + "type": "object", + "properties": { + "response": { + "$ref": "#/components/schemas/UserItemInfo" + } + }, + "required": [ + "response" + ] + }, + "UpdateUserRequest": { + "type": "object", + "properties": { + "username": { + "description": "Username of the user", + "type": "string" + }, + "uuid": { + "description": "UUID of the user. UUID has higher priority than username, so if both are provided, username will be ignored.", + "type": "string", + "format": "uuid" + }, + "status": { + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED" + ] + }, + "trafficLimitBytes": { + "description": "Traffic limit in bytes. 0 - unlimited", + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false + }, + "trafficLimitStrategy": { + "description": "Available reset periods", + "type": "string", + "enum": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "x-enumNames": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "default": "NO_RESET" + }, + "expireAt": { + "description": "Expiration date: 2025-01-17T15:38:45.065Z", + "type": "string", + "format": "date-time" + }, + "description": { + "type": "string", + "nullable": true + }, + "tag": { + "type": "string", + "pattern": "^[A-Z0-9_]+$", + "maxLength": 16, + "nullable": true + }, + "telegramId": { + "type": "integer", + "nullable": true + }, + "email": { + "type": "string", + "format": "email", + "nullable": true + }, + "hwidDeviceLimit": { + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false, + "nullable": true + }, + "activeInternalSquads": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "externalSquadUuid": { + "description": "Optional. External squad UUID.", + "type": "string", + "format": "uuid", + "nullable": true + } + } + }, + "GetAllUsersResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "users": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserItemInfo" + } + }, + "total": { + "type": "number" + } + }, + "required": [ + "users", + "total" + ] + } + }, + "required": [ + "response" + ] + }, + "TagsResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "tags" + ] + } + }, + "required": [ + "response" + ] + }, + "GetUserAccessibleNodesResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "userUuid": { + "type": "string", + "format": "uuid" + }, + "activeNodes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "nodeName": { + "type": "string" + }, + "countryCode": { + "type": "string" + }, + "configProfileUuid": { + "type": "string", + "format": "uuid" + }, + "configProfileName": { + "type": "string" + }, + "activeSquads": { + "type": "array", + "items": { + "type": "object", + "properties": { + "squadName": { + "type": "string" + }, + "activeInbounds": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "squadName", + "activeInbounds" + ] + } + } + }, + "required": [ + "uuid", + "nodeName", + "countryCode", + "configProfileUuid", + "configProfileName", + "activeSquads" + ] + } + } + }, + "required": [ + "userUuid", + "activeNodes" + ] + } + }, + "required": [ + "response" + ] + }, + "GetUserSubscriptionRequestHistoryResponse": { + "type": "object", + "properties": { + "response": { + "$ref": "#/components/schemas/UserSubscriptionHistory" + } + }, + "required": [ + "response" + ] + }, + "UsersResponse": { + "type": "object", + "properties": { + "response": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserItemInfo" + } + } + }, + "required": [ + "response" + ] + }, + "RevokeUserSubscriptionBody": { + "type": "object", + "properties": { + "revokeOnlyPasswords": { + "description": "Optional. If true, only passwords will be revoked, without changing the short UUID (Subscription URL).", + "type": "boolean", + "default": false + }, + "shortUuid": { + "description": "Optional. If not provided, a new short UUID will be generated by Remnawave. Please note that it is strongly recommended to allow Remnawave to generate the short UUID.", + "type": "string", + "minLength": 6, + "maxLength": 48 + } + } + }, + "ResolveUserRequestBody": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "id": { + "type": "number" + }, + "shortUuid": { + "type": "string" + }, + "username": { + "type": "string" + } + } + }, + "ResolveUserResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "username": { + "type": "string" + }, + "id": { + "type": "number" + }, + "shortUuid": { + "type": "string" + } + }, + "required": [ + "uuid", + "username", + "id", + "shortUuid" + ] + } + }, + "required": [ + "response" + ] + }, + "BulkDeleteUsersByStatusRequest": { + "type": "object", + "properties": { + "status": { + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "x-enumNames": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "default": "ACTIVE" + } + } + }, + "BulkActionResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "affectedRows": { + "type": "number" + } + }, + "required": [ + "affectedRows" + ] + } + }, + "required": [ + "response" + ] + }, + "BulkUuidsRequest": { + "type": "object", + "properties": { + "uuids": { + "type": "array", + "minItems": 1, + "maxItems": 500, + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "uuids" + ] + }, + "BulkUpdateUsersRequest": { + "type": "object", + "properties": { + "uuids": { + "type": "array", + "minItems": 1, + "maxItems": 500, + "items": { + "type": "string", + "format": "uuid" + } + }, + "fields": { + "type": "object", + "properties": { + "status": { + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "x-enumNames": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "default": "ACTIVE" + }, + "trafficLimitBytes": { + "description": "Traffic limit in bytes. 0 - unlimited", + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false + }, + "trafficLimitStrategy": { + "description": "Traffic limit reset strategy", + "type": "string", + "enum": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "x-enumNames": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ] + }, + "expireAt": { + "description": "Expiration date: 2025-01-17T15:38:45.065Z", + "type": "string", + "format": "date-time" + }, + "description": { + "type": "string", + "nullable": true + }, + "telegramId": { + "type": "integer", + "nullable": true + }, + "email": { + "type": "string", + "format": "email", + "nullable": true + }, + "tag": { + "type": "string", + "pattern": "^[A-Z0-9_]+$", + "maxLength": 16, + "nullable": true + }, + "hwidDeviceLimit": { + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false, + "nullable": true + }, + "externalSquadUuid": { + "description": "Optional. External squad UUID.", + "type": "string", + "format": "uuid", + "nullable": true + } + } + } + }, + "required": [ + "uuids", + "fields" + ] + }, + "BulkUpdateUsersSquadsRequest": { + "type": "object", + "properties": { + "uuids": { + "type": "array", + "minItems": 1, + "maxItems": 500, + "items": { + "type": "string", + "format": "uuid" + } + }, + "activeInternalSquads": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "uuids", + "activeInternalSquads" + ] + }, + "BulkExtendExpirationDateRequest": { + "type": "object", + "properties": { + "uuids": { + "type": "array", + "minItems": 1, + "maxItems": 500, + "items": { + "type": "string", + "format": "uuid" + } + }, + "extendDays": { + "type": "integer", + "minimum": 1, + "exclusiveMinimum": false, + "maximum": 9999, + "exclusiveMaximum": false + } + }, + "required": [ + "uuids", + "extendDays" + ] + }, + "BulkAllUpdateUsersRequest": { + "type": "object", + "properties": { + "status": { + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "x-enumNames": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "default": "ACTIVE" + }, + "trafficLimitBytes": { + "description": "Traffic limit in bytes. 0 - unlimited", + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false + }, + "trafficLimitStrategy": { + "description": "Traffic limit reset strategy", + "type": "string", + "enum": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "x-enumNames": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ] + }, + "expireAt": { + "description": "Expiration date: 2025-01-17T15:38:45.065Z", + "type": "string", + "format": "date-time" + }, + "description": { + "type": "string", + "nullable": true + }, + "telegramId": { + "type": "integer", + "nullable": true + }, + "email": { + "type": "string", + "format": "email", + "nullable": true + }, + "tag": { + "type": "string", + "pattern": "^[A-Z0-9_]+$", + "maxLength": 16, + "nullable": true + }, + "hwidDeviceLimit": { + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false, + "nullable": true + } + } + }, + "EventResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "eventSent": { + "type": "boolean" + } + }, + "required": [ + "eventSent" + ] + } + }, + "required": [ + "response" + ] + }, + "BulkAllExtendExpirationDateRequest": { + "type": "object", + "properties": { + "extendDays": { + "type": "integer", + "minimum": 1, + "exclusiveMinimum": false + } + }, + "required": [ + "extendDays" + ] + }, + "SubscriptionResponse": { + "type": "object", + "properties": { + "response": { + "$ref": "#/components/schemas/Subscription" + } + }, + "required": [ + "response" + ] + }, + "GetAllSubscriptionsResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "subscriptions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Subscription" + } + }, + "total": { + "type": "number" + } + }, + "required": [ + "subscriptions", + "total" + ] + } + }, + "required": [ + "response" + ] + }, + "GetRawSubscriptionByShortUuidResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "user": { + "$ref": "#/components/schemas/UserItemInfo" + }, + "convertedUserInfo": { + "type": "object", + "properties": { + "daysLeft": { + "type": "number" + }, + "trafficLimit": { + "type": "string" + }, + "trafficUsed": { + "type": "string" + }, + "lifetimeTrafficUsed": { + "type": "string" + }, + "isHwidLimited": { + "type": "boolean" + } + }, + "required": [ + "daysLeft", + "trafficLimit", + "trafficUsed", + "lifetimeTrafficUsed", + "isHwidLimited" + ] + }, + "headers": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "resolvedProxyConfigs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "finalRemark": { + "type": "string" + }, + "address": { + "type": "string" + }, + "port": { + "type": "integer", + "minimum": 0, + "exclusiveMinimum": true + }, + "protocol": { + "type": "string", + "enum": [ + "vless", + "trojan", + "shadowsocks", + "hysteria" + ] + }, + "protocolOptions": { + "oneOf": [ + { + "type": "object", + "properties": { + "encryption": { + "type": "string" + }, + "id": { + "type": "string" + }, + "flow": { + "type": "string", + "enum": [ + "", + "xtls-rprx-vision", + "xtls-rprx-vision-udp443" + ] + } + }, + "required": [ + "encryption", + "id", + "flow" + ] + }, + { + "type": "object", + "properties": { + "password": { + "type": "string" + } + }, + "required": [ + "password" + ] + }, + { + "type": "object", + "properties": { + "method": { + "type": "string" + }, + "password": { + "type": "string" + }, + "uot": { + "type": "boolean" + }, + "uotVersion": { + "type": "integer" + } + }, + "required": [ + "method", + "password", + "uot", + "uotVersion" + ] + }, + { + "type": "object", + "properties": { + "version": { + "type": "integer" + } + }, + "required": [ + "version" + ] + } + ] + }, + "transport": { + "type": "string", + "enum": [ + "tcp", + "xhttp", + "ws", + "httpupgrade", + "grpc", + "kcp", + "hysteria" + ] + }, + "transportOptions": { + "oneOf": [ + { + "type": "object", + "properties": { + "header": { + "oneOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "none" + ] + } + }, + "required": [ + "type" + ] + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "http" + ] + }, + "request": { + "type": "object", + "properties": { + "version": { + "type": "string" + }, + "method": { + "type": "string" + }, + "path": { + "type": "array", + "items": { + "type": "string" + } + }, + "headers": { + "type": "object", + "additionalProperties": {} + } + } + }, + "response": { + "type": "object", + "properties": { + "version": { + "type": "string" + }, + "status": { + "type": "string" + }, + "reason": { + "type": "string" + }, + "headers": { + "type": "object", + "additionalProperties": {} + } + } + } + }, + "required": [ + "type" + ] + } + ], + "nullable": true + } + }, + "required": [ + "header" + ] + }, + { + "type": "object", + "properties": { + "path": { + "type": "string", + "nullable": true + }, + "host": { + "type": "string", + "nullable": true + }, + "mode": { + "type": "string", + "enum": [ + "auto", + "packet-up", + "stream-up", + "stream-one" + ] + }, + "extra": { + "additionalProperties": {}, + "nullable": true + } + }, + "required": [ + "path", + "host", + "mode", + "extra" + ] + }, + { + "type": "object", + "properties": { + "path": { + "type": "string", + "nullable": true + }, + "host": { + "type": "string", + "nullable": true + }, + "headers": { + "additionalProperties": { + "type": "string" + }, + "nullable": true + }, + "heartbeatPeriod": { + "type": "number", + "nullable": true + } + }, + "required": [ + "path", + "host", + "headers", + "heartbeatPeriod" + ] + }, + { + "type": "object", + "properties": { + "path": { + "type": "string", + "nullable": true + }, + "host": { + "type": "string", + "nullable": true + }, + "headers": { + "additionalProperties": { + "type": "string" + }, + "nullable": true + } + }, + "required": [ + "path", + "host", + "headers" + ] + }, + { + "type": "object", + "properties": { + "authority": { + "type": "string", + "nullable": true + }, + "serviceName": { + "type": "string", + "nullable": true + }, + "multiMode": { + "type": "boolean" + } + }, + "required": [ + "authority", + "serviceName", + "multiMode" + ] + }, + { + "type": "object", + "properties": { + "clientMtu": { + "type": "integer" + }, + "tti": { + "type": "integer" + }, + "congestion": { + "type": "boolean" + } + }, + "required": [ + "clientMtu", + "tti", + "congestion" + ] + }, + { + "type": "object", + "properties": { + "version": { + "type": "integer" + }, + "auth": { + "type": "string" + } + }, + "required": [ + "version", + "auth" + ] + } + ] + }, + "security": { + "type": "string", + "enum": [ + "tls", + "reality", + "none" + ] + }, + "securityOptions": { + "oneOf": [ + { + "type": "object", + "properties": { + "allowInsecure": { + "type": "boolean" + }, + "alpn": { + "type": "string", + "nullable": true + }, + "enableSessionResumption": { + "type": "boolean" + }, + "fingerprint": { + "type": "string", + "nullable": true + }, + "serverName": { + "type": "string", + "nullable": true + }, + "echConfigList": { + "type": "string", + "nullable": true + }, + "echForceQuery": { + "type": "string", + "nullable": true + } + }, + "required": [ + "allowInsecure", + "alpn", + "enableSessionResumption", + "fingerprint", + "serverName", + "echConfigList", + "echForceQuery" + ] + }, + { + "type": "object", + "properties": { + "fingerprint": { + "type": "string" + }, + "publicKey": { + "type": "string" + }, + "shortId": { + "type": "string", + "nullable": true + }, + "serverName": { + "type": "string" + }, + "spiderX": { + "type": "string", + "nullable": true + }, + "mldsa65Verify": { + "type": "string", + "nullable": true + } + }, + "required": [ + "fingerprint", + "publicKey", + "shortId", + "serverName", + "spiderX", + "mldsa65Verify" + ] + } + ] + }, + "streamOverrides": { + "type": "object", + "properties": { + "finalMask": { + "nullable": true + }, + "sockopt": { + "nullable": true + } + }, + "required": [ + "finalMask", + "sockopt" + ] + }, + "mux": { + "nullable": true + }, + "clientOverrides": { + "type": "object", + "properties": { + "shuffleHost": { + "type": "boolean" + }, + "mihomoX25519": { + "type": "boolean" + }, + "serverDescription": { + "type": "string", + "nullable": true + }, + "xrayJsonTemplate": { + "nullable": true + } + }, + "required": [ + "shuffleHost", + "mihomoX25519", + "serverDescription", + "xrayJsonTemplate" + ] + }, + "metadata": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "tag": { + "type": "string", + "nullable": true + }, + "excludeFromSubscriptionTypes": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ] + } + }, + "inboundTag": { + "type": "string" + }, + "configProfileUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "configProfileInboundUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "isDisabled": { + "type": "boolean" + }, + "isHidden": { + "type": "boolean" + }, + "viewPosition": { + "type": "integer" + }, + "remark": { + "type": "string" + }, + "vlessRouteId": { + "type": "integer", + "nullable": true + }, + "rawInbound": { + "nullable": true + } + }, + "required": [ + "uuid", + "tag", + "excludeFromSubscriptionTypes", + "inboundTag", + "configProfileUuid", + "configProfileInboundUuid", + "isDisabled", + "isHidden", + "viewPosition", + "remark", + "vlessRouteId", + "rawInbound" + ] + } + }, + "required": [ + "finalRemark", + "address", + "port", + "protocol", + "protocolOptions", + "transport", + "transportOptions", + "security", + "streamOverrides", + "mux", + "clientOverrides", + "metadata" + ] + } + } + }, + "required": [ + "user", + "convertedUserInfo", + "headers", + "resolvedProxyConfigs" + ] + } + }, + "required": [ + "response" + ] + }, + "GetSubpageConfigByShortUuidRequestBody": { + "type": "object", + "properties": { + "requestHeaders": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "requestHeaders" + ] + }, + "GetSubpageConfigByShortUuidResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "subpageConfigUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "webpageAllowed": { + "type": "boolean" + } + }, + "required": [ + "subpageConfigUuid", + "webpageAllowed" + ] + } + }, + "required": [ + "response" + ] + }, + "GetConnectionKeysByUuidResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "enabledKeys": { + "type": "array", + "items": { + "type": "string" + } + }, + "hiddenKeys": { + "type": "array", + "items": { + "type": "string" + } + }, + "disabledKeys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "enabledKeys", + "hiddenKeys", + "disabledKeys" + ] + } + }, + "required": [ + "response" + ] + }, + "TemplatesResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "templates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Template" + } + } + }, + "required": [ + "total", + "templates" + ] + } + }, + "required": [ + "response" + ] + }, + "TemplateResponse": { + "type": "object", + "properties": { + "response": { + "$ref": "#/components/schemas/Template" + } + }, + "required": [ + "response" + ] + }, + "UpdateTemplateRequest": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string", + "minLength": 2, + "maxLength": 255, + "pattern": "^[A-Za-z0-9_\\s-]+$" + }, + "templateJson": { + "type": "object", + "properties": {} + }, + "encodedTemplateYaml": { + "type": "string" + } + }, + "required": [ + "uuid" + ] + }, + "CreateSubscriptionTemplateRequest": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 2, + "maxLength": 255, + "pattern": "^[A-Za-z0-9_\\s-]+$" + }, + "templateType": { + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ] + } + }, + "required": [ + "name", + "templateType" + ] + }, + "CreateApiTokenRequest": { + "type": "object", + "properties": { + "tokenName": { + "type": "string" + } + }, + "required": [ + "tokenName" + ] + }, + "CreateApiTokenResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "token": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "required": [ + "token", + "uuid" + ] + } + }, + "required": [ + "response" + ] + }, + "DeleteApiTokenResponse": { + "type": "object", + "properties": { + "response": { + "type": "boolean" + } + }, + "required": [ + "response" + ] + }, + "FindAllApiTokensResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "apiKeys": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "token": { + "type": "string" + }, + "tokenName": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "token", + "tokenName", + "createdAt", + "updatedAt" + ] + } + }, + "docs": { + "type": "object", + "properties": { + "isDocsEnabled": { + "type": "boolean" + }, + "scalarPath": { + "type": "string", + "nullable": true + }, + "swaggerPath": { + "type": "string", + "nullable": true + } + }, + "required": [ + "isDocsEnabled", + "scalarPath", + "swaggerPath" + ] + } + }, + "required": [ + "apiKeys", + "docs" + ] + } + }, + "required": [ + "response" + ] + }, + "ConfigProfilesResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "configProfiles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConfigProfile" + } + } + }, + "required": [ + "total", + "configProfiles" + ] + } + }, + "required": [ + "response" + ] + }, + "InboundsResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "inbounds": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "profileUuid": { + "type": "string", + "format": "uuid" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + }, + "network": { + "type": "string", + "nullable": true + }, + "security": { + "type": "string", + "nullable": true + }, + "port": { + "type": "number", + "nullable": true + }, + "rawInbound": { + "nullable": true + }, + "activeSquads": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "uuid", + "profileUuid", + "tag", + "type", + "network", + "security", + "port", + "rawInbound", + "activeSquads" + ] + } + } + }, + "required": [ + "total", + "inbounds" + ] + } + }, + "required": [ + "response" + ] + }, + "ConfigProfileResponse": { + "type": "object", + "properties": { + "response": { + "$ref": "#/components/schemas/ConfigProfile" + } + }, + "required": [ + "response" + ] + }, + "CreateConfigProfileRequest": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 2, + "maxLength": 30, + "pattern": "^[A-Za-z0-9_\\s-]+$" + }, + "config": { + "type": "object", + "properties": {} + } + }, + "required": [ + "name", + "config" + ] + }, + "UpdateConfigProfileRequest": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string", + "minLength": 2, + "maxLength": 30, + "pattern": "^[A-Za-z0-9_\\s-]+$" + }, + "config": { + "type": "object", + "properties": {} + } + }, + "required": [ + "uuid" + ] + }, + "SnippetsResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "snippets": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "snippet": {} + }, + "required": [ + "name", + "snippet" + ] + } + } + }, + "required": [ + "total", + "snippets" + ] + } + }, + "required": [ + "response" + ] + }, + "DeleteSnippetRequest": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 2, + "maxLength": 255, + "pattern": "^[A-Za-z0-9_\\s-]+$" + } + }, + "required": [ + "name" + ] + }, + "SnippetRequest": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 2, + "maxLength": 255, + "pattern": "^[A-Za-z0-9_\\s-]+$" + }, + "snippet": { + "type": "array", + "items": { + "type": "object", + "properties": {} + } + } + }, + "required": [ + "name", + "snippet" + ] + }, + "InternalSquadsResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "internalSquads": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InternalSquad" + } + } + }, + "required": [ + "total", + "internalSquads" + ] + } + }, + "required": [ + "response" + ] + }, + "InternalSquadResponseResponse": { + "type": "object", + "properties": { + "response": { + "$ref": "#/components/schemas/InternalSquad" + } + }, + "required": [ + "response" + ] + }, + "CreateInternalSquadRequest": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 2, + "maxLength": 30, + "pattern": "^[A-Za-z0-9_\\s-]+$" + }, + "inbounds": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "name", + "inbounds" + ] + }, + "GetInternalSquadAccessibleNodesResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "squadUuid": { + "type": "string", + "format": "uuid" + }, + "accessibleNodes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "nodeName": { + "type": "string" + }, + "countryCode": { + "type": "string" + }, + "configProfileUuid": { + "type": "string", + "format": "uuid" + }, + "configProfileName": { + "type": "string" + }, + "activeInbounds": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "uuid", + "nodeName", + "countryCode", + "configProfileUuid", + "configProfileName", + "activeInbounds" + ] + } + } + }, + "required": [ + "squadUuid", + "accessibleNodes" + ] + } + }, + "required": [ + "response" + ] + }, + "UpdateInternalSquadRequest": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string", + "minLength": 2, + "maxLength": 30, + "pattern": "^[A-Za-z0-9_\\s-]+$" + }, + "inbounds": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "uuid" + ] + }, + "ExternalSquadsResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "externalSquads": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExternalSquad" + } + } + }, + "required": [ + "total", + "externalSquads" + ] + } + }, + "required": [ + "response" + ] + }, + "ExternalSquadResponseResponse": { + "type": "object", + "properties": { + "response": { + "$ref": "#/components/schemas/ExternalSquad" + } + }, + "required": [ + "response" + ] + }, + "CreateExternalSquadRequest": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 2, + "maxLength": 30, + "pattern": "^[A-Za-z0-9_\\s-]+$" + } + }, + "required": [ + "name" + ] + }, + "UpdateExternalSquadRequest": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string", + "minLength": 2, + "maxLength": 30, + "pattern": "^[A-Za-z0-9_\\s-]+$" + }, + "templates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TemplateRef" + } + }, + "subscriptionSettings": { + "$ref": "#/components/schemas/SubscriptionSettings" + }, + "hostOverrides": { + "$ref": "#/components/schemas/HostOverride" + }, + "responseHeaders": { + "additionalProperties": { + "type": "string" + }, + "nullable": true + }, + "hwidSettings": { + "$ref": "#/components/schemas/HwidSettings" + }, + "customRemarks": { + "$ref": "#/components/schemas/CustomRemark" + }, + "subpageConfigUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "uuid" + ] + }, + "GetPubKeyResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "pubKey": { + "type": "string" + } + }, + "required": [ + "pubKey" + ] + } + }, + "required": [ + "response" + ] + }, + "CreateNodeRequest": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 3, + "maxLength": 30 + }, + "address": { + "type": "string", + "minLength": 2 + }, + "port": { + "type": "integer", + "minimum": 1, + "exclusiveMinimum": false, + "maximum": 65535, + "exclusiveMaximum": false + }, + "isTrafficTrackingActive": { + "type": "boolean", + "default": false + }, + "trafficLimitBytes": { + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false + }, + "notifyPercent": { + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false, + "maximum": 100, + "exclusiveMaximum": false + }, + "trafficResetDay": { + "type": "integer", + "minimum": 1, + "exclusiveMinimum": false, + "maximum": 31, + "exclusiveMaximum": false + }, + "countryCode": { + "type": "string", + "maxLength": 2, + "default": "XX" + }, + "consumptionMultiplier": { + "type": "number", + "minimum": 0, + "exclusiveMinimum": false, + "maximum": 100, + "exclusiveMaximum": false + }, + "configProfile": { + "$ref": "#/components/schemas/ConfigProfileRef" + }, + "providerUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "tags": { + "type": "array", + "maxItems": 10, + "items": { + "type": "string", + "pattern": "^[A-Z0-9_:]+$", + "maxLength": 36 + } + }, + "activePluginUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "name", + "address", + "configProfile" + ] + }, + "NodeResponse": { + "type": "object", + "properties": { + "response": { + "$ref": "#/components/schemas/NodeResponseDataItem" + } + }, + "required": [ + "response" + ] + }, + "NodesResponse": { + "type": "object", + "properties": { + "response": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NodeResponseDataItem" + } + } + }, + "required": [ + "response" + ] + }, + "UpdateNodeRequest": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string", + "minLength": 3, + "maxLength": 30 + }, + "address": { + "type": "string", + "minLength": 2 + }, + "port": { + "type": "number", + "minimum": 1, + "exclusiveMinimum": false, + "maximum": 65535, + "exclusiveMaximum": false + }, + "isTrafficTrackingActive": { + "type": "boolean" + }, + "trafficLimitBytes": { + "type": "number", + "minimum": 0, + "exclusiveMinimum": false + }, + "notifyPercent": { + "type": "number", + "minimum": 0, + "exclusiveMinimum": false, + "maximum": 100, + "exclusiveMaximum": false + }, + "trafficResetDay": { + "type": "number", + "minimum": 1, + "exclusiveMinimum": false, + "maximum": 31, + "exclusiveMaximum": false + }, + "countryCode": { + "type": "string", + "maxLength": 2 + }, + "consumptionMultiplier": { + "type": "number", + "minimum": 0, + "exclusiveMinimum": false, + "maximum": 100, + "exclusiveMaximum": false + }, + "configProfile": { + "$ref": "#/components/schemas/ConfigProfileRef" + }, + "providerUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "tags": { + "type": "array", + "maxItems": 10, + "items": { + "type": "string", + "pattern": "^[A-Z0-9_:]+$", + "maxLength": 36 + } + }, + "activePluginUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "uuid" + ] + }, + "RestartAllNodesRequestBody": { + "type": "object", + "properties": { + "forceRestart": { + "type": "boolean" + } + } + }, + "ReorderNodeRequest": { + "type": "object", + "properties": { + "nodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ReorderRequestItem" + } + } + }, + "required": [ + "nodes" + ] + }, + "ProfileModificationRequest": { + "type": "object", + "properties": { + "uuids": { + "type": "array", + "minItems": 1, + "items": { + "type": "string", + "format": "uuid" + } + }, + "configProfile": { + "type": "object", + "properties": { + "activeConfigProfileUuid": { + "type": "string", + "format": "uuid" + }, + "activeInbounds": { + "type": "array", + "minItems": 1, + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "activeConfigProfileUuid", + "activeInbounds" + ] + } + }, + "required": [ + "uuids", + "configProfile" + ] + }, + "BulkNodesActionsRequest": { + "type": "object", + "properties": { + "uuids": { + "type": "array", + "minItems": 1, + "items": { + "type": "string", + "format": "uuid" + } + }, + "action": { + "type": "string", + "enum": [ + "ENABLE", + "DISABLE", + "RESTART", + "RESET_TRAFFIC" + ], + "x-enumNames": [ + "ENABLE", + "DISABLE", + "RESTART", + "RESET_TRAFFIC" + ] + } + }, + "required": [ + "uuids", + "action" + ] + }, + "BulkNodesUpdateRequest": { + "type": "object", + "properties": { + "uuids": { + "type": "array", + "minItems": 1, + "items": { + "type": "string", + "format": "uuid" + } + }, + "fields": { + "type": "object", + "properties": { + "countryCode": { + "type": "string", + "maxLength": 2 + }, + "consumptionMultiplier": { + "type": "number", + "minimum": 0, + "exclusiveMinimum": false, + "maximum": 100, + "exclusiveMaximum": false + }, + "providerUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "tags": { + "type": "array", + "maxItems": 10, + "items": { + "type": "string", + "pattern": "^[A-Z0-9_:]+$", + "maxLength": 36 + } + }, + "activePluginUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + } + } + }, + "required": [ + "uuids", + "fields" + ] + }, + "TorrentBlockerReportsResponseResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "records": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "userId": { + "type": "number" + }, + "nodeId": { + "type": "number" + }, + "user": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "username": { + "type": "string" + } + }, + "required": [ + "uuid", + "username" + ] + }, + "node": { + "$ref": "#/components/schemas/Node" + }, + "report": { + "$ref": "#/components/schemas/ReportItem" + }, + "createdAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "userId", + "nodeId", + "user", + "node", + "report", + "createdAt" + ] + } + }, + "total": { + "type": "number" + } + }, + "required": [ + "records", + "total" + ] + } + }, + "required": [ + "response" + ] + }, + "GetTorrentBlockerReportsStatsResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "stats": { + "type": "object", + "properties": { + "distinctNodes": { + "type": "number" + }, + "distinctUsers": { + "type": "number" + }, + "totalReports": { + "type": "number" + }, + "reportsLast24Hours": { + "type": "number" + } + }, + "required": [ + "distinctNodes", + "distinctUsers", + "totalReports", + "reportsLast24Hours" + ] + }, + "topUsers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "color": { + "type": "string" + }, + "username": { + "type": "string" + }, + "total": { + "type": "number" + } + }, + "required": [ + "uuid", + "color", + "username", + "total" + ] + } + }, + "topNodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TopNode" + } + } + }, + "required": [ + "stats", + "topUsers", + "topNodes" + ] + } + }, + "required": [ + "response" + ] + }, + "NodePluginsResponseResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "nodePlugins": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NodePlugin" + } + } + }, + "required": [ + "total", + "nodePlugins" + ] + } + }, + "required": [ + "response" + ] + }, + "NodePluginResponseResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "pluginConfig": {} + }, + "required": [ + "uuid", + "viewPosition", + "name", + "pluginConfig" + ] + } + }, + "required": [ + "response" + ] + }, + "UpdateNodePluginRequest": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string", + "minLength": 2, + "maxLength": 30, + "pattern": "^[A-Za-z0-9_\\s-]+$" + }, + "pluginConfig": {} + }, + "required": [ + "uuid" + ] + }, + "CreateNodePluginRequest": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 2, + "maxLength": 30, + "pattern": "^[A-Za-z0-9_\\s-]+$" + } + }, + "required": [ + "name" + ] + }, + "CreateNodePluginResponse": { + "type": "object", + "properties": { + "response": { + "$ref": "#/components/schemas/NodePlugin" + } + }, + "required": [ + "response" + ] + }, + "PluginExecutorRequest": { + "type": "object", + "properties": { + "command": { + "oneOf": [ + { + "description": "Block IPs", + "type": "object", + "properties": { + "command": { + "type": "string", + "enum": [ + "blockIps" + ] + }, + "ips": { + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "properties": { + "ip": { + "type": "string" + }, + "timeout": { + "type": "number" + } + }, + "required": [ + "ip", + "timeout" + ] + } + } + }, + "required": [ + "command", + "ips" + ] + }, + { + "description": "Unblock IPs", + "type": "object", + "properties": { + "command": { + "type": "string", + "enum": [ + "unblockIps" + ] + }, + "ips": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + } + }, + "required": [ + "command", + "ips" + ] + }, + { + "description": "Recreate tables", + "type": "object", + "properties": { + "command": { + "type": "string", + "enum": [ + "recreateTables" + ] + } + }, + "required": [ + "command" + ] + } + ] + }, + "targetNodes": { + "oneOf": [ + { + "description": "Target all connected nodes", + "type": "object", + "properties": { + "target": { + "type": "string", + "enum": [ + "allNodes" + ] + } + }, + "required": [ + "target" + ] + }, + { + "description": "Target specific nodes", + "type": "object", + "properties": { + "target": { + "type": "string", + "enum": [ + "specificNodes" + ] + }, + "nodeUuids": { + "type": "array", + "minItems": 1, + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "target", + "nodeUuids" + ] + } + ] + } + }, + "required": [ + "command", + "targetNodes" + ] + }, + "CreateHostRequest": { + "type": "object", + "properties": { + "inbound": { + "$ref": "#/components/schemas/InboundRef" + }, + "remark": { + "type": "string", + "minLength": 1, + "maxLength": 40 + }, + "address": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "path": { + "type": "string" + }, + "sni": { + "type": "string" + }, + "host": { + "type": "string" + }, + "alpn": { + "type": "string", + "enum": [ + "h3", + "h2", + "http/1.1", + "h2,http/1.1", + "h3,h2,http/1.1", + "h3,h2" + ], + "x-enumNames": [ + "H3", + "H2", + "HTTP_1_1", + "H_COMBINED", + "H3_H2_H1_COMBINED", + "H3_H2_COMBINED" + ], + "nullable": true + }, + "fingerprint": { + "type": "string", + "enum": [ + "chrome", + "firefox", + "safari", + "ios", + "android", + "edge", + "qq", + "random", + "randomized" + ], + "x-enumNames": [ + "CHROME", + "FIREFOX", + "SAFARI", + "IOS", + "ANDROID", + "EDGE", + "QQ", + "RANDOM", + "RANDOMIZED" + ], + "nullable": true + }, + "isDisabled": { + "type": "boolean", + "default": false + }, + "securityLayer": { + "type": "string", + "enum": [ + "DEFAULT", + "TLS", + "NONE" + ], + "x-enumNames": [ + "DEFAULT", + "TLS", + "NONE" + ], + "default": "DEFAULT" + }, + "xHttpExtraParams": { + "nullable": true + }, + "muxParams": { + "nullable": true + }, + "sockoptParams": { + "nullable": true + }, + "finalMask": { + "nullable": true + }, + "serverDescription": { + "type": "string", + "maxLength": 30, + "nullable": true + }, + "tag": { + "description": "Optional. Host tag for categorization. Max 32 characters, uppercase letters, numbers, underscores and colons are allowed.", + "type": "string", + "pattern": "^[A-Z0-9_:]+$", + "maxLength": 32, + "nullable": true + }, + "isHidden": { + "type": "boolean", + "default": false + }, + "overrideSniFromAddress": { + "type": "boolean", + "default": false + }, + "keepSniBlank": { + "type": "boolean", + "default": false + }, + "allowInsecure": { + "type": "boolean", + "default": false + }, + "vlessRouteId": { + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false, + "maximum": 65535, + "exclusiveMaximum": false, + "nullable": true + }, + "shuffleHost": { + "type": "boolean", + "default": false + }, + "mihomoX25519": { + "type": "boolean", + "default": false + }, + "nodes": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "xrayJsonTemplateUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "excludedInternalSquads": { + "description": "Optional. Internal squads from which the host will be excluded.", + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "excludeFromSubscriptionTypes": { + "description": "Optional. Subscription types from which the host will be excluded from.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ] + } + } + }, + "required": [ + "inbound", + "remark", + "address", + "port" + ] + }, + "HostResponse": { + "type": "object", + "properties": { + "response": { + "$ref": "#/components/schemas/HostItem" + } + }, + "required": [ + "response" + ] + }, + "UpdateHostRequest": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "inbound": { + "$ref": "#/components/schemas/InboundRef" + }, + "remark": { + "type": "string", + "maxLength": 40 + }, + "address": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "path": { + "type": "string" + }, + "sni": { + "type": "string" + }, + "host": { + "type": "string" + }, + "alpn": { + "type": "string", + "enum": [ + "h3", + "h2", + "http/1.1", + "h2,http/1.1", + "h3,h2,http/1.1", + "h3,h2" + ], + "x-enumNames": [ + "H3", + "H2", + "HTTP_1_1", + "H_COMBINED", + "H3_H2_H1_COMBINED", + "H3_H2_COMBINED" + ], + "nullable": true + }, + "fingerprint": { + "type": "string", + "enum": [ + "chrome", + "firefox", + "safari", + "ios", + "android", + "edge", + "qq", + "random", + "randomized" + ], + "x-enumNames": [ + "CHROME", + "FIREFOX", + "SAFARI", + "IOS", + "ANDROID", + "EDGE", + "QQ", + "RANDOM", + "RANDOMIZED" + ], + "nullable": true + }, + "isDisabled": { + "type": "boolean" + }, + "securityLayer": { + "type": "string", + "enum": [ + "DEFAULT", + "TLS", + "NONE" + ], + "x-enumNames": [ + "DEFAULT", + "TLS", + "NONE" + ] + }, + "xHttpExtraParams": { + "nullable": true + }, + "muxParams": { + "nullable": true + }, + "sockoptParams": { + "nullable": true + }, + "finalMask": { + "nullable": true + }, + "serverDescription": { + "type": "string", + "maxLength": 30, + "nullable": true + }, + "tag": { + "description": "Optional. Host tag for categorization. Max 32 characters, uppercase letters, numbers, underscores and colons are allowed.", + "type": "string", + "pattern": "^[A-Z0-9_:]+$", + "maxLength": 32, + "nullable": true + }, + "isHidden": { + "type": "boolean" + }, + "overrideSniFromAddress": { + "type": "boolean" + }, + "keepSniBlank": { + "type": "boolean" + }, + "vlessRouteId": { + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false, + "maximum": 65535, + "exclusiveMaximum": false, + "nullable": true + }, + "allowInsecure": { + "type": "boolean" + }, + "shuffleHost": { + "type": "boolean" + }, + "mihomoX25519": { + "type": "boolean" + }, + "nodes": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "xrayJsonTemplateUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "excludedInternalSquads": { + "description": "Optional. Internal squads from which the host will be excluded.", + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "excludeFromSubscriptionTypes": { + "description": "Optional. Subscription types from which the host will be excluded from.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ] + } + } + }, + "required": [ + "uuid" + ] + }, + "HostListResponse": { + "type": "object", + "properties": { + "response": { + "type": "array", + "items": { + "$ref": "#/components/schemas/HostItem" + } + } + }, + "required": [ + "response" + ] + }, + "ReorderHostRequest": { + "type": "object", + "properties": { + "hosts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ReorderRequestItem" + } + } + }, + "required": [ + "hosts" + ] + }, + "ReorderHostResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "isUpdated": { + "type": "boolean" + } + }, + "required": [ + "isUpdated" + ] + } + }, + "required": [ + "response" + ] + }, + "BulkUuidsRequest2": { + "type": "object", + "properties": { + "uuids": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "uuids" + ] + }, + "SetInboundToManyHostsRequest": { + "type": "object", + "properties": { + "uuids": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "configProfileUuid": { + "type": "string", + "format": "uuid" + }, + "configProfileInboundUuid": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "uuids", + "configProfileUuid", + "configProfileInboundUuid" + ] + }, + "SetPortToManyHostsRequest": { + "type": "object", + "properties": { + "uuids": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "port": { + "type": "integer", + "minimum": 1, + "exclusiveMinimum": false, + "maximum": 65535, + "exclusiveMaximum": false + } + }, + "required": [ + "uuids", + "port" + ] + }, + "GetLegacyStatsNodesUsersUsageResponse": { + "type": "object", + "properties": { + "response": { + "type": "array", + "items": { + "type": "object", + "properties": { + "userUuid": { + "type": "string", + "format": "uuid" + }, + "username": { + "type": "string" + }, + "nodeUuid": { + "type": "string", + "format": "uuid" + }, + "total": { + "type": "number" + }, + "date": { + "type": "string" + } + }, + "required": [ + "userUuid", + "username", + "nodeUuid", + "total", + "date" + ] + } + } + }, + "required": [ + "response" + ] + }, + "GetStatsNodeUsersUsageResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "categories": { + "type": "array", + "items": { + "type": "string" + } + }, + "sparklineData": { + "type": "array", + "items": { + "type": "number" + } + }, + "topUsers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "color": { + "type": "string" + }, + "username": { + "type": "string" + }, + "total": { + "type": "number" + } + }, + "required": [ + "color", + "username", + "total" + ] + } + } + }, + "required": [ + "categories", + "sparklineData", + "topUsers" + ] + } + }, + "required": [ + "response" + ] + }, + "GetLegacyStatsUserUsageResponse": { + "type": "object", + "properties": { + "response": { + "type": "array", + "items": { + "type": "object", + "properties": { + "userUuid": { + "type": "string", + "format": "uuid" + }, + "nodeUuid": { + "type": "string", + "format": "uuid" + }, + "nodeName": { + "type": "string" + }, + "countryCode": { + "type": "string" + }, + "total": { + "type": "number" + }, + "date": { + "type": "string" + } + }, + "required": [ + "userUuid", + "nodeUuid", + "nodeName", + "countryCode", + "total", + "date" + ] + } + } + }, + "required": [ + "response" + ] + }, + "StatsUserUsageResponseResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "categories": { + "type": "array", + "items": { + "type": "string" + } + }, + "sparklineData": { + "type": "array", + "items": { + "type": "number" + } + }, + "topNodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TopNode" + } + }, + "series": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "color": { + "type": "string" + }, + "countryCode": { + "type": "string" + }, + "total": { + "type": "number" + }, + "data": { + "type": "array", + "items": { + "type": "number" + } + } + }, + "required": [ + "uuid", + "name", + "color", + "countryCode", + "total", + "data" + ] + } + } + }, + "required": [ + "categories", + "sparklineData", + "topNodes", + "series" + ] + } + }, + "required": [ + "response" + ] + }, + "GetAllHwidDevicesResponse": { + "type": "object", + "properties": { + "response": { + "$ref": "#/components/schemas/AllHwidDevices" + } + }, + "required": [ + "response" + ] + }, + "CreateUserHwidDeviceRequest": { + "type": "object", + "properties": { + "hwid": { + "type": "string" + }, + "userUuid": { + "type": "string", + "format": "uuid" + }, + "platform": { + "type": "string" + }, + "osVersion": { + "type": "string" + }, + "deviceModel": { + "type": "string" + }, + "userAgent": { + "type": "string" + } + }, + "required": [ + "hwid", + "userUuid" + ] + }, + "HwidDevicesResponse": { + "type": "object", + "properties": { + "response": { + "$ref": "#/components/schemas/AllHwidDevices" + } + }, + "required": [ + "response" + ] + }, + "DeleteUserHwidDeviceRequest": { + "type": "object", + "properties": { + "userUuid": { + "type": "string", + "format": "uuid" + }, + "hwid": { + "type": "string" + } + }, + "required": [ + "userUuid", + "hwid" + ] + }, + "DeleteAllUserHwidDevicesRequest": { + "type": "object", + "properties": { + "userUuid": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "userUuid" + ] + }, + "GetHwidDevicesStatsResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "byPlatform": { + "type": "array", + "items": { + "type": "object", + "properties": { + "platform": { + "type": "string" + }, + "count": { + "type": "number" + } + }, + "required": [ + "platform", + "count" + ] + } + }, + "byApp": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ByAppItem" + } + }, + "stats": { + "type": "object", + "properties": { + "totalUniqueDevices": { + "type": "number" + }, + "totalHwidDevices": { + "type": "number" + }, + "averageHwidDevicesPerUser": { + "type": "number" + } + }, + "required": [ + "totalUniqueDevices", + "totalHwidDevices", + "averageHwidDevicesPerUser" + ] + } + }, + "required": [ + "byPlatform", + "byApp", + "stats" + ] + } + }, + "required": [ + "response" + ] + }, + "GetTopUsersByHwidDevicesResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "users": { + "type": "array", + "items": { + "type": "object", + "properties": { + "userUuid": { + "type": "string", + "format": "uuid" + }, + "id": { + "type": "number" + }, + "username": { + "type": "string" + }, + "devicesCount": { + "type": "number" + } + }, + "required": [ + "userUuid", + "id", + "username", + "devicesCount" + ] + } + }, + "total": { + "type": "number" + } + }, + "required": [ + "users", + "total" + ] + } + }, + "required": [ + "response" + ] + }, + "GetInfraProvidersResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "providers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Provider" + } + } + }, + "required": [ + "total", + "providers" + ] + } + }, + "required": [ + "response" + ] + }, + "InfraProviderResponseResponse": { + "type": "object", + "properties": { + "response": { + "$ref": "#/components/schemas/Provider" + } + }, + "required": [ + "response" + ] + }, + "CreateInfraProviderRequest": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 2, + "maxLength": 30 + }, + "faviconLink": { + "type": "string", + "format": "uri" + }, + "loginUrl": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "name" + ] + }, + "UpdateInfraProviderRequest": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string", + "minLength": 2, + "maxLength": 30 + }, + "faviconLink": { + "type": "string", + "format": "uri", + "nullable": true + }, + "loginUrl": { + "type": "string", + "format": "uri", + "nullable": true + } + }, + "required": [ + "uuid" + ] + }, + "CreateInfraBillingHistoryRecordRequest": { + "type": "object", + "properties": { + "providerUuid": { + "type": "string", + "format": "uuid" + }, + "amount": { + "type": "number", + "minimum": 0, + "exclusiveMinimum": false + }, + "billedAt": { + "description": "Billing date. Format: 2025-01-17T15:38:45.065Z", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "providerUuid", + "amount", + "billedAt" + ] + }, + "BillingHistoryResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "records": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "providerUuid": { + "type": "string", + "format": "uuid" + }, + "amount": { + "type": "number" + }, + "billedAt": { + "type": "string", + "format": "date-time" + }, + "provider": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "faviconLink": { + "type": "string", + "nullable": true + } + }, + "required": [ + "uuid", + "name", + "faviconLink" + ] + } + }, + "required": [ + "uuid", + "providerUuid", + "amount", + "billedAt", + "provider" + ] + } + }, + "total": { + "type": "number" + } + }, + "required": [ + "records", + "total" + ] + } + }, + "required": [ + "response" + ] + }, + "BillingNodesResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "totalBillingNodes": { + "type": "number" + }, + "billingNodes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "nodeUuid": { + "type": "string", + "format": "uuid" + }, + "providerUuid": { + "type": "string", + "format": "uuid" + }, + "provider": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "loginUrl": { + "type": "string", + "nullable": true + }, + "faviconLink": { + "type": "string", + "nullable": true + } + }, + "required": [ + "uuid", + "name", + "loginUrl", + "faviconLink" + ] + }, + "node": { + "$ref": "#/components/schemas/Node" + }, + "nextBillingAt": { + "type": "string", + "format": "date-time" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "nodeUuid", + "providerUuid", + "provider", + "node", + "nextBillingAt", + "createdAt", + "updatedAt" + ] + } + }, + "availableBillingNodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Node" + } + }, + "totalAvailableBillingNodes": { + "type": "number" + }, + "stats": { + "type": "object", + "properties": { + "upcomingNodesCount": { + "type": "number" + }, + "currentMonthPayments": { + "type": "number" + }, + "totalSpent": { + "type": "number" + } + }, + "required": [ + "upcomingNodesCount", + "currentMonthPayments", + "totalSpent" + ] + } + }, + "required": [ + "totalBillingNodes", + "billingNodes", + "availableBillingNodes", + "totalAvailableBillingNodes", + "stats" + ] + } + }, + "required": [ + "response" + ] + }, + "UpdateInfraBillingNodeRequest": { + "type": "object", + "properties": { + "uuids": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "nextBillingAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuids", + "nextBillingAt" + ] + }, + "CreateInfraBillingNodeRequest": { + "type": "object", + "properties": { + "providerUuid": { + "type": "string", + "format": "uuid" + }, + "nodeUuid": { + "type": "string", + "format": "uuid" + }, + "nextBillingAt": { + "description": "Next billing date. Format: 2025-01-17T15:38:45.065Z", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "providerUuid", + "nodeUuid" + ] + }, + "GetSubscriptionRequestHistoryResponse": { + "type": "object", + "properties": { + "response": { + "$ref": "#/components/schemas/UserSubscriptionHistory" + } + }, + "required": [ + "response" + ] + }, + "GetSubscriptionRequestHistoryStatsResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "byParsedApp": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ByAppItem" + } + }, + "hourlyRequestStats": { + "type": "array", + "items": { + "type": "object", + "properties": { + "dateTime": { + "type": "string", + "format": "date-time" + }, + "requestCount": { + "type": "number" + } + }, + "required": [ + "dateTime", + "requestCount" + ] + } + } + }, + "required": [ + "byParsedApp", + "hourlyRequestStats" + ] + } + }, + "required": [ + "response" + ] + }, + "GetMetadataResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "version": { + "type": "string" + }, + "build": { + "type": "object", + "properties": { + "time": { + "type": "string" + }, + "number": { + "type": "string" + } + }, + "required": [ + "time", + "number" + ] + }, + "git": { + "type": "object", + "properties": { + "backend": { + "type": "object", + "properties": { + "commitSha": { + "type": "string" + }, + "branch": { + "type": "string" + }, + "commitUrl": { + "type": "string" + } + }, + "required": [ + "commitSha", + "branch", + "commitUrl" + ] + }, + "frontend": { + "type": "object", + "properties": { + "commitSha": { + "type": "string" + }, + "commitUrl": { + "type": "string" + } + }, + "required": [ + "commitSha", + "commitUrl" + ] + } + }, + "required": [ + "backend", + "frontend" + ] + } + }, + "required": [ + "version", + "build", + "git" + ] + } + }, + "required": [ + "response" + ] + }, + "GetStatsResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "cpu": { + "type": "object", + "properties": { + "cores": { + "type": "number" + } + }, + "required": [ + "cores" + ] + }, + "memory": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "free": { + "type": "number" + }, + "used": { + "type": "number" + } + }, + "required": [ + "total", + "free", + "used" + ] + }, + "uptime": { + "type": "number" + }, + "timestamp": { + "type": "number" + }, + "users": { + "type": "object", + "properties": { + "statusCounts": { + "type": "object", + "additionalProperties": { + "type": "number" + } + }, + "totalUsers": { + "type": "number" + } + }, + "required": [ + "statusCounts", + "totalUsers" + ] + }, + "onlineStats": { + "type": "object", + "properties": { + "lastDay": { + "type": "number" + }, + "lastWeek": { + "type": "number" + }, + "neverOnline": { + "type": "number" + }, + "onlineNow": { + "type": "number" + } + }, + "required": [ + "lastDay", + "lastWeek", + "neverOnline", + "onlineNow" + ] + }, + "nodes": { + "type": "object", + "properties": { + "totalOnline": { + "type": "number" + }, + "totalBytesLifetime": { + "type": "string" + } + }, + "required": [ + "totalOnline", + "totalBytesLifetime" + ] + } + }, + "required": [ + "cpu", + "memory", + "uptime", + "timestamp", + "users", + "onlineStats", + "nodes" + ] + } + }, + "required": [ + "response" + ] + }, + "GetBandwidthStatsResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "bandwidthLastTwoDays": { + "$ref": "#/components/schemas/BandwidthLastTwoDays" + }, + "bandwidthLastSevenDays": { + "$ref": "#/components/schemas/BandwidthLastTwoDays" + }, + "bandwidthLast30Days": { + "$ref": "#/components/schemas/BandwidthLastTwoDays" + }, + "bandwidthCalendarMonth": { + "$ref": "#/components/schemas/BandwidthLastTwoDays" + }, + "bandwidthCurrentYear": { + "$ref": "#/components/schemas/BandwidthLastTwoDays" + } + }, + "required": [ + "bandwidthLastTwoDays", + "bandwidthLastSevenDays", + "bandwidthLast30Days", + "bandwidthCalendarMonth", + "bandwidthCurrentYear" + ] + } + }, + "required": [ + "response" + ] + }, + "GetNodesStatisticsResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "lastSevenDays": { + "type": "array", + "items": { + "type": "object", + "properties": { + "nodeName": { + "type": "string" + }, + "date": { + "type": "string" + }, + "totalBytes": { + "type": "string" + } + }, + "required": [ + "nodeName", + "date", + "totalBytes" + ] + } + } + }, + "required": [ + "lastSevenDays" + ] + } + }, + "required": [ + "response" + ] + }, + "GetRemnawaveHealthResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "runtimeMetrics": { + "type": "array", + "items": { + "type": "object", + "properties": { + "rss": { + "type": "number" + }, + "heapUsed": { + "type": "number" + }, + "heapTotal": { + "type": "number" + }, + "external": { + "type": "number" + }, + "arrayBuffers": { + "type": "number" + }, + "eventLoopDelayMs": { + "type": "number" + }, + "eventLoopP99Ms": { + "type": "number" + }, + "activeHandles": { + "type": "number" + }, + "uptime": { + "type": "number" + }, + "pid": { + "type": "number" + }, + "timestamp": { + "type": "number" + }, + "instanceId": { + "type": "string" + }, + "instanceType": { + "type": "string" + } + }, + "required": [ + "rss", + "heapUsed", + "heapTotal", + "external", + "arrayBuffers", + "eventLoopDelayMs", + "eventLoopP99Ms", + "activeHandles", + "uptime", + "pid", + "timestamp", + "instanceId", + "instanceType" + ] + } + } + }, + "required": [ + "runtimeMetrics" + ] + } + }, + "required": [ + "response" + ] + }, + "GetNodesMetricsResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "nodes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "nodeUuid": { + "type": "string" + }, + "nodeName": { + "type": "string" + }, + "countryEmoji": { + "type": "string" + }, + "providerName": { + "type": "string" + }, + "usersOnline": { + "type": "number" + }, + "inboundsStats": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InboundsStat" + } + }, + "outboundsStats": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InboundsStat" + } + } + }, + "required": [ + "nodeUuid", + "nodeName", + "countryEmoji", + "providerName", + "usersOnline", + "inboundsStats", + "outboundsStats" + ] + } + } + }, + "required": [ + "nodes" + ] + } + }, + "required": [ + "response" + ] + }, + "GenerateX25519Response": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "keypairs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "publicKey": { + "type": "string" + }, + "privateKey": { + "type": "string" + } + }, + "required": [ + "publicKey", + "privateKey" + ] + } + } + }, + "required": [ + "keypairs" + ] + } + }, + "required": [ + "response" + ] + }, + "EncryptHappCryptoLinkRequest": { + "type": "object", + "properties": { + "linkToEncrypt": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "linkToEncrypt" + ] + }, + "EncryptHappCryptoLinkResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "encryptedLink": { + "type": "string" + } + }, + "required": [ + "encryptedLink" + ] + } + }, + "required": [ + "response" + ] + }, + "DebugSrrMatcherRequest": { + "type": "object", + "properties": { + "responseRules": { + "$ref": "#/components/schemas/ResponseRules" + } + }, + "required": [ + "responseRules" + ] + }, + "DebugSrrMatcherResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "matched": { + "type": "boolean" + }, + "responseType": { + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX", + "BROWSER", + "BLOCK", + "STATUS_CODE_404", + "STATUS_CODE_451", + "SOCKET_DROP" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX", + "BROWSER", + "BLOCK", + "STATUS_CODE_404", + "STATUS_CODE_451", + "SOCKET_DROP" + ] + }, + "matchedRule": { + "$ref": "#/components/schemas/Rule" + }, + "inputHeaders": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "outputHeaders": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "matched", + "responseType", + "matchedRule", + "inputHeaders", + "outputHeaders" + ] + } + }, + "required": [ + "response" + ] + }, + "GetRecapResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "thisMonth": { + "type": "object", + "properties": { + "users": { + "type": "number" + }, + "traffic": { + "type": "string" + } + }, + "required": [ + "users", + "traffic" + ] + }, + "total": { + "type": "object", + "properties": { + "users": { + "type": "number" + }, + "nodes": { + "type": "number" + }, + "traffic": { + "type": "string" + }, + "nodesRam": { + "type": "string" + }, + "nodesCpuCores": { + "type": "number" + }, + "distinctCountries": { + "type": "number" + } + }, + "required": [ + "users", + "nodes", + "traffic", + "nodesRam", + "nodesCpuCores", + "distinctCountries" + ] + }, + "version": { + "type": "string" + }, + "initDate": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "thisMonth", + "total", + "version", + "initDate" + ] + } + }, + "required": [ + "response" + ] + }, + "SubscriptionSettingsResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "profileTitle": { + "type": "string" + }, + "supportLink": { + "type": "string" + }, + "profileUpdateInterval": { + "type": "integer", + "minimum": 1, + "exclusiveMinimum": false + }, + "isProfileWebpageUrlEnabled": { + "type": "boolean" + }, + "serveJsonAtBaseSubscription": { + "type": "boolean" + }, + "isShowCustomRemarks": { + "type": "boolean" + }, + "customRemarks": { + "$ref": "#/components/schemas/CustomRemark" + }, + "happAnnounce": { + "type": "string", + "nullable": true + }, + "happRouting": { + "type": "string", + "nullable": true + }, + "customResponseHeaders": { + "additionalProperties": { + "type": "string" + }, + "nullable": true + }, + "randomizeHosts": { + "type": "boolean" + }, + "responseRules": { + "$ref": "#/components/schemas/ResponseRules" + }, + "hwidSettings": { + "$ref": "#/components/schemas/HwidSettings" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "profileTitle", + "supportLink", + "profileUpdateInterval", + "isProfileWebpageUrlEnabled", + "serveJsonAtBaseSubscription", + "isShowCustomRemarks", + "customRemarks", + "happAnnounce", + "happRouting", + "customResponseHeaders", + "randomizeHosts", + "responseRules", + "hwidSettings", + "createdAt", + "updatedAt" + ] + } + }, + "required": [ + "response" + ] + }, + "UpdateSubscriptionSettingsRequest": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "profileTitle": { + "type": "string" + }, + "supportLink": { + "type": "string" + }, + "profileUpdateInterval": { + "type": "integer" + }, + "isProfileWebpageUrlEnabled": { + "type": "boolean" + }, + "serveJsonAtBaseSubscription": { + "type": "boolean" + }, + "happAnnounce": { + "type": "string", + "maxLength": 200, + "nullable": true + }, + "happRouting": { + "type": "string", + "nullable": true + }, + "isShowCustomRemarks": { + "type": "boolean" + }, + "customRemarks": { + "$ref": "#/components/schemas/CustomRemark" + }, + "customResponseHeaders": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "randomizeHosts": { + "type": "boolean" + }, + "responseRules": { + "$ref": "#/components/schemas/ResponseRules" + }, + "hwidSettings": { + "$ref": "#/components/schemas/HwidSettings" + } + }, + "required": [ + "uuid" + ] + }, + "IpsResponseResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "jobId": { + "type": "string" + } + }, + "required": [ + "jobId" + ] + } + }, + "required": [ + "response" + ] + }, + "FetchIpsResultResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "isCompleted": { + "type": "boolean" + }, + "isFailed": { + "type": "boolean" + }, + "progress": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "completed": { + "type": "number" + }, + "percent": { + "type": "number" + } + }, + "required": [ + "total", + "completed", + "percent" + ] + }, + "result": { + "type": "object", + "properties": { + "success": { + "type": "boolean" + }, + "userUuid": { + "type": "string", + "format": "uuid" + }, + "userId": { + "type": "string" + }, + "nodes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "nodeUuid": { + "type": "string", + "format": "uuid" + }, + "nodeName": { + "type": "string" + }, + "countryCode": { + "type": "string" + }, + "ips": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Ips" + } + } + }, + "required": [ + "nodeUuid", + "nodeName", + "countryCode", + "ips" + ] + } + } + }, + "required": [ + "success", + "userUuid", + "userId", + "nodes" + ], + "nullable": true + } + }, + "required": [ + "isCompleted", + "isFailed", + "progress", + "result" + ] + } + }, + "required": [ + "response" + ] + }, + "DropConnectionsRequest": { + "type": "object", + "properties": { + "dropBy": { + "oneOf": [ + { + "description": "Drop by user UUIDs", + "type": "object", + "properties": { + "by": { + "type": "string", + "enum": [ + "userUuids" + ] + }, + "userUuids": { + "type": "array", + "minItems": 1, + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "by", + "userUuids" + ] + }, + { + "description": "Drop by IP addresses", + "type": "object", + "properties": { + "by": { + "type": "string", + "enum": [ + "ipAddresses" + ] + }, + "ipAddresses": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + } + }, + "required": [ + "by", + "ipAddresses" + ] + } + ] + }, + "targetNodes": { + "oneOf": [ + { + "description": "Target all connected nodes", + "type": "object", + "properties": { + "target": { + "type": "string", + "enum": [ + "allNodes" + ] + } + }, + "required": [ + "target" + ] + }, + { + "description": "Target specific nodes", + "type": "object", + "properties": { + "target": { + "type": "string", + "enum": [ + "specificNodes" + ] + }, + "nodeUuids": { + "type": "array", + "minItems": 1, + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "target", + "nodeUuids" + ] + } + ] + } + }, + "required": [ + "dropBy", + "targetNodes" + ] + }, + "FetchUsersIpsResultResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "isCompleted": { + "type": "boolean" + }, + "isFailed": { + "type": "boolean" + }, + "result": { + "type": "object", + "properties": { + "success": { + "type": "boolean" + }, + "nodeUuid": { + "type": "string", + "format": "uuid" + }, + "users": { + "type": "array", + "items": { + "type": "object", + "properties": { + "userId": { + "type": "string" + }, + "ips": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Ips" + } + } + }, + "required": [ + "userId", + "ips" + ] + } + } + }, + "required": [ + "success", + "nodeUuid", + "users" + ], + "nullable": true + } + }, + "required": [ + "isCompleted", + "isFailed", + "result" + ] + } + }, + "required": [ + "response" + ] + }, + "UserMetadataResponseResponse": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "metadata": { + "type": "object", + "properties": {} + } + }, + "required": [ + "metadata" + ] + } + }, + "required": [ + "response" + ] + }, + "UpsertUserMetadataRequestBodyRequest": { + "type": "object", + "properties": { + "metadata": { + "type": "object", + "properties": {} + } + }, + "required": [ + "metadata" + ] + }, + "RemnawaveWebhookUserEvents": { + "type": "object", + "properties": { + "scope": { + "type": "string", + "enum": [ + "user" + ] + }, + "event": { + "type": "string", + "enum": [ + "user.created", + "user.modified", + "user.deleted", + "user.revoked", + "user.disabled", + "user.enabled", + "user.limited", + "user.expired", + "user.traffic_reset", + "user.expires_in_72_hours", + "user.expires_in_48_hours", + "user.expires_in_24_hours", + "user.expired_24_hours_ago", + "user.first_connected", + "user.bandwidth_usage_threshold_reached", + "user.not_connected" + ] + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "data": { + "$ref": "#/components/schemas/UserItemInfo" + }, + "meta": { + "type": "object", + "properties": { + "notConnectedAfterHours": { + "type": "integer", + "nullable": true + } + }, + "nullable": true + } + }, + "required": [ + "scope", + "event", + "timestamp", + "data", + "meta" + ] + }, + "RemnawaveWebhookUserHwidDevicesEvents": { + "type": "object", + "properties": { + "scope": { + "type": "string", + "enum": [ + "user_hwid_devices" + ] + }, + "event": { + "type": "string", + "enum": [ + "user_hwid_devices.added", + "user_hwid_devices.deleted" + ] + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "data": { + "type": "object", + "properties": { + "user": { + "$ref": "#/components/schemas/UserItemInfo" + }, + "hwidUserDevice": { + "$ref": "#/components/schemas/Device" + } + }, + "required": [ + "user", + "hwidUserDevice" + ] + } + }, + "required": [ + "scope", + "event", + "timestamp", + "data" + ] + }, + "RemnawaveWebhookNodeEvents": { + "type": "object", + "properties": { + "scope": { + "type": "string", + "enum": [ + "node" + ] + }, + "event": { + "type": "string", + "enum": [ + "node.created", + "node.modified", + "node.disabled", + "node.enabled", + "node.deleted", + "node.connection_lost", + "node.connection_restored", + "node.traffic_notify" + ] + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "data": { + "$ref": "#/components/schemas/NodeResponseDataItem" + } + }, + "required": [ + "scope", + "event", + "timestamp", + "data" + ] + }, + "RemnawaveWebhookServiceEvents": { + "type": "object", + "properties": { + "scope": { + "type": "string", + "enum": [ + "service" + ] + }, + "event": { + "type": "string", + "enum": [ + "service.panel_started", + "service.login_attempt_failed", + "service.login_attempt_success", + "service.subpage_config_changed" + ] + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "data": { + "type": "object", + "properties": { + "loginAttempt": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "ip": { + "type": "string" + }, + "userAgent": { + "type": "string" + }, + "description": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "required": [ + "username", + "ip", + "userAgent" + ] + }, + "panelVersion": { + "type": "string" + }, + "subpageConfig": { + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "CREATED", + "UPDATED", + "DELETED" + ] + }, + "uuid": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "action", + "uuid" + ] + } + } + } + }, + "required": [ + "scope", + "event", + "timestamp", + "data" + ] + }, + "RemnawaveWebhookErrorsEvents": { + "type": "object", + "properties": { + "scope": { + "type": "string", + "enum": [ + "errors" + ] + }, + "event": { + "type": "string", + "enum": [ + "errors.bandwidth_usage_threshold_reached_max_notifications" + ] + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "data": { + "type": "object", + "properties": { + "description": { + "type": "string" + } + }, + "required": [ + "description" + ] + } + }, + "required": [ + "scope", + "event", + "timestamp", + "data" + ] + }, + "RemnawaveWebhookCrmEvents": { + "type": "object", + "properties": { + "scope": { + "type": "string", + "enum": [ + "crm" + ] + }, + "event": { + "type": "string", + "enum": [ + "crm.infra_billing_node_payment_in_7_days", + "crm.infra_billing_node_payment_in_48hrs", + "crm.infra_billing_node_payment_in_24hrs", + "crm.infra_billing_node_payment_due_today", + "crm.infra_billing_node_payment_overdue_24hrs", + "crm.infra_billing_node_payment_overdue_48hrs", + "crm.infra_billing_node_payment_overdue_7_days" + ] + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "data": { + "type": "object", + "properties": { + "providerName": { + "type": "string" + }, + "nodeName": { + "type": "string" + }, + "nextBillingAt": { + "type": "string", + "format": "date-time" + }, + "loginUrl": { + "type": "string" + } + }, + "required": [ + "providerName", + "nodeName", + "nextBillingAt", + "loginUrl" + ] + } + }, + "required": [ + "scope", + "event", + "timestamp", + "data" + ] + }, + "RemnawaveWebhookTorrentBlockerEvents": { + "type": "object", + "properties": { + "scope": { + "type": "string", + "enum": [ + "torrent_blocker" + ] + }, + "event": { + "type": "string", + "enum": [ + "torrent_blocker.report" + ] + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "data": { + "type": "object", + "properties": { + "node": { + "$ref": "#/components/schemas/NodeResponseDataItem" + }, + "user": { + "$ref": "#/components/schemas/UserItemInfo" + }, + "report": { + "$ref": "#/components/schemas/ReportItem" + } + }, + "required": [ + "node", + "user", + "report" + ] + } + }, + "required": [ + "scope", + "event", + "timestamp", + "data" + ] + }, + "BadRequestError": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ValidationError" + } + } + }, + "required": [ + "message", + "statusCode", + "errors" + ] + }, + "ValidationError": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "UnauthorizedError": { + "type": "object", + "properties": { + "message": { + "type": "string", + "example": "Unauthorized" + }, + "statusCode": { + "type": "number", + "example": 401 + } + }, + "required": [ + "message", + "statusCode" + ] + }, + "ForbiddenError": { + "type": "object", + "properties": { + "message": { + "type": "string", + "example": "Forbidden" + }, + "statusCode": { + "type": "number", + "example": 403 + } + }, + "required": [ + "message", + "statusCode" + ] + }, + "NotFoundError": { + "type": "object", + "properties": { + "message": { + "type": "string", + "example": "Not Found" + }, + "statusCode": { + "type": "number", + "example": 404 + } + }, + "required": [ + "message", + "statusCode" + ] + }, + "InternalServerError": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + }, + "Header": { + "description": "{\"markdownDescription\":\"**Key** and **value** of the response header will be added to the response.\"}", + "type": "object", + "properties": { + "key": { + "description": "{\"markdownDescription\":\"Key of the response header. Must comply with RFC 7230.\"}", + "type": "string", + "pattern": "^[!#$%&'*+\\-.0-9A-Z^_`a-z|~]+$" + }, + "value": { + "description": "{\"markdownDescription\":\"Value of the response header. \"}", + "type": "string", + "minLength": 1 + } + }, + "required": [ + "key", + "value" + ] + }, + "Condition": { + "description": "{\"markdownDescription\":\"Condition to check against the **headerName**.\",\"defaultSnippets\":[{\"label\":\"Examples: Check if header contains \\\"text/html\\\"\",\"markdownDescription\":\"Condition to check if **headerName** contains \\\"text/html\\\"\",\"body\":{\"headerName\":\"accept\",\"operator\":\"CONTAINS\",\"value\":\"text/html\",\"caseSensitive\":true}}]}", + "type": "object", + "properties": { + "headerName": { + "description": "{\"markdownDescription\":\"**Name** of the HTTP header to check. Must comply with RFC 7230.\"}", + "type": "string", + "pattern": "^[!#$%&'*+\\-.0-9A-Z^_`a-z|~]+$" + }, + "operator": { + "description": "{\"errorMessage\":\"Invalid operator. Please select a valid operator.\",\"markdownDescription\":\"Operator to use for comparing the `headerName` with `value`.\",\"markdownEnumDescriptions\":[\"Performs an exact, comparison between the header value and specified string. `string === value`\",\"Ensures the header value does not exactly match the specified string. `string !== value`\",\"Checks if the header value contains the specified string as a substring. `string.includes()`\",\"Verifies the header value does not contain the specified string as a substring. `!string.includes()`\",\"Validates that the header value begins with the specified string. `string.startsWith()`\",\"Validates that the header value does not begin with the specified string. `!string.startsWith()`\",\"Confirms the header value ends with the specified string. `string.endsWith()`\",\"Confirms the header value does not end with the specified string. `!string.endsWith()`\",\"Evaluates if the header value matches the specified regular expression pattern. `regex.test()`\",\"Evaluates if the header value does not match the specified regular expression pattern. `!regex.test()`\"]}", + "type": "string", + "enum": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS", + "STARTS_WITH", + "NOT_STARTS_WITH", + "ENDS_WITH", + "NOT_ENDS_WITH", + "REGEX", + "NOT_REGEX" + ], + "x-enumNames": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS", + "STARTS_WITH", + "NOT_STARTS_WITH", + "ENDS_WITH", + "NOT_ENDS_WITH", + "REGEX", + "NOT_REGEX" + ] + }, + "value": { + "description": "{\"markdownDescription\":\"**Value** to check against the **headerName**.\"}", + "type": "string", + "minLength": 1, + "maxLength": 255 + }, + "caseSensitive": { + "description": "{\"markdownDescription\":\"Whether the value is **case sensitive**. \\n\\n - `true`: the value will be compared as is. \\n\\n - `false`: the value will be lowercased **before** comparison.\"}", + "type": "boolean" + } + }, + "required": [ + "headerName", + "operator", + "value", + "caseSensitive" + ] + }, + "Ips": { + "type": "object", + "properties": { + "ip": { + "type": "string" + }, + "lastSeen": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "ip", + "lastSeen" + ] + }, + "ActiveInternalSquad": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + } + }, + "required": [ + "uuid", + "name" + ] + }, + "Inbound": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "profileUuid": { + "type": "string", + "format": "uuid" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + }, + "network": { + "type": "string", + "nullable": true + }, + "security": { + "type": "string", + "nullable": true + }, + "port": { + "type": "number", + "nullable": true + }, + "rawInbound": { + "nullable": true + } + }, + "required": [ + "uuid", + "profileUuid", + "tag", + "type", + "network", + "security", + "port", + "rawInbound" + ] + }, + "Node": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "countryCode": { + "type": "string" + } + }, + "required": [ + "uuid", + "name", + "countryCode" + ] + }, + "TemplateRef": { + "type": "object", + "properties": { + "templateUuid": { + "type": "string", + "format": "uuid" + }, + "templateType": { + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ] + } + }, + "required": [ + "templateUuid", + "templateType" + ] + }, + "InterfaceItem": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "rxBytesPerSec": { + "type": "number" + }, + "txBytesPerSec": { + "type": "number" + }, + "rxTotal": { + "type": "number" + }, + "txTotal": { + "type": "number" + } + }, + "required": [ + "interface", + "rxBytesPerSec", + "txBytesPerSec", + "rxTotal", + "txTotal" + ], + "nullable": true + }, + "ActionReportItem": { + "type": "object", + "properties": { + "blocked": { + "type": "boolean" + }, + "ip": { + "type": "string" + }, + "blockDuration": { + "type": "number" + }, + "willUnblockAt": { + "type": "string", + "format": "date-time" + }, + "userId": { + "type": "string" + }, + "processedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "blocked", + "ip", + "blockDuration", + "willUnblockAt", + "userId", + "processedAt" + ] + }, + "XrayReportItem": { + "type": "object", + "properties": { + "email": { + "type": "string", + "nullable": true + }, + "level": { + "type": "number", + "nullable": true + }, + "protocol": { + "type": "string", + "nullable": true + }, + "network": { + "type": "string" + }, + "source": { + "type": "string", + "nullable": true + }, + "destination": { + "type": "string" + }, + "routeTarget": { + "type": "string", + "nullable": true + }, + "originalTarget": { + "type": "string", + "nullable": true + }, + "inboundTag": { + "type": "string", + "nullable": true + }, + "inboundName": { + "type": "string", + "nullable": true + }, + "inboundLocal": { + "type": "string", + "nullable": true + }, + "outboundTag": { + "type": "string", + "nullable": true + }, + "ts": { + "type": "number" + } + }, + "required": [ + "email", + "level", + "protocol", + "network", + "source", + "destination", + "routeTarget", + "originalTarget", + "inboundTag", + "inboundName", + "inboundLocal", + "outboundTag", + "ts" + ] + }, + "BillingNode": { + "type": "object", + "properties": { + "nodeUuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "countryCode": { + "type": "string" + } + }, + "required": [ + "nodeUuid", + "name", + "countryCode" + ] + }, + "InboundsStat": { + "type": "object", + "properties": { + "tag": { + "type": "string" + }, + "upload": { + "type": "string" + }, + "download": { + "type": "string" + } + }, + "required": [ + "tag", + "upload", + "download" + ] + }, + "ResponseModification": { + "description": "{\"examples\":[{\"headers\":[{\"key\":\"X-Custom-Header\",\"value\":\"CustomValue\"}]}],\"markdownDescription\":\"Response modifications to be applied when the rule is matched. Optional.\"}", + "type": "object", + "properties": { + "headers": { + "description": "{\"defaultSnippets\":[{\"label\":\"Examples: Add custom header\",\"markdownDescription\":\"Add a custom header to the response\",\"body\":[{\"key\":\"X-Custom-Header\",\"value\":\"CustomValue\"}]}],\"markdownDescription\":\"Array of headers to be added when the rule is matched.\"}", + "type": "array", + "items": { + "$ref": "#/components/schemas/Header" + } + }, + "applyHeadersToEnd": { + "description": "{\"markdownDescription\":\"By default, headers are added when forming the response. In some cases, headers set in SRR may be overridden by headers from other parts of the system. If you set this flag to **true**, headers from SRR will be added at the very end, just before the response is sent. In this case, SRR headers may override headers from other sections.\"}", + "type": "boolean" + }, + "subscriptionTemplate": { + "description": "{\"markdownDescription\":\"Override the subscription template with the given name. If not provided, the default subscription template will be used. If the template name is not found, the default subscription template for this type will be used. **This modification have higher priority than settings from External Squads.**\"}", + "type": "string", + "minLength": 1 + }, + "ignoreHostXrayJsonTemplate": { + "description": "{\"markdownDescription\":\"Each Host may have its own Xray Json Template. If you set this flag to **true**, the Xray Json Template defined by the SRR will be used. **The Host's Xray Json Template will be ignored.**\"}", + "type": "boolean" + }, + "ignoreServeJsonAtBaseSubscription": { + "description": "{\"markdownDescription\":\"If you set this flag to **true**, the **Serve JSON at Base Subscription** setting will be ignored (set to **false**).\"}", + "type": "boolean" + }, + "additionalExtendedClientsRegex": { + "description": "{\"markdownDescription\":\"Additional regex patterns to match extended clients. Matched clients will receive `serverDescription` in the subscription response.\\n\\n**Default Mihomo extended clients:**\\n- `^FlClash ?X/`\\n- `^Flowvy/`\\n- `^prizrak-box/`\\n- `^koala-clash/`\\n\\n**Default Xray extended clients:**\\n- `^Happ/`\\n- `^INCY/`\\n\\n**Example:** `[\\\"^MyClient/\\\", \\\"^CustomApp\\\\\\\\/v2\\\"]`\"}", + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + } + } + }, + "UserTrafficItem": { + "type": "object", + "properties": { + "usedTrafficBytes": { + "type": "number" + }, + "lifetimeUsedTrafficBytes": { + "type": "number" + }, + "onlineAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "firstConnectedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastConnectedNodeUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "usedTrafficBytes", + "lifetimeUsedTrafficBytes", + "onlineAt", + "firstConnectedAt", + "lastConnectedNodeUuid" + ] + }, + "UserItem2": { + "type": "object", + "properties": { + "shortUuid": { + "type": "string" + }, + "daysLeft": { + "type": "number" + }, + "trafficUsed": { + "type": "string" + }, + "trafficLimit": { + "type": "string" + }, + "lifetimeTrafficUsed": { + "type": "string" + }, + "trafficUsedBytes": { + "type": "string" + }, + "trafficLimitBytes": { + "type": "string" + }, + "lifetimeTrafficUsedBytes": { + "type": "string" + }, + "username": { + "type": "string" + }, + "expiresAt": { + "type": "string", + "format": "date-time" + }, + "isActive": { + "type": "boolean" + }, + "userStatus": { + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "x-enumNames": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ] + }, + "trafficLimitStrategy": { + "type": "string", + "enum": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "x-enumNames": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ] + } + }, + "required": [ + "shortUuid", + "daysLeft", + "trafficUsed", + "trafficLimit", + "lifetimeTrafficUsed", + "trafficUsedBytes", + "trafficLimitBytes", + "lifetimeTrafficUsedBytes", + "username", + "expiresAt", + "isActive", + "userStatus", + "trafficLimitStrategy" + ] + }, + "InternalSquadsResponInfoItem": { + "type": "object", + "properties": { + "membersCount": { + "type": "number" + }, + "inboundsCount": { + "type": "number" + } + }, + "required": [ + "membersCount", + "inboundsCount" + ] + }, + "ExternalSquadsResponInfoItem": { + "type": "object", + "properties": { + "membersCount": { + "type": "number" + } + }, + "required": [ + "membersCount" + ] + }, + "SubscriptionSettings": { + "type": "object", + "properties": { + "profileTitle": { + "type": "string" + }, + "supportLink": { + "type": "string" + }, + "profileUpdateInterval": { + "type": "integer", + "minimum": 1, + "exclusiveMinimum": false + }, + "isProfileWebpageUrlEnabled": { + "type": "boolean" + }, + "serveJsonAtBaseSubscription": { + "type": "boolean" + }, + "isShowCustomRemarks": { + "type": "boolean" + }, + "happAnnounce": { + "type": "string", + "nullable": true + }, + "happRouting": { + "type": "string", + "nullable": true + }, + "randomizeHosts": { + "type": "boolean" + } + }, + "nullable": true + }, + "HostOverride": { + "type": "object", + "properties": { + "serverDescription": { + "type": "string", + "maxLength": 30, + "nullable": true + }, + "vlessRouteId": { + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false, + "maximum": 65535, + "exclusiveMaximum": false, + "nullable": true + } + }, + "nullable": true + }, + "HwidSettings": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "fallbackDeviceLimit": { + "type": "number" + }, + "maxDevicesAnnounce": { + "type": "string", + "maxLength": 200, + "nullable": true + } + }, + "required": [ + "enabled", + "fallbackDeviceLimit", + "maxDevicesAnnounce" + ], + "nullable": true + }, + "CustomRemark": { + "type": "object", + "properties": { + "expiredUsers": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "limitedUsers": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "disabledUsers": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "emptyHosts": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "HWIDMaxDevicesExceeded": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "HWIDNotSupported": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + } + }, + "required": [ + "expiredUsers", + "limitedUsers", + "disabledUsers", + "emptyHosts", + "HWIDMaxDevicesExceeded", + "HWIDNotSupported" + ], + "nullable": true + }, + "NodeResponseInfoItem": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "cpus": { + "type": "integer" + }, + "cpuModel": { + "type": "string" + }, + "memoryTotal": { + "type": "number" + }, + "hostname": { + "type": "string" + }, + "platform": { + "type": "string" + }, + "release": { + "type": "string" + }, + "type": { + "type": "string" + }, + "version": { + "type": "string" + }, + "networkInterfaces": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "arch", + "cpus", + "cpuModel", + "memoryTotal", + "hostname", + "platform", + "release", + "type", + "version", + "networkInterfaces" + ] + }, + "Stat": { + "type": "object", + "properties": { + "memoryFree": { + "type": "number" + }, + "memoryUsed": { + "type": "number" + }, + "uptime": { + "type": "number" + }, + "loadAvg": { + "type": "array", + "items": { + "type": "number" + } + }, + "interface": { + "$ref": "#/components/schemas/InterfaceItem" + } + }, + "required": [ + "memoryFree", + "memoryUsed", + "uptime", + "loadAvg", + "interface" + ] + }, + "ReportItem": { + "type": "object", + "properties": { + "actionReport": { + "$ref": "#/components/schemas/ActionReportItem" + }, + "xrayReport": { + "$ref": "#/components/schemas/XrayReportItem" + } + }, + "required": [ + "actionReport", + "xrayReport" + ] + }, + "BillingHistoryItem": { + "type": "object", + "properties": { + "totalAmount": { + "type": "number" + }, + "totalBills": { + "type": "number" + } + }, + "required": [ + "totalAmount", + "totalBills" + ] + }, + "Rule": { + "description": "{\"defaultSnippets\":[{\"label\":\"Examples: Blank rule\",\"markdownDescription\":\"Simple blank rule with no conditions or modifications.\\n```json\\n{\\n \\\"name\\\": \\\"Blank rule\\\",\\n \\\"description\\\": \\\"Blank rule\\\",\\n \\\"operator\\\": \\\"AND\\\",\\n \\\"enabled\\\": true,\\n \\\"conditions\\\": [],\\n \\\"responseType\\\": \\\"BLOCK\\\",\\n \\\"responseModifications\\\": {\\n \\\"headers\\\": []\\n }\\n}\\n```\",\"body\":{\"name\":\"Blank rule\",\"description\":\"Blank rule\",\"operator\":\"AND\",\"enabled\":true,\"conditions\":[],\"responseType\":\"BLOCK\",\"responseModifications\":{\"headers\":[]}}},{\"label\":\"Examples: Block Legacy Clients\",\"markdownDescription\":\"Block requests from legacy clients\\n```json\\n{\\n \\\"name\\\": \\\"Block Legacy Clients\\\",\\n \\\"description\\\": \\\"Block requests from legacy clients\\\",\\n \\\"enabled\\\": true,\\n \\\"operator\\\": \\\"OR\\\",\\n \\\"conditions\\\": [\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"Hiddify\\\",\\n \\\"caseSensitive\\\": true\\n },\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"FoxRay\\\",\\n \\\"caseSensitive\\\": true\\n }\\n ],\\n \\\"responseType\\\": \\\"BLOCK\\\"\\n}\\n```\",\"body\":{\"name\":\"Block Legacy Clients\",\"description\":\"Block requests from legacy clients\",\"enabled\":true,\"operator\":\"OR\",\"conditions\":[{\"headerName\":\"user-agent\",\"operator\":\"CONTAINS\",\"value\":\"Hiddify\",\"caseSensitive\":true},{\"headerName\":\"user-agent\",\"operator\":\"CONTAINS\",\"value\":\"FoxRay\",\"caseSensitive\":true}],\"responseType\":\"BLOCK\"}}],\"title\":\"Response Rule\",\"markdownDescription\":\"Response rule configuration.\\n\\n**Fields:**\\n- **name**: Name of the response rule.\\n- **description**: Description of the response rule. Optional.\\n- **enabled**: Control whether the response rule is enabled or disabled. \\n\\n - `true` the rule will be applied. \\n\\n - `false` the rule will be always ignored.\\n- **operator**: Operator to use for combining conditions in the rule.\\n- **conditions**: Array of conditions to check against the request headers. Conditions are applied with **operator**. If conditions are empty, the rule will be matched.\\n- **responseType**: Type of the response. Determines the type of **response** to be returned when the rule is matched.\\n- **responseModifications**: Response modifications to be applied when the rule is matched. Optional.\\n\\n**Example:**\\n```json\\n{\\n \\\"name\\\": \\\"Block Legacy Clients\\\",\\n \\\"description\\\": \\\"Block requests from legacy clients\\\",\\n \\\"enabled\\\": true,\\n \\\"operator\\\": \\\"OR\\\",\\n \\\"conditions\\\": [\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"Hiddify\\\",\\n \\\"caseSensitive\\\": true\\n },\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"FoxRay\\\",\\n \\\"caseSensitive\\\": true\\n }\\n ],\\n \\\"responseType\\\": \\\"BLOCK\\\"\\n}\\n```\"}", + "type": "object", + "properties": { + "name": { + "description": "{\"markdownDescription\":\"Name of the response rule.\"}", + "type": "string", + "minLength": 1, + "maxLength": 50 + }, + "description": { + "description": "{\"markdownDescription\":\"Description of the response rule. Optional.\"}", + "type": "string", + "minLength": 1, + "maxLength": 250 + }, + "enabled": { + "description": "{\"markdownDescription\":\"Control whether the response rule is enabled or disabled. \\n\\n - `true` the rule will be applied. \\n\\n - `false` the rule will be always ignored.\"}", + "type": "boolean" + }, + "operator": { + "description": "{\"markdownDescription\":\"Operator to use for combining conditions in the rule.\"}", + "type": "string", + "enum": [ + "AND", + "OR" + ], + "x-enumNames": [ + "AND", + "OR" + ] + }, + "conditions": { + "description": "{\"markdownDescription\":\"Array of conditions to check against the request headers. Conditions are applied with **operator**. If conditions are empty, the rule will be matched.\"}", + "type": "array", + "items": { + "$ref": "#/components/schemas/Condition" + } + }, + "responseType": { + "description": "{\"errorMessage\":\"Invalid response type. Please select a valid response type.\",\"markdownDescription\":\"Type of the response. Determines the type of **response** to be returned when the rule is matched.\",\"markdownEnumDescriptions\":[\"Return **subscription** in XRAY-JSON format. (Using `Xray Json` template)\",\"Return **subscription** in BASE64 encoded string. Compatible with most client application with Xray core.\",\"Return **subscription** in Mihomo format. (Using `Mihomo` template)\",\"Return **subscription** in Stash format. (Using `Stash` template)\",\"Return **subscription** in Clash format. (Using `Clash` template) Useful for client application that use Legacy Clash core.\",\"Return **subscription** in Singbox format. (Using `Singbox` template) Format which is used by Singbox client application.\",\"Return **subscription** as browser format. The same as on `/info` route.\",\"**Drop** request and return `403` status code.\",\"**Drop** request and return `404` status code.\",\"**Drop** request and return `451` status code.\",\"**Drop** the socket connection.\"]}", + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX", + "BROWSER", + "BLOCK", + "STATUS_CODE_404", + "STATUS_CODE_451", + "SOCKET_DROP" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX", + "BROWSER", + "BLOCK", + "STATUS_CODE_404", + "STATUS_CODE_451", + "SOCKET_DROP" + ] + }, + "responseModifications": { + "$ref": "#/components/schemas/ResponseModification" + } + }, + "required": [ + "name", + "enabled", + "operator", + "conditions", + "responseType" + ] + }, + "Github": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "clientId": { + "type": "string", + "nullable": true + }, + "clientSecret": { + "type": "string", + "nullable": true + }, + "allowedEmails": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "enabled", + "clientId", + "clientSecret", + "allowedEmails" + ] + }, + "Pocketid": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "clientId": { + "type": "string", + "nullable": true + }, + "clientSecret": { + "type": "string", + "nullable": true + }, + "plainDomain": { + "type": "string", + "nullable": true + }, + "allowedEmails": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "enabled", + "clientId", + "clientSecret", + "plainDomain", + "allowedEmails" + ] + }, + "Keycloak": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "realm": { + "type": "string", + "nullable": true + }, + "clientId": { + "type": "string", + "nullable": true + }, + "clientSecret": { + "type": "string", + "nullable": true + }, + "frontendDomain": { + "type": "string", + "nullable": true + }, + "keycloakDomain": { + "type": "string", + "nullable": true + }, + "allowedEmails": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "enabled", + "realm", + "clientId", + "clientSecret", + "frontendDomain", + "keycloakDomain", + "allowedEmails" + ], + "default": { + "enabled": false, + "realm": null, + "frontendDomain": null, + "keycloakDomain": null, + "clientId": null, + "clientSecret": null, + "allowedEmails": [] + } + }, + "Generic": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "clientId": { + "type": "string", + "nullable": true + }, + "clientSecret": { + "type": "string", + "nullable": true + }, + "withPkce": { + "type": "boolean" + }, + "authorizationUrl": { + "type": "string", + "nullable": true + }, + "tokenUrl": { + "type": "string", + "nullable": true + }, + "frontendDomain": { + "type": "string", + "nullable": true + }, + "allowedEmails": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "enabled", + "clientId", + "clientSecret", + "withPkce", + "authorizationUrl", + "tokenUrl", + "frontendDomain", + "allowedEmails" + ], + "default": { + "enabled": false, + "frontendDomain": null, + "tokenUrl": null, + "clientId": null, + "clientSecret": null, + "withPkce": false, + "authorizationUrl": null, + "allowedEmails": [] + } + }, + "Telegram": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "clientId": { + "type": "string", + "nullable": true + }, + "clientSecret": { + "type": "string", + "nullable": true + }, + "allowedIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "frontendDomain": { + "type": "string", + "nullable": true + } + }, + "required": [ + "enabled", + "clientId", + "clientSecret", + "allowedIds", + "frontendDomain" + ], + "default": { + "enabled": false, + "clientId": null, + "clientSecret": null, + "allowedIds": [], + "frontendDomain": null + } + }, + "PasswordSettings": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + }, + "required": [ + "enabled" + ], + "nullable": true + }, + "Config": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "config": { + "nullable": true + } + }, + "required": [ + "uuid", + "viewPosition", + "name", + "config" + ] + }, + "UserItemInfo": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "id": { + "type": "number" + }, + "shortUuid": { + "type": "string" + }, + "username": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "x-enumNames": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "default": "ACTIVE" + }, + "trafficLimitBytes": { + "type": "integer", + "default": 0 + }, + "trafficLimitStrategy": { + "description": "Available reset periods", + "type": "string", + "enum": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "x-enumNames": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "default": "NO_RESET" + }, + "expireAt": { + "type": "string", + "format": "date-time" + }, + "telegramId": { + "type": "integer", + "nullable": true + }, + "email": { + "type": "string", + "format": "email", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tag": { + "type": "string", + "nullable": true + }, + "hwidDeviceLimit": { + "type": "integer", + "nullable": true + }, + "externalSquadUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "trojanPassword": { + "type": "string" + }, + "vlessUuid": { + "type": "string", + "format": "uuid" + }, + "ssPassword": { + "type": "string" + }, + "lastTriggeredThreshold": { + "type": "integer", + "default": 0 + }, + "subRevokedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastTrafficResetAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "subscriptionUrl": { + "type": "string" + }, + "activeInternalSquads": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ActiveInternalSquad" + } + }, + "userTraffic": { + "$ref": "#/components/schemas/UserTrafficItem" + } + }, + "required": [ + "uuid", + "id", + "shortUuid", + "username", + "expireAt", + "telegramId", + "email", + "description", + "tag", + "hwidDeviceLimit", + "externalSquadUuid", + "trojanPassword", + "vlessUuid", + "ssPassword", + "subRevokedAt", + "lastTrafficResetAt", + "createdAt", + "updatedAt", + "subscriptionUrl", + "activeInternalSquads", + "userTraffic" + ] + }, + "Record": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "userUuid": { + "type": "string", + "format": "uuid" + }, + "requestAt": { + "type": "string", + "format": "date-time" + }, + "requestIp": { + "type": "string", + "nullable": true + }, + "userAgent": { + "type": "string", + "nullable": true + } + }, + "required": [ + "id", + "userUuid", + "requestAt", + "requestIp", + "userAgent" + ] + }, + "Subscription": { + "type": "object", + "properties": { + "isFound": { + "type": "boolean" + }, + "user": { + "$ref": "#/components/schemas/UserItem2" + }, + "links": { + "type": "array", + "items": { + "type": "string" + } + }, + "ssConfLinks": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "subscriptionUrl": { + "type": "string" + } + }, + "required": [ + "isFound", + "user", + "links", + "ssConfLinks", + "subscriptionUrl" + ] + }, + "Template": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "templateType": { + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ] + }, + "templateJson": { + "nullable": true + }, + "encodedTemplateYaml": { + "type": "string", + "nullable": true + } + }, + "required": [ + "uuid", + "viewPosition", + "name", + "templateType", + "templateJson", + "encodedTemplateYaml" + ] + }, + "ConfigProfile": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "config": {}, + "inbounds": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Inbound" + } + }, + "nodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Node" + } + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "viewPosition", + "name", + "config", + "inbounds", + "nodes", + "createdAt", + "updatedAt" + ] + }, + "InternalSquad": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "info": { + "$ref": "#/components/schemas/InternalSquadsResponInfoItem" + }, + "inbounds": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Inbound" + } + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "viewPosition", + "name", + "info", + "inbounds", + "createdAt", + "updatedAt" + ] + }, + "ExternalSquad": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "info": { + "$ref": "#/components/schemas/ExternalSquadsResponInfoItem" + }, + "templates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TemplateRef" + } + }, + "subscriptionSettings": { + "$ref": "#/components/schemas/SubscriptionSettings" + }, + "hostOverrides": { + "$ref": "#/components/schemas/HostOverride" + }, + "responseHeaders": { + "additionalProperties": { + "type": "string" + }, + "nullable": true + }, + "hwidSettings": { + "$ref": "#/components/schemas/HwidSettings" + }, + "customRemarks": { + "$ref": "#/components/schemas/CustomRemark" + }, + "subpageConfigUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "viewPosition", + "name", + "info", + "templates", + "subscriptionSettings", + "hostOverrides", + "responseHeaders", + "hwidSettings", + "customRemarks", + "subpageConfigUuid", + "createdAt", + "updatedAt" + ] + }, + "ConfigProfileItem": { + "type": "object", + "properties": { + "activeConfigProfileUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "activeInbounds": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Inbound" + } + } + }, + "required": [ + "activeConfigProfileUuid", + "activeInbounds" + ] + }, + "ProviderItem": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "faviconLink": { + "type": "string", + "nullable": true + }, + "loginUrl": { + "type": "string", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "name", + "faviconLink", + "loginUrl", + "createdAt", + "updatedAt" + ], + "nullable": true + }, + "SystemItem": { + "type": "object", + "properties": { + "info": { + "$ref": "#/components/schemas/NodeResponseInfoItem" + }, + "stats": { + "$ref": "#/components/schemas/Stat" + } + }, + "required": [ + "info", + "stats" + ], + "nullable": true + }, + "Version": { + "type": "object", + "properties": { + "xray": { + "type": "string" + }, + "node": { + "type": "string" + } + }, + "required": [ + "xray", + "node" + ], + "nullable": true + }, + "TopNode": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "countryCode": { + "type": "string" + }, + "color": { + "type": "string" + }, + "name": { + "type": "string" + }, + "total": { + "type": "number" + } + }, + "required": [ + "uuid", + "countryCode", + "color", + "name", + "total" + ] + }, + "NodePlugin": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "pluginConfig": { + "nullable": true + } + }, + "required": [ + "uuid", + "viewPosition", + "name", + "pluginConfig" + ] + }, + "InboundItem": { + "type": "object", + "properties": { + "configProfileUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "configProfileInboundUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "configProfileUuid", + "configProfileInboundUuid" + ] + }, + "Device": { + "type": "object", + "properties": { + "hwid": { + "type": "string" + }, + "userUuid": { + "type": "string", + "format": "uuid" + }, + "platform": { + "type": "string", + "nullable": true + }, + "osVersion": { + "type": "string", + "nullable": true + }, + "deviceModel": { + "type": "string", + "nullable": true + }, + "userAgent": { + "type": "string", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "hwid", + "userUuid", + "platform", + "osVersion", + "deviceModel", + "userAgent", + "createdAt", + "updatedAt" + ] + }, + "ByAppItem": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "count": { + "type": "number" + } + }, + "required": [ + "app", + "count" + ] + }, + "Provider": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "faviconLink": { + "type": "string", + "nullable": true + }, + "loginUrl": { + "type": "string", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "billingHistory": { + "$ref": "#/components/schemas/BillingHistoryItem" + }, + "billingNodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BillingNode" + } + } + }, + "required": [ + "uuid", + "name", + "faviconLink", + "loginUrl", + "createdAt", + "updatedAt", + "billingHistory", + "billingNodes" + ] + }, + "DebugSrrMatcherSettings": { + "description": "{\"markdownDescription\":\"Settings for the **response rules** config. Optional.\"}", + "type": "object", + "properties": { + "disableSubscriptionAccessByPath": { + "description": "{\"markdownDescription\":\"Usually, a user's subscription may also be available via additional paths such as **/json**, **/stash**, or **/mihomo**. If this flag is set to **true**, access via these additional paths will be disabled.\"}", + "type": "boolean" + } + } + }, + "PasskeySettings": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "rpId": { + "type": "string", + "nullable": true + }, + "origin": { + "type": "string", + "nullable": true + } + }, + "required": [ + "enabled", + "rpId", + "origin" + ], + "nullable": true + }, + "Oauth2Settings": { + "type": "object", + "properties": { + "github": { + "$ref": "#/components/schemas/Github" + }, + "pocketid": { + "$ref": "#/components/schemas/Pocketid" + }, + "yandex": { + "$ref": "#/components/schemas/Github" + }, + "keycloak": { + "$ref": "#/components/schemas/Keycloak" + }, + "generic": { + "$ref": "#/components/schemas/Generic" + }, + "telegram": { + "$ref": "#/components/schemas/Telegram" + } + }, + "required": [ + "github", + "pocketid", + "yandex" + ], + "nullable": true + }, + "BrandingSettings": { + "type": "object", + "properties": { + "title": { + "type": "string", + "nullable": true + }, + "logoUrl": { + "type": "string", + "format": "uri", + "nullable": true + } + }, + "required": [ + "title", + "logoUrl" + ], + "nullable": true + }, + "ReorderRequestItem": { + "type": "object", + "properties": { + "viewPosition": { + "type": "integer" + }, + "uuid": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "viewPosition", + "uuid" + ] + }, + "NodeResponseDataItem": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "address": { + "type": "string" + }, + "port": { + "type": "integer", + "nullable": true + }, + "isConnected": { + "type": "boolean" + }, + "isDisabled": { + "type": "boolean" + }, + "isConnecting": { + "type": "boolean" + }, + "lastStatusChange": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastStatusMessage": { + "type": "string", + "nullable": true + }, + "isTrafficTrackingActive": { + "type": "boolean" + }, + "trafficResetDay": { + "type": "integer", + "nullable": true + }, + "trafficLimitBytes": { + "type": "number", + "nullable": true + }, + "trafficUsedBytes": { + "type": "number", + "nullable": true + }, + "notifyPercent": { + "type": "integer", + "nullable": true + }, + "viewPosition": { + "type": "integer" + }, + "countryCode": { + "type": "string" + }, + "consumptionMultiplier": { + "type": "number" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "configProfile": { + "$ref": "#/components/schemas/ConfigProfileItem" + }, + "providerUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "provider": { + "$ref": "#/components/schemas/ProviderItem" + }, + "activePluginUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "system": { + "$ref": "#/components/schemas/SystemItem" + }, + "versions": { + "$ref": "#/components/schemas/Version" + }, + "xrayUptime": { + "type": "number" + }, + "usersOnline": { + "type": "number" + } + }, + "required": [ + "uuid", + "name", + "address", + "port", + "isConnected", + "isDisabled", + "isConnecting", + "lastStatusChange", + "lastStatusMessage", + "isTrafficTrackingActive", + "trafficResetDay", + "trafficLimitBytes", + "trafficUsedBytes", + "notifyPercent", + "viewPosition", + "countryCode", + "consumptionMultiplier", + "tags", + "createdAt", + "updatedAt", + "configProfile", + "providerUuid", + "provider", + "activePluginUuid", + "system", + "versions", + "xrayUptime", + "usersOnline" + ] + }, + "HostItem": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "remark": { + "type": "string" + }, + "address": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "path": { + "type": "string", + "nullable": true + }, + "sni": { + "type": "string", + "nullable": true + }, + "host": { + "type": "string", + "nullable": true + }, + "alpn": { + "type": "string", + "nullable": true + }, + "fingerprint": { + "type": "string", + "nullable": true + }, + "isDisabled": { + "type": "boolean", + "default": false + }, + "securityLayer": { + "type": "string", + "enum": [ + "DEFAULT", + "TLS", + "NONE" + ], + "x-enumNames": [ + "DEFAULT", + "TLS", + "NONE" + ], + "default": "DEFAULT" + }, + "xHttpExtraParams": { + "nullable": true + }, + "muxParams": { + "nullable": true + }, + "sockoptParams": { + "nullable": true + }, + "finalMask": { + "nullable": true + }, + "inbound": { + "$ref": "#/components/schemas/InboundItem" + }, + "serverDescription": { + "type": "string", + "maxLength": 30, + "nullable": true + }, + "tag": { + "type": "string", + "nullable": true + }, + "isHidden": { + "type": "boolean", + "default": false + }, + "overrideSniFromAddress": { + "type": "boolean", + "default": false + }, + "keepSniBlank": { + "type": "boolean", + "default": false + }, + "vlessRouteId": { + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false, + "maximum": 65535, + "exclusiveMaximum": false, + "nullable": true + }, + "allowInsecure": { + "type": "boolean", + "default": false + }, + "shuffleHost": { + "type": "boolean" + }, + "mihomoX25519": { + "type": "boolean" + }, + "nodes": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "xrayJsonTemplateUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "excludedInternalSquads": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "excludeFromSubscriptionTypes": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ] + } + } + }, + "required": [ + "uuid", + "viewPosition", + "remark", + "address", + "port", + "path", + "sni", + "host", + "alpn", + "fingerprint", + "xHttpExtraParams", + "muxParams", + "sockoptParams", + "finalMask", + "inbound", + "serverDescription", + "tag", + "vlessRouteId", + "shuffleHost", + "mihomoX25519", + "nodes", + "xrayJsonTemplateUuid", + "excludedInternalSquads" + ] + }, + "BandwidthLastTwoDays": { + "type": "object", + "properties": { + "current": { + "type": "string" + }, + "previous": { + "type": "string" + }, + "difference": { + "type": "string" + } + }, + "required": [ + "current", + "previous", + "difference" + ] + }, + "ResponseRules": { + "type": "object", + "properties": { + "version": { + "description": "{\"title\":\"Response Rules Config Version\",\"markdownDescription\":\"Version of the **response rules** config. Currently supported version is **1**.\"}", + "type": "string", + "enum": [ + "1" + ], + "x-enumNames": [ + "1" + ] + }, + "settings": { + "$ref": "#/components/schemas/DebugSrrMatcherSettings" + }, + "rules": { + "description": "{\"title\":\"Response Rules\",\"markdownDescription\":\"Array of **response rules**. Rules are evaluated in order and the first rule that matches is applied. If no rule matches, request will be blocked by default.\\n\\n**Example:**\\n```json\\n[\\n {\\n \\\"name\\\": \\\"Blank rule\\\",\\n \\\"description\\\": \\\"Blank rule\\\",\\n \\\"operator\\\": \\\"AND\\\",\\n \\\"enabled\\\": true,\\n \\\"conditions\\\": [],\\n \\\"responseType\\\": \\\"BLOCK\\\",\\n \\\"responseModifications\\\": {\\n \\\"headers\\\": []\\n }\\n }\\n]\\n```\",\"defaultSnippets\":[]}", + "type": "array", + "items": { + "$ref": "#/components/schemas/Rule" + } + } + }, + "required": [ + "version", + "rules" + ] + }, + "UserSubscriptionHistory": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "records": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Record" + } + } + }, + "required": [ + "total", + "records" + ] + }, + "ConfigProfileRef": { + "type": "object", + "properties": { + "activeConfigProfileUuid": { + "type": "string", + "format": "uuid" + }, + "activeInbounds": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "activeConfigProfileUuid", + "activeInbounds" + ] + }, + "InboundRef": { + "type": "object", + "properties": { + "configProfileUuid": { + "type": "string", + "format": "uuid" + }, + "configProfileInboundUuid": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "configProfileUuid", + "configProfileInboundUuid" + ] + }, + "AllHwidDevices": { + "type": "object", + "properties": { + "devices": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Device" + } + }, + "total": { + "type": "number" + } + }, + "required": [ + "devices", + "total" + ] + } + } + } +} \ No newline at end of file diff --git a/specs/2.7.4.json b/specs/2.7.4.json new file mode 100644 index 0000000..29aaf96 --- /dev/null +++ b/specs/2.7.4.json @@ -0,0 +1,47532 @@ +{ + "openapi": "3.0.0", + "paths": { + "/api/remnawave-settings": { + "get": { + "operationId": "RemnawaveSettingsController_getSettings", + "parameters": [], + "responses": { + "200": { + "description": "Remnawave settings retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetRemnawaveSettingsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get Remnawave settings", + "tags": [ + "Remnawave Settings Controller" + ] + }, + "patch": { + "operationId": "RemnawaveSettingsController_updateSettings", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateRemnawaveSettingsRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Subscription settings updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateRemnawaveSettingsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update Remnawave settings", + "tags": [ + "Remnawave Settings Controller" + ] + } + }, + "/api/passkeys/registration/options": { + "get": { + "operationId": "PasskeyController_passkeyRegistrationOptions", + "parameters": [], + "responses": { + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + }, + "default": { + "description": "Get passkey registration options", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetPasskeyRegistrationOptionsResponseDto" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get registration options for passkey", + "tags": [ + "Passkeys Controller" + ] + } + }, + "/api/passkeys/registration/verify": { + "post": { + "operationId": "PasskeyController_passkeyRegistrationVerify", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VerifyPasskeyRegistrationRequestDto" + } + } + } + }, + "responses": { + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + }, + "default": { + "description": "Verify passkey registration result", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VerifyPasskeyRegistrationResponseDto" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Verify registration for passkey", + "tags": [ + "Passkeys Controller" + ] + } + }, + "/api/passkeys": { + "get": { + "operationId": "PasskeyController_getActivePasskeys", + "parameters": [], + "responses": { + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + }, + "default": { + "description": "Get all passkeys", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetAllPasskeysResponseDto" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all passkeys", + "tags": [ + "Passkeys Controller" + ] + }, + "delete": { + "operationId": "PasskeyController_deletePasskey", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeletePasskeyRequestDto" + } + } + } + }, + "responses": { + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + }, + "default": { + "description": "Delete passkey result", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeletePasskeyResponseDto" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete a passkey by ID", + "tags": [ + "Passkeys Controller" + ] + }, + "patch": { + "operationId": "PasskeyController_updatePasskey", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdatePasskeyRequestDto" + } + } + } + }, + "responses": { + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + }, + "default": { + "description": "Update passkey", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdatePasskeyResponseDto" + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update passkey", + "tags": [ + "Passkeys Controller" + ] + } + }, + "/api/auth/login": { + "post": { + "operationId": "AuthController_login", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LoginRequestDto" + } + } + } + }, + "responses": { + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "401": { + "description": "Unauthorized - Invalid credentials", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "statusCode": { + "type": "number", + "example": 401 + }, + "message": { + "type": "string", + "example": "Invalid credentials" + }, + "error": { + "type": "string", + "example": "Unauthorized" + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + }, + "default": { + "description": "Access token for further requests", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LoginResponseDto" + } + } + } + } + }, + "summary": "Login as superadmin", + "tags": [ + "Auth Controller" + ] + } + }, + "/api/auth/register": { + "post": { + "operationId": "AuthController_register", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RegisterRequestDto" + } + } + } + }, + "responses": { + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "403": { + "description": "Forbidden - Registration is not allowed", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "statusCode": { + "type": "number", + "example": 403 + }, + "message": { + "type": "string", + "example": "Registration is not allowed" + }, + "error": { + "type": "string", + "example": "Forbidden" + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + }, + "default": { + "description": "Access token for further requests", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RegisterResponseDto" + } + } + } + } + }, + "summary": "Register as superadmin", + "tags": [ + "Auth Controller" + ] + } + }, + "/api/auth/status": { + "get": { + "operationId": "AuthController_getStatus", + "parameters": [], + "responses": { + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + }, + "default": { + "description": "Status of the system", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetStatusResponseDto" + } + } + } + } + }, + "summary": "Get the status of the authentication", + "tags": [ + "Auth Controller" + ] + } + }, + "/api/auth/oauth2/authorize": { + "post": { + "operationId": "AuthController_oauth2Authorize", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OAuth2AuthorizeRequestDto" + } + } + } + }, + "responses": { + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + }, + "default": { + "description": "OAuth2 authorization URL", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OAuth2AuthorizeResponseDto" + } + } + } + } + }, + "summary": "Initiate OAuth2 authorization", + "tags": [ + "Auth Controller" + ] + } + }, + "/api/auth/oauth2/callback": { + "post": { + "operationId": "AuthController_oauth2Callback", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OAuth2CallbackRequestDto" + } + } + } + }, + "responses": { + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + }, + "default": { + "description": "Access token for further requests", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OAuth2CallbackResponseDto" + } + } + } + } + }, + "summary": "Callback from OAuth2", + "tags": [ + "Auth Controller" + ] + } + }, + "/api/auth/passkey/authentication/options": { + "get": { + "operationId": "AuthController_passkeyAuthenticationOptions", + "parameters": [], + "responses": { + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + }, + "default": { + "description": "Passkey authentication options", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetPasskeyAuthenticationOptionsResponseDto" + } + } + } + } + }, + "summary": "Get the authentication options for passkey", + "tags": [ + "Auth Controller" + ] + } + }, + "/api/auth/passkey/authentication/verify": { + "post": { + "operationId": "AuthController_passkeyAuthenticationVerify", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VerifyPasskeyAuthenticationRequestDto" + } + } + } + }, + "responses": { + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + }, + "default": { + "description": "JWT access token after successful passkey authentication", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VerifyPasskeyAuthenticationResponseDto" + } + } + } + } + }, + "summary": "Verify the authentication for passkey", + "tags": [ + "Auth Controller" + ] + } + }, + "/api/subscription-page-configs": { + "get": { + "operationId": "SubscriptionPageConfigController_getAllConfigs", + "parameters": [], + "responses": { + "200": { + "description": "Subscription page configs retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetSubscriptionPageConfigsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all subscription page configs", + "tags": [ + "Subscription Page Configs Controller" + ] + }, + "patch": { + "operationId": "SubscriptionPageConfigController_updateConfig", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateSubscriptionPageConfigRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Subscription page config updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateSubscriptionPageConfigResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update subscription page config", + "tags": [ + "Subscription Page Configs Controller" + ] + }, + "post": { + "operationId": "SubscriptionPageConfigController_createConfig", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateSubscriptionPageConfigRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Subscription page config created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateSubscriptionPageConfigResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Create subscription page config", + "tags": [ + "Subscription Page Configs Controller" + ] + } + }, + "/api/subscription-page-configs/{uuid}": { + "get": { + "operationId": "SubscriptionPageConfigController_getConfigByUuid", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "Subscription page config UUID", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Subscription page config retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetSubscriptionPageConfigResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get subscription page config by uuid", + "tags": [ + "Subscription Page Configs Controller" + ] + }, + "delete": { + "operationId": "SubscriptionPageConfigController_deleteConfig", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "Subscription page config UUID", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Subscription page config deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteSubscriptionPageConfigResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete subscription page config", + "tags": [ + "Subscription Page Configs Controller" + ] + } + }, + "/api/subscription-page-configs/actions/reorder": { + "post": { + "operationId": "SubscriptionPageConfigController_reorderSubscriptionPageConfigs", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReorderSubscriptionPageConfigsRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Subscription page configs reordered successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReorderSubscriptionPageConfigsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Reorder subscription page configs", + "tags": [ + "Subscription Page Configs Controller" + ] + } + }, + "/api/subscription-page-configs/actions/clone": { + "post": { + "operationId": "SubscriptionPageConfigController_cloneSubscriptionPageConfig", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloneSubscriptionPageConfigRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Subscription page config cloned successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloneSubscriptionPageConfigResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Clone subscription page config", + "tags": [ + "Subscription Page Configs Controller" + ] + } + }, + "/api/users": { + "post": { + "operationId": "UsersController_createUser", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateUserRequestDto" + } + } + } + }, + "responses": { + "201": { + "description": "User created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateUserResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Create a new user", + "tags": [ + "Users Controller" + ] + }, + "patch": { + "operationId": "UsersController_updateUser", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateUserRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "User updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateUserResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update a user by UUID or username", + "tags": [ + "Users Controller" + ] + }, + "get": { + "operationId": "UsersController_getAllUsers", + "parameters": [ + { + "name": "size", + "required": false, + "in": "query", + "description": "Page size for pagination", + "schema": { + "type": "number" + } + }, + { + "name": "start", + "required": false, + "in": "query", + "description": "Offset for pagination", + "schema": { + "type": "number" + } + } + ], + "responses": { + "200": { + "description": "Users fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetAllUsersResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all users", + "tags": [ + "Users Controller" + ] + } + }, + "/api/users/{uuid}": { + "delete": { + "operationId": "UsersController_deleteUser", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "User deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteUserResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "User not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete user", + "tags": [ + "Users Controller" + ] + }, + "get": { + "operationId": "UsersController_getUserByUuid", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "User fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetUserByUuidResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "User not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get user by UUID", + "tags": [ + "Users Controller" + ] + } + }, + "/api/users/tags": { + "get": { + "operationId": "UsersController_getAllTags", + "parameters": [], + "responses": { + "200": { + "description": "Tags fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetAllTagsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all existing user tags", + "tags": [ + "Users Controller" + ] + } + }, + "/api/users/{uuid}/accessible-nodes": { + "get": { + "operationId": "UsersController_getUserAccessibleNodes", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "User accessible nodes fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetUserAccessibleNodesResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "User not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get user accessible nodes", + "tags": [ + "Users Controller" + ] + } + }, + "/api/users/{uuid}/subscription-request-history": { + "get": { + "operationId": "UsersController_getUserSubscriptionRequestHistory", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "User subscription request history fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetUserSubscriptionRequestHistoryResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "User not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get user subscription request history, recent 24 records", + "tags": [ + "Users Controller" + ] + } + }, + "/api/users/by-short-uuid/{shortUuid}": { + "get": { + "operationId": "UsersController_getUserByShortUuid", + "parameters": [ + { + "name": "shortUuid", + "required": true, + "in": "path", + "description": "Short UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "User fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetUserByShortUuidResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "User not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get user by Short UUID", + "tags": [ + "Users Controller" + ] + } + }, + "/api/users/by-username/{username}": { + "get": { + "operationId": "UsersController_getUserByUsername", + "parameters": [ + { + "name": "username", + "required": true, + "in": "path", + "description": "Username of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "User fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetUserByUsernameResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "User not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get user by username", + "tags": [ + "Users Controller" + ] + } + }, + "/api/users/by-id/{id}": { + "get": { + "operationId": "UsersController_getUserById", + "parameters": [ + { + "name": "id", + "required": true, + "in": "path", + "description": "ID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "User fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetUserByIdResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "User not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get user by ID", + "tags": [ + "Users Controller" + ] + } + }, + "/api/users/by-telegram-id/{telegramId}": { + "get": { + "operationId": "UsersController_getUserByTelegramId", + "parameters": [ + { + "name": "telegramId", + "required": true, + "in": "path", + "description": "Telegram ID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Users fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetUserByTelegramIdResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get users by telegram ID", + "tags": [ + "Users Controller" + ] + } + }, + "/api/users/by-email/{email}": { + "get": { + "operationId": "UsersController_getUsersByEmail", + "parameters": [ + { + "name": "email", + "required": true, + "in": "path", + "description": "Email of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Users fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetUserByEmailResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get users by email", + "tags": [ + "Users Controller" + ] + } + }, + "/api/users/by-tag/{tag}": { + "get": { + "operationId": "UsersController_getUsersByTag", + "parameters": [ + { + "name": "tag", + "required": true, + "in": "path", + "description": "Tag of the user", + "schema": { + "example": "PROMO_1", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Users fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetUserByTagResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get users by tag", + "tags": [ + "Users Controller" + ] + } + }, + "/api/users/{uuid}/actions/revoke": { + "post": { + "operationId": "UsersController_revokeUserSubscription", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the user", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RevokeUserSubscriptionBodyDto" + } + } + } + }, + "responses": { + "200": { + "description": "User subscription revoked successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RevokeUserSubscriptionResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "User not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Revoke user subscription", + "tags": [ + "Users Controller" + ] + } + }, + "/api/users/{uuid}/actions/disable": { + "post": { + "operationId": "UsersController_disableUser", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "User disabled successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DisableUserResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "User not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Disable user", + "tags": [ + "Users Controller" + ] + } + }, + "/api/users/{uuid}/actions/enable": { + "post": { + "operationId": "UsersController_enableUser", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "User enabled successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EnableUserResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "User not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Enable user", + "tags": [ + "Users Controller" + ] + } + }, + "/api/users/{uuid}/actions/reset-traffic": { + "post": { + "operationId": "UsersController_resetUserTraffic", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "User traffic reset successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResetUserTrafficResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "User not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Reset user traffic", + "tags": [ + "Users Controller" + ] + } + }, + "/api/users/resolve": { + "post": { + "operationId": "UsersController_resolveUser", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResolveUserRequestBodyDto" + } + } + } + }, + "responses": { + "200": { + "description": "User resolved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResolveUserResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "User not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Resolve a user", + "tags": [ + "Users Controller" + ] + } + }, + "/api/users/bulk/delete-by-status": { + "post": { + "operationId": "UsersBulkActionsController_bulkDeleteUsersByStatus", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkDeleteUsersByStatusRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Users deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkDeleteUsersByStatusResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Bulk delete users by status", + "tags": [ + "Users Bulk Actions Controller" + ] + } + }, + "/api/users/bulk/delete": { + "post": { + "operationId": "UsersBulkActionsController_bulkDeleteUsers", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkDeleteUsersRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Users deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkDeleteUsersResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Bulk delete users by UUIDs", + "tags": [ + "Users Bulk Actions Controller" + ] + } + }, + "/api/users/bulk/revoke-subscription": { + "post": { + "operationId": "UsersBulkActionsController_bulkRevokeUsersSubscription", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkRevokeUsersSubscriptionRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Users subscription revoked successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkRevokeUsersSubscriptionResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Revoke users subscription by User UUIDs", + "tags": [ + "Users Bulk Actions Controller" + ] + } + }, + "/api/users/bulk/reset-traffic": { + "post": { + "operationId": "UsersBulkActionsController_bulkResetUserTraffic", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkResetTrafficUsersRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Users traffic reset successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkResetTrafficUsersResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Bulk reset traffic users by UUIDs", + "tags": [ + "Users Bulk Actions Controller" + ] + } + }, + "/api/users/bulk/update": { + "post": { + "operationId": "UsersBulkActionsController_bulkUpdateUsers", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkUpdateUsersRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Users updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkUpdateUsersResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Bulk update users by UUIDs", + "tags": [ + "Users Bulk Actions Controller" + ] + } + }, + "/api/users/bulk/update-squads": { + "post": { + "operationId": "UsersBulkActionsController_bulkUpdateUsersInternalSquads", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkUpdateUsersSquadsRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Internal squads updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkUpdateUsersSquadsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Bulk update users internal squads by UUIDs", + "tags": [ + "Users Bulk Actions Controller" + ] + } + }, + "/api/users/bulk/extend-expiration-date": { + "post": { + "description": "Bulk extend all users expiration date", + "operationId": "UsersBulkActionsController_bulkExtendExpirationDate", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkExtendExpirationDateRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Users expiration date extended successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkExtendExpirationDateResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Bulk Extend Users Expiration Date", + "tags": [ + "Users Bulk Actions Controller" + ] + } + }, + "/api/users/bulk/all/update": { + "post": { + "operationId": "UsersBulkActionsController_bulkUpdateAllUsers", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkAllUpdateUsersRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "All users updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkAllUpdateUsersResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Bulk update all users", + "tags": [ + "Users Bulk Actions Controller" + ] + } + }, + "/api/users/bulk/all/reset-traffic": { + "post": { + "description": "Bulk reset all users traffic", + "operationId": "UsersBulkActionsController_bulkAllResetUserTraffic", + "parameters": [], + "responses": { + "200": { + "description": "All users traffic reset successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkAllResetTrafficUsersResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Bulk Reset All Users Traffic", + "tags": [ + "Users Bulk Actions Controller" + ] + } + }, + "/api/users/bulk/all/extend-expiration-date": { + "post": { + "description": "Bulk extend all users expiration date", + "operationId": "UsersBulkActionsController_bulkAllExtendExpirationDate", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkAllExtendExpirationDateRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "All users expiration date extended successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkAllExtendExpirationDateResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Bulk Extend All Users Expiration Date", + "tags": [ + "Users Bulk Actions Controller" + ] + } + }, + "/api/sub/{shortUuid}/info": { + "get": { + "operationId": "SubscriptionController_getSubscriptionInfoByShortUuid", + "parameters": [ + { + "name": "shortUuid", + "required": true, + "in": "path", + "description": "Short UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Subscription info fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetSubscriptionInfoResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "summary": "Get Subscription Info by Short UUID", + "tags": [ + "[Public] Subscription Controller" + ] + } + }, + "/api/sub/{shortUuid}": { + "get": { + "operationId": "SubscriptionController_getSubscription", + "parameters": [ + { + "name": "shortUuid", + "required": true, + "in": "path", + "description": "Short UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "[Public] Subscription Controller" + ] + } + }, + "/api/sub/{shortUuid}/{clientType}": { + "get": { + "operationId": "SubscriptionController_getSubscriptionByClientType", + "parameters": [ + { + "name": "clientType", + "required": true, + "in": "path", + "description": "Client type", + "schema": { + "enum": [ + "stash", + "singbox", + "mihomo", + "json", + "v2ray-json", + "clash" + ], + "type": "string" + } + }, + { + "name": "shortUuid", + "required": true, + "in": "path", + "description": "Short UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "[Public] Subscription Controller" + ] + } + }, + "/api/subscriptions": { + "get": { + "operationId": "SubscriptionsController_getAllSubscriptions", + "parameters": [ + { + "name": "size", + "required": false, + "in": "query", + "description": "Number of subscriptions to return, no more than 500", + "schema": { + "example": 25, + "type": "number" + } + }, + { + "name": "start", + "required": false, + "in": "query", + "description": "Start index (offset) of the users to return, default is 0", + "schema": { + "example": 0, + "type": "number" + } + } + ], + "responses": { + "200": { + "description": "Users fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetAllSubscriptionsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all subscriptions", + "tags": [ + "[Protected] Subscriptions Controller" + ] + } + }, + "/api/subscriptions/by-username/{username}": { + "get": { + "operationId": "SubscriptionsController_getSubscriptionByUsername", + "parameters": [ + { + "name": "username", + "required": true, + "in": "path", + "description": "Username of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Subscription fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetSubscriptionByUsernameResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "User not found", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string", + "format": "date-time" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get subscription by username", + "tags": [ + "[Protected] Subscriptions Controller" + ] + } + }, + "/api/subscriptions/by-short-uuid/{shortUuid}": { + "get": { + "operationId": "SubscriptionsController_getSubscriptionByShortUuidProtected", + "parameters": [ + { + "name": "shortUuid", + "required": true, + "in": "path", + "description": "Short uuid of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Subscription fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetSubscriptionByShortUuidProtectedResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "User not found", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string", + "format": "date-time" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get subscription by short uuid (protected route)", + "tags": [ + "[Protected] Subscriptions Controller" + ] + } + }, + "/api/subscriptions/by-uuid/{uuid}": { + "get": { + "operationId": "SubscriptionsController_getSubscriptionByUuid", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "Uuid of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Subscription fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetSubscriptionByUuidResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "User not found", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string", + "format": "date-time" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get subscription by uuid", + "tags": [ + "[Protected] Subscriptions Controller" + ] + } + }, + "/api/subscriptions/by-short-uuid/{shortUuid}/raw": { + "get": { + "operationId": "SubscriptionsController_getRawSubscriptionByShortUuid", + "parameters": [ + { + "name": "withDisabledHosts", + "required": false, + "in": "query", + "description": "Include disabled hosts in the subscription. Default is false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "shortUuid", + "required": true, + "in": "path", + "description": "Short UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Raw subscription fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetRawSubscriptionByShortUuidResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get Raw Subscription by Short UUID", + "tags": [ + "[Protected] Subscriptions Controller" + ] + } + }, + "/api/subscriptions/subpage-config/{shortUuid}": { + "get": { + "operationId": "SubscriptionsController_getSubpageConfigByShortUuid", + "parameters": [ + { + "name": "shortUuid", + "required": true, + "in": "path", + "description": "Short UUID of the user", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetSubpageConfigByShortUuidRequestBodyDto" + } + } + } + }, + "responses": { + "200": { + "description": "Subpage config fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetSubpageConfigByShortUuidResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get Subpage Config by Short UUID", + "tags": [ + "[Protected] Subscriptions Controller" + ] + } + }, + "/api/subscriptions/connection-keys/{uuid}": { + "get": { + "operationId": "SubscriptionsController_getConnectionKeysByUuid", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Connection keys fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetConnectionKeysByUuidResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get connection keys (base64 format) by uuid", + "tags": [ + "[Protected] Subscriptions Controller" + ] + } + }, + "/api/subscription-templates": { + "get": { + "operationId": "SubscriptionTemplateController_getAllTemplates", + "parameters": [], + "responses": { + "200": { + "description": "Templates retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetTemplatesResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all subscription templates (wihout content)", + "tags": [ + "Subscription Template Controller" + ] + }, + "patch": { + "operationId": "SubscriptionTemplateController_updateTemplate", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateTemplateRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Template updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateTemplateResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update subscription template", + "tags": [ + "Subscription Template Controller" + ] + }, + "post": { + "operationId": "SubscriptionTemplateController_createTemplate", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateSubscriptionTemplateRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Template created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateSubscriptionTemplateResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Create subscription template", + "tags": [ + "Subscription Template Controller" + ] + } + }, + "/api/subscription-templates/{uuid}": { + "get": { + "operationId": "SubscriptionTemplateController_getTemplateByUuid", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "Template UUID", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Template retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetTemplateResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get subscription template by uuid", + "tags": [ + "Subscription Template Controller" + ] + }, + "delete": { + "operationId": "SubscriptionTemplateController_deleteTemplate", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "Template UUID", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Template deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteSubscriptionTemplateResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete subscription template", + "tags": [ + "Subscription Template Controller" + ] + } + }, + "/api/subscription-templates/actions/reorder": { + "post": { + "operationId": "SubscriptionTemplateController_reorderSubscriptionTemplates", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReorderSubscriptionTemplatesRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Subscription templates reordered successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReorderSubscriptionTemplatesResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Reorder subscription templates", + "tags": [ + "Subscription Template Controller" + ] + } + }, + "/api/tokens": { + "post": { + "description": "This endpoint is forbidden to use via \"API-key\". It can only be used with an admin JWT-token.", + "operationId": "ApiTokensController_create", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateApiTokenRequestDto" + } + } + } + }, + "responses": { + "201": { + "description": "Token created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateApiTokenResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Create a new API token", + "tags": [ + "API Tokens Controller" + ] + }, + "get": { + "description": "This endpoint is forbidden to use via \"API-key\". It can only be used with admin JWT-token.", + "operationId": "ApiTokensController_findAll", + "parameters": [], + "responses": { + "200": { + "description": "Tokens fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FindAllApiTokensResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all API tokens", + "tags": [ + "API Tokens Controller" + ] + } + }, + "/api/tokens/{uuid}": { + "delete": { + "description": "This endpoint is forbidden to use via \"API-key\". It can be used only with an admin JWT-token.", + "operationId": "ApiTokensController_delete", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the API token", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Token deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteApiTokenResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete an API token by UUID", + "tags": [ + "API Tokens Controller" + ] + } + }, + "/api/config-profiles": { + "get": { + "operationId": "ConfigProfileController_getConfigProfiles", + "parameters": [], + "responses": { + "200": { + "description": "Config profiles retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetConfigProfilesResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get config profiles", + "tags": [ + "Config Profiles Controller" + ] + }, + "post": { + "operationId": "ConfigProfileController_createConfigProfile", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateConfigProfileRequestDto" + } + } + } + }, + "responses": { + "201": { + "description": "Config profile created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateConfigProfileResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "409": { + "description": "Config profile name already exists or inbound tags are not unique. Inbound tags must be unique in global scope." + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Create config profile", + "tags": [ + "Config Profiles Controller" + ] + }, + "patch": { + "operationId": "ConfigProfileController_updateConfigProfile", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateConfigProfileRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Config profile updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateConfigProfileResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "Config profile not found" + }, + "409": { + "description": "Config profile name already exists or inbound tags are not unique. Inbound tags must be unique in global scope." + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update Core Config in specific config profile", + "tags": [ + "Config Profiles Controller" + ] + } + }, + "/api/config-profiles/inbounds": { + "get": { + "operationId": "ConfigProfileController_getAllInbounds", + "parameters": [], + "responses": { + "200": { + "description": "Inbounds retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetAllInboundsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all inbounds from all config profiles", + "tags": [ + "Config Profiles Controller" + ] + } + }, + "/api/config-profiles/{uuid}/inbounds": { + "get": { + "operationId": "ConfigProfileController_getInboundsByProfileUuid", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Inbounds retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetInboundsByProfileUuidResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "Config profile not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get inbounds by profile uuid", + "tags": [ + "Config Profiles Controller" + ] + } + }, + "/api/config-profiles/{uuid}": { + "get": { + "operationId": "ConfigProfileController_getConfigProfileByUuid", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Config profile retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetConfigProfileByUuidResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "Config profile not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get config profile by uuid", + "tags": [ + "Config Profiles Controller" + ] + }, + "delete": { + "operationId": "ConfigProfileController_deleteConfigProfileByUuid", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Config profile deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteConfigProfileResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "Config profile not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete config profile", + "tags": [ + "Config Profiles Controller" + ] + } + }, + "/api/config-profiles/{uuid}/computed-config": { + "get": { + "operationId": "ConfigProfileController_getComputedConfigProfileByUuid", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Computed config profile retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetComputedConfigProfileByUuidResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "Config profile not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get computed config profile by uuid", + "tags": [ + "Config Profiles Controller" + ] + } + }, + "/api/config-profiles/actions/reorder": { + "post": { + "operationId": "ConfigProfileController_reorderConfigProfiles", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReorderConfigProfilesRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Config profiles reordered successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReorderConfigProfilesResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Reorder config profiles", + "tags": [ + "Config Profiles Controller" + ] + } + }, + "/api/snippets": { + "get": { + "operationId": "SnippetsController_getSnippets", + "parameters": [], + "responses": { + "200": { + "description": "Snippets retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetSnippetsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get snippets", + "tags": [ + "Snippets Controller" + ] + }, + "delete": { + "operationId": "SnippetsController_deleteSnippetByName", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteSnippetRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Snippet deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteSnippetResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "Snippet not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete snippet", + "tags": [ + "Snippets Controller" + ] + }, + "post": { + "operationId": "SnippetsController_createSnippet", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateSnippetRequestDto" + } + } + } + }, + "responses": { + "201": { + "description": "Snippet created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateSnippetResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "409": { + "description": "Snippet name already exists." + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Create snippet", + "tags": [ + "Snippets Controller" + ] + }, + "patch": { + "operationId": "SnippetsController_updateSnippet", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateSnippetRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Snippet updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateSnippetResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "Snippet not found" + }, + "409": { + "description": "Snippet name already exists." + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update snippet", + "tags": [ + "Snippets Controller" + ] + } + }, + "/api/internal-squads": { + "get": { + "operationId": "InternalSquadController_getInternalSquads", + "parameters": [], + "responses": { + "200": { + "description": "Internal squads retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetInternalSquadsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all internal squads", + "tags": [ + "Internal Squads Controller" + ] + }, + "post": { + "operationId": "InternalSquadController_createInternalSquad", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateInternalSquadRequestDto" + } + } + } + }, + "responses": { + "201": { + "description": "Internal squad created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateInternalSquadResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "409": { + "description": "Internal squad already exists" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Create internal squad", + "tags": [ + "Internal Squads Controller" + ] + }, + "patch": { + "operationId": "InternalSquadController_updateInternalSquad", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateInternalSquadRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Internal squad updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateInternalSquadResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "Internal squad not found" + }, + "409": { + "description": "Internal squad already exists" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update internal squad", + "tags": [ + "Internal Squads Controller" + ] + } + }, + "/api/internal-squads/{uuid}": { + "get": { + "operationId": "InternalSquadController_getInternalSquadByUuid", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Internal squad retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetInternalSquadByUuidResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get internal squad by uuid", + "tags": [ + "Internal Squads Controller" + ] + }, + "delete": { + "operationId": "InternalSquadController_deleteInternalSquad", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Internal squad deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteInternalSquadResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "Internal squad not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete internal squad", + "tags": [ + "Internal Squads Controller" + ] + } + }, + "/api/internal-squads/{uuid}/accessible-nodes": { + "get": { + "operationId": "InternalSquadController_getInternalSquadAccessibleNodes", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the internal squad", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Internal squad accessible nodes fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetInternalSquadAccessibleNodesResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "Internal squad not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get internal squad accessible nodes", + "tags": [ + "Internal Squads Controller" + ] + } + }, + "/api/internal-squads/{uuid}/bulk-actions/add-users": { + "post": { + "operationId": "InternalSquadController_addUsersToInternalSquad", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Task added to internal job queue", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AddUsersToInternalSquadResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "Internal squad not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Add all users to internal squad", + "tags": [ + "Internal Squads Controller" + ] + } + }, + "/api/internal-squads/{uuid}/bulk-actions/remove-users": { + "delete": { + "operationId": "InternalSquadController_removeUsersFromInternalSquad", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Task added to internal job queue", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RemoveUsersFromInternalSquadResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "Internal squad not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete users from internal squad", + "tags": [ + "Internal Squads Controller" + ] + } + }, + "/api/internal-squads/actions/reorder": { + "post": { + "operationId": "InternalSquadController_reorderInternalSquads", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReorderInternalSquadsRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Internal squads reordered successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReorderInternalSquadsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Reorder internal squads", + "tags": [ + "Internal Squads Controller" + ] + } + }, + "/api/external-squads": { + "get": { + "operationId": "ExternalSquadController_getExternalSquads", + "parameters": [], + "responses": { + "200": { + "description": "External squads retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetExternalSquadsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all external squads", + "tags": [ + "External Squads Controller" + ] + }, + "post": { + "operationId": "ExternalSquadController_createExternalSquad", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateExternalSquadRequestDto" + } + } + } + }, + "responses": { + "201": { + "description": "External squad created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateExternalSquadResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "409": { + "description": "External squad already exists" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Create external squad", + "tags": [ + "External Squads Controller" + ] + }, + "patch": { + "operationId": "ExternalSquadController_updateExternalSquad", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateExternalSquadRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "External squad updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateExternalSquadResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "External squad not found" + }, + "409": { + "description": "External squad already exists" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update external squad", + "tags": [ + "External Squads Controller" + ] + } + }, + "/api/external-squads/{uuid}": { + "get": { + "operationId": "ExternalSquadController_getExternalSquadByUuid", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "External squad retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetExternalSquadByUuidResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get external squad by uuid", + "tags": [ + "External Squads Controller" + ] + }, + "delete": { + "operationId": "ExternalSquadController_deleteExternalSquad", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "External squad deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteExternalSquadResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "External squad not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete external squad", + "tags": [ + "External Squads Controller" + ] + } + }, + "/api/external-squads/{uuid}/bulk-actions/add-users": { + "post": { + "operationId": "ExternalSquadController_addUsersToExternalSquad", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Task added to external job queue", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AddUsersToExternalSquadResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "External squad not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Add all users to external squad", + "tags": [ + "External Squads Controller" + ] + } + }, + "/api/external-squads/{uuid}/bulk-actions/remove-users": { + "delete": { + "operationId": "ExternalSquadController_removeUsersFromExternalSquad", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Task added to external job queue", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RemoveUsersFromExternalSquadResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "External squad not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete users from external squad", + "tags": [ + "External Squads Controller" + ] + } + }, + "/api/external-squads/actions/reorder": { + "post": { + "operationId": "ExternalSquadController_reorderExternalSquads", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReorderExternalSquadsRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "External squads reordered successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReorderExternalSquadsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Reorder external squads", + "tags": [ + "External Squads Controller" + ] + } + }, + "/api/keygen": { + "get": { + "operationId": "KeygenController_generateKey", + "parameters": [], + "responses": { + "200": { + "description": "Get SECRET_KEY for Remnawave Node", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetPubKeyResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get SECRET_KEY for Remnawave Node", + "tags": [ + "Keygen Controller" + ] + } + }, + "/api/nodes/tags": { + "get": { + "operationId": "NodesController_getAllNodesTags", + "parameters": [], + "responses": { + "200": { + "description": "Nodes tags fetched", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetAllNodesTagsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all existing nodes tags", + "tags": [ + "Nodes Controller" + ] + } + }, + "/api/nodes": { + "post": { + "operationId": "NodesController_createNode", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateNodeRequestDto" + } + } + } + }, + "responses": { + "201": { + "description": "Node created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateNodeResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Create a new node", + "tags": [ + "Nodes Controller" + ] + }, + "get": { + "operationId": "NodesController_getAllNodes", + "parameters": [], + "responses": { + "200": { + "description": "Nodes fetched", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetAllNodesResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all nodes", + "tags": [ + "Nodes Controller" + ] + }, + "patch": { + "operationId": "NodesController_updateNode", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateNodeRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Node updated", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateNodeResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update node", + "tags": [ + "Nodes Controller" + ] + } + }, + "/api/nodes/{uuid}": { + "get": { + "operationId": "NodesController_getOneNode", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "Node UUID", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Node fetched", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetOneNodeResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get node by UUID", + "tags": [ + "Nodes Controller" + ] + }, + "delete": { + "operationId": "NodesController_deleteNode", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "Node UUID", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Node deleted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteNodeResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete a node", + "tags": [ + "Nodes Controller" + ] + } + }, + "/api/nodes/{uuid}/actions/enable": { + "post": { + "operationId": "NodesController_enableNode", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "Node UUID", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Node enabled", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EnableNodeResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Enable a node", + "tags": [ + "Nodes Controller" + ] + } + }, + "/api/nodes/{uuid}/actions/disable": { + "post": { + "operationId": "NodesController_disableNode", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "Node UUID", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Node disabled", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DisableNodeResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Disable a node", + "tags": [ + "Nodes Controller" + ] + } + }, + "/api/nodes/{uuid}/actions/restart": { + "post": { + "operationId": "NodesController_restartNode", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "Node UUID", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Node restarted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RestartNodeResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Restart node", + "tags": [ + "Nodes Controller" + ] + } + }, + "/api/nodes/{uuid}/actions/reset-traffic": { + "post": { + "operationId": "NodesController_resetNodeTraffic", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "Node UUID", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Event sent", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResetNodeTrafficResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Reset Node Traffic", + "tags": [ + "Nodes Controller" + ] + } + }, + "/api/nodes/actions/restart-all": { + "post": { + "operationId": "NodesController_restartAllNodes", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RestartAllNodesRequestBodyDto" + } + } + } + }, + "responses": { + "200": { + "description": "All nodes restarted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RestartAllNodesResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Restart all nodes", + "tags": [ + "Nodes Controller" + ] + } + }, + "/api/nodes/actions/reorder": { + "post": { + "operationId": "NodesController_reorderNodes", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReorderNodeRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Nodes reordered successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReorderNodeResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Reorder nodes", + "tags": [ + "Nodes Controller" + ] + } + }, + "/api/nodes/bulk-actions/profile-modification": { + "post": { + "operationId": "NodesController_profileModification", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProfileModificationRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Event sent successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProfileModificationResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Modify Inbounds & Profile for many nodes", + "tags": [ + "Nodes Controller" + ] + } + }, + "/api/nodes/bulk-actions": { + "post": { + "operationId": "NodesController_bulkNodesActions", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkNodesActionsRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Event sent successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkNodesActionsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Perform actions for many nodes", + "tags": [ + "Nodes Controller" + ] + } + }, + "/api/nodes/bulk-actions/update": { + "post": { + "operationId": "NodesController_bulkNodesUpdate", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkNodesUpdateRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Event sent successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkNodesUpdateResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update many nodes", + "tags": [ + "Nodes Controller" + ] + } + }, + "/api/node-plugins/torrent-blocker": { + "get": { + "operationId": "TorrentBlockerReportsController_getTorrentBlockerReports", + "parameters": [ + { + "name": "size", + "required": false, + "in": "query", + "description": "Page size for pagination", + "schema": { + "type": "number" + } + }, + { + "name": "start", + "required": false, + "in": "query", + "description": "Offset for pagination", + "schema": { + "type": "number" + } + } + ], + "responses": { + "200": { + "description": "Torrent blocker reports fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetTorrentBlockerReportsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get Torrent Blocker Reports", + "tags": [ + "Node Plugins Controller" + ] + } + }, + "/api/node-plugins/torrent-blocker/stats": { + "get": { + "operationId": "TorrentBlockerReportsController_getTorrentBlockerReportsStats", + "parameters": [], + "responses": { + "200": { + "description": "Torrent blocker reports stats fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetTorrentBlockerReportsStatsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get Torrent Blocker Reports Stats", + "tags": [ + "Node Plugins Controller" + ] + } + }, + "/api/node-plugins/torrent-blocker/truncate": { + "delete": { + "operationId": "TorrentBlockerReportsController_truncateTorrentBlockerReports", + "parameters": [], + "responses": { + "200": { + "description": "Torrent blocker reports truncated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TruncateTorrentBlockerReportsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Truncate Torrent Blocker Reports", + "tags": [ + "Node Plugins Controller" + ] + } + }, + "/api/node-plugins": { + "get": { + "operationId": "NodePluginController_getAllConfigs", + "parameters": [], + "responses": { + "200": { + "description": "Node plugins retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetNodePluginsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all Node Plugins", + "tags": [ + "Node Plugins Controller" + ] + }, + "patch": { + "operationId": "NodePluginController_updateConfig", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateNodePluginRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Node plugin updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateNodePluginResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update Node Plugin", + "tags": [ + "Node Plugins Controller" + ] + }, + "post": { + "operationId": "NodePluginController_createConfig", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateNodePluginRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Node plugin created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateNodePluginResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Create Node Plugin", + "tags": [ + "Node Plugins Controller" + ] + } + }, + "/api/node-plugins/{uuid}": { + "get": { + "operationId": "NodePluginController_getConfigByUuid", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "Node plugin UUID", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Node plugin retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetNodePluginResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get Node Plugin by uuid", + "tags": [ + "Node Plugins Controller" + ] + }, + "delete": { + "operationId": "NodePluginController_deleteConfig", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "Node plugin UUID", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Node plugin deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteNodePluginResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete Node Plugin", + "tags": [ + "Node Plugins Controller" + ] + } + }, + "/api/node-plugins/actions/reorder": { + "post": { + "operationId": "NodePluginController_reorderNodePlugins", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReorderNodePluginsRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Node plugins reordered successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReorderNodePluginsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Reorder Node Plugins", + "tags": [ + "Node Plugins Controller" + ] + } + }, + "/api/node-plugins/actions/clone": { + "post": { + "operationId": "NodePluginController_cloneNodePlugin", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloneNodePluginRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Node plugin cloned successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloneNodePluginResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Clone Node Plugin", + "tags": [ + "Node Plugins Controller" + ] + } + }, + "/api/node-plugins/executor": { + "post": { + "operationId": "NodePluginController_pluginExecutor", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PluginExecutorRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Node plugin cloned successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PluginExecutorResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Execute command on node plugins", + "tags": [ + "Node Plugins Controller" + ] + } + }, + "/api/hosts/tags": { + "get": { + "operationId": "HostsController_getAllHostTags", + "parameters": [], + "responses": { + "200": { + "description": "Host tags fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetAllHostTagsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all existing host tags", + "tags": [ + "Hosts Controller" + ] + } + }, + "/api/hosts": { + "post": { + "operationId": "HostsController_createHost", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateHostRequestDto" + } + } + } + }, + "responses": { + "201": { + "description": "Host created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateHostResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Create a new host", + "tags": [ + "Hosts Controller" + ] + }, + "patch": { + "operationId": "HostsController_updateHost", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateHostRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Host updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateHostResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update a host", + "tags": [ + "Hosts Controller" + ] + }, + "get": { + "operationId": "HostsController_getAllHosts", + "parameters": [], + "responses": { + "200": { + "description": "Hosts fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetAllHostsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all hosts", + "tags": [ + "Hosts Controller" + ] + } + }, + "/api/hosts/{uuid}": { + "get": { + "operationId": "HostsController_getOneHost", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the host", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Host fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetOneHostResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get a host by UUID", + "tags": [ + "Hosts Controller" + ] + }, + "delete": { + "operationId": "HostsController_deleteHost", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the host", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Host deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteHostResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "Host not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete a host by UUID", + "tags": [ + "Hosts Controller" + ] + } + }, + "/api/hosts/actions/reorder": { + "post": { + "operationId": "HostsController_reorderHosts", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReorderHostRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Hosts reordered successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReorderHostResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Reorder hosts", + "tags": [ + "Hosts Controller" + ] + } + }, + "/api/hosts/bulk/delete": { + "post": { + "operationId": "HostsBulkActionsController_deleteHosts", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkDeleteHostsRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Hosts deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkDeleteHostsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete hosts by UUIDs", + "tags": [ + "Hosts Bulk Actions Controller" + ] + } + }, + "/api/hosts/bulk/disable": { + "post": { + "operationId": "HostsBulkActionsController_disableHosts", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkDisableHostsRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Hosts disabled successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkDisableHostsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Disable hosts by UUIDs", + "tags": [ + "Hosts Bulk Actions Controller" + ] + } + }, + "/api/hosts/bulk/enable": { + "post": { + "operationId": "HostsBulkActionsController_enableHosts", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkEnableHostsRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Hosts enabled successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkEnableHostsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Enable hosts by UUIDs", + "tags": [ + "Hosts Bulk Actions Controller" + ] + } + }, + "/api/hosts/bulk/set-inbound": { + "post": { + "operationId": "HostsBulkActionsController_setInboundToHosts", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SetInboundToManyHostsRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Hosts inbound set successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SetInboundToManyHostsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Set inbound to hosts by UUIDs", + "tags": [ + "Hosts Bulk Actions Controller" + ] + } + }, + "/api/hosts/bulk/set-port": { + "post": { + "operationId": "HostsBulkActionsController_setPortToHosts", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SetPortToManyHostsRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Hosts port set successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SetPortToManyHostsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Set port to hosts by UUIDs", + "tags": [ + "Hosts Bulk Actions Controller" + ] + } + }, + "/api/bandwidth-stats/nodes/{uuid}/users/legacy": { + "get": { + "operationId": "BandwidthStatsNodesController_getNodeUserUsage", + "parameters": [ + { + "name": "start", + "required": true, + "in": "query", + "description": "Start date", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "name": "end", + "required": true, + "in": "query", + "description": "End date", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the node", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Nodes users usage by range (legacy) fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetLegacyStatsNodesUsersUsageResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get Node User Usage by Range and Node UUID (Legacy)", + "tags": [ + "Bandwidth Stats Controller" + ] + } + }, + "/api/bandwidth-stats/nodes/{uuid}/users": { + "get": { + "operationId": "BandwidthStatsNodesController_getStatsNodeUsersUsage", + "parameters": [ + { + "name": "topUsersLimit", + "required": true, + "in": "query", + "description": "Limit of top users to return", + "schema": { + "type": "number" + } + }, + { + "name": "start", + "required": true, + "in": "query", + "description": "Start date (YYYY-MM-DD)", + "schema": { + "format": "date", + "example": "2026-01-31", + "type": "string" + } + }, + { + "name": "end", + "required": true, + "in": "query", + "description": "End date (YYYY-MM-DD)", + "schema": { + "format": "date", + "example": "2026-01-01", + "type": "string" + } + }, + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the node", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Stats node users usage fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetStatsNodeUsersUsageResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get Node Users Usage by Node UUID", + "tags": [ + "Bandwidth Stats Controller" + ] + } + }, + "/api/bandwidth-stats/users/{uuid}/legacy": { + "get": { + "operationId": "BandwidthStatsUsersController_getUserUsageByRange", + "parameters": [ + { + "name": "start", + "required": true, + "in": "query", + "description": "Start date", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "name": "end", + "required": true, + "in": "query", + "description": "End date", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "User usage by range (legacy) fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetLegacyStatsUserUsageResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "User not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get User Usage by Range (Legacy)", + "tags": [ + "Bandwidth Stats Controller" + ] + } + }, + "/api/bandwidth-stats/users/{uuid}": { + "get": { + "operationId": "BandwidthStatsUsersController_getStatsNodesUsage", + "parameters": [ + { + "name": "topNodesLimit", + "required": true, + "in": "query", + "description": "Limit of top nodes to return", + "schema": { + "type": "number" + } + }, + { + "name": "start", + "required": true, + "in": "query", + "description": "Start date (YYYY-MM-DD)", + "schema": { + "format": "date", + "example": "2026-01-31", + "type": "string" + } + }, + { + "name": "end", + "required": true, + "in": "query", + "description": "End date (YYYY-MM-DD)", + "schema": { + "format": "date", + "example": "2026-01-01", + "type": "string" + } + }, + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Stats user usage fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetStatsUserUsageResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get User Usage by Range", + "tags": [ + "Bandwidth Stats Controller" + ] + } + }, + "/api/hwid/devices": { + "get": { + "operationId": "HwidUserDevicesController_getAllUsers", + "parameters": [ + { + "name": "size", + "required": false, + "in": "query", + "description": "Page size for pagination", + "schema": { + "type": "number" + } + }, + { + "name": "start", + "required": false, + "in": "query", + "description": "Offset for pagination", + "schema": { + "type": "number" + } + } + ], + "responses": { + "200": { + "description": "Hwid devices fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetAllHwidDevicesResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all HWID devices", + "tags": [ + "HWID User Devices Controller" + ] + }, + "post": { + "operationId": "HwidUserDevicesController_createUserHwidDevice", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateUserHwidDeviceRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "User HWID device created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateUserHwidDeviceResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "One of requested resources not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Create a user HWID device", + "tags": [ + "HWID User Devices Controller" + ] + } + }, + "/api/hwid/devices/delete": { + "post": { + "operationId": "HwidUserDevicesController_deleteUserHwidDevice", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteUserHwidDeviceRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "User HWID device deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteUserHwidDeviceResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "One of requested resources not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete a user HWID device", + "tags": [ + "HWID User Devices Controller" + ] + } + }, + "/api/hwid/devices/delete-all": { + "post": { + "operationId": "HwidUserDevicesController_deleteAllUserHwidDevices", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteAllUserHwidDevicesRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "User HWID devices deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteAllUserHwidDevicesResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "One of requested resources not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete all user HWID devices", + "tags": [ + "HWID User Devices Controller" + ] + } + }, + "/api/hwid/devices/stats": { + "get": { + "operationId": "HwidUserDevicesController_getHwidDevicesStats", + "parameters": [], + "responses": { + "200": { + "description": "Hwid devices stats fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetHwidDevicesStatsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get HWID devices stats", + "tags": [ + "HWID User Devices Controller" + ] + } + }, + "/api/hwid/devices/top-users": { + "get": { + "operationId": "HwidUserDevicesController_getTopUsersByHwidDevices", + "parameters": [ + { + "name": "size", + "required": false, + "in": "query", + "description": "Page size for pagination", + "schema": { + "type": "number" + } + }, + { + "name": "start", + "required": false, + "in": "query", + "description": "Offset for pagination", + "schema": { + "type": "number" + } + } + ], + "responses": { + "200": { + "description": "Top users by HWID devices fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetTopUsersByHwidDevicesResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get top users by HWID devices", + "tags": [ + "HWID User Devices Controller" + ] + } + }, + "/api/hwid/devices/{userUuid}": { + "get": { + "operationId": "HwidUserDevicesController_getUserHwidDevices", + "parameters": [ + { + "name": "userUuid", + "required": true, + "in": "path", + "description": "UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "User HWID devices fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetUserHwidDevicesResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "One of requested resources not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get user HWID devices", + "tags": [ + "HWID User Devices Controller" + ] + } + }, + "/api/bandwidth-stats/nodes": { + "get": { + "operationId": "NodesUsageHistoryController_getStatsNodesUsage", + "parameters": [ + { + "name": "topNodesLimit", + "required": true, + "in": "query", + "description": "Limit of top nodes to return", + "schema": { + "type": "number" + } + }, + { + "name": "start", + "required": true, + "in": "query", + "description": "Start date (YYYY-MM-DD)", + "schema": { + "format": "date", + "example": "2026-01-31", + "type": "string" + } + }, + { + "name": "end", + "required": true, + "in": "query", + "description": "End date (YYYY-MM-DD)", + "schema": { + "format": "date", + "example": "2026-01-01", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Stats nodes usage fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetStatsNodesUsageResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get Nodes Usage by Range", + "tags": [ + "Bandwidth Stats Controller" + ] + } + }, + "/api/infra-billing/providers": { + "get": { + "operationId": "InfraBillingController_getInfraProviders", + "parameters": [], + "responses": { + "200": { + "description": "Infra providers retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetInfraProvidersResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all infra providers", + "tags": [ + "Infra Billing Controller" + ] + }, + "post": { + "operationId": "InfraBillingController_createInfraProvider", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateInfraProviderRequestDto" + } + } + } + }, + "responses": { + "201": { + "description": "Infra provider created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateInfraProviderResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Create infra provider", + "tags": [ + "Infra Billing Controller" + ] + }, + "patch": { + "operationId": "InfraBillingController_updateInfraProvider", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateInfraProviderRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Infra provider updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateInfraProviderResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update infra provider", + "tags": [ + "Infra Billing Controller" + ] + } + }, + "/api/infra-billing/providers/{uuid}": { + "get": { + "operationId": "InfraBillingController_getInfraProviderByUuid", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Infra provider retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetInfraProviderByUuidResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "Infra provider not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get infra provider by uuid", + "tags": [ + "Infra Billing Controller" + ] + }, + "delete": { + "operationId": "InfraBillingController_deleteInfraProviderByUuid", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Infra provider deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteInfraProviderByUuidResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete infra provider by uuid", + "tags": [ + "Infra Billing Controller" + ] + } + }, + "/api/infra-billing/history": { + "post": { + "operationId": "InfraBillingController_createInfraBillingHistoryRecord", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateInfraBillingHistoryRecordRequestDto" + } + } + } + }, + "responses": { + "201": { + "description": "Infra billing history record created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateInfraBillingHistoryRecordResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Create infra billing history", + "tags": [ + "Infra Billing Controller" + ] + }, + "get": { + "operationId": "InfraBillingController_getInfraBillingHistoryRecords", + "parameters": [], + "responses": { + "200": { + "description": "Infra billing history records retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetInfraBillingHistoryRecordsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get infra billing history", + "tags": [ + "Infra Billing Controller" + ] + } + }, + "/api/infra-billing/history/{uuid}": { + "delete": { + "operationId": "InfraBillingController_deleteInfraBillingHistoryRecordByUuid", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Infra billing history record deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteInfraBillingHistoryRecordByUuidResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete infra billing history", + "tags": [ + "Infra Billing Controller" + ] + } + }, + "/api/infra-billing/nodes": { + "get": { + "operationId": "InfraBillingController_getBillingNodes", + "parameters": [], + "responses": { + "200": { + "description": "Infra billing nodes retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetInfraBillingNodesResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get infra billing nodes", + "tags": [ + "Infra Billing Controller" + ] + }, + "patch": { + "operationId": "InfraBillingController_updateInfraBillingNode", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateInfraBillingNodeRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Infra billing node updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateInfraBillingNodeResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update infra billing nodes", + "tags": [ + "Infra Billing Controller" + ] + }, + "post": { + "operationId": "InfraBillingController_createInfraBillingNode", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateInfraBillingNodeRequestDto" + } + } + } + }, + "responses": { + "201": { + "description": "Infra billing node created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateInfraBillingNodeResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Create infra billing node", + "tags": [ + "Infra Billing Controller" + ] + } + }, + "/api/infra-billing/nodes/{uuid}": { + "delete": { + "operationId": "InfraBillingController_deleteInfraBillingNodeByUuid", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Infra billing node deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteInfraBillingNodeByUuidResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Delete infra billing node", + "tags": [ + "Infra Billing Controller" + ] + } + }, + "/api/subscription-request-history": { + "get": { + "operationId": "UserSubscriptionRequestHistoryController_getSubscriptionRequestHistory", + "parameters": [ + { + "name": "size", + "required": false, + "in": "query", + "description": "Page size for pagination", + "schema": { + "type": "number" + } + }, + { + "name": "start", + "required": false, + "in": "query", + "description": "Offset for pagination", + "schema": { + "type": "number" + } + } + ], + "responses": { + "200": { + "description": "Subscription request history fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetSubscriptionRequestHistoryResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get all subscription request history", + "tags": [ + "Subscription Request History Controller" + ] + } + }, + "/api/subscription-request-history/stats": { + "get": { + "operationId": "UserSubscriptionRequestHistoryController_getSubscriptionRequestHistoryStats", + "parameters": [], + "responses": { + "200": { + "description": "User subscription request history stats fetched successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetSubscriptionRequestHistoryStatsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get subscription request history stats", + "tags": [ + "Subscription Request History Controller" + ] + } + }, + "/api/system/metadata": { + "get": { + "operationId": "SystemController_getMetadata", + "parameters": [], + "responses": { + "200": { + "description": "Returns system metadata", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetMetadataResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get Remnawave Information", + "tags": [ + "System Controller" + ] + } + }, + "/api/system/stats": { + "get": { + "operationId": "SystemController_getStats", + "parameters": [], + "responses": { + "200": { + "description": "Returns system statistics", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetStatsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get Stats", + "tags": [ + "System Controller" + ] + } + }, + "/api/system/stats/bandwidth": { + "get": { + "operationId": "SystemController_getBandwidthStats", + "parameters": [], + "responses": { + "200": { + "description": "Returns bandwidth statistics", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetBandwidthStatsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get Bandwidth Stats", + "tags": [ + "System Controller" + ] + } + }, + "/api/system/stats/nodes": { + "get": { + "operationId": "SystemController_getNodesStatistics", + "parameters": [], + "responses": { + "200": { + "description": "Returns nodes statistics", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetNodesStatisticsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get Nodes Statistics", + "tags": [ + "System Controller" + ] + } + }, + "/api/system/health": { + "get": { + "operationId": "SystemController_getRemnawaveHealth", + "parameters": [], + "responses": { + "200": { + "description": "Returns Remnawave health", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetRemnawaveHealthResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get Remnawave Health", + "tags": [ + "System Controller" + ] + } + }, + "/api/system/nodes/metrics": { + "get": { + "operationId": "SystemController_getNodesMetrics", + "parameters": [], + "responses": { + "200": { + "description": "Returns nodes metrics from Prometheus metrics endpoint", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetNodesMetricsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get Nodes Metrics", + "tags": [ + "System Controller" + ] + } + }, + "/api/system/tools/x25519/generate": { + "get": { + "operationId": "SystemController_getX25519Keypairs", + "parameters": [], + "responses": { + "200": { + "description": "Returns x25519 keypairs", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GenerateX25519ResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Generate 30 X25519 keypairs", + "tags": [ + "System Controller" + ] + } + }, + "/api/system/tools/happ/encrypt": { + "post": { + "operationId": "SystemController_encryptHappCryptoLink", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EncryptHappCryptoLinkRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Returns encrypted Happ crypto link", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EncryptHappCryptoLinkResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Encrypt Happ Crypto Link", + "tags": [ + "System Controller" + ] + } + }, + "/api/system/testers/srr-matcher": { + "post": { + "operationId": "SystemController_debugSrrMatcher", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebugSrrMatcherRequestDto" + } + } + } + }, + "responses": { + "201": { + "description": "Debug SRR matcher information", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebugSrrMatcherResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Test SRR Matcher", + "tags": [ + "System Controller" + ] + } + }, + "/api/system/stats/recap": { + "get": { + "operationId": "SystemController_getRecap", + "parameters": [], + "responses": { + "200": { + "description": "Returns system recap", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetRecapResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get Recap", + "tags": [ + "System Controller" + ] + } + }, + "/api/subscription-settings": { + "get": { + "operationId": "SubscriptionSettingsController_getSettings", + "parameters": [], + "responses": { + "200": { + "description": "Subscription settings retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetSubscriptionSettingsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get subscription settings", + "tags": [ + "Subscription Settings Controller" + ] + }, + "patch": { + "operationId": "SubscriptionSettingsController_updateSettings", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateSubscriptionSettingsRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Subscription settings updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateSubscriptionSettingsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update subscription settings", + "tags": [ + "Subscription Settings Controller" + ] + } + }, + "/api/ip-control/fetch-ips/{uuid}": { + "post": { + "operationId": "IpControlController_fetchUserIps", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Return jobId for further processing", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FetchIpsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "User not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Request IP List for User", + "tags": [ + "IP Management Controller" + ] + } + }, + "/api/ip-control/fetch-ips/result/{jobId}": { + "get": { + "operationId": "IpControlController_getFetchIpsResult", + "parameters": [ + { + "name": "jobId", + "required": true, + "in": "path", + "description": "Job ID", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Return result or status of the job", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FetchIpsResultResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "Job not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get IP List Result by Job ID", + "tags": [ + "IP Management Controller" + ] + } + }, + "/api/ip-control/drop-connections": { + "post": { + "operationId": "IpControlController_dropConnections", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DropConnectionsRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Event sent to background executor", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DropConnectionsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "User not found // Connected nodes not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Drop Connections for Users or IPs", + "tags": [ + "IP Management Controller" + ] + } + }, + "/api/ip-control/fetch-users-ips/{nodeUuid}": { + "post": { + "operationId": "IpControlController_fetchUsersIps", + "parameters": [ + { + "name": "nodeUuid", + "required": true, + "in": "path", + "description": "UUID of the node", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Return jobId for further processing", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FetchUsersIpsResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "Node not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Request Users IPs List for Node", + "tags": [ + "IP Management Controller" + ] + } + }, + "/api/ip-control/fetch-users-ips/result/{jobId}": { + "get": { + "operationId": "IpControlController_getFetchUsersIpsResult", + "parameters": [ + { + "name": "jobId", + "required": true, + "in": "path", + "description": "Job ID", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Return result or status of the job", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FetchUsersIpsResultResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "Job not found" + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get Users IPs List Result by Job ID", + "tags": [ + "IP Management Controller" + ] + } + }, + "/api/metadata/user/{uuid}": { + "get": { + "operationId": "MetadataController_getUserMetadata", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the user", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "User Metadata retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetUserMetadataResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "User or Metadata not found (see errorCode for more details)", + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "example": { + "timestamp": "omitted", + "path": "omitted", + "message": "User not found", + "errorCode": "A025" + }, + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string", + "enum": [ + "A025" + ] + } + } + }, + { + "example": { + "timestamp": "omitted", + "path": "omitted", + "message": "Metadata not found", + "errorCode": "A226" + }, + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string", + "enum": [ + "A226" + ] + } + } + } + ] + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get user metadata", + "tags": [ + "Metadata Controller" + ] + }, + "put": { + "operationId": "MetadataController_upsertUserMetadata", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the user", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpsertUserMetadataRequestBodyDto" + } + } + } + }, + "responses": { + "200": { + "description": "User Metadata upserted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpsertUserMetadataResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "User not found (see errorCode for more details)", + "content": { + "application/json": { + "schema": { + "example": { + "timestamp": "omitted", + "path": "omitted", + "message": "User not found", + "errorCode": "A025" + }, + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string", + "enum": [ + "A025" + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update or create User Metadata", + "tags": [ + "Metadata Controller" + ] + } + }, + "/api/metadata/node/{uuid}": { + "get": { + "operationId": "MetadataController_getNodeMetadata", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the node", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Node Metadata retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetNodeMetadataResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "Node or Metadata not found (see errorCode for more details)", + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "example": { + "timestamp": "omitted", + "path": "omitted", + "message": "Node not found", + "errorCode": "A011" + }, + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string", + "enum": [ + "A011" + ] + } + } + }, + { + "example": { + "timestamp": "omitted", + "path": "omitted", + "message": "Metadata not found", + "errorCode": "A226" + }, + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string", + "enum": [ + "A226" + ] + } + } + } + ] + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Get node metadata", + "tags": [ + "Metadata Controller" + ] + }, + "put": { + "operationId": "MetadataController_upsertNodeMetadata", + "parameters": [ + { + "name": "uuid", + "required": true, + "in": "path", + "description": "UUID of the node", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpsertNodeMetadataRequestBodyDto" + } + } + } + }, + "responses": { + "200": { + "description": "Node Metadata upserted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpsertNodeMetadataResponseDto" + } + } + } + }, + "400": { + "description": "Validation error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "statusCode": { + "type": "number", + "example": 400 + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "validation": { + "type": "string", + "example": "uuid" + }, + "code": { + "type": "string", + "example": "invalid_string" + }, + "message": { + "type": "string", + "example": "Invalid uuid" + }, + "path": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "uuid" + ] + } + }, + "required": [ + "validation", + "code", + "message", + "path" + ] + }, + "example": [ + { + "validation": "uuid", + "code": "invalid_string", + "message": "Invalid uuid", + "path": [ + "uuid" + ] + } + ] + } + } + } + } + } + }, + "404": { + "description": "Node not found (see errorCode for more details)", + "content": { + "application/json": { + "schema": { + "example": { + "timestamp": "omitted", + "path": "omitted", + "message": "Node not found", + "errorCode": "A011" + }, + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string", + "enum": [ + "A011" + ] + } + } + } + } + } + }, + "500": { + "description": "Server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timestamp": { + "type": "string" + }, + "path": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errorCode": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "Authorization": [] + } + ], + "summary": "Update or create Node Metadata", + "tags": [ + "Metadata Controller" + ] + } + } + }, + "info": { + "title": "Remnawave API v2.7.4", + "description": "\nRemnawave is a powerful proxy managment tool, built on top of Xray-core, with a focus on simplicity and ease of use.\n\n## Resources\n* https://t.me/remnawave\n* https://github.com/remnawave\n* https://docs.rw\n", + "version": "2.7.4", + "contact": {}, + "license": { + "name": "AGPL-3.0", + "url": "https://github.com/remnawave/panel?tab=AGPL-3.0-1-ov-file" + } + }, + "tags": [ + { + "name": "Auth Controller", + "description": "Used to authenticate admin users." + }, + { + "name": "Passkeys Controller", + "description": "Management of Passkeys." + }, + { + "name": "API Tokens Controller", + "description": "Manage API tokens to use in your code. This controller can't be used with API token, only with Admin JWT token" + }, + { + "name": "Users Controller", + "description": "Manage users, change their status, reset traffic, etc." + }, + { + "name": "Users Bulk Actions Controller", + "description": "Bulk actions with users." + }, + { + "name": "HWID User Devices Controller", + "description": "" + }, + { + "name": "[Public] Subscription Controller", + "description": "Public Subscription Controller. Methods of this controller are not protected with auth. Use it only for public requests." + }, + { + "name": "[Protected] Subscriptions Controller", + "description": "Methods of this controller are protected with auth, most of them is returning the same informations as public Subscription Controller." + }, + { + "name": "Nodes Controller", + "description": "" + }, + { + "name": "Node Plugins Controller", + "description": "" + }, + { + "name": "Bandwidth Stats Controller", + "description": "" + }, + { + "name": "IP Management Controller", + "description": "Management of IP addresses and connections." + }, + { + "name": "Config Profiles Controller", + "description": "Management of Config Profiles." + }, + { + "name": "Internal Squads Controller", + "description": "Management of Internal Squads." + }, + { + "name": "External Squads Controller", + "description": "Management of External Squads." + }, + { + "name": "Hosts Controller", + "description": "" + }, + { + "name": "Hosts Bulk Actions Controller", + "description": "" + }, + { + "name": "Subscription Template Controller", + "description": "" + }, + { + "name": "Subscription Settings Controller", + "description": "" + }, + { + "name": "Infra Billing Controller", + "description": "" + }, + { + "name": "System Controller", + "description": "" + }, + { + "name": "Keygen Controller", + "description": "Generation of SECRET_KEY for Remnawave Node." + }, + { + "name": "Subscription Request History Controller", + "description": "" + }, + { + "name": "Snippets Controller", + "description": "" + }, + { + "name": "Remnawave Settings Controller", + "description": "" + }, + { + "name": "Subscription Page Configs Controller", + "description": "" + }, + { + "name": "Metadata Controller", + "description": "Manage arbitrary metadata for Users and Nodes." + } + ], + "servers": [], + "components": { + "securitySchemes": { + "Authorization": { + "scheme": "bearer", + "bearerFormat": "JWT", + "type": "http", + "name": "Authorization", + "description": "JWT obtained login." + }, + "Prometheus": { + "type": "http", + "scheme": "basic", + "name": "Prometheus", + "description": "Prometheus Basic Auth" + } + }, + "schemas": { + "GetRemnawaveSettingsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "passkeySettings": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "rpId": { + "type": "string", + "nullable": true + }, + "origin": { + "type": "string", + "nullable": true + } + }, + "required": [ + "enabled", + "rpId", + "origin" + ], + "nullable": true + }, + "oauth2Settings": { + "type": "object", + "properties": { + "github": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "clientId": { + "type": "string", + "nullable": true + }, + "clientSecret": { + "type": "string", + "nullable": true + }, + "allowedEmails": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "enabled", + "clientId", + "clientSecret", + "allowedEmails" + ] + }, + "pocketid": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "clientId": { + "type": "string", + "nullable": true + }, + "clientSecret": { + "type": "string", + "nullable": true + }, + "plainDomain": { + "type": "string", + "nullable": true + }, + "allowedEmails": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "enabled", + "clientId", + "clientSecret", + "plainDomain", + "allowedEmails" + ] + }, + "yandex": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "clientId": { + "type": "string", + "nullable": true + }, + "clientSecret": { + "type": "string", + "nullable": true + }, + "allowedEmails": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "enabled", + "clientId", + "clientSecret", + "allowedEmails" + ] + }, + "keycloak": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "realm": { + "type": "string", + "nullable": true + }, + "clientId": { + "type": "string", + "nullable": true + }, + "clientSecret": { + "type": "string", + "nullable": true + }, + "frontendDomain": { + "type": "string", + "nullable": true + }, + "keycloakDomain": { + "type": "string", + "nullable": true + }, + "allowedEmails": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "enabled", + "realm", + "clientId", + "clientSecret", + "frontendDomain", + "keycloakDomain", + "allowedEmails" + ], + "default": { + "enabled": false, + "realm": null, + "frontendDomain": null, + "keycloakDomain": null, + "clientId": null, + "clientSecret": null, + "allowedEmails": [] + } + }, + "generic": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "clientId": { + "type": "string", + "nullable": true + }, + "clientSecret": { + "type": "string", + "nullable": true + }, + "withPkce": { + "type": "boolean" + }, + "authorizationUrl": { + "type": "string", + "nullable": true + }, + "tokenUrl": { + "type": "string", + "nullable": true + }, + "frontendDomain": { + "type": "string", + "nullable": true + }, + "allowedEmails": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "enabled", + "clientId", + "clientSecret", + "withPkce", + "authorizationUrl", + "tokenUrl", + "frontendDomain", + "allowedEmails" + ], + "default": { + "enabled": false, + "frontendDomain": null, + "tokenUrl": null, + "clientId": null, + "clientSecret": null, + "withPkce": false, + "authorizationUrl": null, + "allowedEmails": [] + } + }, + "telegram": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "clientId": { + "type": "string", + "nullable": true + }, + "clientSecret": { + "type": "string", + "nullable": true + }, + "allowedIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "frontendDomain": { + "type": "string", + "nullable": true + } + }, + "required": [ + "enabled", + "clientId", + "clientSecret", + "allowedIds", + "frontendDomain" + ], + "default": { + "enabled": false, + "clientId": null, + "clientSecret": null, + "allowedIds": [], + "frontendDomain": null + } + } + }, + "required": [ + "github", + "pocketid", + "yandex" + ], + "nullable": true + }, + "passwordSettings": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + }, + "required": [ + "enabled" + ], + "nullable": true + }, + "brandingSettings": { + "type": "object", + "properties": { + "title": { + "type": "string", + "nullable": true + }, + "logoUrl": { + "type": "string", + "format": "uri", + "nullable": true + } + }, + "required": [ + "title", + "logoUrl" + ], + "nullable": true + } + }, + "required": [ + "passkeySettings", + "oauth2Settings", + "passwordSettings", + "brandingSettings" + ] + } + }, + "required": [ + "response" + ] + }, + "UpdateRemnawaveSettingsRequestDto": { + "type": "object", + "properties": { + "passkeySettings": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "rpId": { + "type": "string", + "nullable": true + }, + "origin": { + "type": "string", + "nullable": true + } + }, + "required": [ + "enabled", + "rpId", + "origin" + ] + }, + "oauth2Settings": { + "type": "object", + "properties": { + "github": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "clientId": { + "type": "string", + "nullable": true + }, + "clientSecret": { + "type": "string", + "nullable": true + }, + "allowedEmails": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "enabled", + "clientId", + "clientSecret", + "allowedEmails" + ] + }, + "pocketid": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "clientId": { + "type": "string", + "nullable": true + }, + "clientSecret": { + "type": "string", + "nullable": true + }, + "plainDomain": { + "type": "string", + "nullable": true + }, + "allowedEmails": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "enabled", + "clientId", + "clientSecret", + "plainDomain", + "allowedEmails" + ] + }, + "yandex": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "clientId": { + "type": "string", + "nullable": true + }, + "clientSecret": { + "type": "string", + "nullable": true + }, + "allowedEmails": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "enabled", + "clientId", + "clientSecret", + "allowedEmails" + ] + }, + "keycloak": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "realm": { + "type": "string", + "nullable": true + }, + "clientId": { + "type": "string", + "nullable": true + }, + "clientSecret": { + "type": "string", + "nullable": true + }, + "frontendDomain": { + "type": "string", + "nullable": true + }, + "keycloakDomain": { + "type": "string", + "nullable": true + }, + "allowedEmails": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "enabled", + "realm", + "clientId", + "clientSecret", + "frontendDomain", + "keycloakDomain", + "allowedEmails" + ], + "default": { + "enabled": false, + "realm": null, + "frontendDomain": null, + "keycloakDomain": null, + "clientId": null, + "clientSecret": null, + "allowedEmails": [] + } + }, + "generic": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "clientId": { + "type": "string", + "nullable": true + }, + "clientSecret": { + "type": "string", + "nullable": true + }, + "withPkce": { + "type": "boolean" + }, + "authorizationUrl": { + "type": "string", + "nullable": true + }, + "tokenUrl": { + "type": "string", + "nullable": true + }, + "frontendDomain": { + "type": "string", + "nullable": true + }, + "allowedEmails": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "enabled", + "clientId", + "clientSecret", + "withPkce", + "authorizationUrl", + "tokenUrl", + "frontendDomain", + "allowedEmails" + ], + "default": { + "enabled": false, + "frontendDomain": null, + "tokenUrl": null, + "clientId": null, + "clientSecret": null, + "withPkce": false, + "authorizationUrl": null, + "allowedEmails": [] + } + }, + "telegram": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "clientId": { + "type": "string", + "nullable": true + }, + "clientSecret": { + "type": "string", + "nullable": true + }, + "allowedIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "frontendDomain": { + "type": "string", + "nullable": true + } + }, + "required": [ + "enabled", + "clientId", + "clientSecret", + "allowedIds", + "frontendDomain" + ], + "default": { + "enabled": false, + "clientId": null, + "clientSecret": null, + "allowedIds": [], + "frontendDomain": null + } + } + }, + "required": [ + "github", + "pocketid", + "yandex" + ] + }, + "passwordSettings": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + }, + "required": [ + "enabled" + ] + }, + "brandingSettings": { + "type": "object", + "properties": { + "title": { + "type": "string", + "nullable": true + }, + "logoUrl": { + "type": "string", + "format": "uri", + "nullable": true + } + }, + "required": [ + "title", + "logoUrl" + ] + } + } + }, + "UpdateRemnawaveSettingsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "passkeySettings": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "rpId": { + "type": "string", + "nullable": true + }, + "origin": { + "type": "string", + "nullable": true + } + }, + "required": [ + "enabled", + "rpId", + "origin" + ], + "nullable": true + }, + "oauth2Settings": { + "type": "object", + "properties": { + "github": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "clientId": { + "type": "string", + "nullable": true + }, + "clientSecret": { + "type": "string", + "nullable": true + }, + "allowedEmails": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "enabled", + "clientId", + "clientSecret", + "allowedEmails" + ] + }, + "pocketid": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "clientId": { + "type": "string", + "nullable": true + }, + "clientSecret": { + "type": "string", + "nullable": true + }, + "plainDomain": { + "type": "string", + "nullable": true + }, + "allowedEmails": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "enabled", + "clientId", + "clientSecret", + "plainDomain", + "allowedEmails" + ] + }, + "yandex": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "clientId": { + "type": "string", + "nullable": true + }, + "clientSecret": { + "type": "string", + "nullable": true + }, + "allowedEmails": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "enabled", + "clientId", + "clientSecret", + "allowedEmails" + ] + }, + "keycloak": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "realm": { + "type": "string", + "nullable": true + }, + "clientId": { + "type": "string", + "nullable": true + }, + "clientSecret": { + "type": "string", + "nullable": true + }, + "frontendDomain": { + "type": "string", + "nullable": true + }, + "keycloakDomain": { + "type": "string", + "nullable": true + }, + "allowedEmails": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "enabled", + "realm", + "clientId", + "clientSecret", + "frontendDomain", + "keycloakDomain", + "allowedEmails" + ], + "default": { + "enabled": false, + "realm": null, + "frontendDomain": null, + "keycloakDomain": null, + "clientId": null, + "clientSecret": null, + "allowedEmails": [] + } + }, + "generic": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "clientId": { + "type": "string", + "nullable": true + }, + "clientSecret": { + "type": "string", + "nullable": true + }, + "withPkce": { + "type": "boolean" + }, + "authorizationUrl": { + "type": "string", + "nullable": true + }, + "tokenUrl": { + "type": "string", + "nullable": true + }, + "frontendDomain": { + "type": "string", + "nullable": true + }, + "allowedEmails": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "enabled", + "clientId", + "clientSecret", + "withPkce", + "authorizationUrl", + "tokenUrl", + "frontendDomain", + "allowedEmails" + ], + "default": { + "enabled": false, + "frontendDomain": null, + "tokenUrl": null, + "clientId": null, + "clientSecret": null, + "withPkce": false, + "authorizationUrl": null, + "allowedEmails": [] + } + }, + "telegram": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "clientId": { + "type": "string", + "nullable": true + }, + "clientSecret": { + "type": "string", + "nullable": true + }, + "allowedIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "frontendDomain": { + "type": "string", + "nullable": true + } + }, + "required": [ + "enabled", + "clientId", + "clientSecret", + "allowedIds", + "frontendDomain" + ], + "default": { + "enabled": false, + "clientId": null, + "clientSecret": null, + "allowedIds": [], + "frontendDomain": null + } + } + }, + "required": [ + "github", + "pocketid", + "yandex" + ], + "nullable": true + }, + "passwordSettings": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + }, + "required": [ + "enabled" + ], + "nullable": true + }, + "brandingSettings": { + "type": "object", + "properties": { + "title": { + "type": "string", + "nullable": true + }, + "logoUrl": { + "type": "string", + "format": "uri", + "nullable": true + } + }, + "required": [ + "title", + "logoUrl" + ], + "nullable": true + } + }, + "required": [ + "passkeySettings", + "oauth2Settings", + "passwordSettings", + "brandingSettings" + ] + } + }, + "required": [ + "response" + ] + }, + "GetPasskeyRegistrationOptionsResponseDto": { + "type": "object", + "properties": { + "response": {} + }, + "required": [ + "response" + ] + }, + "VerifyPasskeyRegistrationRequestDto": { + "type": "object", + "properties": { + "response": {} + }, + "required": [ + "response" + ] + }, + "VerifyPasskeyRegistrationResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "verified": { + "type": "boolean" + } + }, + "required": [ + "verified" + ] + } + }, + "required": [ + "response" + ] + }, + "GetAllPasskeysResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "passkeys": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "createdAt": { + "description": "Created date. Format: 2025-01-17T15:38:45.065Z", + "type": "string", + "format": "date-time" + }, + "lastUsedAt": { + "description": "Last used date. Format: 2025-01-17T15:38:45.065Z", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "createdAt", + "lastUsedAt" + ] + } + } + }, + "required": [ + "passkeys" + ] + } + }, + "required": [ + "response" + ] + }, + "DeletePasskeyRequestDto": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + }, + "DeletePasskeyResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "passkeys": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "createdAt": { + "description": "Created date. Format: 2025-01-17T15:38:45.065Z", + "type": "string", + "format": "date-time" + }, + "lastUsedAt": { + "description": "Last used date. Format: 2025-01-17T15:38:45.065Z", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "createdAt", + "lastUsedAt" + ] + } + } + }, + "required": [ + "passkeys" + ] + } + }, + "required": [ + "response" + ] + }, + "UpdatePasskeyRequestDto": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string", + "minLength": 2, + "maxLength": 30, + "pattern": "^[A-Za-z0-9_\\s-]+$" + } + }, + "required": [ + "id", + "name" + ] + }, + "UpdatePasskeyResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "passkeys": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "createdAt": { + "description": "Created date. Format: 2025-01-17T15:38:45.065Z", + "type": "string", + "format": "date-time" + }, + "lastUsedAt": { + "description": "Last used date. Format: 2025-01-17T15:38:45.065Z", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "createdAt", + "lastUsedAt" + ] + } + } + }, + "required": [ + "passkeys" + ] + } + }, + "required": [ + "response" + ] + }, + "LoginRequestDto": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "required": [ + "username", + "password" + ] + }, + "LoginResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "accessToken": { + "type": "string" + } + }, + "required": [ + "accessToken" + ] + } + }, + "required": [ + "response" + ] + }, + "RegisterRequestDto": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "password": { + "type": "string", + "minLength": 24, + "pattern": "^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{24,}$" + } + }, + "required": [ + "username", + "password" + ] + }, + "RegisterResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "accessToken": { + "type": "string" + } + }, + "required": [ + "accessToken" + ] + } + }, + "required": [ + "response" + ] + }, + "GetStatusResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "isLoginAllowed": { + "type": "boolean" + }, + "isRegisterAllowed": { + "type": "boolean" + }, + "authentication": { + "type": "object", + "properties": { + "passkey": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + }, + "required": [ + "enabled" + ] + }, + "oauth2": { + "type": "object", + "properties": { + "providers": { + "type": "object", + "additionalProperties": { + "type": "boolean" + } + } + }, + "required": [ + "providers" + ] + }, + "password": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + }, + "required": [ + "enabled" + ] + } + }, + "required": [ + "passkey", + "oauth2", + "password" + ], + "nullable": true + }, + "branding": { + "type": "object", + "properties": { + "title": { + "type": "string", + "nullable": true + }, + "logoUrl": { + "type": "string", + "nullable": true + } + }, + "required": [ + "title", + "logoUrl" + ] + } + }, + "required": [ + "isLoginAllowed", + "isRegisterAllowed", + "authentication", + "branding" + ] + } + }, + "required": [ + "response" + ] + }, + "OAuth2AuthorizeRequestDto": { + "type": "object", + "properties": { + "provider": { + "type": "string", + "enum": [ + "telegram", + "github", + "pocketid", + "yandex", + "keycloak", + "generic" + ], + "x-enumNames": [ + "TELEGRAM", + "GITHUB", + "POCKETID", + "YANDEX", + "KEYCLOAK", + "GENERIC" + ] + } + }, + "required": [ + "provider" + ] + }, + "OAuth2AuthorizeResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "authorizationUrl": { + "type": "string", + "format": "uri", + "nullable": true + } + }, + "required": [ + "authorizationUrl" + ] + } + }, + "required": [ + "response" + ] + }, + "OAuth2CallbackRequestDto": { + "type": "object", + "properties": { + "provider": { + "type": "string", + "enum": [ + "telegram", + "github", + "pocketid", + "yandex", + "keycloak", + "generic" + ], + "x-enumNames": [ + "TELEGRAM", + "GITHUB", + "POCKETID", + "YANDEX", + "KEYCLOAK", + "GENERIC" + ] + }, + "code": { + "type": "string" + }, + "state": { + "type": "string" + } + }, + "required": [ + "provider", + "code", + "state" + ] + }, + "OAuth2CallbackResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "accessToken": { + "type": "string" + } + }, + "required": [ + "accessToken" + ] + } + }, + "required": [ + "response" + ] + }, + "GetPasskeyAuthenticationOptionsResponseDto": { + "type": "object", + "properties": { + "response": {} + }, + "required": [ + "response" + ] + }, + "VerifyPasskeyAuthenticationRequestDto": { + "type": "object", + "properties": { + "response": {} + }, + "required": [ + "response" + ] + }, + "VerifyPasskeyAuthenticationResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "accessToken": { + "type": "string" + } + }, + "required": [ + "accessToken" + ] + } + }, + "required": [ + "response" + ] + }, + "GetSubscriptionPageConfigsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "configs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "config": { + "nullable": true + } + }, + "required": [ + "uuid", + "viewPosition", + "name", + "config" + ] + } + } + }, + "required": [ + "total", + "configs" + ] + } + }, + "required": [ + "response" + ] + }, + "GetSubscriptionPageConfigResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "config": {} + }, + "required": [ + "uuid", + "viewPosition", + "name", + "config" + ] + } + }, + "required": [ + "response" + ] + }, + "UpdateSubscriptionPageConfigRequestDto": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string", + "minLength": 2, + "maxLength": 30, + "pattern": "^[A-Za-z0-9_\\s-]+$" + }, + "config": {} + }, + "required": [ + "uuid" + ] + }, + "UpdateSubscriptionPageConfigResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "config": {} + }, + "required": [ + "uuid", + "viewPosition", + "name", + "config" + ] + } + }, + "required": [ + "response" + ] + }, + "DeleteSubscriptionPageConfigResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "isDeleted": { + "type": "boolean" + } + }, + "required": [ + "isDeleted" + ] + } + }, + "required": [ + "response" + ] + }, + "CreateSubscriptionPageConfigRequestDto": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 2, + "maxLength": 30, + "pattern": "^[A-Za-z0-9_\\s-]+$" + } + }, + "required": [ + "name" + ] + }, + "CreateSubscriptionPageConfigResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "config": { + "nullable": true + } + }, + "required": [ + "uuid", + "viewPosition", + "name", + "config" + ] + } + }, + "required": [ + "response" + ] + }, + "ReorderSubscriptionPageConfigsRequestDto": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "viewPosition": { + "type": "integer" + }, + "uuid": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "viewPosition", + "uuid" + ] + } + } + }, + "required": [ + "items" + ] + }, + "ReorderSubscriptionPageConfigsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "configs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "config": { + "nullable": true + } + }, + "required": [ + "uuid", + "viewPosition", + "name", + "config" + ] + } + } + }, + "required": [ + "total", + "configs" + ] + } + }, + "required": [ + "response" + ] + }, + "CloneSubscriptionPageConfigRequestDto": { + "type": "object", + "properties": { + "cloneFromUuid": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "cloneFromUuid" + ] + }, + "CloneSubscriptionPageConfigResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "config": {} + }, + "required": [ + "uuid", + "viewPosition", + "name", + "config" + ] + } + }, + "required": [ + "response" + ] + }, + "CreateUserRequestDto": { + "type": "object", + "properties": { + "username": { + "description": "Unique username for the user. Required. Must be 3-36 characters long and contain only letters, numbers, underscores and dashes.", + "type": "string", + "pattern": "^[a-zA-Z0-9_-]+$", + "maxLength": 36, + "minLength": 3 + }, + "status": { + "description": "Optional. User account status. Defaults to ACTIVE.", + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "x-enumNames": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "default": "ACTIVE" + }, + "shortUuid": { + "description": "Optional. Short UUID identifier for the user.", + "type": "string" + }, + "trojanPassword": { + "description": "Optional. Password for Trojan protocol. Must be 8-32 characters.", + "type": "string", + "minLength": 8, + "maxLength": 32 + }, + "vlessUuid": { + "description": "Optional. UUID for VLESS protocol. Must be a valid UUID format.", + "type": "string", + "format": "uuid" + }, + "ssPassword": { + "description": "Optional. Password for Shadowsocks protocol. Must be 8-32 characters.", + "type": "string", + "minLength": 8, + "maxLength": 32 + }, + "trafficLimitBytes": { + "description": "Optional. Traffic limit in bytes. Set to 0 for unlimited traffic.", + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false + }, + "trafficLimitStrategy": { + "description": "Available reset periods", + "type": "string", + "enum": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "x-enumNames": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "default": "NO_RESET" + }, + "expireAt": { + "description": "Account expiration date. Required. Format: 2025-01-17T15:38:45.065Z", + "type": "string", + "format": "date-time" + }, + "createdAt": { + "description": "Optional. Account creation date. Format: 2025-01-17T15:38:45.065Z", + "type": "string", + "format": "date-time" + }, + "lastTrafficResetAt": { + "description": "Optional. Date of last traffic reset. Format: 2025-01-17T15:38:45.065Z", + "type": "string", + "format": "date-time" + }, + "description": { + "description": "Optional. Additional notes or description for the user account.", + "type": "string" + }, + "tag": { + "description": "Optional. User tag for categorization. Max 16 characters, uppercase letters, numbers and underscores only.", + "type": "string", + "pattern": "^[A-Z0-9_]+$", + "maxLength": 16, + "nullable": true + }, + "telegramId": { + "description": "Optional. Telegram user ID for notifications. Must be an integer.", + "type": "integer", + "nullable": true + }, + "email": { + "description": "Optional. User email address. Must be a valid email format.", + "type": "string", + "format": "email", + "nullable": true + }, + "hwidDeviceLimit": { + "description": "Optional. Maximum number of hardware devices allowed. Must be a positive integer.", + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false + }, + "activeInternalSquads": { + "description": "Optional. Array of UUIDs representing enabled internal squads.", + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "uuid": { + "description": "Optional. Pass UUID to create user with specific UUID, otherwise it will be generated automatically.", + "type": "string", + "format": "uuid" + }, + "externalSquadUuid": { + "description": "Optional. External squad UUID.", + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "username", + "expireAt" + ] + }, + "CreateUserResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "id": { + "type": "number" + }, + "shortUuid": { + "type": "string" + }, + "username": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "x-enumNames": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "default": "ACTIVE" + }, + "trafficLimitBytes": { + "type": "integer", + "default": 0 + }, + "trafficLimitStrategy": { + "description": "Available reset periods", + "type": "string", + "enum": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "x-enumNames": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "default": "NO_RESET" + }, + "expireAt": { + "type": "string", + "format": "date-time" + }, + "telegramId": { + "type": "integer", + "nullable": true + }, + "email": { + "type": "string", + "format": "email", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tag": { + "type": "string", + "nullable": true + }, + "hwidDeviceLimit": { + "type": "integer", + "nullable": true + }, + "externalSquadUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "trojanPassword": { + "type": "string" + }, + "vlessUuid": { + "type": "string", + "format": "uuid" + }, + "ssPassword": { + "type": "string" + }, + "lastTriggeredThreshold": { + "type": "integer", + "default": 0 + }, + "subRevokedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastTrafficResetAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "subscriptionUrl": { + "type": "string" + }, + "activeInternalSquads": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + } + }, + "required": [ + "uuid", + "name" + ] + } + }, + "userTraffic": { + "type": "object", + "properties": { + "usedTrafficBytes": { + "type": "number" + }, + "lifetimeUsedTrafficBytes": { + "type": "number" + }, + "onlineAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "firstConnectedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastConnectedNodeUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "usedTrafficBytes", + "lifetimeUsedTrafficBytes", + "onlineAt", + "firstConnectedAt", + "lastConnectedNodeUuid" + ] + } + }, + "required": [ + "uuid", + "id", + "shortUuid", + "username", + "expireAt", + "telegramId", + "email", + "description", + "tag", + "hwidDeviceLimit", + "externalSquadUuid", + "trojanPassword", + "vlessUuid", + "ssPassword", + "subRevokedAt", + "lastTrafficResetAt", + "createdAt", + "updatedAt", + "subscriptionUrl", + "activeInternalSquads", + "userTraffic" + ] + } + }, + "required": [ + "response" + ] + }, + "UpdateUserRequestDto": { + "type": "object", + "properties": { + "username": { + "description": "Username of the user", + "type": "string" + }, + "uuid": { + "description": "UUID of the user. UUID has higher priority than username, so if both are provided, username will be ignored.", + "type": "string", + "format": "uuid" + }, + "status": { + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED" + ] + }, + "trafficLimitBytes": { + "description": "Traffic limit in bytes. 0 - unlimited", + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false + }, + "trafficLimitStrategy": { + "description": "Available reset periods", + "type": "string", + "enum": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "x-enumNames": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "default": "NO_RESET" + }, + "expireAt": { + "description": "Expiration date: 2025-01-17T15:38:45.065Z", + "type": "string", + "format": "date-time" + }, + "description": { + "type": "string", + "nullable": true + }, + "tag": { + "type": "string", + "pattern": "^[A-Z0-9_]+$", + "maxLength": 16, + "nullable": true + }, + "telegramId": { + "type": "integer", + "nullable": true + }, + "email": { + "type": "string", + "format": "email", + "nullable": true + }, + "hwidDeviceLimit": { + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false, + "nullable": true + }, + "activeInternalSquads": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "externalSquadUuid": { + "description": "Optional. External squad UUID.", + "type": "string", + "format": "uuid", + "nullable": true + } + } + }, + "UpdateUserResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "id": { + "type": "number" + }, + "shortUuid": { + "type": "string" + }, + "username": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "x-enumNames": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "default": "ACTIVE" + }, + "trafficLimitBytes": { + "type": "integer", + "default": 0 + }, + "trafficLimitStrategy": { + "description": "Available reset periods", + "type": "string", + "enum": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "x-enumNames": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "default": "NO_RESET" + }, + "expireAt": { + "type": "string", + "format": "date-time" + }, + "telegramId": { + "type": "integer", + "nullable": true + }, + "email": { + "type": "string", + "format": "email", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tag": { + "type": "string", + "nullable": true + }, + "hwidDeviceLimit": { + "type": "integer", + "nullable": true + }, + "externalSquadUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "trojanPassword": { + "type": "string" + }, + "vlessUuid": { + "type": "string", + "format": "uuid" + }, + "ssPassword": { + "type": "string" + }, + "lastTriggeredThreshold": { + "type": "integer", + "default": 0 + }, + "subRevokedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastTrafficResetAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "subscriptionUrl": { + "type": "string" + }, + "activeInternalSquads": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + } + }, + "required": [ + "uuid", + "name" + ] + } + }, + "userTraffic": { + "type": "object", + "properties": { + "usedTrafficBytes": { + "type": "number" + }, + "lifetimeUsedTrafficBytes": { + "type": "number" + }, + "onlineAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "firstConnectedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastConnectedNodeUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "usedTrafficBytes", + "lifetimeUsedTrafficBytes", + "onlineAt", + "firstConnectedAt", + "lastConnectedNodeUuid" + ] + } + }, + "required": [ + "uuid", + "id", + "shortUuid", + "username", + "expireAt", + "telegramId", + "email", + "description", + "tag", + "hwidDeviceLimit", + "externalSquadUuid", + "trojanPassword", + "vlessUuid", + "ssPassword", + "subRevokedAt", + "lastTrafficResetAt", + "createdAt", + "updatedAt", + "subscriptionUrl", + "activeInternalSquads", + "userTraffic" + ] + } + }, + "required": [ + "response" + ] + }, + "DeleteUserResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "isDeleted": { + "type": "boolean" + } + }, + "required": [ + "isDeleted" + ] + } + }, + "required": [ + "response" + ] + }, + "GetAllUsersResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "users": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "id": { + "type": "number" + }, + "shortUuid": { + "type": "string" + }, + "username": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "x-enumNames": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "default": "ACTIVE" + }, + "trafficLimitBytes": { + "type": "integer", + "default": 0 + }, + "trafficLimitStrategy": { + "description": "Available reset periods", + "type": "string", + "enum": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "x-enumNames": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "default": "NO_RESET" + }, + "expireAt": { + "type": "string", + "format": "date-time" + }, + "telegramId": { + "type": "integer", + "nullable": true + }, + "email": { + "type": "string", + "format": "email", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tag": { + "type": "string", + "nullable": true + }, + "hwidDeviceLimit": { + "type": "integer", + "nullable": true + }, + "externalSquadUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "trojanPassword": { + "type": "string" + }, + "vlessUuid": { + "type": "string", + "format": "uuid" + }, + "ssPassword": { + "type": "string" + }, + "lastTriggeredThreshold": { + "type": "integer", + "default": 0 + }, + "subRevokedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastTrafficResetAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "subscriptionUrl": { + "type": "string" + }, + "activeInternalSquads": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + } + }, + "required": [ + "uuid", + "name" + ] + } + }, + "userTraffic": { + "type": "object", + "properties": { + "usedTrafficBytes": { + "type": "number" + }, + "lifetimeUsedTrafficBytes": { + "type": "number" + }, + "onlineAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "firstConnectedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastConnectedNodeUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "usedTrafficBytes", + "lifetimeUsedTrafficBytes", + "onlineAt", + "firstConnectedAt", + "lastConnectedNodeUuid" + ] + } + }, + "required": [ + "uuid", + "id", + "shortUuid", + "username", + "expireAt", + "telegramId", + "email", + "description", + "tag", + "hwidDeviceLimit", + "externalSquadUuid", + "trojanPassword", + "vlessUuid", + "ssPassword", + "subRevokedAt", + "lastTrafficResetAt", + "createdAt", + "updatedAt", + "subscriptionUrl", + "activeInternalSquads", + "userTraffic" + ] + } + }, + "total": { + "type": "number" + } + }, + "required": [ + "users", + "total" + ] + } + }, + "required": [ + "response" + ] + }, + "GetAllTagsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "tags" + ] + } + }, + "required": [ + "response" + ] + }, + "GetUserAccessibleNodesResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "userUuid": { + "type": "string", + "format": "uuid" + }, + "activeNodes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "nodeName": { + "type": "string" + }, + "countryCode": { + "type": "string" + }, + "configProfileUuid": { + "type": "string", + "format": "uuid" + }, + "configProfileName": { + "type": "string" + }, + "activeSquads": { + "type": "array", + "items": { + "type": "object", + "properties": { + "squadName": { + "type": "string" + }, + "activeInbounds": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "squadName", + "activeInbounds" + ] + } + } + }, + "required": [ + "uuid", + "nodeName", + "countryCode", + "configProfileUuid", + "configProfileName", + "activeSquads" + ] + } + } + }, + "required": [ + "userUuid", + "activeNodes" + ] + } + }, + "required": [ + "response" + ] + }, + "GetUserSubscriptionRequestHistoryResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "records": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "userUuid": { + "type": "string", + "format": "uuid" + }, + "requestAt": { + "type": "string", + "format": "date-time" + }, + "requestIp": { + "type": "string", + "nullable": true + }, + "userAgent": { + "type": "string", + "nullable": true + } + }, + "required": [ + "id", + "userUuid", + "requestAt", + "requestIp", + "userAgent" + ] + } + } + }, + "required": [ + "total", + "records" + ] + } + }, + "required": [ + "response" + ] + }, + "GetUserByShortUuidResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "id": { + "type": "number" + }, + "shortUuid": { + "type": "string" + }, + "username": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "x-enumNames": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "default": "ACTIVE" + }, + "trafficLimitBytes": { + "type": "integer", + "default": 0 + }, + "trafficLimitStrategy": { + "description": "Available reset periods", + "type": "string", + "enum": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "x-enumNames": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "default": "NO_RESET" + }, + "expireAt": { + "type": "string", + "format": "date-time" + }, + "telegramId": { + "type": "integer", + "nullable": true + }, + "email": { + "type": "string", + "format": "email", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tag": { + "type": "string", + "nullable": true + }, + "hwidDeviceLimit": { + "type": "integer", + "nullable": true + }, + "externalSquadUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "trojanPassword": { + "type": "string" + }, + "vlessUuid": { + "type": "string", + "format": "uuid" + }, + "ssPassword": { + "type": "string" + }, + "lastTriggeredThreshold": { + "type": "integer", + "default": 0 + }, + "subRevokedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastTrafficResetAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "subscriptionUrl": { + "type": "string" + }, + "activeInternalSquads": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + } + }, + "required": [ + "uuid", + "name" + ] + } + }, + "userTraffic": { + "type": "object", + "properties": { + "usedTrafficBytes": { + "type": "number" + }, + "lifetimeUsedTrafficBytes": { + "type": "number" + }, + "onlineAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "firstConnectedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastConnectedNodeUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "usedTrafficBytes", + "lifetimeUsedTrafficBytes", + "onlineAt", + "firstConnectedAt", + "lastConnectedNodeUuid" + ] + } + }, + "required": [ + "uuid", + "id", + "shortUuid", + "username", + "expireAt", + "telegramId", + "email", + "description", + "tag", + "hwidDeviceLimit", + "externalSquadUuid", + "trojanPassword", + "vlessUuid", + "ssPassword", + "subRevokedAt", + "lastTrafficResetAt", + "createdAt", + "updatedAt", + "subscriptionUrl", + "activeInternalSquads", + "userTraffic" + ] + } + }, + "required": [ + "response" + ] + }, + "GetUserByUuidResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "id": { + "type": "number" + }, + "shortUuid": { + "type": "string" + }, + "username": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "x-enumNames": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "default": "ACTIVE" + }, + "trafficLimitBytes": { + "type": "integer", + "default": 0 + }, + "trafficLimitStrategy": { + "description": "Available reset periods", + "type": "string", + "enum": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "x-enumNames": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "default": "NO_RESET" + }, + "expireAt": { + "type": "string", + "format": "date-time" + }, + "telegramId": { + "type": "integer", + "nullable": true + }, + "email": { + "type": "string", + "format": "email", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tag": { + "type": "string", + "nullable": true + }, + "hwidDeviceLimit": { + "type": "integer", + "nullable": true + }, + "externalSquadUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "trojanPassword": { + "type": "string" + }, + "vlessUuid": { + "type": "string", + "format": "uuid" + }, + "ssPassword": { + "type": "string" + }, + "lastTriggeredThreshold": { + "type": "integer", + "default": 0 + }, + "subRevokedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastTrafficResetAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "subscriptionUrl": { + "type": "string" + }, + "activeInternalSquads": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + } + }, + "required": [ + "uuid", + "name" + ] + } + }, + "userTraffic": { + "type": "object", + "properties": { + "usedTrafficBytes": { + "type": "number" + }, + "lifetimeUsedTrafficBytes": { + "type": "number" + }, + "onlineAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "firstConnectedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastConnectedNodeUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "usedTrafficBytes", + "lifetimeUsedTrafficBytes", + "onlineAt", + "firstConnectedAt", + "lastConnectedNodeUuid" + ] + } + }, + "required": [ + "uuid", + "id", + "shortUuid", + "username", + "expireAt", + "telegramId", + "email", + "description", + "tag", + "hwidDeviceLimit", + "externalSquadUuid", + "trojanPassword", + "vlessUuid", + "ssPassword", + "subRevokedAt", + "lastTrafficResetAt", + "createdAt", + "updatedAt", + "subscriptionUrl", + "activeInternalSquads", + "userTraffic" + ] + } + }, + "required": [ + "response" + ] + }, + "GetUserByUsernameResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "id": { + "type": "number" + }, + "shortUuid": { + "type": "string" + }, + "username": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "x-enumNames": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "default": "ACTIVE" + }, + "trafficLimitBytes": { + "type": "integer", + "default": 0 + }, + "trafficLimitStrategy": { + "description": "Available reset periods", + "type": "string", + "enum": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "x-enumNames": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "default": "NO_RESET" + }, + "expireAt": { + "type": "string", + "format": "date-time" + }, + "telegramId": { + "type": "integer", + "nullable": true + }, + "email": { + "type": "string", + "format": "email", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tag": { + "type": "string", + "nullable": true + }, + "hwidDeviceLimit": { + "type": "integer", + "nullable": true + }, + "externalSquadUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "trojanPassword": { + "type": "string" + }, + "vlessUuid": { + "type": "string", + "format": "uuid" + }, + "ssPassword": { + "type": "string" + }, + "lastTriggeredThreshold": { + "type": "integer", + "default": 0 + }, + "subRevokedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastTrafficResetAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "subscriptionUrl": { + "type": "string" + }, + "activeInternalSquads": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + } + }, + "required": [ + "uuid", + "name" + ] + } + }, + "userTraffic": { + "type": "object", + "properties": { + "usedTrafficBytes": { + "type": "number" + }, + "lifetimeUsedTrafficBytes": { + "type": "number" + }, + "onlineAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "firstConnectedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastConnectedNodeUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "usedTrafficBytes", + "lifetimeUsedTrafficBytes", + "onlineAt", + "firstConnectedAt", + "lastConnectedNodeUuid" + ] + } + }, + "required": [ + "uuid", + "id", + "shortUuid", + "username", + "expireAt", + "telegramId", + "email", + "description", + "tag", + "hwidDeviceLimit", + "externalSquadUuid", + "trojanPassword", + "vlessUuid", + "ssPassword", + "subRevokedAt", + "lastTrafficResetAt", + "createdAt", + "updatedAt", + "subscriptionUrl", + "activeInternalSquads", + "userTraffic" + ] + } + }, + "required": [ + "response" + ] + }, + "GetUserByIdResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "id": { + "type": "number" + }, + "shortUuid": { + "type": "string" + }, + "username": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "x-enumNames": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "default": "ACTIVE" + }, + "trafficLimitBytes": { + "type": "integer", + "default": 0 + }, + "trafficLimitStrategy": { + "description": "Available reset periods", + "type": "string", + "enum": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "x-enumNames": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "default": "NO_RESET" + }, + "expireAt": { + "type": "string", + "format": "date-time" + }, + "telegramId": { + "type": "integer", + "nullable": true + }, + "email": { + "type": "string", + "format": "email", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tag": { + "type": "string", + "nullable": true + }, + "hwidDeviceLimit": { + "type": "integer", + "nullable": true + }, + "externalSquadUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "trojanPassword": { + "type": "string" + }, + "vlessUuid": { + "type": "string", + "format": "uuid" + }, + "ssPassword": { + "type": "string" + }, + "lastTriggeredThreshold": { + "type": "integer", + "default": 0 + }, + "subRevokedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastTrafficResetAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "subscriptionUrl": { + "type": "string" + }, + "activeInternalSquads": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + } + }, + "required": [ + "uuid", + "name" + ] + } + }, + "userTraffic": { + "type": "object", + "properties": { + "usedTrafficBytes": { + "type": "number" + }, + "lifetimeUsedTrafficBytes": { + "type": "number" + }, + "onlineAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "firstConnectedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastConnectedNodeUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "usedTrafficBytes", + "lifetimeUsedTrafficBytes", + "onlineAt", + "firstConnectedAt", + "lastConnectedNodeUuid" + ] + } + }, + "required": [ + "uuid", + "id", + "shortUuid", + "username", + "expireAt", + "telegramId", + "email", + "description", + "tag", + "hwidDeviceLimit", + "externalSquadUuid", + "trojanPassword", + "vlessUuid", + "ssPassword", + "subRevokedAt", + "lastTrafficResetAt", + "createdAt", + "updatedAt", + "subscriptionUrl", + "activeInternalSquads", + "userTraffic" + ] + } + }, + "required": [ + "response" + ] + }, + "GetUserByTelegramIdResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "id": { + "type": "number" + }, + "shortUuid": { + "type": "string" + }, + "username": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "x-enumNames": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "default": "ACTIVE" + }, + "trafficLimitBytes": { + "type": "integer", + "default": 0 + }, + "trafficLimitStrategy": { + "description": "Available reset periods", + "type": "string", + "enum": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "x-enumNames": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "default": "NO_RESET" + }, + "expireAt": { + "type": "string", + "format": "date-time" + }, + "telegramId": { + "type": "integer", + "nullable": true + }, + "email": { + "type": "string", + "format": "email", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tag": { + "type": "string", + "nullable": true + }, + "hwidDeviceLimit": { + "type": "integer", + "nullable": true + }, + "externalSquadUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "trojanPassword": { + "type": "string" + }, + "vlessUuid": { + "type": "string", + "format": "uuid" + }, + "ssPassword": { + "type": "string" + }, + "lastTriggeredThreshold": { + "type": "integer", + "default": 0 + }, + "subRevokedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastTrafficResetAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "subscriptionUrl": { + "type": "string" + }, + "activeInternalSquads": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + } + }, + "required": [ + "uuid", + "name" + ] + } + }, + "userTraffic": { + "type": "object", + "properties": { + "usedTrafficBytes": { + "type": "number" + }, + "lifetimeUsedTrafficBytes": { + "type": "number" + }, + "onlineAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "firstConnectedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastConnectedNodeUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "usedTrafficBytes", + "lifetimeUsedTrafficBytes", + "onlineAt", + "firstConnectedAt", + "lastConnectedNodeUuid" + ] + } + }, + "required": [ + "uuid", + "id", + "shortUuid", + "username", + "expireAt", + "telegramId", + "email", + "description", + "tag", + "hwidDeviceLimit", + "externalSquadUuid", + "trojanPassword", + "vlessUuid", + "ssPassword", + "subRevokedAt", + "lastTrafficResetAt", + "createdAt", + "updatedAt", + "subscriptionUrl", + "activeInternalSquads", + "userTraffic" + ] + } + } + }, + "required": [ + "response" + ] + }, + "GetUserByEmailResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "id": { + "type": "number" + }, + "shortUuid": { + "type": "string" + }, + "username": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "x-enumNames": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "default": "ACTIVE" + }, + "trafficLimitBytes": { + "type": "integer", + "default": 0 + }, + "trafficLimitStrategy": { + "description": "Available reset periods", + "type": "string", + "enum": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "x-enumNames": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "default": "NO_RESET" + }, + "expireAt": { + "type": "string", + "format": "date-time" + }, + "telegramId": { + "type": "integer", + "nullable": true + }, + "email": { + "type": "string", + "format": "email", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tag": { + "type": "string", + "nullable": true + }, + "hwidDeviceLimit": { + "type": "integer", + "nullable": true + }, + "externalSquadUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "trojanPassword": { + "type": "string" + }, + "vlessUuid": { + "type": "string", + "format": "uuid" + }, + "ssPassword": { + "type": "string" + }, + "lastTriggeredThreshold": { + "type": "integer", + "default": 0 + }, + "subRevokedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastTrafficResetAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "subscriptionUrl": { + "type": "string" + }, + "activeInternalSquads": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + } + }, + "required": [ + "uuid", + "name" + ] + } + }, + "userTraffic": { + "type": "object", + "properties": { + "usedTrafficBytes": { + "type": "number" + }, + "lifetimeUsedTrafficBytes": { + "type": "number" + }, + "onlineAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "firstConnectedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastConnectedNodeUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "usedTrafficBytes", + "lifetimeUsedTrafficBytes", + "onlineAt", + "firstConnectedAt", + "lastConnectedNodeUuid" + ] + } + }, + "required": [ + "uuid", + "id", + "shortUuid", + "username", + "expireAt", + "telegramId", + "email", + "description", + "tag", + "hwidDeviceLimit", + "externalSquadUuid", + "trojanPassword", + "vlessUuid", + "ssPassword", + "subRevokedAt", + "lastTrafficResetAt", + "createdAt", + "updatedAt", + "subscriptionUrl", + "activeInternalSquads", + "userTraffic" + ] + } + } + }, + "required": [ + "response" + ] + }, + "GetUserByTagResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "id": { + "type": "number" + }, + "shortUuid": { + "type": "string" + }, + "username": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "x-enumNames": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "default": "ACTIVE" + }, + "trafficLimitBytes": { + "type": "integer", + "default": 0 + }, + "trafficLimitStrategy": { + "description": "Available reset periods", + "type": "string", + "enum": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "x-enumNames": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "default": "NO_RESET" + }, + "expireAt": { + "type": "string", + "format": "date-time" + }, + "telegramId": { + "type": "integer", + "nullable": true + }, + "email": { + "type": "string", + "format": "email", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tag": { + "type": "string", + "nullable": true + }, + "hwidDeviceLimit": { + "type": "integer", + "nullable": true + }, + "externalSquadUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "trojanPassword": { + "type": "string" + }, + "vlessUuid": { + "type": "string", + "format": "uuid" + }, + "ssPassword": { + "type": "string" + }, + "lastTriggeredThreshold": { + "type": "integer", + "default": 0 + }, + "subRevokedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastTrafficResetAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "subscriptionUrl": { + "type": "string" + }, + "activeInternalSquads": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + } + }, + "required": [ + "uuid", + "name" + ] + } + }, + "userTraffic": { + "type": "object", + "properties": { + "usedTrafficBytes": { + "type": "number" + }, + "lifetimeUsedTrafficBytes": { + "type": "number" + }, + "onlineAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "firstConnectedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastConnectedNodeUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "usedTrafficBytes", + "lifetimeUsedTrafficBytes", + "onlineAt", + "firstConnectedAt", + "lastConnectedNodeUuid" + ] + } + }, + "required": [ + "uuid", + "id", + "shortUuid", + "username", + "expireAt", + "telegramId", + "email", + "description", + "tag", + "hwidDeviceLimit", + "externalSquadUuid", + "trojanPassword", + "vlessUuid", + "ssPassword", + "subRevokedAt", + "lastTrafficResetAt", + "createdAt", + "updatedAt", + "subscriptionUrl", + "activeInternalSquads", + "userTraffic" + ] + } + } + }, + "required": [ + "response" + ] + }, + "RevokeUserSubscriptionBodyDto": { + "type": "object", + "properties": { + "revokeOnlyPasswords": { + "description": "Optional. If true, only passwords will be revoked, without changing the short UUID (Subscription URL).", + "type": "boolean", + "default": false + }, + "shortUuid": { + "description": "Optional. If not provided, a new short UUID will be generated by Remnawave. Please note that it is strongly recommended to allow Remnawave to generate the short UUID.", + "type": "string", + "minLength": 6, + "maxLength": 48 + } + } + }, + "RevokeUserSubscriptionResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "id": { + "type": "number" + }, + "shortUuid": { + "type": "string" + }, + "username": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "x-enumNames": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "default": "ACTIVE" + }, + "trafficLimitBytes": { + "type": "integer", + "default": 0 + }, + "trafficLimitStrategy": { + "description": "Available reset periods", + "type": "string", + "enum": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "x-enumNames": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "default": "NO_RESET" + }, + "expireAt": { + "type": "string", + "format": "date-time" + }, + "telegramId": { + "type": "integer", + "nullable": true + }, + "email": { + "type": "string", + "format": "email", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tag": { + "type": "string", + "nullable": true + }, + "hwidDeviceLimit": { + "type": "integer", + "nullable": true + }, + "externalSquadUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "trojanPassword": { + "type": "string" + }, + "vlessUuid": { + "type": "string", + "format": "uuid" + }, + "ssPassword": { + "type": "string" + }, + "lastTriggeredThreshold": { + "type": "integer", + "default": 0 + }, + "subRevokedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastTrafficResetAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "subscriptionUrl": { + "type": "string" + }, + "activeInternalSquads": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + } + }, + "required": [ + "uuid", + "name" + ] + } + }, + "userTraffic": { + "type": "object", + "properties": { + "usedTrafficBytes": { + "type": "number" + }, + "lifetimeUsedTrafficBytes": { + "type": "number" + }, + "onlineAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "firstConnectedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastConnectedNodeUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "usedTrafficBytes", + "lifetimeUsedTrafficBytes", + "onlineAt", + "firstConnectedAt", + "lastConnectedNodeUuid" + ] + } + }, + "required": [ + "uuid", + "id", + "shortUuid", + "username", + "expireAt", + "telegramId", + "email", + "description", + "tag", + "hwidDeviceLimit", + "externalSquadUuid", + "trojanPassword", + "vlessUuid", + "ssPassword", + "subRevokedAt", + "lastTrafficResetAt", + "createdAt", + "updatedAt", + "subscriptionUrl", + "activeInternalSquads", + "userTraffic" + ] + } + }, + "required": [ + "response" + ] + }, + "DisableUserResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "id": { + "type": "number" + }, + "shortUuid": { + "type": "string" + }, + "username": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "x-enumNames": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "default": "ACTIVE" + }, + "trafficLimitBytes": { + "type": "integer", + "default": 0 + }, + "trafficLimitStrategy": { + "description": "Available reset periods", + "type": "string", + "enum": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "x-enumNames": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "default": "NO_RESET" + }, + "expireAt": { + "type": "string", + "format": "date-time" + }, + "telegramId": { + "type": "integer", + "nullable": true + }, + "email": { + "type": "string", + "format": "email", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tag": { + "type": "string", + "nullable": true + }, + "hwidDeviceLimit": { + "type": "integer", + "nullable": true + }, + "externalSquadUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "trojanPassword": { + "type": "string" + }, + "vlessUuid": { + "type": "string", + "format": "uuid" + }, + "ssPassword": { + "type": "string" + }, + "lastTriggeredThreshold": { + "type": "integer", + "default": 0 + }, + "subRevokedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastTrafficResetAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "subscriptionUrl": { + "type": "string" + }, + "activeInternalSquads": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + } + }, + "required": [ + "uuid", + "name" + ] + } + }, + "userTraffic": { + "type": "object", + "properties": { + "usedTrafficBytes": { + "type": "number" + }, + "lifetimeUsedTrafficBytes": { + "type": "number" + }, + "onlineAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "firstConnectedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastConnectedNodeUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "usedTrafficBytes", + "lifetimeUsedTrafficBytes", + "onlineAt", + "firstConnectedAt", + "lastConnectedNodeUuid" + ] + } + }, + "required": [ + "uuid", + "id", + "shortUuid", + "username", + "expireAt", + "telegramId", + "email", + "description", + "tag", + "hwidDeviceLimit", + "externalSquadUuid", + "trojanPassword", + "vlessUuid", + "ssPassword", + "subRevokedAt", + "lastTrafficResetAt", + "createdAt", + "updatedAt", + "subscriptionUrl", + "activeInternalSquads", + "userTraffic" + ] + } + }, + "required": [ + "response" + ] + }, + "EnableUserResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "id": { + "type": "number" + }, + "shortUuid": { + "type": "string" + }, + "username": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "x-enumNames": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "default": "ACTIVE" + }, + "trafficLimitBytes": { + "type": "integer", + "default": 0 + }, + "trafficLimitStrategy": { + "description": "Available reset periods", + "type": "string", + "enum": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "x-enumNames": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "default": "NO_RESET" + }, + "expireAt": { + "type": "string", + "format": "date-time" + }, + "telegramId": { + "type": "integer", + "nullable": true + }, + "email": { + "type": "string", + "format": "email", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tag": { + "type": "string", + "nullable": true + }, + "hwidDeviceLimit": { + "type": "integer", + "nullable": true + }, + "externalSquadUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "trojanPassword": { + "type": "string" + }, + "vlessUuid": { + "type": "string", + "format": "uuid" + }, + "ssPassword": { + "type": "string" + }, + "lastTriggeredThreshold": { + "type": "integer", + "default": 0 + }, + "subRevokedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastTrafficResetAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "subscriptionUrl": { + "type": "string" + }, + "activeInternalSquads": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + } + }, + "required": [ + "uuid", + "name" + ] + } + }, + "userTraffic": { + "type": "object", + "properties": { + "usedTrafficBytes": { + "type": "number" + }, + "lifetimeUsedTrafficBytes": { + "type": "number" + }, + "onlineAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "firstConnectedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastConnectedNodeUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "usedTrafficBytes", + "lifetimeUsedTrafficBytes", + "onlineAt", + "firstConnectedAt", + "lastConnectedNodeUuid" + ] + } + }, + "required": [ + "uuid", + "id", + "shortUuid", + "username", + "expireAt", + "telegramId", + "email", + "description", + "tag", + "hwidDeviceLimit", + "externalSquadUuid", + "trojanPassword", + "vlessUuid", + "ssPassword", + "subRevokedAt", + "lastTrafficResetAt", + "createdAt", + "updatedAt", + "subscriptionUrl", + "activeInternalSquads", + "userTraffic" + ] + } + }, + "required": [ + "response" + ] + }, + "ResetUserTrafficResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "id": { + "type": "number" + }, + "shortUuid": { + "type": "string" + }, + "username": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "x-enumNames": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "default": "ACTIVE" + }, + "trafficLimitBytes": { + "type": "integer", + "default": 0 + }, + "trafficLimitStrategy": { + "description": "Available reset periods", + "type": "string", + "enum": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "x-enumNames": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "default": "NO_RESET" + }, + "expireAt": { + "type": "string", + "format": "date-time" + }, + "telegramId": { + "type": "integer", + "nullable": true + }, + "email": { + "type": "string", + "format": "email", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tag": { + "type": "string", + "nullable": true + }, + "hwidDeviceLimit": { + "type": "integer", + "nullable": true + }, + "externalSquadUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "trojanPassword": { + "type": "string" + }, + "vlessUuid": { + "type": "string", + "format": "uuid" + }, + "ssPassword": { + "type": "string" + }, + "lastTriggeredThreshold": { + "type": "integer", + "default": 0 + }, + "subRevokedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastTrafficResetAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "subscriptionUrl": { + "type": "string" + }, + "activeInternalSquads": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + } + }, + "required": [ + "uuid", + "name" + ] + } + }, + "userTraffic": { + "type": "object", + "properties": { + "usedTrafficBytes": { + "type": "number" + }, + "lifetimeUsedTrafficBytes": { + "type": "number" + }, + "onlineAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "firstConnectedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastConnectedNodeUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "usedTrafficBytes", + "lifetimeUsedTrafficBytes", + "onlineAt", + "firstConnectedAt", + "lastConnectedNodeUuid" + ] + } + }, + "required": [ + "uuid", + "id", + "shortUuid", + "username", + "expireAt", + "telegramId", + "email", + "description", + "tag", + "hwidDeviceLimit", + "externalSquadUuid", + "trojanPassword", + "vlessUuid", + "ssPassword", + "subRevokedAt", + "lastTrafficResetAt", + "createdAt", + "updatedAt", + "subscriptionUrl", + "activeInternalSquads", + "userTraffic" + ] + } + }, + "required": [ + "response" + ] + }, + "ResolveUserRequestBodyDto": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "id": { + "type": "number" + }, + "shortUuid": { + "type": "string" + }, + "username": { + "type": "string" + } + } + }, + "ResolveUserResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "username": { + "type": "string" + }, + "id": { + "type": "number" + }, + "shortUuid": { + "type": "string" + } + }, + "required": [ + "uuid", + "username", + "id", + "shortUuid" + ] + } + }, + "required": [ + "response" + ] + }, + "BulkDeleteUsersByStatusRequestDto": { + "type": "object", + "properties": { + "status": { + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "x-enumNames": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "default": "ACTIVE" + } + } + }, + "BulkDeleteUsersByStatusResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "affectedRows": { + "type": "number" + } + }, + "required": [ + "affectedRows" + ] + } + }, + "required": [ + "response" + ] + }, + "BulkDeleteUsersRequestDto": { + "type": "object", + "properties": { + "uuids": { + "type": "array", + "minItems": 1, + "maxItems": 500, + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "uuids" + ] + }, + "BulkDeleteUsersResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "affectedRows": { + "type": "number" + } + }, + "required": [ + "affectedRows" + ] + } + }, + "required": [ + "response" + ] + }, + "BulkRevokeUsersSubscriptionRequestDto": { + "type": "object", + "properties": { + "uuids": { + "type": "array", + "minItems": 1, + "maxItems": 500, + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "uuids" + ] + }, + "BulkRevokeUsersSubscriptionResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "affectedRows": { + "type": "number" + } + }, + "required": [ + "affectedRows" + ] + } + }, + "required": [ + "response" + ] + }, + "BulkResetTrafficUsersRequestDto": { + "type": "object", + "properties": { + "uuids": { + "type": "array", + "minItems": 1, + "maxItems": 500, + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "uuids" + ] + }, + "BulkResetTrafficUsersResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "affectedRows": { + "type": "number" + } + }, + "required": [ + "affectedRows" + ] + } + }, + "required": [ + "response" + ] + }, + "BulkUpdateUsersRequestDto": { + "type": "object", + "properties": { + "uuids": { + "type": "array", + "minItems": 1, + "maxItems": 500, + "items": { + "type": "string", + "format": "uuid" + } + }, + "fields": { + "type": "object", + "properties": { + "status": { + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "x-enumNames": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "default": "ACTIVE" + }, + "trafficLimitBytes": { + "description": "Traffic limit in bytes. 0 - unlimited", + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false + }, + "trafficLimitStrategy": { + "description": "Traffic limit reset strategy", + "type": "string", + "enum": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "x-enumNames": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ] + }, + "expireAt": { + "description": "Expiration date: 2025-01-17T15:38:45.065Z", + "type": "string", + "format": "date-time" + }, + "description": { + "type": "string", + "nullable": true + }, + "telegramId": { + "type": "integer", + "nullable": true + }, + "email": { + "type": "string", + "format": "email", + "nullable": true + }, + "tag": { + "type": "string", + "pattern": "^[A-Z0-9_]+$", + "maxLength": 16, + "nullable": true + }, + "hwidDeviceLimit": { + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false, + "nullable": true + }, + "externalSquadUuid": { + "description": "Optional. External squad UUID.", + "type": "string", + "format": "uuid", + "nullable": true + } + } + } + }, + "required": [ + "uuids", + "fields" + ] + }, + "BulkUpdateUsersResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "affectedRows": { + "type": "number" + } + }, + "required": [ + "affectedRows" + ] + } + }, + "required": [ + "response" + ] + }, + "BulkUpdateUsersSquadsRequestDto": { + "type": "object", + "properties": { + "uuids": { + "type": "array", + "minItems": 1, + "maxItems": 500, + "items": { + "type": "string", + "format": "uuid" + } + }, + "activeInternalSquads": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "uuids", + "activeInternalSquads" + ] + }, + "BulkUpdateUsersSquadsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "affectedRows": { + "type": "number" + } + }, + "required": [ + "affectedRows" + ] + } + }, + "required": [ + "response" + ] + }, + "BulkExtendExpirationDateRequestDto": { + "type": "object", + "properties": { + "uuids": { + "type": "array", + "minItems": 1, + "maxItems": 500, + "items": { + "type": "string", + "format": "uuid" + } + }, + "extendDays": { + "type": "integer", + "minimum": 1, + "exclusiveMinimum": false, + "maximum": 9999, + "exclusiveMaximum": false + } + }, + "required": [ + "uuids", + "extendDays" + ] + }, + "BulkExtendExpirationDateResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "affectedRows": { + "type": "number" + } + }, + "required": [ + "affectedRows" + ] + } + }, + "required": [ + "response" + ] + }, + "BulkAllUpdateUsersRequestDto": { + "type": "object", + "properties": { + "status": { + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "x-enumNames": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "default": "ACTIVE" + }, + "trafficLimitBytes": { + "description": "Traffic limit in bytes. 0 - unlimited", + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false + }, + "trafficLimitStrategy": { + "description": "Traffic limit reset strategy", + "type": "string", + "enum": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "x-enumNames": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ] + }, + "expireAt": { + "description": "Expiration date: 2025-01-17T15:38:45.065Z", + "type": "string", + "format": "date-time" + }, + "description": { + "type": "string", + "nullable": true + }, + "telegramId": { + "type": "integer", + "nullable": true + }, + "email": { + "type": "string", + "format": "email", + "nullable": true + }, + "tag": { + "type": "string", + "pattern": "^[A-Z0-9_]+$", + "maxLength": 16, + "nullable": true + }, + "hwidDeviceLimit": { + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false, + "nullable": true + } + } + }, + "BulkAllUpdateUsersResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "eventSent": { + "type": "boolean" + } + }, + "required": [ + "eventSent" + ] + } + }, + "required": [ + "response" + ] + }, + "BulkAllResetTrafficUsersResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "eventSent": { + "type": "boolean" + } + }, + "required": [ + "eventSent" + ] + } + }, + "required": [ + "response" + ] + }, + "BulkAllExtendExpirationDateRequestDto": { + "type": "object", + "properties": { + "extendDays": { + "type": "integer", + "minimum": 1, + "exclusiveMinimum": false + } + }, + "required": [ + "extendDays" + ] + }, + "BulkAllExtendExpirationDateResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "eventSent": { + "type": "boolean" + } + }, + "required": [ + "eventSent" + ] + } + }, + "required": [ + "response" + ] + }, + "GetSubscriptionInfoResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "isFound": { + "type": "boolean" + }, + "user": { + "type": "object", + "properties": { + "shortUuid": { + "type": "string" + }, + "daysLeft": { + "type": "number" + }, + "trafficUsed": { + "type": "string" + }, + "trafficLimit": { + "type": "string" + }, + "lifetimeTrafficUsed": { + "type": "string" + }, + "trafficUsedBytes": { + "type": "string" + }, + "trafficLimitBytes": { + "type": "string" + }, + "lifetimeTrafficUsedBytes": { + "type": "string" + }, + "username": { + "type": "string" + }, + "expiresAt": { + "type": "string", + "format": "date-time" + }, + "isActive": { + "type": "boolean" + }, + "userStatus": { + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "x-enumNames": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ] + }, + "trafficLimitStrategy": { + "type": "string", + "enum": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "x-enumNames": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ] + } + }, + "required": [ + "shortUuid", + "daysLeft", + "trafficUsed", + "trafficLimit", + "lifetimeTrafficUsed", + "trafficUsedBytes", + "trafficLimitBytes", + "lifetimeTrafficUsedBytes", + "username", + "expiresAt", + "isActive", + "userStatus", + "trafficLimitStrategy" + ] + }, + "links": { + "type": "array", + "items": { + "type": "string" + } + }, + "ssConfLinks": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "subscriptionUrl": { + "type": "string" + } + }, + "required": [ + "isFound", + "user", + "links", + "ssConfLinks", + "subscriptionUrl" + ] + } + }, + "required": [ + "response" + ] + }, + "GetAllSubscriptionsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "subscriptions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "isFound": { + "type": "boolean" + }, + "user": { + "type": "object", + "properties": { + "shortUuid": { + "type": "string" + }, + "daysLeft": { + "type": "number" + }, + "trafficUsed": { + "type": "string" + }, + "trafficLimit": { + "type": "string" + }, + "lifetimeTrafficUsed": { + "type": "string" + }, + "trafficUsedBytes": { + "type": "string" + }, + "trafficLimitBytes": { + "type": "string" + }, + "lifetimeTrafficUsedBytes": { + "type": "string" + }, + "username": { + "type": "string" + }, + "expiresAt": { + "type": "string", + "format": "date-time" + }, + "isActive": { + "type": "boolean" + }, + "userStatus": { + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "x-enumNames": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ] + }, + "trafficLimitStrategy": { + "type": "string", + "enum": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "x-enumNames": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ] + } + }, + "required": [ + "shortUuid", + "daysLeft", + "trafficUsed", + "trafficLimit", + "lifetimeTrafficUsed", + "trafficUsedBytes", + "trafficLimitBytes", + "lifetimeTrafficUsedBytes", + "username", + "expiresAt", + "isActive", + "userStatus", + "trafficLimitStrategy" + ] + }, + "links": { + "type": "array", + "items": { + "type": "string" + } + }, + "ssConfLinks": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "subscriptionUrl": { + "type": "string" + } + }, + "required": [ + "isFound", + "user", + "links", + "ssConfLinks", + "subscriptionUrl" + ] + } + }, + "total": { + "type": "number" + } + }, + "required": [ + "subscriptions", + "total" + ] + } + }, + "required": [ + "response" + ] + }, + "GetSubscriptionByUsernameResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "isFound": { + "type": "boolean" + }, + "user": { + "type": "object", + "properties": { + "shortUuid": { + "type": "string" + }, + "daysLeft": { + "type": "number" + }, + "trafficUsed": { + "type": "string" + }, + "trafficLimit": { + "type": "string" + }, + "lifetimeTrafficUsed": { + "type": "string" + }, + "trafficUsedBytes": { + "type": "string" + }, + "trafficLimitBytes": { + "type": "string" + }, + "lifetimeTrafficUsedBytes": { + "type": "string" + }, + "username": { + "type": "string" + }, + "expiresAt": { + "type": "string", + "format": "date-time" + }, + "isActive": { + "type": "boolean" + }, + "userStatus": { + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "x-enumNames": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ] + }, + "trafficLimitStrategy": { + "type": "string", + "enum": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "x-enumNames": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ] + } + }, + "required": [ + "shortUuid", + "daysLeft", + "trafficUsed", + "trafficLimit", + "lifetimeTrafficUsed", + "trafficUsedBytes", + "trafficLimitBytes", + "lifetimeTrafficUsedBytes", + "username", + "expiresAt", + "isActive", + "userStatus", + "trafficLimitStrategy" + ] + }, + "links": { + "type": "array", + "items": { + "type": "string" + } + }, + "ssConfLinks": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "subscriptionUrl": { + "type": "string" + } + }, + "required": [ + "isFound", + "user", + "links", + "ssConfLinks", + "subscriptionUrl" + ] + } + }, + "required": [ + "response" + ] + }, + "GetSubscriptionByShortUuidProtectedResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "isFound": { + "type": "boolean" + }, + "user": { + "type": "object", + "properties": { + "shortUuid": { + "type": "string" + }, + "daysLeft": { + "type": "number" + }, + "trafficUsed": { + "type": "string" + }, + "trafficLimit": { + "type": "string" + }, + "lifetimeTrafficUsed": { + "type": "string" + }, + "trafficUsedBytes": { + "type": "string" + }, + "trafficLimitBytes": { + "type": "string" + }, + "lifetimeTrafficUsedBytes": { + "type": "string" + }, + "username": { + "type": "string" + }, + "expiresAt": { + "type": "string", + "format": "date-time" + }, + "isActive": { + "type": "boolean" + }, + "userStatus": { + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "x-enumNames": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ] + }, + "trafficLimitStrategy": { + "type": "string", + "enum": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "x-enumNames": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ] + } + }, + "required": [ + "shortUuid", + "daysLeft", + "trafficUsed", + "trafficLimit", + "lifetimeTrafficUsed", + "trafficUsedBytes", + "trafficLimitBytes", + "lifetimeTrafficUsedBytes", + "username", + "expiresAt", + "isActive", + "userStatus", + "trafficLimitStrategy" + ] + }, + "links": { + "type": "array", + "items": { + "type": "string" + } + }, + "ssConfLinks": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "subscriptionUrl": { + "type": "string" + } + }, + "required": [ + "isFound", + "user", + "links", + "ssConfLinks", + "subscriptionUrl" + ] + } + }, + "required": [ + "response" + ] + }, + "GetSubscriptionByUuidResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "isFound": { + "type": "boolean" + }, + "user": { + "type": "object", + "properties": { + "shortUuid": { + "type": "string" + }, + "daysLeft": { + "type": "number" + }, + "trafficUsed": { + "type": "string" + }, + "trafficLimit": { + "type": "string" + }, + "lifetimeTrafficUsed": { + "type": "string" + }, + "trafficUsedBytes": { + "type": "string" + }, + "trafficLimitBytes": { + "type": "string" + }, + "lifetimeTrafficUsedBytes": { + "type": "string" + }, + "username": { + "type": "string" + }, + "expiresAt": { + "type": "string", + "format": "date-time" + }, + "isActive": { + "type": "boolean" + }, + "userStatus": { + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "x-enumNames": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ] + }, + "trafficLimitStrategy": { + "type": "string", + "enum": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "x-enumNames": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ] + } + }, + "required": [ + "shortUuid", + "daysLeft", + "trafficUsed", + "trafficLimit", + "lifetimeTrafficUsed", + "trafficUsedBytes", + "trafficLimitBytes", + "lifetimeTrafficUsedBytes", + "username", + "expiresAt", + "isActive", + "userStatus", + "trafficLimitStrategy" + ] + }, + "links": { + "type": "array", + "items": { + "type": "string" + } + }, + "ssConfLinks": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "subscriptionUrl": { + "type": "string" + } + }, + "required": [ + "isFound", + "user", + "links", + "ssConfLinks", + "subscriptionUrl" + ] + } + }, + "required": [ + "response" + ] + }, + "GetRawSubscriptionByShortUuidResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "user": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "id": { + "type": "number" + }, + "shortUuid": { + "type": "string" + }, + "username": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "x-enumNames": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "default": "ACTIVE" + }, + "trafficLimitBytes": { + "type": "integer", + "default": 0 + }, + "trafficLimitStrategy": { + "description": "Available reset periods", + "type": "string", + "enum": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "x-enumNames": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "default": "NO_RESET" + }, + "expireAt": { + "type": "string", + "format": "date-time" + }, + "telegramId": { + "type": "integer", + "nullable": true + }, + "email": { + "type": "string", + "format": "email", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tag": { + "type": "string", + "nullable": true + }, + "hwidDeviceLimit": { + "type": "integer", + "nullable": true + }, + "externalSquadUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "trojanPassword": { + "type": "string" + }, + "vlessUuid": { + "type": "string", + "format": "uuid" + }, + "ssPassword": { + "type": "string" + }, + "lastTriggeredThreshold": { + "type": "integer", + "default": 0 + }, + "subRevokedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastTrafficResetAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "subscriptionUrl": { + "type": "string" + }, + "activeInternalSquads": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + } + }, + "required": [ + "uuid", + "name" + ] + } + }, + "userTraffic": { + "type": "object", + "properties": { + "usedTrafficBytes": { + "type": "number" + }, + "lifetimeUsedTrafficBytes": { + "type": "number" + }, + "onlineAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "firstConnectedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastConnectedNodeUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "usedTrafficBytes", + "lifetimeUsedTrafficBytes", + "onlineAt", + "firstConnectedAt", + "lastConnectedNodeUuid" + ] + } + }, + "required": [ + "uuid", + "id", + "shortUuid", + "username", + "expireAt", + "telegramId", + "email", + "description", + "tag", + "hwidDeviceLimit", + "externalSquadUuid", + "trojanPassword", + "vlessUuid", + "ssPassword", + "subRevokedAt", + "lastTrafficResetAt", + "createdAt", + "updatedAt", + "subscriptionUrl", + "activeInternalSquads", + "userTraffic" + ] + }, + "convertedUserInfo": { + "type": "object", + "properties": { + "daysLeft": { + "type": "number" + }, + "trafficLimit": { + "type": "string" + }, + "trafficUsed": { + "type": "string" + }, + "lifetimeTrafficUsed": { + "type": "string" + }, + "isHwidLimited": { + "type": "boolean" + } + }, + "required": [ + "daysLeft", + "trafficLimit", + "trafficUsed", + "lifetimeTrafficUsed", + "isHwidLimited" + ] + }, + "headers": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "resolvedProxyConfigs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "finalRemark": { + "type": "string" + }, + "address": { + "type": "string" + }, + "port": { + "type": "integer", + "minimum": 0, + "exclusiveMinimum": true + }, + "protocol": { + "type": "string", + "enum": [ + "vless", + "trojan", + "shadowsocks", + "hysteria" + ] + }, + "protocolOptions": { + "oneOf": [ + { + "type": "object", + "properties": { + "encryption": { + "type": "string" + }, + "id": { + "type": "string" + }, + "flow": { + "type": "string", + "enum": [ + "", + "xtls-rprx-vision", + "xtls-rprx-vision-udp443" + ] + } + }, + "required": [ + "encryption", + "id", + "flow" + ] + }, + { + "type": "object", + "properties": { + "password": { + "type": "string" + } + }, + "required": [ + "password" + ] + }, + { + "type": "object", + "properties": { + "method": { + "type": "string" + }, + "password": { + "type": "string" + }, + "uot": { + "type": "boolean" + }, + "uotVersion": { + "type": "integer" + } + }, + "required": [ + "method", + "password", + "uot", + "uotVersion" + ] + }, + { + "type": "object", + "properties": { + "version": { + "type": "integer" + } + }, + "required": [ + "version" + ] + } + ] + }, + "transport": { + "type": "string", + "enum": [ + "tcp", + "xhttp", + "ws", + "httpupgrade", + "grpc", + "kcp", + "hysteria" + ] + }, + "transportOptions": { + "oneOf": [ + { + "type": "object", + "properties": { + "header": { + "oneOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "none" + ] + } + }, + "required": [ + "type" + ] + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "http" + ] + }, + "request": { + "type": "object", + "properties": { + "version": { + "type": "string" + }, + "method": { + "type": "string" + }, + "path": { + "type": "array", + "items": { + "type": "string" + } + }, + "headers": { + "type": "object", + "additionalProperties": {} + } + } + }, + "response": { + "type": "object", + "properties": { + "version": { + "type": "string" + }, + "status": { + "type": "string" + }, + "reason": { + "type": "string" + }, + "headers": { + "type": "object", + "additionalProperties": {} + } + } + } + }, + "required": [ + "type" + ] + } + ], + "nullable": true + } + }, + "required": [ + "header" + ] + }, + { + "type": "object", + "properties": { + "path": { + "type": "string", + "nullable": true + }, + "host": { + "type": "string", + "nullable": true + }, + "mode": { + "type": "string", + "enum": [ + "auto", + "packet-up", + "stream-up", + "stream-one" + ] + }, + "extra": { + "type": "object", + "additionalProperties": {}, + "nullable": true + } + }, + "required": [ + "path", + "host", + "mode", + "extra" + ] + }, + { + "type": "object", + "properties": { + "path": { + "type": "string", + "nullable": true + }, + "host": { + "type": "string", + "nullable": true + }, + "headers": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + }, + "heartbeatPeriod": { + "type": "number", + "nullable": true + } + }, + "required": [ + "path", + "host", + "headers", + "heartbeatPeriod" + ] + }, + { + "type": "object", + "properties": { + "path": { + "type": "string", + "nullable": true + }, + "host": { + "type": "string", + "nullable": true + }, + "headers": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + } + }, + "required": [ + "path", + "host", + "headers" + ] + }, + { + "type": "object", + "properties": { + "authority": { + "type": "string", + "nullable": true + }, + "serviceName": { + "type": "string", + "nullable": true + }, + "multiMode": { + "type": "boolean" + } + }, + "required": [ + "authority", + "serviceName", + "multiMode" + ] + }, + { + "type": "object", + "properties": { + "clientMtu": { + "type": "integer" + }, + "tti": { + "type": "integer" + }, + "congestion": { + "type": "boolean" + } + }, + "required": [ + "clientMtu", + "tti", + "congestion" + ] + }, + { + "type": "object", + "properties": { + "version": { + "type": "integer" + }, + "auth": { + "type": "string" + } + }, + "required": [ + "version", + "auth" + ] + } + ] + }, + "security": { + "type": "string", + "enum": [ + "tls", + "reality", + "none" + ] + }, + "securityOptions": { + "oneOf": [ + { + "type": "object", + "properties": { + "allowInsecure": { + "type": "boolean" + }, + "alpn": { + "type": "string", + "nullable": true + }, + "enableSessionResumption": { + "type": "boolean" + }, + "fingerprint": { + "type": "string", + "nullable": true + }, + "serverName": { + "type": "string", + "nullable": true + }, + "echConfigList": { + "type": "string", + "nullable": true + }, + "echForceQuery": { + "type": "string", + "nullable": true + } + }, + "required": [ + "allowInsecure", + "alpn", + "enableSessionResumption", + "fingerprint", + "serverName", + "echConfigList", + "echForceQuery" + ] + }, + { + "type": "object", + "properties": { + "fingerprint": { + "type": "string" + }, + "publicKey": { + "type": "string" + }, + "shortId": { + "type": "string", + "nullable": true + }, + "serverName": { + "type": "string" + }, + "spiderX": { + "type": "string", + "nullable": true + }, + "mldsa65Verify": { + "type": "string", + "nullable": true + } + }, + "required": [ + "fingerprint", + "publicKey", + "shortId", + "serverName", + "spiderX", + "mldsa65Verify" + ] + } + ] + }, + "streamOverrides": { + "type": "object", + "properties": { + "finalMask": { + "nullable": true + }, + "sockopt": { + "nullable": true + } + }, + "required": [ + "finalMask", + "sockopt" + ] + }, + "mux": { + "nullable": true + }, + "clientOverrides": { + "type": "object", + "properties": { + "shuffleHost": { + "type": "boolean" + }, + "mihomoX25519": { + "type": "boolean" + }, + "serverDescription": { + "type": "string", + "nullable": true + }, + "xrayJsonTemplate": { + "nullable": true + } + }, + "required": [ + "shuffleHost", + "mihomoX25519", + "serverDescription", + "xrayJsonTemplate" + ] + }, + "metadata": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "tag": { + "type": "string", + "nullable": true + }, + "excludeFromSubscriptionTypes": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ] + } + }, + "inboundTag": { + "type": "string" + }, + "configProfileUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "configProfileInboundUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "isDisabled": { + "type": "boolean" + }, + "isHidden": { + "type": "boolean" + }, + "viewPosition": { + "type": "integer" + }, + "remark": { + "type": "string" + }, + "vlessRouteId": { + "type": "integer", + "nullable": true + }, + "rawInbound": { + "nullable": true + } + }, + "required": [ + "uuid", + "tag", + "excludeFromSubscriptionTypes", + "inboundTag", + "configProfileUuid", + "configProfileInboundUuid", + "isDisabled", + "isHidden", + "viewPosition", + "remark", + "vlessRouteId", + "rawInbound" + ] + } + }, + "required": [ + "finalRemark", + "address", + "port", + "protocol", + "protocolOptions", + "transport", + "transportOptions", + "security", + "streamOverrides", + "mux", + "clientOverrides", + "metadata" + ] + } + } + }, + "required": [ + "user", + "convertedUserInfo", + "headers", + "resolvedProxyConfigs" + ] + } + }, + "required": [ + "response" + ] + }, + "GetSubpageConfigByShortUuidRequestBodyDto": { + "type": "object", + "properties": { + "requestHeaders": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "requestHeaders" + ] + }, + "GetSubpageConfigByShortUuidResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "subpageConfigUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "webpageAllowed": { + "type": "boolean" + } + }, + "required": [ + "subpageConfigUuid", + "webpageAllowed" + ] + } + }, + "required": [ + "response" + ] + }, + "GetConnectionKeysByUuidResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "enabledKeys": { + "type": "array", + "items": { + "type": "string" + } + }, + "hiddenKeys": { + "type": "array", + "items": { + "type": "string" + } + }, + "disabledKeys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "enabledKeys", + "hiddenKeys", + "disabledKeys" + ] + } + }, + "required": [ + "response" + ] + }, + "GetTemplatesResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "templates": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "templateType": { + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ] + }, + "templateJson": { + "nullable": true + }, + "encodedTemplateYaml": { + "type": "string", + "nullable": true + } + }, + "required": [ + "uuid", + "viewPosition", + "name", + "templateType", + "templateJson", + "encodedTemplateYaml" + ] + } + } + }, + "required": [ + "total", + "templates" + ] + } + }, + "required": [ + "response" + ] + }, + "GetTemplateResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "templateType": { + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ] + }, + "templateJson": { + "nullable": true + }, + "encodedTemplateYaml": { + "type": "string", + "nullable": true + } + }, + "required": [ + "uuid", + "viewPosition", + "name", + "templateType", + "templateJson", + "encodedTemplateYaml" + ] + } + }, + "required": [ + "response" + ] + }, + "UpdateTemplateRequestDto": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string", + "minLength": 2, + "maxLength": 255, + "pattern": "^[A-Za-z0-9_\\s-]+$" + }, + "templateJson": { + "type": "object", + "properties": {} + }, + "encodedTemplateYaml": { + "type": "string" + } + }, + "required": [ + "uuid" + ] + }, + "UpdateTemplateResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "templateType": { + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ] + }, + "templateJson": { + "nullable": true + }, + "encodedTemplateYaml": { + "type": "string", + "nullable": true + } + }, + "required": [ + "uuid", + "viewPosition", + "name", + "templateType", + "templateJson", + "encodedTemplateYaml" + ] + } + }, + "required": [ + "response" + ] + }, + "DeleteSubscriptionTemplateResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "isDeleted": { + "type": "boolean" + } + }, + "required": [ + "isDeleted" + ] + } + }, + "required": [ + "response" + ] + }, + "CreateSubscriptionTemplateRequestDto": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 2, + "maxLength": 255, + "pattern": "^[A-Za-z0-9_\\s-]+$" + }, + "templateType": { + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ] + } + }, + "required": [ + "name", + "templateType" + ] + }, + "CreateSubscriptionTemplateResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "templateType": { + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ] + }, + "templateJson": { + "nullable": true + }, + "encodedTemplateYaml": { + "type": "string", + "nullable": true + } + }, + "required": [ + "uuid", + "viewPosition", + "name", + "templateType", + "templateJson", + "encodedTemplateYaml" + ] + } + }, + "required": [ + "response" + ] + }, + "ReorderSubscriptionTemplatesRequestDto": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "viewPosition": { + "type": "integer" + }, + "uuid": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "viewPosition", + "uuid" + ] + } + } + }, + "required": [ + "items" + ] + }, + "ReorderSubscriptionTemplatesResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "templates": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "templateType": { + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ] + }, + "templateJson": { + "nullable": true + }, + "encodedTemplateYaml": { + "type": "string", + "nullable": true + } + }, + "required": [ + "uuid", + "viewPosition", + "name", + "templateType", + "templateJson", + "encodedTemplateYaml" + ] + } + } + }, + "required": [ + "total", + "templates" + ] + } + }, + "required": [ + "response" + ] + }, + "CreateApiTokenRequestDto": { + "type": "object", + "properties": { + "tokenName": { + "type": "string" + } + }, + "required": [ + "tokenName" + ] + }, + "CreateApiTokenResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "token": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "required": [ + "token", + "uuid" + ] + } + }, + "required": [ + "response" + ] + }, + "DeleteApiTokenResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "boolean" + } + }, + "required": [ + "response" + ] + }, + "FindAllApiTokensResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "apiKeys": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "token": { + "type": "string" + }, + "tokenName": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "token", + "tokenName", + "createdAt", + "updatedAt" + ] + } + }, + "docs": { + "type": "object", + "properties": { + "isDocsEnabled": { + "type": "boolean" + }, + "scalarPath": { + "type": "string", + "nullable": true + }, + "swaggerPath": { + "type": "string", + "nullable": true + } + }, + "required": [ + "isDocsEnabled", + "scalarPath", + "swaggerPath" + ] + } + }, + "required": [ + "apiKeys", + "docs" + ] + } + }, + "required": [ + "response" + ] + }, + "GetConfigProfilesResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "configProfiles": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "config": {}, + "inbounds": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "profileUuid": { + "type": "string", + "format": "uuid" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + }, + "network": { + "type": "string", + "nullable": true + }, + "security": { + "type": "string", + "nullable": true + }, + "port": { + "type": "number", + "nullable": true + }, + "rawInbound": { + "nullable": true + } + }, + "required": [ + "uuid", + "profileUuid", + "tag", + "type", + "network", + "security", + "port", + "rawInbound" + ] + } + }, + "nodes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "countryCode": { + "type": "string" + } + }, + "required": [ + "uuid", + "name", + "countryCode" + ] + } + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "viewPosition", + "name", + "config", + "inbounds", + "nodes", + "createdAt", + "updatedAt" + ] + } + } + }, + "required": [ + "total", + "configProfiles" + ] + } + }, + "required": [ + "response" + ] + }, + "GetAllInboundsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "inbounds": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "profileUuid": { + "type": "string", + "format": "uuid" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + }, + "network": { + "type": "string", + "nullable": true + }, + "security": { + "type": "string", + "nullable": true + }, + "port": { + "type": "number", + "nullable": true + }, + "rawInbound": { + "nullable": true + }, + "activeSquads": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "uuid", + "profileUuid", + "tag", + "type", + "network", + "security", + "port", + "rawInbound", + "activeSquads" + ] + } + } + }, + "required": [ + "total", + "inbounds" + ] + } + }, + "required": [ + "response" + ] + }, + "GetInboundsByProfileUuidResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "inbounds": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "profileUuid": { + "type": "string", + "format": "uuid" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + }, + "network": { + "type": "string", + "nullable": true + }, + "security": { + "type": "string", + "nullable": true + }, + "port": { + "type": "number", + "nullable": true + }, + "rawInbound": { + "nullable": true + }, + "activeSquads": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "uuid", + "profileUuid", + "tag", + "type", + "network", + "security", + "port", + "rawInbound", + "activeSquads" + ] + } + } + }, + "required": [ + "total", + "inbounds" + ] + } + }, + "required": [ + "response" + ] + }, + "GetConfigProfileByUuidResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "config": {}, + "inbounds": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "profileUuid": { + "type": "string", + "format": "uuid" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + }, + "network": { + "type": "string", + "nullable": true + }, + "security": { + "type": "string", + "nullable": true + }, + "port": { + "type": "number", + "nullable": true + }, + "rawInbound": { + "nullable": true + } + }, + "required": [ + "uuid", + "profileUuid", + "tag", + "type", + "network", + "security", + "port", + "rawInbound" + ] + } + }, + "nodes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "countryCode": { + "type": "string" + } + }, + "required": [ + "uuid", + "name", + "countryCode" + ] + } + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "viewPosition", + "name", + "config", + "inbounds", + "nodes", + "createdAt", + "updatedAt" + ] + } + }, + "required": [ + "response" + ] + }, + "GetComputedConfigProfileByUuidResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "config": {}, + "inbounds": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "profileUuid": { + "type": "string", + "format": "uuid" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + }, + "network": { + "type": "string", + "nullable": true + }, + "security": { + "type": "string", + "nullable": true + }, + "port": { + "type": "number", + "nullable": true + }, + "rawInbound": { + "nullable": true + } + }, + "required": [ + "uuid", + "profileUuid", + "tag", + "type", + "network", + "security", + "port", + "rawInbound" + ] + } + }, + "nodes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "countryCode": { + "type": "string" + } + }, + "required": [ + "uuid", + "name", + "countryCode" + ] + } + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "viewPosition", + "name", + "config", + "inbounds", + "nodes", + "createdAt", + "updatedAt" + ] + } + }, + "required": [ + "response" + ] + }, + "DeleteConfigProfileResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "isDeleted": { + "type": "boolean" + } + }, + "required": [ + "isDeleted" + ] + } + }, + "required": [ + "response" + ] + }, + "CreateConfigProfileRequestDto": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 2, + "maxLength": 30, + "pattern": "^[A-Za-z0-9_\\s-]+$" + }, + "config": { + "type": "object", + "properties": {} + } + }, + "required": [ + "name", + "config" + ] + }, + "CreateConfigProfileResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "config": {}, + "inbounds": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "profileUuid": { + "type": "string", + "format": "uuid" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + }, + "network": { + "type": "string", + "nullable": true + }, + "security": { + "type": "string", + "nullable": true + }, + "port": { + "type": "number", + "nullable": true + }, + "rawInbound": { + "nullable": true + } + }, + "required": [ + "uuid", + "profileUuid", + "tag", + "type", + "network", + "security", + "port", + "rawInbound" + ] + } + }, + "nodes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "countryCode": { + "type": "string" + } + }, + "required": [ + "uuid", + "name", + "countryCode" + ] + } + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "viewPosition", + "name", + "config", + "inbounds", + "nodes", + "createdAt", + "updatedAt" + ] + } + }, + "required": [ + "response" + ] + }, + "UpdateConfigProfileRequestDto": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string", + "minLength": 2, + "maxLength": 30, + "pattern": "^[A-Za-z0-9_\\s-]+$" + }, + "config": { + "type": "object", + "properties": {} + } + }, + "required": [ + "uuid" + ] + }, + "UpdateConfigProfileResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "config": {}, + "inbounds": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "profileUuid": { + "type": "string", + "format": "uuid" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + }, + "network": { + "type": "string", + "nullable": true + }, + "security": { + "type": "string", + "nullable": true + }, + "port": { + "type": "number", + "nullable": true + }, + "rawInbound": { + "nullable": true + } + }, + "required": [ + "uuid", + "profileUuid", + "tag", + "type", + "network", + "security", + "port", + "rawInbound" + ] + } + }, + "nodes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "countryCode": { + "type": "string" + } + }, + "required": [ + "uuid", + "name", + "countryCode" + ] + } + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "viewPosition", + "name", + "config", + "inbounds", + "nodes", + "createdAt", + "updatedAt" + ] + } + }, + "required": [ + "response" + ] + }, + "ReorderConfigProfilesRequestDto": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "viewPosition": { + "type": "integer" + }, + "uuid": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "viewPosition", + "uuid" + ] + } + } + }, + "required": [ + "items" + ] + }, + "ReorderConfigProfilesResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "configProfiles": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "config": {}, + "inbounds": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "profileUuid": { + "type": "string", + "format": "uuid" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + }, + "network": { + "type": "string", + "nullable": true + }, + "security": { + "type": "string", + "nullable": true + }, + "port": { + "type": "number", + "nullable": true + }, + "rawInbound": { + "nullable": true + } + }, + "required": [ + "uuid", + "profileUuid", + "tag", + "type", + "network", + "security", + "port", + "rawInbound" + ] + } + }, + "nodes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "countryCode": { + "type": "string" + } + }, + "required": [ + "uuid", + "name", + "countryCode" + ] + } + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "viewPosition", + "name", + "config", + "inbounds", + "nodes", + "createdAt", + "updatedAt" + ] + } + } + }, + "required": [ + "total", + "configProfiles" + ] + } + }, + "required": [ + "response" + ] + }, + "GetSnippetsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "snippets": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "snippet": {} + }, + "required": [ + "name", + "snippet" + ] + } + } + }, + "required": [ + "total", + "snippets" + ] + } + }, + "required": [ + "response" + ] + }, + "DeleteSnippetRequestDto": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 2, + "maxLength": 255, + "pattern": "^[A-Za-z0-9_\\s-]+$" + } + }, + "required": [ + "name" + ] + }, + "DeleteSnippetResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "snippets": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "snippet": {} + }, + "required": [ + "name", + "snippet" + ] + } + } + }, + "required": [ + "total", + "snippets" + ] + } + }, + "required": [ + "response" + ] + }, + "CreateSnippetRequestDto": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 2, + "maxLength": 255, + "pattern": "^[A-Za-z0-9_\\s-]+$" + }, + "snippet": { + "type": "array", + "items": { + "type": "object", + "properties": {} + } + } + }, + "required": [ + "name", + "snippet" + ] + }, + "CreateSnippetResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "snippets": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "snippet": {} + }, + "required": [ + "name", + "snippet" + ] + } + } + }, + "required": [ + "total", + "snippets" + ] + } + }, + "required": [ + "response" + ] + }, + "UpdateSnippetRequestDto": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 2, + "maxLength": 255, + "pattern": "^[A-Za-z0-9_\\s-]+$" + }, + "snippet": { + "type": "array", + "items": { + "type": "object", + "properties": {} + } + } + }, + "required": [ + "name", + "snippet" + ] + }, + "UpdateSnippetResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "snippets": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "snippet": {} + }, + "required": [ + "name", + "snippet" + ] + } + } + }, + "required": [ + "total", + "snippets" + ] + } + }, + "required": [ + "response" + ] + }, + "GetInternalSquadsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "internalSquads": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "info": { + "type": "object", + "properties": { + "membersCount": { + "type": "number" + }, + "inboundsCount": { + "type": "number" + } + }, + "required": [ + "membersCount", + "inboundsCount" + ] + }, + "inbounds": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "profileUuid": { + "type": "string", + "format": "uuid" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + }, + "network": { + "type": "string", + "nullable": true + }, + "security": { + "type": "string", + "nullable": true + }, + "port": { + "type": "number", + "nullable": true + }, + "rawInbound": { + "nullable": true + } + }, + "required": [ + "uuid", + "profileUuid", + "tag", + "type", + "network", + "security", + "port", + "rawInbound" + ] + } + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "viewPosition", + "name", + "info", + "inbounds", + "createdAt", + "updatedAt" + ] + } + } + }, + "required": [ + "total", + "internalSquads" + ] + } + }, + "required": [ + "response" + ] + }, + "GetInternalSquadByUuidResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "info": { + "type": "object", + "properties": { + "membersCount": { + "type": "number" + }, + "inboundsCount": { + "type": "number" + } + }, + "required": [ + "membersCount", + "inboundsCount" + ] + }, + "inbounds": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "profileUuid": { + "type": "string", + "format": "uuid" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + }, + "network": { + "type": "string", + "nullable": true + }, + "security": { + "type": "string", + "nullable": true + }, + "port": { + "type": "number", + "nullable": true + }, + "rawInbound": { + "nullable": true + } + }, + "required": [ + "uuid", + "profileUuid", + "tag", + "type", + "network", + "security", + "port", + "rawInbound" + ] + } + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "viewPosition", + "name", + "info", + "inbounds", + "createdAt", + "updatedAt" + ] + } + }, + "required": [ + "response" + ] + }, + "CreateInternalSquadRequestDto": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 2, + "maxLength": 30, + "pattern": "^[A-Za-z0-9_\\s-]+$" + }, + "inbounds": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "name", + "inbounds" + ] + }, + "CreateInternalSquadResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "info": { + "type": "object", + "properties": { + "membersCount": { + "type": "number" + }, + "inboundsCount": { + "type": "number" + } + }, + "required": [ + "membersCount", + "inboundsCount" + ] + }, + "inbounds": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "profileUuid": { + "type": "string", + "format": "uuid" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + }, + "network": { + "type": "string", + "nullable": true + }, + "security": { + "type": "string", + "nullable": true + }, + "port": { + "type": "number", + "nullable": true + }, + "rawInbound": { + "nullable": true + } + }, + "required": [ + "uuid", + "profileUuid", + "tag", + "type", + "network", + "security", + "port", + "rawInbound" + ] + } + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "viewPosition", + "name", + "info", + "inbounds", + "createdAt", + "updatedAt" + ] + } + }, + "required": [ + "response" + ] + }, + "GetInternalSquadAccessibleNodesResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "squadUuid": { + "type": "string", + "format": "uuid" + }, + "accessibleNodes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "nodeName": { + "type": "string" + }, + "countryCode": { + "type": "string" + }, + "configProfileUuid": { + "type": "string", + "format": "uuid" + }, + "configProfileName": { + "type": "string" + }, + "activeInbounds": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "uuid", + "nodeName", + "countryCode", + "configProfileUuid", + "configProfileName", + "activeInbounds" + ] + } + } + }, + "required": [ + "squadUuid", + "accessibleNodes" + ] + } + }, + "required": [ + "response" + ] + }, + "UpdateInternalSquadRequestDto": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string", + "minLength": 2, + "maxLength": 30, + "pattern": "^[A-Za-z0-9_\\s-]+$" + }, + "inbounds": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "uuid" + ] + }, + "UpdateInternalSquadResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "info": { + "type": "object", + "properties": { + "membersCount": { + "type": "number" + }, + "inboundsCount": { + "type": "number" + } + }, + "required": [ + "membersCount", + "inboundsCount" + ] + }, + "inbounds": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "profileUuid": { + "type": "string", + "format": "uuid" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + }, + "network": { + "type": "string", + "nullable": true + }, + "security": { + "type": "string", + "nullable": true + }, + "port": { + "type": "number", + "nullable": true + }, + "rawInbound": { + "nullable": true + } + }, + "required": [ + "uuid", + "profileUuid", + "tag", + "type", + "network", + "security", + "port", + "rawInbound" + ] + } + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "viewPosition", + "name", + "info", + "inbounds", + "createdAt", + "updatedAt" + ] + } + }, + "required": [ + "response" + ] + }, + "DeleteInternalSquadResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "isDeleted": { + "type": "boolean" + } + }, + "required": [ + "isDeleted" + ] + } + }, + "required": [ + "response" + ] + }, + "AddUsersToInternalSquadResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "eventSent": { + "type": "boolean" + } + }, + "required": [ + "eventSent" + ] + } + }, + "required": [ + "response" + ] + }, + "RemoveUsersFromInternalSquadResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "eventSent": { + "type": "boolean" + } + }, + "required": [ + "eventSent" + ] + } + }, + "required": [ + "response" + ] + }, + "ReorderInternalSquadsRequestDto": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "viewPosition": { + "type": "integer" + }, + "uuid": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "viewPosition", + "uuid" + ] + } + } + }, + "required": [ + "items" + ] + }, + "ReorderInternalSquadsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "internalSquads": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "info": { + "type": "object", + "properties": { + "membersCount": { + "type": "number" + }, + "inboundsCount": { + "type": "number" + } + }, + "required": [ + "membersCount", + "inboundsCount" + ] + }, + "inbounds": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "profileUuid": { + "type": "string", + "format": "uuid" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + }, + "network": { + "type": "string", + "nullable": true + }, + "security": { + "type": "string", + "nullable": true + }, + "port": { + "type": "number", + "nullable": true + }, + "rawInbound": { + "nullable": true + } + }, + "required": [ + "uuid", + "profileUuid", + "tag", + "type", + "network", + "security", + "port", + "rawInbound" + ] + } + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "viewPosition", + "name", + "info", + "inbounds", + "createdAt", + "updatedAt" + ] + } + } + }, + "required": [ + "total", + "internalSquads" + ] + } + }, + "required": [ + "response" + ] + }, + "GetExternalSquadsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "externalSquads": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "info": { + "type": "object", + "properties": { + "membersCount": { + "type": "number" + } + }, + "required": [ + "membersCount" + ] + }, + "templates": { + "type": "array", + "items": { + "type": "object", + "properties": { + "templateUuid": { + "type": "string", + "format": "uuid" + }, + "templateType": { + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ] + } + }, + "required": [ + "templateUuid", + "templateType" + ] + } + }, + "subscriptionSettings": { + "type": "object", + "properties": { + "profileTitle": { + "type": "string" + }, + "supportLink": { + "type": "string" + }, + "profileUpdateInterval": { + "type": "integer", + "minimum": 1, + "exclusiveMinimum": false + }, + "isProfileWebpageUrlEnabled": { + "type": "boolean" + }, + "serveJsonAtBaseSubscription": { + "type": "boolean" + }, + "isShowCustomRemarks": { + "type": "boolean" + }, + "happAnnounce": { + "type": "string", + "nullable": true + }, + "happRouting": { + "type": "string", + "nullable": true + }, + "randomizeHosts": { + "type": "boolean" + } + }, + "nullable": true + }, + "hostOverrides": { + "type": "object", + "properties": { + "serverDescription": { + "type": "string", + "maxLength": 30, + "nullable": true + }, + "vlessRouteId": { + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false, + "maximum": 65535, + "exclusiveMaximum": false, + "nullable": true + } + }, + "nullable": true + }, + "responseHeaders": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + }, + "hwidSettings": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "fallbackDeviceLimit": { + "type": "number" + }, + "maxDevicesAnnounce": { + "type": "string", + "maxLength": 200, + "nullable": true + } + }, + "required": [ + "enabled", + "fallbackDeviceLimit", + "maxDevicesAnnounce" + ], + "nullable": true + }, + "customRemarks": { + "type": "object", + "properties": { + "expiredUsers": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "limitedUsers": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "disabledUsers": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "emptyHosts": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "HWIDMaxDevicesExceeded": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "HWIDNotSupported": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + } + }, + "required": [ + "expiredUsers", + "limitedUsers", + "disabledUsers", + "emptyHosts", + "HWIDMaxDevicesExceeded", + "HWIDNotSupported" + ], + "nullable": true + }, + "subpageConfigUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "viewPosition", + "name", + "info", + "templates", + "subscriptionSettings", + "hostOverrides", + "responseHeaders", + "hwidSettings", + "customRemarks", + "subpageConfigUuid", + "createdAt", + "updatedAt" + ] + } + } + }, + "required": [ + "total", + "externalSquads" + ] + } + }, + "required": [ + "response" + ] + }, + "GetExternalSquadByUuidResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "info": { + "type": "object", + "properties": { + "membersCount": { + "type": "number" + } + }, + "required": [ + "membersCount" + ] + }, + "templates": { + "type": "array", + "items": { + "type": "object", + "properties": { + "templateUuid": { + "type": "string", + "format": "uuid" + }, + "templateType": { + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ] + } + }, + "required": [ + "templateUuid", + "templateType" + ] + } + }, + "subscriptionSettings": { + "type": "object", + "properties": { + "profileTitle": { + "type": "string" + }, + "supportLink": { + "type": "string" + }, + "profileUpdateInterval": { + "type": "integer", + "minimum": 1, + "exclusiveMinimum": false + }, + "isProfileWebpageUrlEnabled": { + "type": "boolean" + }, + "serveJsonAtBaseSubscription": { + "type": "boolean" + }, + "isShowCustomRemarks": { + "type": "boolean" + }, + "happAnnounce": { + "type": "string", + "nullable": true + }, + "happRouting": { + "type": "string", + "nullable": true + }, + "randomizeHosts": { + "type": "boolean" + } + }, + "nullable": true + }, + "hostOverrides": { + "type": "object", + "properties": { + "serverDescription": { + "type": "string", + "maxLength": 30, + "nullable": true + }, + "vlessRouteId": { + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false, + "maximum": 65535, + "exclusiveMaximum": false, + "nullable": true + } + }, + "nullable": true + }, + "responseHeaders": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + }, + "hwidSettings": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "fallbackDeviceLimit": { + "type": "number" + }, + "maxDevicesAnnounce": { + "type": "string", + "maxLength": 200, + "nullable": true + } + }, + "required": [ + "enabled", + "fallbackDeviceLimit", + "maxDevicesAnnounce" + ], + "nullable": true + }, + "customRemarks": { + "type": "object", + "properties": { + "expiredUsers": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "limitedUsers": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "disabledUsers": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "emptyHosts": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "HWIDMaxDevicesExceeded": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "HWIDNotSupported": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + } + }, + "required": [ + "expiredUsers", + "limitedUsers", + "disabledUsers", + "emptyHosts", + "HWIDMaxDevicesExceeded", + "HWIDNotSupported" + ], + "nullable": true + }, + "subpageConfigUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "viewPosition", + "name", + "info", + "templates", + "subscriptionSettings", + "hostOverrides", + "responseHeaders", + "hwidSettings", + "customRemarks", + "subpageConfigUuid", + "createdAt", + "updatedAt" + ] + } + }, + "required": [ + "response" + ] + }, + "CreateExternalSquadRequestDto": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 2, + "maxLength": 30, + "pattern": "^[A-Za-z0-9_\\s-]+$" + } + }, + "required": [ + "name" + ] + }, + "CreateExternalSquadResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "info": { + "type": "object", + "properties": { + "membersCount": { + "type": "number" + } + }, + "required": [ + "membersCount" + ] + }, + "templates": { + "type": "array", + "items": { + "type": "object", + "properties": { + "templateUuid": { + "type": "string", + "format": "uuid" + }, + "templateType": { + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ] + } + }, + "required": [ + "templateUuid", + "templateType" + ] + } + }, + "subscriptionSettings": { + "type": "object", + "properties": { + "profileTitle": { + "type": "string" + }, + "supportLink": { + "type": "string" + }, + "profileUpdateInterval": { + "type": "integer", + "minimum": 1, + "exclusiveMinimum": false + }, + "isProfileWebpageUrlEnabled": { + "type": "boolean" + }, + "serveJsonAtBaseSubscription": { + "type": "boolean" + }, + "isShowCustomRemarks": { + "type": "boolean" + }, + "happAnnounce": { + "type": "string", + "nullable": true + }, + "happRouting": { + "type": "string", + "nullable": true + }, + "randomizeHosts": { + "type": "boolean" + } + }, + "nullable": true + }, + "hostOverrides": { + "type": "object", + "properties": { + "serverDescription": { + "type": "string", + "maxLength": 30, + "nullable": true + }, + "vlessRouteId": { + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false, + "maximum": 65535, + "exclusiveMaximum": false, + "nullable": true + } + }, + "nullable": true + }, + "responseHeaders": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + }, + "hwidSettings": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "fallbackDeviceLimit": { + "type": "number" + }, + "maxDevicesAnnounce": { + "type": "string", + "maxLength": 200, + "nullable": true + } + }, + "required": [ + "enabled", + "fallbackDeviceLimit", + "maxDevicesAnnounce" + ], + "nullable": true + }, + "customRemarks": { + "type": "object", + "properties": { + "expiredUsers": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "limitedUsers": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "disabledUsers": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "emptyHosts": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "HWIDMaxDevicesExceeded": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "HWIDNotSupported": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + } + }, + "required": [ + "expiredUsers", + "limitedUsers", + "disabledUsers", + "emptyHosts", + "HWIDMaxDevicesExceeded", + "HWIDNotSupported" + ], + "nullable": true + }, + "subpageConfigUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "viewPosition", + "name", + "info", + "templates", + "subscriptionSettings", + "hostOverrides", + "responseHeaders", + "hwidSettings", + "customRemarks", + "subpageConfigUuid", + "createdAt", + "updatedAt" + ] + } + }, + "required": [ + "response" + ] + }, + "UpdateExternalSquadRequestDto": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string", + "minLength": 2, + "maxLength": 30, + "pattern": "^[A-Za-z0-9_\\s-]+$" + }, + "templates": { + "type": "array", + "items": { + "type": "object", + "properties": { + "templateUuid": { + "type": "string", + "format": "uuid" + }, + "templateType": { + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ] + } + }, + "required": [ + "templateUuid", + "templateType" + ] + } + }, + "subscriptionSettings": { + "type": "object", + "properties": { + "profileTitle": { + "type": "string" + }, + "supportLink": { + "type": "string" + }, + "profileUpdateInterval": { + "type": "integer", + "minimum": 1, + "exclusiveMinimum": false + }, + "isProfileWebpageUrlEnabled": { + "type": "boolean" + }, + "serveJsonAtBaseSubscription": { + "type": "boolean" + }, + "isShowCustomRemarks": { + "type": "boolean" + }, + "happAnnounce": { + "type": "string", + "nullable": true + }, + "happRouting": { + "type": "string", + "nullable": true + }, + "randomizeHosts": { + "type": "boolean" + } + } + }, + "hostOverrides": { + "type": "object", + "properties": { + "serverDescription": { + "type": "string", + "maxLength": 30, + "nullable": true + }, + "vlessRouteId": { + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false, + "maximum": 65535, + "exclusiveMaximum": false, + "nullable": true + } + } + }, + "responseHeaders": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + }, + "hwidSettings": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "fallbackDeviceLimit": { + "type": "number" + }, + "maxDevicesAnnounce": { + "type": "string", + "maxLength": 200, + "nullable": true + } + }, + "required": [ + "enabled", + "fallbackDeviceLimit", + "maxDevicesAnnounce" + ], + "nullable": true + }, + "customRemarks": { + "type": "object", + "properties": { + "expiredUsers": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "limitedUsers": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "disabledUsers": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "emptyHosts": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "HWIDMaxDevicesExceeded": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "HWIDNotSupported": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + } + }, + "required": [ + "expiredUsers", + "limitedUsers", + "disabledUsers", + "emptyHosts", + "HWIDMaxDevicesExceeded", + "HWIDNotSupported" + ], + "nullable": true + }, + "subpageConfigUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "uuid" + ] + }, + "UpdateExternalSquadResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "info": { + "type": "object", + "properties": { + "membersCount": { + "type": "number" + } + }, + "required": [ + "membersCount" + ] + }, + "templates": { + "type": "array", + "items": { + "type": "object", + "properties": { + "templateUuid": { + "type": "string", + "format": "uuid" + }, + "templateType": { + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ] + } + }, + "required": [ + "templateUuid", + "templateType" + ] + } + }, + "subscriptionSettings": { + "type": "object", + "properties": { + "profileTitle": { + "type": "string" + }, + "supportLink": { + "type": "string" + }, + "profileUpdateInterval": { + "type": "integer", + "minimum": 1, + "exclusiveMinimum": false + }, + "isProfileWebpageUrlEnabled": { + "type": "boolean" + }, + "serveJsonAtBaseSubscription": { + "type": "boolean" + }, + "isShowCustomRemarks": { + "type": "boolean" + }, + "happAnnounce": { + "type": "string", + "nullable": true + }, + "happRouting": { + "type": "string", + "nullable": true + }, + "randomizeHosts": { + "type": "boolean" + } + }, + "nullable": true + }, + "hostOverrides": { + "type": "object", + "properties": { + "serverDescription": { + "type": "string", + "maxLength": 30, + "nullable": true + }, + "vlessRouteId": { + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false, + "maximum": 65535, + "exclusiveMaximum": false, + "nullable": true + } + }, + "nullable": true + }, + "responseHeaders": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + }, + "hwidSettings": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "fallbackDeviceLimit": { + "type": "number" + }, + "maxDevicesAnnounce": { + "type": "string", + "maxLength": 200, + "nullable": true + } + }, + "required": [ + "enabled", + "fallbackDeviceLimit", + "maxDevicesAnnounce" + ], + "nullable": true + }, + "customRemarks": { + "type": "object", + "properties": { + "expiredUsers": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "limitedUsers": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "disabledUsers": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "emptyHosts": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "HWIDMaxDevicesExceeded": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "HWIDNotSupported": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + } + }, + "required": [ + "expiredUsers", + "limitedUsers", + "disabledUsers", + "emptyHosts", + "HWIDMaxDevicesExceeded", + "HWIDNotSupported" + ], + "nullable": true + }, + "subpageConfigUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "viewPosition", + "name", + "info", + "templates", + "subscriptionSettings", + "hostOverrides", + "responseHeaders", + "hwidSettings", + "customRemarks", + "subpageConfigUuid", + "createdAt", + "updatedAt" + ] + } + }, + "required": [ + "response" + ] + }, + "DeleteExternalSquadResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "isDeleted": { + "type": "boolean" + } + }, + "required": [ + "isDeleted" + ] + } + }, + "required": [ + "response" + ] + }, + "AddUsersToExternalSquadResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "eventSent": { + "type": "boolean" + } + }, + "required": [ + "eventSent" + ] + } + }, + "required": [ + "response" + ] + }, + "RemoveUsersFromExternalSquadResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "eventSent": { + "type": "boolean" + } + }, + "required": [ + "eventSent" + ] + } + }, + "required": [ + "response" + ] + }, + "ReorderExternalSquadsRequestDto": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "viewPosition": { + "type": "integer" + }, + "uuid": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "viewPosition", + "uuid" + ] + } + } + }, + "required": [ + "items" + ] + }, + "ReorderExternalSquadsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "externalSquads": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "info": { + "type": "object", + "properties": { + "membersCount": { + "type": "number" + } + }, + "required": [ + "membersCount" + ] + }, + "templates": { + "type": "array", + "items": { + "type": "object", + "properties": { + "templateUuid": { + "type": "string", + "format": "uuid" + }, + "templateType": { + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ] + } + }, + "required": [ + "templateUuid", + "templateType" + ] + } + }, + "subscriptionSettings": { + "type": "object", + "properties": { + "profileTitle": { + "type": "string" + }, + "supportLink": { + "type": "string" + }, + "profileUpdateInterval": { + "type": "integer", + "minimum": 1, + "exclusiveMinimum": false + }, + "isProfileWebpageUrlEnabled": { + "type": "boolean" + }, + "serveJsonAtBaseSubscription": { + "type": "boolean" + }, + "isShowCustomRemarks": { + "type": "boolean" + }, + "happAnnounce": { + "type": "string", + "nullable": true + }, + "happRouting": { + "type": "string", + "nullable": true + }, + "randomizeHosts": { + "type": "boolean" + } + }, + "nullable": true + }, + "hostOverrides": { + "type": "object", + "properties": { + "serverDescription": { + "type": "string", + "maxLength": 30, + "nullable": true + }, + "vlessRouteId": { + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false, + "maximum": 65535, + "exclusiveMaximum": false, + "nullable": true + } + }, + "nullable": true + }, + "responseHeaders": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + }, + "hwidSettings": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "fallbackDeviceLimit": { + "type": "number" + }, + "maxDevicesAnnounce": { + "type": "string", + "maxLength": 200, + "nullable": true + } + }, + "required": [ + "enabled", + "fallbackDeviceLimit", + "maxDevicesAnnounce" + ], + "nullable": true + }, + "customRemarks": { + "type": "object", + "properties": { + "expiredUsers": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "limitedUsers": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "disabledUsers": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "emptyHosts": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "HWIDMaxDevicesExceeded": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "HWIDNotSupported": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + } + }, + "required": [ + "expiredUsers", + "limitedUsers", + "disabledUsers", + "emptyHosts", + "HWIDMaxDevicesExceeded", + "HWIDNotSupported" + ], + "nullable": true + }, + "subpageConfigUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "viewPosition", + "name", + "info", + "templates", + "subscriptionSettings", + "hostOverrides", + "responseHeaders", + "hwidSettings", + "customRemarks", + "subpageConfigUuid", + "createdAt", + "updatedAt" + ] + } + } + }, + "required": [ + "total", + "externalSquads" + ] + } + }, + "required": [ + "response" + ] + }, + "GetPubKeyResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "pubKey": { + "type": "string" + } + }, + "required": [ + "pubKey" + ] + } + }, + "required": [ + "response" + ] + }, + "GetAllNodesTagsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "tags" + ] + } + }, + "required": [ + "response" + ] + }, + "CreateNodeRequestDto": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 3, + "maxLength": 30 + }, + "address": { + "type": "string", + "minLength": 2 + }, + "port": { + "type": "integer", + "minimum": 1, + "exclusiveMinimum": false, + "maximum": 65535, + "exclusiveMaximum": false + }, + "isTrafficTrackingActive": { + "type": "boolean", + "default": false + }, + "trafficLimitBytes": { + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false + }, + "notifyPercent": { + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false, + "maximum": 100, + "exclusiveMaximum": false + }, + "trafficResetDay": { + "type": "integer", + "minimum": 1, + "exclusiveMinimum": false, + "maximum": 31, + "exclusiveMaximum": false + }, + "countryCode": { + "type": "string", + "maxLength": 2, + "default": "XX" + }, + "consumptionMultiplier": { + "type": "number", + "minimum": 0, + "exclusiveMinimum": false, + "maximum": 100, + "exclusiveMaximum": false + }, + "configProfile": { + "type": "object", + "properties": { + "activeConfigProfileUuid": { + "type": "string", + "format": "uuid" + }, + "activeInbounds": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "activeConfigProfileUuid", + "activeInbounds" + ] + }, + "providerUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "tags": { + "type": "array", + "maxItems": 10, + "items": { + "type": "string", + "pattern": "^[A-Z0-9_:]+$", + "maxLength": 36 + } + }, + "activePluginUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "name", + "address", + "configProfile" + ] + }, + "CreateNodeResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "address": { + "type": "string" + }, + "port": { + "type": "integer", + "nullable": true + }, + "isConnected": { + "type": "boolean" + }, + "isDisabled": { + "type": "boolean" + }, + "isConnecting": { + "type": "boolean" + }, + "lastStatusChange": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastStatusMessage": { + "type": "string", + "nullable": true + }, + "isTrafficTrackingActive": { + "type": "boolean" + }, + "trafficResetDay": { + "type": "integer", + "nullable": true + }, + "trafficLimitBytes": { + "type": "number", + "nullable": true + }, + "trafficUsedBytes": { + "type": "number", + "nullable": true + }, + "notifyPercent": { + "type": "integer", + "nullable": true + }, + "viewPosition": { + "type": "integer" + }, + "countryCode": { + "type": "string" + }, + "consumptionMultiplier": { + "type": "number" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "configProfile": { + "type": "object", + "properties": { + "activeConfigProfileUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "activeInbounds": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "profileUuid": { + "type": "string", + "format": "uuid" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + }, + "network": { + "type": "string", + "nullable": true + }, + "security": { + "type": "string", + "nullable": true + }, + "port": { + "type": "number", + "nullable": true + }, + "rawInbound": { + "nullable": true + } + }, + "required": [ + "uuid", + "profileUuid", + "tag", + "type", + "network", + "security", + "port", + "rawInbound" + ] + } + } + }, + "required": [ + "activeConfigProfileUuid", + "activeInbounds" + ] + }, + "providerUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "provider": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "faviconLink": { + "type": "string", + "nullable": true + }, + "loginUrl": { + "type": "string", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "name", + "faviconLink", + "loginUrl", + "createdAt", + "updatedAt" + ], + "nullable": true + }, + "activePluginUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "system": { + "type": "object", + "properties": { + "info": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "cpus": { + "type": "integer" + }, + "cpuModel": { + "type": "string" + }, + "memoryTotal": { + "type": "number" + }, + "hostname": { + "type": "string" + }, + "platform": { + "type": "string" + }, + "release": { + "type": "string" + }, + "type": { + "type": "string" + }, + "version": { + "type": "string" + }, + "networkInterfaces": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "arch", + "cpus", + "cpuModel", + "memoryTotal", + "hostname", + "platform", + "release", + "type", + "version", + "networkInterfaces" + ] + }, + "stats": { + "type": "object", + "properties": { + "memoryFree": { + "type": "number" + }, + "memoryUsed": { + "type": "number" + }, + "uptime": { + "type": "number" + }, + "loadAvg": { + "type": "array", + "items": { + "type": "number" + } + }, + "interface": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "rxBytesPerSec": { + "type": "number" + }, + "txBytesPerSec": { + "type": "number" + }, + "rxTotal": { + "type": "number" + }, + "txTotal": { + "type": "number" + } + }, + "required": [ + "interface", + "rxBytesPerSec", + "txBytesPerSec", + "rxTotal", + "txTotal" + ], + "nullable": true + } + }, + "required": [ + "memoryFree", + "memoryUsed", + "uptime", + "loadAvg", + "interface" + ] + } + }, + "required": [ + "info", + "stats" + ], + "nullable": true + }, + "versions": { + "type": "object", + "properties": { + "xray": { + "type": "string" + }, + "node": { + "type": "string" + } + }, + "required": [ + "xray", + "node" + ], + "nullable": true + }, + "xrayUptime": { + "type": "number" + }, + "usersOnline": { + "type": "number" + } + }, + "required": [ + "uuid", + "name", + "address", + "port", + "isConnected", + "isDisabled", + "isConnecting", + "lastStatusChange", + "lastStatusMessage", + "isTrafficTrackingActive", + "trafficResetDay", + "trafficLimitBytes", + "trafficUsedBytes", + "notifyPercent", + "viewPosition", + "countryCode", + "consumptionMultiplier", + "tags", + "createdAt", + "updatedAt", + "configProfile", + "providerUuid", + "provider", + "activePluginUuid", + "system", + "versions", + "xrayUptime", + "usersOnline" + ] + } + }, + "required": [ + "response" + ] + }, + "GetAllNodesResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "address": { + "type": "string" + }, + "port": { + "type": "integer", + "nullable": true + }, + "isConnected": { + "type": "boolean" + }, + "isDisabled": { + "type": "boolean" + }, + "isConnecting": { + "type": "boolean" + }, + "lastStatusChange": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastStatusMessage": { + "type": "string", + "nullable": true + }, + "isTrafficTrackingActive": { + "type": "boolean" + }, + "trafficResetDay": { + "type": "integer", + "nullable": true + }, + "trafficLimitBytes": { + "type": "number", + "nullable": true + }, + "trafficUsedBytes": { + "type": "number", + "nullable": true + }, + "notifyPercent": { + "type": "integer", + "nullable": true + }, + "viewPosition": { + "type": "integer" + }, + "countryCode": { + "type": "string" + }, + "consumptionMultiplier": { + "type": "number" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "configProfile": { + "type": "object", + "properties": { + "activeConfigProfileUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "activeInbounds": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "profileUuid": { + "type": "string", + "format": "uuid" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + }, + "network": { + "type": "string", + "nullable": true + }, + "security": { + "type": "string", + "nullable": true + }, + "port": { + "type": "number", + "nullable": true + }, + "rawInbound": { + "nullable": true + } + }, + "required": [ + "uuid", + "profileUuid", + "tag", + "type", + "network", + "security", + "port", + "rawInbound" + ] + } + } + }, + "required": [ + "activeConfigProfileUuid", + "activeInbounds" + ] + }, + "providerUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "provider": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "faviconLink": { + "type": "string", + "nullable": true + }, + "loginUrl": { + "type": "string", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "name", + "faviconLink", + "loginUrl", + "createdAt", + "updatedAt" + ], + "nullable": true + }, + "activePluginUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "system": { + "type": "object", + "properties": { + "info": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "cpus": { + "type": "integer" + }, + "cpuModel": { + "type": "string" + }, + "memoryTotal": { + "type": "number" + }, + "hostname": { + "type": "string" + }, + "platform": { + "type": "string" + }, + "release": { + "type": "string" + }, + "type": { + "type": "string" + }, + "version": { + "type": "string" + }, + "networkInterfaces": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "arch", + "cpus", + "cpuModel", + "memoryTotal", + "hostname", + "platform", + "release", + "type", + "version", + "networkInterfaces" + ] + }, + "stats": { + "type": "object", + "properties": { + "memoryFree": { + "type": "number" + }, + "memoryUsed": { + "type": "number" + }, + "uptime": { + "type": "number" + }, + "loadAvg": { + "type": "array", + "items": { + "type": "number" + } + }, + "interface": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "rxBytesPerSec": { + "type": "number" + }, + "txBytesPerSec": { + "type": "number" + }, + "rxTotal": { + "type": "number" + }, + "txTotal": { + "type": "number" + } + }, + "required": [ + "interface", + "rxBytesPerSec", + "txBytesPerSec", + "rxTotal", + "txTotal" + ], + "nullable": true + } + }, + "required": [ + "memoryFree", + "memoryUsed", + "uptime", + "loadAvg", + "interface" + ] + } + }, + "required": [ + "info", + "stats" + ], + "nullable": true + }, + "versions": { + "type": "object", + "properties": { + "xray": { + "type": "string" + }, + "node": { + "type": "string" + } + }, + "required": [ + "xray", + "node" + ], + "nullable": true + }, + "xrayUptime": { + "type": "number" + }, + "usersOnline": { + "type": "number" + } + }, + "required": [ + "uuid", + "name", + "address", + "port", + "isConnected", + "isDisabled", + "isConnecting", + "lastStatusChange", + "lastStatusMessage", + "isTrafficTrackingActive", + "trafficResetDay", + "trafficLimitBytes", + "trafficUsedBytes", + "notifyPercent", + "viewPosition", + "countryCode", + "consumptionMultiplier", + "tags", + "createdAt", + "updatedAt", + "configProfile", + "providerUuid", + "provider", + "activePluginUuid", + "system", + "versions", + "xrayUptime", + "usersOnline" + ] + } + } + }, + "required": [ + "response" + ] + }, + "GetOneNodeResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "address": { + "type": "string" + }, + "port": { + "type": "integer", + "nullable": true + }, + "isConnected": { + "type": "boolean" + }, + "isDisabled": { + "type": "boolean" + }, + "isConnecting": { + "type": "boolean" + }, + "lastStatusChange": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastStatusMessage": { + "type": "string", + "nullable": true + }, + "isTrafficTrackingActive": { + "type": "boolean" + }, + "trafficResetDay": { + "type": "integer", + "nullable": true + }, + "trafficLimitBytes": { + "type": "number", + "nullable": true + }, + "trafficUsedBytes": { + "type": "number", + "nullable": true + }, + "notifyPercent": { + "type": "integer", + "nullable": true + }, + "viewPosition": { + "type": "integer" + }, + "countryCode": { + "type": "string" + }, + "consumptionMultiplier": { + "type": "number" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "configProfile": { + "type": "object", + "properties": { + "activeConfigProfileUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "activeInbounds": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "profileUuid": { + "type": "string", + "format": "uuid" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + }, + "network": { + "type": "string", + "nullable": true + }, + "security": { + "type": "string", + "nullable": true + }, + "port": { + "type": "number", + "nullable": true + }, + "rawInbound": { + "nullable": true + } + }, + "required": [ + "uuid", + "profileUuid", + "tag", + "type", + "network", + "security", + "port", + "rawInbound" + ] + } + } + }, + "required": [ + "activeConfigProfileUuid", + "activeInbounds" + ] + }, + "providerUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "provider": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "faviconLink": { + "type": "string", + "nullable": true + }, + "loginUrl": { + "type": "string", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "name", + "faviconLink", + "loginUrl", + "createdAt", + "updatedAt" + ], + "nullable": true + }, + "activePluginUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "system": { + "type": "object", + "properties": { + "info": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "cpus": { + "type": "integer" + }, + "cpuModel": { + "type": "string" + }, + "memoryTotal": { + "type": "number" + }, + "hostname": { + "type": "string" + }, + "platform": { + "type": "string" + }, + "release": { + "type": "string" + }, + "type": { + "type": "string" + }, + "version": { + "type": "string" + }, + "networkInterfaces": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "arch", + "cpus", + "cpuModel", + "memoryTotal", + "hostname", + "platform", + "release", + "type", + "version", + "networkInterfaces" + ] + }, + "stats": { + "type": "object", + "properties": { + "memoryFree": { + "type": "number" + }, + "memoryUsed": { + "type": "number" + }, + "uptime": { + "type": "number" + }, + "loadAvg": { + "type": "array", + "items": { + "type": "number" + } + }, + "interface": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "rxBytesPerSec": { + "type": "number" + }, + "txBytesPerSec": { + "type": "number" + }, + "rxTotal": { + "type": "number" + }, + "txTotal": { + "type": "number" + } + }, + "required": [ + "interface", + "rxBytesPerSec", + "txBytesPerSec", + "rxTotal", + "txTotal" + ], + "nullable": true + } + }, + "required": [ + "memoryFree", + "memoryUsed", + "uptime", + "loadAvg", + "interface" + ] + } + }, + "required": [ + "info", + "stats" + ], + "nullable": true + }, + "versions": { + "type": "object", + "properties": { + "xray": { + "type": "string" + }, + "node": { + "type": "string" + } + }, + "required": [ + "xray", + "node" + ], + "nullable": true + }, + "xrayUptime": { + "type": "number" + }, + "usersOnline": { + "type": "number" + } + }, + "required": [ + "uuid", + "name", + "address", + "port", + "isConnected", + "isDisabled", + "isConnecting", + "lastStatusChange", + "lastStatusMessage", + "isTrafficTrackingActive", + "trafficResetDay", + "trafficLimitBytes", + "trafficUsedBytes", + "notifyPercent", + "viewPosition", + "countryCode", + "consumptionMultiplier", + "tags", + "createdAt", + "updatedAt", + "configProfile", + "providerUuid", + "provider", + "activePluginUuid", + "system", + "versions", + "xrayUptime", + "usersOnline" + ] + } + }, + "required": [ + "response" + ] + }, + "EnableNodeResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "address": { + "type": "string" + }, + "port": { + "type": "integer", + "nullable": true + }, + "isConnected": { + "type": "boolean" + }, + "isDisabled": { + "type": "boolean" + }, + "isConnecting": { + "type": "boolean" + }, + "lastStatusChange": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastStatusMessage": { + "type": "string", + "nullable": true + }, + "isTrafficTrackingActive": { + "type": "boolean" + }, + "trafficResetDay": { + "type": "integer", + "nullable": true + }, + "trafficLimitBytes": { + "type": "number", + "nullable": true + }, + "trafficUsedBytes": { + "type": "number", + "nullable": true + }, + "notifyPercent": { + "type": "integer", + "nullable": true + }, + "viewPosition": { + "type": "integer" + }, + "countryCode": { + "type": "string" + }, + "consumptionMultiplier": { + "type": "number" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "configProfile": { + "type": "object", + "properties": { + "activeConfigProfileUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "activeInbounds": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "profileUuid": { + "type": "string", + "format": "uuid" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + }, + "network": { + "type": "string", + "nullable": true + }, + "security": { + "type": "string", + "nullable": true + }, + "port": { + "type": "number", + "nullable": true + }, + "rawInbound": { + "nullable": true + } + }, + "required": [ + "uuid", + "profileUuid", + "tag", + "type", + "network", + "security", + "port", + "rawInbound" + ] + } + } + }, + "required": [ + "activeConfigProfileUuid", + "activeInbounds" + ] + }, + "providerUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "provider": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "faviconLink": { + "type": "string", + "nullable": true + }, + "loginUrl": { + "type": "string", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "name", + "faviconLink", + "loginUrl", + "createdAt", + "updatedAt" + ], + "nullable": true + }, + "activePluginUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "system": { + "type": "object", + "properties": { + "info": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "cpus": { + "type": "integer" + }, + "cpuModel": { + "type": "string" + }, + "memoryTotal": { + "type": "number" + }, + "hostname": { + "type": "string" + }, + "platform": { + "type": "string" + }, + "release": { + "type": "string" + }, + "type": { + "type": "string" + }, + "version": { + "type": "string" + }, + "networkInterfaces": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "arch", + "cpus", + "cpuModel", + "memoryTotal", + "hostname", + "platform", + "release", + "type", + "version", + "networkInterfaces" + ] + }, + "stats": { + "type": "object", + "properties": { + "memoryFree": { + "type": "number" + }, + "memoryUsed": { + "type": "number" + }, + "uptime": { + "type": "number" + }, + "loadAvg": { + "type": "array", + "items": { + "type": "number" + } + }, + "interface": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "rxBytesPerSec": { + "type": "number" + }, + "txBytesPerSec": { + "type": "number" + }, + "rxTotal": { + "type": "number" + }, + "txTotal": { + "type": "number" + } + }, + "required": [ + "interface", + "rxBytesPerSec", + "txBytesPerSec", + "rxTotal", + "txTotal" + ], + "nullable": true + } + }, + "required": [ + "memoryFree", + "memoryUsed", + "uptime", + "loadAvg", + "interface" + ] + } + }, + "required": [ + "info", + "stats" + ], + "nullable": true + }, + "versions": { + "type": "object", + "properties": { + "xray": { + "type": "string" + }, + "node": { + "type": "string" + } + }, + "required": [ + "xray", + "node" + ], + "nullable": true + }, + "xrayUptime": { + "type": "number" + }, + "usersOnline": { + "type": "number" + } + }, + "required": [ + "uuid", + "name", + "address", + "port", + "isConnected", + "isDisabled", + "isConnecting", + "lastStatusChange", + "lastStatusMessage", + "isTrafficTrackingActive", + "trafficResetDay", + "trafficLimitBytes", + "trafficUsedBytes", + "notifyPercent", + "viewPosition", + "countryCode", + "consumptionMultiplier", + "tags", + "createdAt", + "updatedAt", + "configProfile", + "providerUuid", + "provider", + "activePluginUuid", + "system", + "versions", + "xrayUptime", + "usersOnline" + ] + } + }, + "required": [ + "response" + ] + }, + "DisableNodeResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "address": { + "type": "string" + }, + "port": { + "type": "integer", + "nullable": true + }, + "isConnected": { + "type": "boolean" + }, + "isDisabled": { + "type": "boolean" + }, + "isConnecting": { + "type": "boolean" + }, + "lastStatusChange": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastStatusMessage": { + "type": "string", + "nullable": true + }, + "isTrafficTrackingActive": { + "type": "boolean" + }, + "trafficResetDay": { + "type": "integer", + "nullable": true + }, + "trafficLimitBytes": { + "type": "number", + "nullable": true + }, + "trafficUsedBytes": { + "type": "number", + "nullable": true + }, + "notifyPercent": { + "type": "integer", + "nullable": true + }, + "viewPosition": { + "type": "integer" + }, + "countryCode": { + "type": "string" + }, + "consumptionMultiplier": { + "type": "number" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "configProfile": { + "type": "object", + "properties": { + "activeConfigProfileUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "activeInbounds": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "profileUuid": { + "type": "string", + "format": "uuid" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + }, + "network": { + "type": "string", + "nullable": true + }, + "security": { + "type": "string", + "nullable": true + }, + "port": { + "type": "number", + "nullable": true + }, + "rawInbound": { + "nullable": true + } + }, + "required": [ + "uuid", + "profileUuid", + "tag", + "type", + "network", + "security", + "port", + "rawInbound" + ] + } + } + }, + "required": [ + "activeConfigProfileUuid", + "activeInbounds" + ] + }, + "providerUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "provider": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "faviconLink": { + "type": "string", + "nullable": true + }, + "loginUrl": { + "type": "string", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "name", + "faviconLink", + "loginUrl", + "createdAt", + "updatedAt" + ], + "nullable": true + }, + "activePluginUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "system": { + "type": "object", + "properties": { + "info": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "cpus": { + "type": "integer" + }, + "cpuModel": { + "type": "string" + }, + "memoryTotal": { + "type": "number" + }, + "hostname": { + "type": "string" + }, + "platform": { + "type": "string" + }, + "release": { + "type": "string" + }, + "type": { + "type": "string" + }, + "version": { + "type": "string" + }, + "networkInterfaces": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "arch", + "cpus", + "cpuModel", + "memoryTotal", + "hostname", + "platform", + "release", + "type", + "version", + "networkInterfaces" + ] + }, + "stats": { + "type": "object", + "properties": { + "memoryFree": { + "type": "number" + }, + "memoryUsed": { + "type": "number" + }, + "uptime": { + "type": "number" + }, + "loadAvg": { + "type": "array", + "items": { + "type": "number" + } + }, + "interface": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "rxBytesPerSec": { + "type": "number" + }, + "txBytesPerSec": { + "type": "number" + }, + "rxTotal": { + "type": "number" + }, + "txTotal": { + "type": "number" + } + }, + "required": [ + "interface", + "rxBytesPerSec", + "txBytesPerSec", + "rxTotal", + "txTotal" + ], + "nullable": true + } + }, + "required": [ + "memoryFree", + "memoryUsed", + "uptime", + "loadAvg", + "interface" + ] + } + }, + "required": [ + "info", + "stats" + ], + "nullable": true + }, + "versions": { + "type": "object", + "properties": { + "xray": { + "type": "string" + }, + "node": { + "type": "string" + } + }, + "required": [ + "xray", + "node" + ], + "nullable": true + }, + "xrayUptime": { + "type": "number" + }, + "usersOnline": { + "type": "number" + } + }, + "required": [ + "uuid", + "name", + "address", + "port", + "isConnected", + "isDisabled", + "isConnecting", + "lastStatusChange", + "lastStatusMessage", + "isTrafficTrackingActive", + "trafficResetDay", + "trafficLimitBytes", + "trafficUsedBytes", + "notifyPercent", + "viewPosition", + "countryCode", + "consumptionMultiplier", + "tags", + "createdAt", + "updatedAt", + "configProfile", + "providerUuid", + "provider", + "activePluginUuid", + "system", + "versions", + "xrayUptime", + "usersOnline" + ] + } + }, + "required": [ + "response" + ] + }, + "DeleteNodeResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "isDeleted": { + "type": "boolean" + } + }, + "required": [ + "isDeleted" + ] + } + }, + "required": [ + "response" + ] + }, + "UpdateNodeRequestDto": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string", + "minLength": 3, + "maxLength": 30 + }, + "address": { + "type": "string", + "minLength": 2 + }, + "port": { + "type": "number", + "minimum": 1, + "exclusiveMinimum": false, + "maximum": 65535, + "exclusiveMaximum": false + }, + "isTrafficTrackingActive": { + "type": "boolean" + }, + "trafficLimitBytes": { + "type": "number", + "minimum": 0, + "exclusiveMinimum": false + }, + "notifyPercent": { + "type": "number", + "minimum": 0, + "exclusiveMinimum": false, + "maximum": 100, + "exclusiveMaximum": false + }, + "trafficResetDay": { + "type": "number", + "minimum": 1, + "exclusiveMinimum": false, + "maximum": 31, + "exclusiveMaximum": false + }, + "countryCode": { + "type": "string", + "maxLength": 2 + }, + "consumptionMultiplier": { + "type": "number", + "minimum": 0, + "exclusiveMinimum": false, + "maximum": 100, + "exclusiveMaximum": false + }, + "configProfile": { + "type": "object", + "properties": { + "activeConfigProfileUuid": { + "type": "string", + "format": "uuid" + }, + "activeInbounds": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "activeConfigProfileUuid", + "activeInbounds" + ] + }, + "providerUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "tags": { + "type": "array", + "maxItems": 10, + "items": { + "type": "string", + "pattern": "^[A-Z0-9_:]+$", + "maxLength": 36 + } + }, + "activePluginUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "uuid" + ] + }, + "UpdateNodeResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "address": { + "type": "string" + }, + "port": { + "type": "integer", + "nullable": true + }, + "isConnected": { + "type": "boolean" + }, + "isDisabled": { + "type": "boolean" + }, + "isConnecting": { + "type": "boolean" + }, + "lastStatusChange": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastStatusMessage": { + "type": "string", + "nullable": true + }, + "isTrafficTrackingActive": { + "type": "boolean" + }, + "trafficResetDay": { + "type": "integer", + "nullable": true + }, + "trafficLimitBytes": { + "type": "number", + "nullable": true + }, + "trafficUsedBytes": { + "type": "number", + "nullable": true + }, + "notifyPercent": { + "type": "integer", + "nullable": true + }, + "viewPosition": { + "type": "integer" + }, + "countryCode": { + "type": "string" + }, + "consumptionMultiplier": { + "type": "number" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "configProfile": { + "type": "object", + "properties": { + "activeConfigProfileUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "activeInbounds": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "profileUuid": { + "type": "string", + "format": "uuid" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + }, + "network": { + "type": "string", + "nullable": true + }, + "security": { + "type": "string", + "nullable": true + }, + "port": { + "type": "number", + "nullable": true + }, + "rawInbound": { + "nullable": true + } + }, + "required": [ + "uuid", + "profileUuid", + "tag", + "type", + "network", + "security", + "port", + "rawInbound" + ] + } + } + }, + "required": [ + "activeConfigProfileUuid", + "activeInbounds" + ] + }, + "providerUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "provider": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "faviconLink": { + "type": "string", + "nullable": true + }, + "loginUrl": { + "type": "string", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "name", + "faviconLink", + "loginUrl", + "createdAt", + "updatedAt" + ], + "nullable": true + }, + "activePluginUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "system": { + "type": "object", + "properties": { + "info": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "cpus": { + "type": "integer" + }, + "cpuModel": { + "type": "string" + }, + "memoryTotal": { + "type": "number" + }, + "hostname": { + "type": "string" + }, + "platform": { + "type": "string" + }, + "release": { + "type": "string" + }, + "type": { + "type": "string" + }, + "version": { + "type": "string" + }, + "networkInterfaces": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "arch", + "cpus", + "cpuModel", + "memoryTotal", + "hostname", + "platform", + "release", + "type", + "version", + "networkInterfaces" + ] + }, + "stats": { + "type": "object", + "properties": { + "memoryFree": { + "type": "number" + }, + "memoryUsed": { + "type": "number" + }, + "uptime": { + "type": "number" + }, + "loadAvg": { + "type": "array", + "items": { + "type": "number" + } + }, + "interface": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "rxBytesPerSec": { + "type": "number" + }, + "txBytesPerSec": { + "type": "number" + }, + "rxTotal": { + "type": "number" + }, + "txTotal": { + "type": "number" + } + }, + "required": [ + "interface", + "rxBytesPerSec", + "txBytesPerSec", + "rxTotal", + "txTotal" + ], + "nullable": true + } + }, + "required": [ + "memoryFree", + "memoryUsed", + "uptime", + "loadAvg", + "interface" + ] + } + }, + "required": [ + "info", + "stats" + ], + "nullable": true + }, + "versions": { + "type": "object", + "properties": { + "xray": { + "type": "string" + }, + "node": { + "type": "string" + } + }, + "required": [ + "xray", + "node" + ], + "nullable": true + }, + "xrayUptime": { + "type": "number" + }, + "usersOnline": { + "type": "number" + } + }, + "required": [ + "uuid", + "name", + "address", + "port", + "isConnected", + "isDisabled", + "isConnecting", + "lastStatusChange", + "lastStatusMessage", + "isTrafficTrackingActive", + "trafficResetDay", + "trafficLimitBytes", + "trafficUsedBytes", + "notifyPercent", + "viewPosition", + "countryCode", + "consumptionMultiplier", + "tags", + "createdAt", + "updatedAt", + "configProfile", + "providerUuid", + "provider", + "activePluginUuid", + "system", + "versions", + "xrayUptime", + "usersOnline" + ] + } + }, + "required": [ + "response" + ] + }, + "RestartNodeResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "eventSent": { + "type": "boolean" + } + }, + "required": [ + "eventSent" + ] + } + }, + "required": [ + "response" + ] + }, + "ResetNodeTrafficResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "eventSent": { + "type": "boolean" + } + }, + "required": [ + "eventSent" + ] + } + }, + "required": [ + "response" + ] + }, + "RestartAllNodesRequestBodyDto": { + "type": "object", + "properties": { + "forceRestart": { + "type": "boolean" + } + } + }, + "RestartAllNodesResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "eventSent": { + "type": "boolean" + } + }, + "required": [ + "eventSent" + ] + } + }, + "required": [ + "response" + ] + }, + "ReorderNodeRequestDto": { + "type": "object", + "properties": { + "nodes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "viewPosition": { + "type": "integer" + }, + "uuid": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "viewPosition", + "uuid" + ] + } + } + }, + "required": [ + "nodes" + ] + }, + "ReorderNodeResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "address": { + "type": "string" + }, + "port": { + "type": "integer", + "nullable": true + }, + "isConnected": { + "type": "boolean" + }, + "isDisabled": { + "type": "boolean" + }, + "isConnecting": { + "type": "boolean" + }, + "lastStatusChange": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastStatusMessage": { + "type": "string", + "nullable": true + }, + "isTrafficTrackingActive": { + "type": "boolean" + }, + "trafficResetDay": { + "type": "integer", + "nullable": true + }, + "trafficLimitBytes": { + "type": "number", + "nullable": true + }, + "trafficUsedBytes": { + "type": "number", + "nullable": true + }, + "notifyPercent": { + "type": "integer", + "nullable": true + }, + "viewPosition": { + "type": "integer" + }, + "countryCode": { + "type": "string" + }, + "consumptionMultiplier": { + "type": "number" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "configProfile": { + "type": "object", + "properties": { + "activeConfigProfileUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "activeInbounds": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "profileUuid": { + "type": "string", + "format": "uuid" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + }, + "network": { + "type": "string", + "nullable": true + }, + "security": { + "type": "string", + "nullable": true + }, + "port": { + "type": "number", + "nullable": true + }, + "rawInbound": { + "nullable": true + } + }, + "required": [ + "uuid", + "profileUuid", + "tag", + "type", + "network", + "security", + "port", + "rawInbound" + ] + } + } + }, + "required": [ + "activeConfigProfileUuid", + "activeInbounds" + ] + }, + "providerUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "provider": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "faviconLink": { + "type": "string", + "nullable": true + }, + "loginUrl": { + "type": "string", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "name", + "faviconLink", + "loginUrl", + "createdAt", + "updatedAt" + ], + "nullable": true + }, + "activePluginUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "system": { + "type": "object", + "properties": { + "info": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "cpus": { + "type": "integer" + }, + "cpuModel": { + "type": "string" + }, + "memoryTotal": { + "type": "number" + }, + "hostname": { + "type": "string" + }, + "platform": { + "type": "string" + }, + "release": { + "type": "string" + }, + "type": { + "type": "string" + }, + "version": { + "type": "string" + }, + "networkInterfaces": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "arch", + "cpus", + "cpuModel", + "memoryTotal", + "hostname", + "platform", + "release", + "type", + "version", + "networkInterfaces" + ] + }, + "stats": { + "type": "object", + "properties": { + "memoryFree": { + "type": "number" + }, + "memoryUsed": { + "type": "number" + }, + "uptime": { + "type": "number" + }, + "loadAvg": { + "type": "array", + "items": { + "type": "number" + } + }, + "interface": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "rxBytesPerSec": { + "type": "number" + }, + "txBytesPerSec": { + "type": "number" + }, + "rxTotal": { + "type": "number" + }, + "txTotal": { + "type": "number" + } + }, + "required": [ + "interface", + "rxBytesPerSec", + "txBytesPerSec", + "rxTotal", + "txTotal" + ], + "nullable": true + } + }, + "required": [ + "memoryFree", + "memoryUsed", + "uptime", + "loadAvg", + "interface" + ] + } + }, + "required": [ + "info", + "stats" + ], + "nullable": true + }, + "versions": { + "type": "object", + "properties": { + "xray": { + "type": "string" + }, + "node": { + "type": "string" + } + }, + "required": [ + "xray", + "node" + ], + "nullable": true + }, + "xrayUptime": { + "type": "number" + }, + "usersOnline": { + "type": "number" + } + }, + "required": [ + "uuid", + "name", + "address", + "port", + "isConnected", + "isDisabled", + "isConnecting", + "lastStatusChange", + "lastStatusMessage", + "isTrafficTrackingActive", + "trafficResetDay", + "trafficLimitBytes", + "trafficUsedBytes", + "notifyPercent", + "viewPosition", + "countryCode", + "consumptionMultiplier", + "tags", + "createdAt", + "updatedAt", + "configProfile", + "providerUuid", + "provider", + "activePluginUuid", + "system", + "versions", + "xrayUptime", + "usersOnline" + ] + } + } + }, + "required": [ + "response" + ] + }, + "ProfileModificationRequestDto": { + "type": "object", + "properties": { + "uuids": { + "type": "array", + "minItems": 1, + "items": { + "type": "string", + "format": "uuid" + } + }, + "configProfile": { + "type": "object", + "properties": { + "activeConfigProfileUuid": { + "type": "string", + "format": "uuid" + }, + "activeInbounds": { + "type": "array", + "minItems": 1, + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "activeConfigProfileUuid", + "activeInbounds" + ] + } + }, + "required": [ + "uuids", + "configProfile" + ] + }, + "ProfileModificationResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "eventSent": { + "type": "boolean" + } + }, + "required": [ + "eventSent" + ] + } + }, + "required": [ + "response" + ] + }, + "BulkNodesActionsRequestDto": { + "type": "object", + "properties": { + "uuids": { + "type": "array", + "minItems": 1, + "items": { + "type": "string", + "format": "uuid" + } + }, + "action": { + "type": "string", + "enum": [ + "ENABLE", + "DISABLE", + "RESTART", + "RESET_TRAFFIC" + ], + "x-enumNames": [ + "ENABLE", + "DISABLE", + "RESTART", + "RESET_TRAFFIC" + ] + } + }, + "required": [ + "uuids", + "action" + ] + }, + "BulkNodesActionsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "eventSent": { + "type": "boolean" + } + }, + "required": [ + "eventSent" + ] + } + }, + "required": [ + "response" + ] + }, + "BulkNodesUpdateRequestDto": { + "type": "object", + "properties": { + "uuids": { + "type": "array", + "minItems": 1, + "items": { + "type": "string", + "format": "uuid" + } + }, + "fields": { + "type": "object", + "properties": { + "countryCode": { + "type": "string", + "maxLength": 2 + }, + "consumptionMultiplier": { + "type": "number", + "minimum": 0, + "exclusiveMinimum": false, + "maximum": 100, + "exclusiveMaximum": false + }, + "providerUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "tags": { + "type": "array", + "maxItems": 10, + "items": { + "type": "string", + "pattern": "^[A-Z0-9_:]+$", + "maxLength": 36 + } + }, + "activePluginUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + } + } + }, + "required": [ + "uuids", + "fields" + ] + }, + "BulkNodesUpdateResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "eventSent": { + "type": "boolean" + } + }, + "required": [ + "eventSent" + ] + } + }, + "required": [ + "response" + ] + }, + "GetTorrentBlockerReportsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "records": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "userId": { + "type": "number" + }, + "nodeId": { + "type": "number" + }, + "user": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "username": { + "type": "string" + } + }, + "required": [ + "uuid", + "username" + ] + }, + "node": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "countryCode": { + "type": "string" + } + }, + "required": [ + "uuid", + "name", + "countryCode" + ] + }, + "report": { + "type": "object", + "properties": { + "actionReport": { + "type": "object", + "properties": { + "blocked": { + "type": "boolean" + }, + "ip": { + "type": "string" + }, + "blockDuration": { + "type": "number" + }, + "willUnblockAt": { + "type": "string", + "format": "date-time" + }, + "userId": { + "type": "string" + }, + "processedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "blocked", + "ip", + "blockDuration", + "willUnblockAt", + "userId", + "processedAt" + ] + }, + "xrayReport": { + "type": "object", + "properties": { + "email": { + "type": "string", + "nullable": true + }, + "level": { + "type": "number", + "nullable": true + }, + "protocol": { + "type": "string", + "nullable": true + }, + "network": { + "type": "string" + }, + "source": { + "type": "string", + "nullable": true + }, + "destination": { + "type": "string" + }, + "routeTarget": { + "type": "string", + "nullable": true + }, + "originalTarget": { + "type": "string", + "nullable": true + }, + "inboundTag": { + "type": "string", + "nullable": true + }, + "inboundName": { + "type": "string", + "nullable": true + }, + "inboundLocal": { + "type": "string", + "nullable": true + }, + "outboundTag": { + "type": "string", + "nullable": true + }, + "ts": { + "type": "number" + } + }, + "required": [ + "email", + "level", + "protocol", + "network", + "source", + "destination", + "routeTarget", + "originalTarget", + "inboundTag", + "inboundName", + "inboundLocal", + "outboundTag", + "ts" + ] + } + }, + "required": [ + "actionReport", + "xrayReport" + ] + }, + "createdAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "userId", + "nodeId", + "user", + "node", + "report", + "createdAt" + ] + } + }, + "total": { + "type": "number" + } + }, + "required": [ + "records", + "total" + ] + } + }, + "required": [ + "response" + ] + }, + "GetTorrentBlockerReportsStatsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "stats": { + "type": "object", + "properties": { + "distinctNodes": { + "type": "number" + }, + "distinctUsers": { + "type": "number" + }, + "totalReports": { + "type": "number" + }, + "reportsLast24Hours": { + "type": "number" + } + }, + "required": [ + "distinctNodes", + "distinctUsers", + "totalReports", + "reportsLast24Hours" + ] + }, + "topUsers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "color": { + "type": "string" + }, + "username": { + "type": "string" + }, + "total": { + "type": "number" + } + }, + "required": [ + "uuid", + "color", + "username", + "total" + ] + } + }, + "topNodes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "countryCode": { + "type": "string" + }, + "color": { + "type": "string" + }, + "name": { + "type": "string" + }, + "total": { + "type": "number" + } + }, + "required": [ + "uuid", + "countryCode", + "color", + "name", + "total" + ] + } + } + }, + "required": [ + "stats", + "topUsers", + "topNodes" + ] + } + }, + "required": [ + "response" + ] + }, + "TruncateTorrentBlockerReportsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "records": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "userId": { + "type": "number" + }, + "nodeId": { + "type": "number" + }, + "user": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "username": { + "type": "string" + } + }, + "required": [ + "uuid", + "username" + ] + }, + "node": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "countryCode": { + "type": "string" + } + }, + "required": [ + "uuid", + "name", + "countryCode" + ] + }, + "report": { + "type": "object", + "properties": { + "actionReport": { + "type": "object", + "properties": { + "blocked": { + "type": "boolean" + }, + "ip": { + "type": "string" + }, + "blockDuration": { + "type": "number" + }, + "willUnblockAt": { + "type": "string", + "format": "date-time" + }, + "userId": { + "type": "string" + }, + "processedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "blocked", + "ip", + "blockDuration", + "willUnblockAt", + "userId", + "processedAt" + ] + }, + "xrayReport": { + "type": "object", + "properties": { + "email": { + "type": "string", + "nullable": true + }, + "level": { + "type": "number", + "nullable": true + }, + "protocol": { + "type": "string", + "nullable": true + }, + "network": { + "type": "string" + }, + "source": { + "type": "string", + "nullable": true + }, + "destination": { + "type": "string" + }, + "routeTarget": { + "type": "string", + "nullable": true + }, + "originalTarget": { + "type": "string", + "nullable": true + }, + "inboundTag": { + "type": "string", + "nullable": true + }, + "inboundName": { + "type": "string", + "nullable": true + }, + "inboundLocal": { + "type": "string", + "nullable": true + }, + "outboundTag": { + "type": "string", + "nullable": true + }, + "ts": { + "type": "number" + } + }, + "required": [ + "email", + "level", + "protocol", + "network", + "source", + "destination", + "routeTarget", + "originalTarget", + "inboundTag", + "inboundName", + "inboundLocal", + "outboundTag", + "ts" + ] + } + }, + "required": [ + "actionReport", + "xrayReport" + ] + }, + "createdAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "userId", + "nodeId", + "user", + "node", + "report", + "createdAt" + ] + } + }, + "total": { + "type": "number" + } + }, + "required": [ + "records", + "total" + ] + } + }, + "required": [ + "response" + ] + }, + "GetNodePluginsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "nodePlugins": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "pluginConfig": { + "nullable": true + } + }, + "required": [ + "uuid", + "viewPosition", + "name", + "pluginConfig" + ] + } + } + }, + "required": [ + "total", + "nodePlugins" + ] + } + }, + "required": [ + "response" + ] + }, + "GetNodePluginResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "pluginConfig": {} + }, + "required": [ + "uuid", + "viewPosition", + "name", + "pluginConfig" + ] + } + }, + "required": [ + "response" + ] + }, + "UpdateNodePluginRequestDto": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string", + "minLength": 2, + "maxLength": 30, + "pattern": "^[A-Za-z0-9_\\s-]+$" + }, + "pluginConfig": {} + }, + "required": [ + "uuid" + ] + }, + "UpdateNodePluginResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "pluginConfig": {} + }, + "required": [ + "uuid", + "viewPosition", + "name", + "pluginConfig" + ] + } + }, + "required": [ + "response" + ] + }, + "DeleteNodePluginResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "isDeleted": { + "type": "boolean" + } + }, + "required": [ + "isDeleted" + ] + } + }, + "required": [ + "response" + ] + }, + "CreateNodePluginRequestDto": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 2, + "maxLength": 30, + "pattern": "^[A-Za-z0-9_\\s-]+$" + } + }, + "required": [ + "name" + ] + }, + "CreateNodePluginResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "pluginConfig": { + "nullable": true + } + }, + "required": [ + "uuid", + "viewPosition", + "name", + "pluginConfig" + ] + } + }, + "required": [ + "response" + ] + }, + "ReorderNodePluginsRequestDto": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "viewPosition": { + "type": "integer" + }, + "uuid": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "viewPosition", + "uuid" + ] + } + } + }, + "required": [ + "items" + ] + }, + "ReorderNodePluginsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "nodePlugins": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "pluginConfig": { + "nullable": true + } + }, + "required": [ + "uuid", + "viewPosition", + "name", + "pluginConfig" + ] + } + } + }, + "required": [ + "total", + "nodePlugins" + ] + } + }, + "required": [ + "response" + ] + }, + "CloneNodePluginRequestDto": { + "type": "object", + "properties": { + "cloneFromUuid": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "cloneFromUuid" + ] + }, + "CloneNodePluginResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "pluginConfig": {} + }, + "required": [ + "uuid", + "viewPosition", + "name", + "pluginConfig" + ] + } + }, + "required": [ + "response" + ] + }, + "PluginExecutorRequestDto": { + "type": "object", + "properties": { + "command": { + "oneOf": [ + { + "description": "Block IPs", + "type": "object", + "properties": { + "command": { + "type": "string", + "enum": [ + "blockIps" + ] + }, + "ips": { + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "properties": { + "ip": { + "type": "string" + }, + "timeout": { + "type": "number" + } + }, + "required": [ + "ip", + "timeout" + ] + } + } + }, + "required": [ + "command", + "ips" + ] + }, + { + "description": "Unblock IPs", + "type": "object", + "properties": { + "command": { + "type": "string", + "enum": [ + "unblockIps" + ] + }, + "ips": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + } + }, + "required": [ + "command", + "ips" + ] + }, + { + "description": "Recreate tables", + "type": "object", + "properties": { + "command": { + "type": "string", + "enum": [ + "recreateTables" + ] + } + }, + "required": [ + "command" + ] + } + ] + }, + "targetNodes": { + "oneOf": [ + { + "description": "Target all connected nodes", + "type": "object", + "properties": { + "target": { + "type": "string", + "enum": [ + "allNodes" + ] + } + }, + "required": [ + "target" + ] + }, + { + "description": "Target specific nodes", + "type": "object", + "properties": { + "target": { + "type": "string", + "enum": [ + "specificNodes" + ] + }, + "nodeUuids": { + "type": "array", + "minItems": 1, + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "target", + "nodeUuids" + ] + } + ] + } + }, + "required": [ + "command", + "targetNodes" + ] + }, + "PluginExecutorResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "eventSent": { + "type": "boolean" + } + }, + "required": [ + "eventSent" + ] + } + }, + "required": [ + "response" + ] + }, + "GetAllHostTagsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "tags" + ] + } + }, + "required": [ + "response" + ] + }, + "CreateHostRequestDto": { + "type": "object", + "properties": { + "inbound": { + "type": "object", + "properties": { + "configProfileUuid": { + "type": "string", + "format": "uuid" + }, + "configProfileInboundUuid": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "configProfileUuid", + "configProfileInboundUuid" + ] + }, + "remark": { + "type": "string", + "minLength": 1, + "maxLength": 40 + }, + "address": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "path": { + "type": "string" + }, + "sni": { + "type": "string" + }, + "host": { + "type": "string" + }, + "alpn": { + "type": "string", + "enum": [ + "h3", + "h2", + "http/1.1", + "h2,http/1.1", + "h3,h2,http/1.1", + "h3,h2" + ], + "x-enumNames": [ + "H3", + "H2", + "HTTP_1_1", + "H_COMBINED", + "H3_H2_H1_COMBINED", + "H3_H2_COMBINED" + ], + "nullable": true + }, + "fingerprint": { + "type": "string", + "enum": [ + "chrome", + "firefox", + "safari", + "ios", + "android", + "edge", + "qq", + "random", + "randomized" + ], + "x-enumNames": [ + "CHROME", + "FIREFOX", + "SAFARI", + "IOS", + "ANDROID", + "EDGE", + "QQ", + "RANDOM", + "RANDOMIZED" + ], + "nullable": true + }, + "isDisabled": { + "type": "boolean", + "default": false + }, + "securityLayer": { + "type": "string", + "enum": [ + "DEFAULT", + "TLS", + "NONE" + ], + "x-enumNames": [ + "DEFAULT", + "TLS", + "NONE" + ], + "default": "DEFAULT" + }, + "xHttpExtraParams": { + "nullable": true + }, + "muxParams": { + "nullable": true + }, + "sockoptParams": { + "nullable": true + }, + "finalMask": { + "nullable": true + }, + "serverDescription": { + "type": "string", + "maxLength": 30, + "nullable": true + }, + "tag": { + "description": "Optional. Host tag for categorization. Max 32 characters, uppercase letters, numbers, underscores and colons are allowed.", + "type": "string", + "pattern": "^[A-Z0-9_:]+$", + "maxLength": 32, + "nullable": true + }, + "isHidden": { + "type": "boolean", + "default": false + }, + "overrideSniFromAddress": { + "type": "boolean", + "default": false + }, + "keepSniBlank": { + "type": "boolean", + "default": false + }, + "allowInsecure": { + "type": "boolean", + "default": false + }, + "vlessRouteId": { + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false, + "maximum": 65535, + "exclusiveMaximum": false, + "nullable": true + }, + "shuffleHost": { + "type": "boolean", + "default": false + }, + "mihomoX25519": { + "type": "boolean", + "default": false + }, + "nodes": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "xrayJsonTemplateUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "excludedInternalSquads": { + "description": "Optional. Internal squads from which the host will be excluded.", + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "excludeFromSubscriptionTypes": { + "description": "Optional. Subscription types from which the host will be excluded from.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ] + } + } + }, + "required": [ + "inbound", + "remark", + "address", + "port" + ] + }, + "CreateHostResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "remark": { + "type": "string" + }, + "address": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "path": { + "type": "string", + "nullable": true + }, + "sni": { + "type": "string", + "nullable": true + }, + "host": { + "type": "string", + "nullable": true + }, + "alpn": { + "type": "string", + "nullable": true + }, + "fingerprint": { + "type": "string", + "nullable": true + }, + "isDisabled": { + "type": "boolean", + "default": false + }, + "securityLayer": { + "type": "string", + "enum": [ + "DEFAULT", + "TLS", + "NONE" + ], + "x-enumNames": [ + "DEFAULT", + "TLS", + "NONE" + ], + "default": "DEFAULT" + }, + "xHttpExtraParams": { + "nullable": true + }, + "muxParams": { + "nullable": true + }, + "sockoptParams": { + "nullable": true + }, + "finalMask": { + "nullable": true + }, + "inbound": { + "type": "object", + "properties": { + "configProfileUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "configProfileInboundUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "configProfileUuid", + "configProfileInboundUuid" + ] + }, + "serverDescription": { + "type": "string", + "maxLength": 30, + "nullable": true + }, + "tag": { + "type": "string", + "nullable": true + }, + "isHidden": { + "type": "boolean", + "default": false + }, + "overrideSniFromAddress": { + "type": "boolean", + "default": false + }, + "keepSniBlank": { + "type": "boolean", + "default": false + }, + "vlessRouteId": { + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false, + "maximum": 65535, + "exclusiveMaximum": false, + "nullable": true + }, + "allowInsecure": { + "type": "boolean", + "default": false + }, + "shuffleHost": { + "type": "boolean" + }, + "mihomoX25519": { + "type": "boolean" + }, + "nodes": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "xrayJsonTemplateUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "excludedInternalSquads": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "excludeFromSubscriptionTypes": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ] + } + } + }, + "required": [ + "uuid", + "viewPosition", + "remark", + "address", + "port", + "path", + "sni", + "host", + "alpn", + "fingerprint", + "xHttpExtraParams", + "muxParams", + "sockoptParams", + "finalMask", + "inbound", + "serverDescription", + "tag", + "vlessRouteId", + "shuffleHost", + "mihomoX25519", + "nodes", + "xrayJsonTemplateUuid", + "excludedInternalSquads" + ] + } + }, + "required": [ + "response" + ] + }, + "UpdateHostRequestDto": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "inbound": { + "type": "object", + "properties": { + "configProfileUuid": { + "type": "string", + "format": "uuid" + }, + "configProfileInboundUuid": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "configProfileUuid", + "configProfileInboundUuid" + ] + }, + "remark": { + "type": "string", + "maxLength": 40 + }, + "address": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "path": { + "type": "string" + }, + "sni": { + "type": "string" + }, + "host": { + "type": "string" + }, + "alpn": { + "type": "string", + "enum": [ + "h3", + "h2", + "http/1.1", + "h2,http/1.1", + "h3,h2,http/1.1", + "h3,h2" + ], + "x-enumNames": [ + "H3", + "H2", + "HTTP_1_1", + "H_COMBINED", + "H3_H2_H1_COMBINED", + "H3_H2_COMBINED" + ], + "nullable": true + }, + "fingerprint": { + "type": "string", + "enum": [ + "chrome", + "firefox", + "safari", + "ios", + "android", + "edge", + "qq", + "random", + "randomized" + ], + "x-enumNames": [ + "CHROME", + "FIREFOX", + "SAFARI", + "IOS", + "ANDROID", + "EDGE", + "QQ", + "RANDOM", + "RANDOMIZED" + ], + "nullable": true + }, + "isDisabled": { + "type": "boolean" + }, + "securityLayer": { + "type": "string", + "enum": [ + "DEFAULT", + "TLS", + "NONE" + ], + "x-enumNames": [ + "DEFAULT", + "TLS", + "NONE" + ] + }, + "xHttpExtraParams": { + "nullable": true + }, + "muxParams": { + "nullable": true + }, + "sockoptParams": { + "nullable": true + }, + "finalMask": { + "nullable": true + }, + "serverDescription": { + "type": "string", + "maxLength": 30, + "nullable": true + }, + "tag": { + "description": "Optional. Host tag for categorization. Max 32 characters, uppercase letters, numbers, underscores and colons are allowed.", + "type": "string", + "pattern": "^[A-Z0-9_:]+$", + "maxLength": 32, + "nullable": true + }, + "isHidden": { + "type": "boolean" + }, + "overrideSniFromAddress": { + "type": "boolean" + }, + "keepSniBlank": { + "type": "boolean" + }, + "vlessRouteId": { + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false, + "maximum": 65535, + "exclusiveMaximum": false, + "nullable": true + }, + "allowInsecure": { + "type": "boolean" + }, + "shuffleHost": { + "type": "boolean" + }, + "mihomoX25519": { + "type": "boolean" + }, + "nodes": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "xrayJsonTemplateUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "excludedInternalSquads": { + "description": "Optional. Internal squads from which the host will be excluded.", + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "excludeFromSubscriptionTypes": { + "description": "Optional. Subscription types from which the host will be excluded from.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ] + } + } + }, + "required": [ + "uuid" + ] + }, + "UpdateHostResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "remark": { + "type": "string" + }, + "address": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "path": { + "type": "string", + "nullable": true + }, + "sni": { + "type": "string", + "nullable": true + }, + "host": { + "type": "string", + "nullable": true + }, + "alpn": { + "type": "string", + "nullable": true + }, + "fingerprint": { + "type": "string", + "nullable": true + }, + "isDisabled": { + "type": "boolean", + "default": false + }, + "securityLayer": { + "type": "string", + "enum": [ + "DEFAULT", + "TLS", + "NONE" + ], + "x-enumNames": [ + "DEFAULT", + "TLS", + "NONE" + ], + "default": "DEFAULT" + }, + "xHttpExtraParams": { + "nullable": true + }, + "muxParams": { + "nullable": true + }, + "sockoptParams": { + "nullable": true + }, + "finalMask": { + "nullable": true + }, + "inbound": { + "type": "object", + "properties": { + "configProfileUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "configProfileInboundUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "configProfileUuid", + "configProfileInboundUuid" + ] + }, + "serverDescription": { + "type": "string", + "maxLength": 30, + "nullable": true + }, + "tag": { + "type": "string", + "nullable": true + }, + "isHidden": { + "type": "boolean", + "default": false + }, + "overrideSniFromAddress": { + "type": "boolean", + "default": false + }, + "keepSniBlank": { + "type": "boolean", + "default": false + }, + "vlessRouteId": { + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false, + "maximum": 65535, + "exclusiveMaximum": false, + "nullable": true + }, + "allowInsecure": { + "type": "boolean", + "default": false + }, + "shuffleHost": { + "type": "boolean" + }, + "mihomoX25519": { + "type": "boolean" + }, + "nodes": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "xrayJsonTemplateUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "excludedInternalSquads": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "excludeFromSubscriptionTypes": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ] + } + } + }, + "required": [ + "uuid", + "viewPosition", + "remark", + "address", + "port", + "path", + "sni", + "host", + "alpn", + "fingerprint", + "xHttpExtraParams", + "muxParams", + "sockoptParams", + "finalMask", + "inbound", + "serverDescription", + "tag", + "vlessRouteId", + "shuffleHost", + "mihomoX25519", + "nodes", + "xrayJsonTemplateUuid", + "excludedInternalSquads" + ] + } + }, + "required": [ + "response" + ] + }, + "GetAllHostsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "remark": { + "type": "string" + }, + "address": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "path": { + "type": "string", + "nullable": true + }, + "sni": { + "type": "string", + "nullable": true + }, + "host": { + "type": "string", + "nullable": true + }, + "alpn": { + "type": "string", + "nullable": true + }, + "fingerprint": { + "type": "string", + "nullable": true + }, + "isDisabled": { + "type": "boolean", + "default": false + }, + "securityLayer": { + "type": "string", + "enum": [ + "DEFAULT", + "TLS", + "NONE" + ], + "x-enumNames": [ + "DEFAULT", + "TLS", + "NONE" + ], + "default": "DEFAULT" + }, + "xHttpExtraParams": { + "nullable": true + }, + "muxParams": { + "nullable": true + }, + "sockoptParams": { + "nullable": true + }, + "finalMask": { + "nullable": true + }, + "inbound": { + "type": "object", + "properties": { + "configProfileUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "configProfileInboundUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "configProfileUuid", + "configProfileInboundUuid" + ] + }, + "serverDescription": { + "type": "string", + "maxLength": 30, + "nullable": true + }, + "tag": { + "type": "string", + "nullable": true + }, + "isHidden": { + "type": "boolean", + "default": false + }, + "overrideSniFromAddress": { + "type": "boolean", + "default": false + }, + "keepSniBlank": { + "type": "boolean", + "default": false + }, + "vlessRouteId": { + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false, + "maximum": 65535, + "exclusiveMaximum": false, + "nullable": true + }, + "allowInsecure": { + "type": "boolean", + "default": false + }, + "shuffleHost": { + "type": "boolean" + }, + "mihomoX25519": { + "type": "boolean" + }, + "nodes": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "xrayJsonTemplateUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "excludedInternalSquads": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "excludeFromSubscriptionTypes": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ] + } + } + }, + "required": [ + "uuid", + "viewPosition", + "remark", + "address", + "port", + "path", + "sni", + "host", + "alpn", + "fingerprint", + "xHttpExtraParams", + "muxParams", + "sockoptParams", + "finalMask", + "inbound", + "serverDescription", + "tag", + "vlessRouteId", + "shuffleHost", + "mihomoX25519", + "nodes", + "xrayJsonTemplateUuid", + "excludedInternalSquads" + ] + } + } + }, + "required": [ + "response" + ] + }, + "GetOneHostResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "remark": { + "type": "string" + }, + "address": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "path": { + "type": "string", + "nullable": true + }, + "sni": { + "type": "string", + "nullable": true + }, + "host": { + "type": "string", + "nullable": true + }, + "alpn": { + "type": "string", + "nullable": true + }, + "fingerprint": { + "type": "string", + "nullable": true + }, + "isDisabled": { + "type": "boolean", + "default": false + }, + "securityLayer": { + "type": "string", + "enum": [ + "DEFAULT", + "TLS", + "NONE" + ], + "x-enumNames": [ + "DEFAULT", + "TLS", + "NONE" + ], + "default": "DEFAULT" + }, + "xHttpExtraParams": { + "nullable": true + }, + "muxParams": { + "nullable": true + }, + "sockoptParams": { + "nullable": true + }, + "finalMask": { + "nullable": true + }, + "inbound": { + "type": "object", + "properties": { + "configProfileUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "configProfileInboundUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "configProfileUuid", + "configProfileInboundUuid" + ] + }, + "serverDescription": { + "type": "string", + "maxLength": 30, + "nullable": true + }, + "tag": { + "type": "string", + "nullable": true + }, + "isHidden": { + "type": "boolean", + "default": false + }, + "overrideSniFromAddress": { + "type": "boolean", + "default": false + }, + "keepSniBlank": { + "type": "boolean", + "default": false + }, + "vlessRouteId": { + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false, + "maximum": 65535, + "exclusiveMaximum": false, + "nullable": true + }, + "allowInsecure": { + "type": "boolean", + "default": false + }, + "shuffleHost": { + "type": "boolean" + }, + "mihomoX25519": { + "type": "boolean" + }, + "nodes": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "xrayJsonTemplateUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "excludedInternalSquads": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "excludeFromSubscriptionTypes": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ] + } + } + }, + "required": [ + "uuid", + "viewPosition", + "remark", + "address", + "port", + "path", + "sni", + "host", + "alpn", + "fingerprint", + "xHttpExtraParams", + "muxParams", + "sockoptParams", + "finalMask", + "inbound", + "serverDescription", + "tag", + "vlessRouteId", + "shuffleHost", + "mihomoX25519", + "nodes", + "xrayJsonTemplateUuid", + "excludedInternalSquads" + ] + } + }, + "required": [ + "response" + ] + }, + "ReorderHostRequestDto": { + "type": "object", + "properties": { + "hosts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "viewPosition": { + "type": "integer" + }, + "uuid": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "viewPosition", + "uuid" + ] + } + } + }, + "required": [ + "hosts" + ] + }, + "ReorderHostResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "isUpdated": { + "type": "boolean" + } + }, + "required": [ + "isUpdated" + ] + } + }, + "required": [ + "response" + ] + }, + "DeleteHostResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "isDeleted": { + "type": "boolean" + } + }, + "required": [ + "isDeleted" + ] + } + }, + "required": [ + "response" + ] + }, + "BulkDeleteHostsRequestDto": { + "type": "object", + "properties": { + "uuids": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "uuids" + ] + }, + "BulkDeleteHostsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "remark": { + "type": "string" + }, + "address": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "path": { + "type": "string", + "nullable": true + }, + "sni": { + "type": "string", + "nullable": true + }, + "host": { + "type": "string", + "nullable": true + }, + "alpn": { + "type": "string", + "nullable": true + }, + "fingerprint": { + "type": "string", + "nullable": true + }, + "isDisabled": { + "type": "boolean", + "default": false + }, + "securityLayer": { + "type": "string", + "enum": [ + "DEFAULT", + "TLS", + "NONE" + ], + "x-enumNames": [ + "DEFAULT", + "TLS", + "NONE" + ], + "default": "DEFAULT" + }, + "xHttpExtraParams": { + "nullable": true + }, + "muxParams": { + "nullable": true + }, + "sockoptParams": { + "nullable": true + }, + "finalMask": { + "nullable": true + }, + "inbound": { + "type": "object", + "properties": { + "configProfileUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "configProfileInboundUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "configProfileUuid", + "configProfileInboundUuid" + ] + }, + "serverDescription": { + "type": "string", + "maxLength": 30, + "nullable": true + }, + "tag": { + "type": "string", + "nullable": true + }, + "isHidden": { + "type": "boolean", + "default": false + }, + "overrideSniFromAddress": { + "type": "boolean", + "default": false + }, + "keepSniBlank": { + "type": "boolean", + "default": false + }, + "vlessRouteId": { + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false, + "maximum": 65535, + "exclusiveMaximum": false, + "nullable": true + }, + "allowInsecure": { + "type": "boolean", + "default": false + }, + "shuffleHost": { + "type": "boolean" + }, + "mihomoX25519": { + "type": "boolean" + }, + "nodes": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "xrayJsonTemplateUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "excludedInternalSquads": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "excludeFromSubscriptionTypes": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ] + } + } + }, + "required": [ + "uuid", + "viewPosition", + "remark", + "address", + "port", + "path", + "sni", + "host", + "alpn", + "fingerprint", + "xHttpExtraParams", + "muxParams", + "sockoptParams", + "finalMask", + "inbound", + "serverDescription", + "tag", + "vlessRouteId", + "shuffleHost", + "mihomoX25519", + "nodes", + "xrayJsonTemplateUuid", + "excludedInternalSquads" + ] + } + } + }, + "required": [ + "response" + ] + }, + "BulkDisableHostsRequestDto": { + "type": "object", + "properties": { + "uuids": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "uuids" + ] + }, + "BulkDisableHostsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "remark": { + "type": "string" + }, + "address": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "path": { + "type": "string", + "nullable": true + }, + "sni": { + "type": "string", + "nullable": true + }, + "host": { + "type": "string", + "nullable": true + }, + "alpn": { + "type": "string", + "nullable": true + }, + "fingerprint": { + "type": "string", + "nullable": true + }, + "isDisabled": { + "type": "boolean", + "default": false + }, + "securityLayer": { + "type": "string", + "enum": [ + "DEFAULT", + "TLS", + "NONE" + ], + "x-enumNames": [ + "DEFAULT", + "TLS", + "NONE" + ], + "default": "DEFAULT" + }, + "xHttpExtraParams": { + "nullable": true + }, + "muxParams": { + "nullable": true + }, + "sockoptParams": { + "nullable": true + }, + "finalMask": { + "nullable": true + }, + "inbound": { + "type": "object", + "properties": { + "configProfileUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "configProfileInboundUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "configProfileUuid", + "configProfileInboundUuid" + ] + }, + "serverDescription": { + "type": "string", + "maxLength": 30, + "nullable": true + }, + "tag": { + "type": "string", + "nullable": true + }, + "isHidden": { + "type": "boolean", + "default": false + }, + "overrideSniFromAddress": { + "type": "boolean", + "default": false + }, + "keepSniBlank": { + "type": "boolean", + "default": false + }, + "vlessRouteId": { + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false, + "maximum": 65535, + "exclusiveMaximum": false, + "nullable": true + }, + "allowInsecure": { + "type": "boolean", + "default": false + }, + "shuffleHost": { + "type": "boolean" + }, + "mihomoX25519": { + "type": "boolean" + }, + "nodes": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "xrayJsonTemplateUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "excludedInternalSquads": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "excludeFromSubscriptionTypes": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ] + } + } + }, + "required": [ + "uuid", + "viewPosition", + "remark", + "address", + "port", + "path", + "sni", + "host", + "alpn", + "fingerprint", + "xHttpExtraParams", + "muxParams", + "sockoptParams", + "finalMask", + "inbound", + "serverDescription", + "tag", + "vlessRouteId", + "shuffleHost", + "mihomoX25519", + "nodes", + "xrayJsonTemplateUuid", + "excludedInternalSquads" + ] + } + } + }, + "required": [ + "response" + ] + }, + "BulkEnableHostsRequestDto": { + "type": "object", + "properties": { + "uuids": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "uuids" + ] + }, + "BulkEnableHostsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "remark": { + "type": "string" + }, + "address": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "path": { + "type": "string", + "nullable": true + }, + "sni": { + "type": "string", + "nullable": true + }, + "host": { + "type": "string", + "nullable": true + }, + "alpn": { + "type": "string", + "nullable": true + }, + "fingerprint": { + "type": "string", + "nullable": true + }, + "isDisabled": { + "type": "boolean", + "default": false + }, + "securityLayer": { + "type": "string", + "enum": [ + "DEFAULT", + "TLS", + "NONE" + ], + "x-enumNames": [ + "DEFAULT", + "TLS", + "NONE" + ], + "default": "DEFAULT" + }, + "xHttpExtraParams": { + "nullable": true + }, + "muxParams": { + "nullable": true + }, + "sockoptParams": { + "nullable": true + }, + "finalMask": { + "nullable": true + }, + "inbound": { + "type": "object", + "properties": { + "configProfileUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "configProfileInboundUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "configProfileUuid", + "configProfileInboundUuid" + ] + }, + "serverDescription": { + "type": "string", + "maxLength": 30, + "nullable": true + }, + "tag": { + "type": "string", + "nullable": true + }, + "isHidden": { + "type": "boolean", + "default": false + }, + "overrideSniFromAddress": { + "type": "boolean", + "default": false + }, + "keepSniBlank": { + "type": "boolean", + "default": false + }, + "vlessRouteId": { + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false, + "maximum": 65535, + "exclusiveMaximum": false, + "nullable": true + }, + "allowInsecure": { + "type": "boolean", + "default": false + }, + "shuffleHost": { + "type": "boolean" + }, + "mihomoX25519": { + "type": "boolean" + }, + "nodes": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "xrayJsonTemplateUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "excludedInternalSquads": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "excludeFromSubscriptionTypes": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ] + } + } + }, + "required": [ + "uuid", + "viewPosition", + "remark", + "address", + "port", + "path", + "sni", + "host", + "alpn", + "fingerprint", + "xHttpExtraParams", + "muxParams", + "sockoptParams", + "finalMask", + "inbound", + "serverDescription", + "tag", + "vlessRouteId", + "shuffleHost", + "mihomoX25519", + "nodes", + "xrayJsonTemplateUuid", + "excludedInternalSquads" + ] + } + } + }, + "required": [ + "response" + ] + }, + "SetInboundToManyHostsRequestDto": { + "type": "object", + "properties": { + "uuids": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "configProfileUuid": { + "type": "string", + "format": "uuid" + }, + "configProfileInboundUuid": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "uuids", + "configProfileUuid", + "configProfileInboundUuid" + ] + }, + "SetInboundToManyHostsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "remark": { + "type": "string" + }, + "address": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "path": { + "type": "string", + "nullable": true + }, + "sni": { + "type": "string", + "nullable": true + }, + "host": { + "type": "string", + "nullable": true + }, + "alpn": { + "type": "string", + "nullable": true + }, + "fingerprint": { + "type": "string", + "nullable": true + }, + "isDisabled": { + "type": "boolean", + "default": false + }, + "securityLayer": { + "type": "string", + "enum": [ + "DEFAULT", + "TLS", + "NONE" + ], + "x-enumNames": [ + "DEFAULT", + "TLS", + "NONE" + ], + "default": "DEFAULT" + }, + "xHttpExtraParams": { + "nullable": true + }, + "muxParams": { + "nullable": true + }, + "sockoptParams": { + "nullable": true + }, + "finalMask": { + "nullable": true + }, + "inbound": { + "type": "object", + "properties": { + "configProfileUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "configProfileInboundUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "configProfileUuid", + "configProfileInboundUuid" + ] + }, + "serverDescription": { + "type": "string", + "maxLength": 30, + "nullable": true + }, + "tag": { + "type": "string", + "nullable": true + }, + "isHidden": { + "type": "boolean", + "default": false + }, + "overrideSniFromAddress": { + "type": "boolean", + "default": false + }, + "keepSniBlank": { + "type": "boolean", + "default": false + }, + "vlessRouteId": { + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false, + "maximum": 65535, + "exclusiveMaximum": false, + "nullable": true + }, + "allowInsecure": { + "type": "boolean", + "default": false + }, + "shuffleHost": { + "type": "boolean" + }, + "mihomoX25519": { + "type": "boolean" + }, + "nodes": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "xrayJsonTemplateUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "excludedInternalSquads": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "excludeFromSubscriptionTypes": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ] + } + } + }, + "required": [ + "uuid", + "viewPosition", + "remark", + "address", + "port", + "path", + "sni", + "host", + "alpn", + "fingerprint", + "xHttpExtraParams", + "muxParams", + "sockoptParams", + "finalMask", + "inbound", + "serverDescription", + "tag", + "vlessRouteId", + "shuffleHost", + "mihomoX25519", + "nodes", + "xrayJsonTemplateUuid", + "excludedInternalSquads" + ] + } + } + }, + "required": [ + "response" + ] + }, + "SetPortToManyHostsRequestDto": { + "type": "object", + "properties": { + "uuids": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "port": { + "type": "integer", + "minimum": 1, + "exclusiveMinimum": false, + "maximum": 65535, + "exclusiveMaximum": false + } + }, + "required": [ + "uuids", + "port" + ] + }, + "SetPortToManyHostsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "viewPosition": { + "type": "integer" + }, + "remark": { + "type": "string" + }, + "address": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "path": { + "type": "string", + "nullable": true + }, + "sni": { + "type": "string", + "nullable": true + }, + "host": { + "type": "string", + "nullable": true + }, + "alpn": { + "type": "string", + "nullable": true + }, + "fingerprint": { + "type": "string", + "nullable": true + }, + "isDisabled": { + "type": "boolean", + "default": false + }, + "securityLayer": { + "type": "string", + "enum": [ + "DEFAULT", + "TLS", + "NONE" + ], + "x-enumNames": [ + "DEFAULT", + "TLS", + "NONE" + ], + "default": "DEFAULT" + }, + "xHttpExtraParams": { + "nullable": true + }, + "muxParams": { + "nullable": true + }, + "sockoptParams": { + "nullable": true + }, + "finalMask": { + "nullable": true + }, + "inbound": { + "type": "object", + "properties": { + "configProfileUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "configProfileInboundUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "configProfileUuid", + "configProfileInboundUuid" + ] + }, + "serverDescription": { + "type": "string", + "maxLength": 30, + "nullable": true + }, + "tag": { + "type": "string", + "nullable": true + }, + "isHidden": { + "type": "boolean", + "default": false + }, + "overrideSniFromAddress": { + "type": "boolean", + "default": false + }, + "keepSniBlank": { + "type": "boolean", + "default": false + }, + "vlessRouteId": { + "type": "integer", + "minimum": 0, + "exclusiveMinimum": false, + "maximum": 65535, + "exclusiveMaximum": false, + "nullable": true + }, + "allowInsecure": { + "type": "boolean", + "default": false + }, + "shuffleHost": { + "type": "boolean" + }, + "mihomoX25519": { + "type": "boolean" + }, + "nodes": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "xrayJsonTemplateUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "excludedInternalSquads": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "excludeFromSubscriptionTypes": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX" + ] + } + } + }, + "required": [ + "uuid", + "viewPosition", + "remark", + "address", + "port", + "path", + "sni", + "host", + "alpn", + "fingerprint", + "xHttpExtraParams", + "muxParams", + "sockoptParams", + "finalMask", + "inbound", + "serverDescription", + "tag", + "vlessRouteId", + "shuffleHost", + "mihomoX25519", + "nodes", + "xrayJsonTemplateUuid", + "excludedInternalSquads" + ] + } + } + }, + "required": [ + "response" + ] + }, + "GetLegacyStatsNodesUsersUsageResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "array", + "items": { + "type": "object", + "properties": { + "userUuid": { + "type": "string", + "format": "uuid" + }, + "username": { + "type": "string" + }, + "nodeUuid": { + "type": "string", + "format": "uuid" + }, + "total": { + "type": "number" + }, + "date": { + "type": "string" + } + }, + "required": [ + "userUuid", + "username", + "nodeUuid", + "total", + "date" + ] + } + } + }, + "required": [ + "response" + ] + }, + "GetStatsNodeUsersUsageResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "categories": { + "type": "array", + "items": { + "type": "string" + } + }, + "sparklineData": { + "type": "array", + "items": { + "type": "number" + } + }, + "topUsers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "color": { + "type": "string" + }, + "username": { + "type": "string" + }, + "total": { + "type": "number" + } + }, + "required": [ + "color", + "username", + "total" + ] + } + } + }, + "required": [ + "categories", + "sparklineData", + "topUsers" + ] + } + }, + "required": [ + "response" + ] + }, + "GetLegacyStatsUserUsageResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "array", + "items": { + "type": "object", + "properties": { + "userUuid": { + "type": "string", + "format": "uuid" + }, + "nodeUuid": { + "type": "string", + "format": "uuid" + }, + "nodeName": { + "type": "string" + }, + "countryCode": { + "type": "string" + }, + "total": { + "type": "number" + }, + "date": { + "type": "string" + } + }, + "required": [ + "userUuid", + "nodeUuid", + "nodeName", + "countryCode", + "total", + "date" + ] + } + } + }, + "required": [ + "response" + ] + }, + "GetStatsUserUsageResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "categories": { + "type": "array", + "items": { + "type": "string" + } + }, + "sparklineData": { + "type": "array", + "items": { + "type": "number" + } + }, + "topNodes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "color": { + "type": "string" + }, + "name": { + "type": "string" + }, + "countryCode": { + "type": "string" + }, + "total": { + "type": "number" + } + }, + "required": [ + "uuid", + "color", + "name", + "countryCode", + "total" + ] + } + }, + "series": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "color": { + "type": "string" + }, + "countryCode": { + "type": "string" + }, + "total": { + "type": "number" + }, + "data": { + "type": "array", + "items": { + "type": "number" + } + } + }, + "required": [ + "uuid", + "name", + "color", + "countryCode", + "total", + "data" + ] + } + } + }, + "required": [ + "categories", + "sparklineData", + "topNodes", + "series" + ] + } + }, + "required": [ + "response" + ] + }, + "GetAllHwidDevicesResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "devices": { + "type": "array", + "items": { + "type": "object", + "properties": { + "hwid": { + "type": "string" + }, + "userUuid": { + "type": "string", + "format": "uuid" + }, + "platform": { + "type": "string", + "nullable": true + }, + "osVersion": { + "type": "string", + "nullable": true + }, + "deviceModel": { + "type": "string", + "nullable": true + }, + "userAgent": { + "type": "string", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "hwid", + "userUuid", + "platform", + "osVersion", + "deviceModel", + "userAgent", + "createdAt", + "updatedAt" + ] + } + }, + "total": { + "type": "number" + } + }, + "required": [ + "devices", + "total" + ] + } + }, + "required": [ + "response" + ] + }, + "CreateUserHwidDeviceRequestDto": { + "type": "object", + "properties": { + "hwid": { + "type": "string" + }, + "userUuid": { + "type": "string", + "format": "uuid" + }, + "platform": { + "type": "string" + }, + "osVersion": { + "type": "string" + }, + "deviceModel": { + "type": "string" + }, + "userAgent": { + "type": "string" + } + }, + "required": [ + "hwid", + "userUuid" + ] + }, + "CreateUserHwidDeviceResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "devices": { + "type": "array", + "items": { + "type": "object", + "properties": { + "hwid": { + "type": "string" + }, + "userUuid": { + "type": "string", + "format": "uuid" + }, + "platform": { + "type": "string", + "nullable": true + }, + "osVersion": { + "type": "string", + "nullable": true + }, + "deviceModel": { + "type": "string", + "nullable": true + }, + "userAgent": { + "type": "string", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "hwid", + "userUuid", + "platform", + "osVersion", + "deviceModel", + "userAgent", + "createdAt", + "updatedAt" + ] + } + } + }, + "required": [ + "total", + "devices" + ] + } + }, + "required": [ + "response" + ] + }, + "DeleteUserHwidDeviceRequestDto": { + "type": "object", + "properties": { + "userUuid": { + "type": "string", + "format": "uuid" + }, + "hwid": { + "type": "string" + } + }, + "required": [ + "userUuid", + "hwid" + ] + }, + "DeleteUserHwidDeviceResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "devices": { + "type": "array", + "items": { + "type": "object", + "properties": { + "hwid": { + "type": "string" + }, + "userUuid": { + "type": "string", + "format": "uuid" + }, + "platform": { + "type": "string", + "nullable": true + }, + "osVersion": { + "type": "string", + "nullable": true + }, + "deviceModel": { + "type": "string", + "nullable": true + }, + "userAgent": { + "type": "string", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "hwid", + "userUuid", + "platform", + "osVersion", + "deviceModel", + "userAgent", + "createdAt", + "updatedAt" + ] + } + } + }, + "required": [ + "total", + "devices" + ] + } + }, + "required": [ + "response" + ] + }, + "DeleteAllUserHwidDevicesRequestDto": { + "type": "object", + "properties": { + "userUuid": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "userUuid" + ] + }, + "DeleteAllUserHwidDevicesResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "devices": { + "type": "array", + "items": { + "type": "object", + "properties": { + "hwid": { + "type": "string" + }, + "userUuid": { + "type": "string", + "format": "uuid" + }, + "platform": { + "type": "string", + "nullable": true + }, + "osVersion": { + "type": "string", + "nullable": true + }, + "deviceModel": { + "type": "string", + "nullable": true + }, + "userAgent": { + "type": "string", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "hwid", + "userUuid", + "platform", + "osVersion", + "deviceModel", + "userAgent", + "createdAt", + "updatedAt" + ] + } + } + }, + "required": [ + "total", + "devices" + ] + } + }, + "required": [ + "response" + ] + }, + "GetHwidDevicesStatsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "byPlatform": { + "type": "array", + "items": { + "type": "object", + "properties": { + "platform": { + "type": "string" + }, + "count": { + "type": "number" + } + }, + "required": [ + "platform", + "count" + ] + } + }, + "byApp": { + "type": "array", + "items": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "count": { + "type": "number" + } + }, + "required": [ + "app", + "count" + ] + } + }, + "stats": { + "type": "object", + "properties": { + "totalUniqueDevices": { + "type": "number" + }, + "totalHwidDevices": { + "type": "number" + }, + "averageHwidDevicesPerUser": { + "type": "number" + } + }, + "required": [ + "totalUniqueDevices", + "totalHwidDevices", + "averageHwidDevicesPerUser" + ] + } + }, + "required": [ + "byPlatform", + "byApp", + "stats" + ] + } + }, + "required": [ + "response" + ] + }, + "GetTopUsersByHwidDevicesResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "users": { + "type": "array", + "items": { + "type": "object", + "properties": { + "userUuid": { + "type": "string", + "format": "uuid" + }, + "id": { + "type": "number" + }, + "username": { + "type": "string" + }, + "devicesCount": { + "type": "number" + } + }, + "required": [ + "userUuid", + "id", + "username", + "devicesCount" + ] + } + }, + "total": { + "type": "number" + } + }, + "required": [ + "users", + "total" + ] + } + }, + "required": [ + "response" + ] + }, + "GetUserHwidDevicesResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "devices": { + "type": "array", + "items": { + "type": "object", + "properties": { + "hwid": { + "type": "string" + }, + "userUuid": { + "type": "string", + "format": "uuid" + }, + "platform": { + "type": "string", + "nullable": true + }, + "osVersion": { + "type": "string", + "nullable": true + }, + "deviceModel": { + "type": "string", + "nullable": true + }, + "userAgent": { + "type": "string", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "hwid", + "userUuid", + "platform", + "osVersion", + "deviceModel", + "userAgent", + "createdAt", + "updatedAt" + ] + } + } + }, + "required": [ + "total", + "devices" + ] + } + }, + "required": [ + "response" + ] + }, + "GetStatsNodesUsageResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "categories": { + "type": "array", + "items": { + "type": "string" + } + }, + "sparklineData": { + "type": "array", + "items": { + "type": "number" + } + }, + "topNodes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "color": { + "type": "string" + }, + "name": { + "type": "string" + }, + "countryCode": { + "type": "string" + }, + "total": { + "type": "number" + } + }, + "required": [ + "uuid", + "color", + "name", + "countryCode", + "total" + ] + } + }, + "series": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "color": { + "type": "string" + }, + "countryCode": { + "type": "string" + }, + "total": { + "type": "number" + }, + "data": { + "type": "array", + "items": { + "type": "number" + } + } + }, + "required": [ + "uuid", + "name", + "color", + "countryCode", + "total", + "data" + ] + } + } + }, + "required": [ + "categories", + "sparklineData", + "topNodes", + "series" + ] + } + }, + "required": [ + "response" + ] + }, + "GetInfraProvidersResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "providers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "faviconLink": { + "type": "string", + "nullable": true + }, + "loginUrl": { + "type": "string", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "billingHistory": { + "type": "object", + "properties": { + "totalAmount": { + "type": "number" + }, + "totalBills": { + "type": "number" + } + }, + "required": [ + "totalAmount", + "totalBills" + ] + }, + "billingNodes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "nodeUuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "countryCode": { + "type": "string" + } + }, + "required": [ + "nodeUuid", + "name", + "countryCode" + ] + } + } + }, + "required": [ + "uuid", + "name", + "faviconLink", + "loginUrl", + "createdAt", + "updatedAt", + "billingHistory", + "billingNodes" + ] + } + } + }, + "required": [ + "total", + "providers" + ] + } + }, + "required": [ + "response" + ] + }, + "GetInfraProviderByUuidResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "faviconLink": { + "type": "string", + "nullable": true + }, + "loginUrl": { + "type": "string", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "billingHistory": { + "type": "object", + "properties": { + "totalAmount": { + "type": "number" + }, + "totalBills": { + "type": "number" + } + }, + "required": [ + "totalAmount", + "totalBills" + ] + }, + "billingNodes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "nodeUuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "countryCode": { + "type": "string" + } + }, + "required": [ + "nodeUuid", + "name", + "countryCode" + ] + } + } + }, + "required": [ + "uuid", + "name", + "faviconLink", + "loginUrl", + "createdAt", + "updatedAt", + "billingHistory", + "billingNodes" + ] + } + }, + "required": [ + "response" + ] + }, + "DeleteInfraProviderByUuidResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "isDeleted": { + "type": "boolean" + } + }, + "required": [ + "isDeleted" + ] + } + }, + "required": [ + "response" + ] + }, + "CreateInfraProviderRequestDto": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 2, + "maxLength": 30 + }, + "faviconLink": { + "type": "string", + "format": "uri" + }, + "loginUrl": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "name" + ] + }, + "CreateInfraProviderResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "faviconLink": { + "type": "string", + "nullable": true + }, + "loginUrl": { + "type": "string", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "billingHistory": { + "type": "object", + "properties": { + "totalAmount": { + "type": "number" + }, + "totalBills": { + "type": "number" + } + }, + "required": [ + "totalAmount", + "totalBills" + ] + }, + "billingNodes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "nodeUuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "countryCode": { + "type": "string" + } + }, + "required": [ + "nodeUuid", + "name", + "countryCode" + ] + } + } + }, + "required": [ + "uuid", + "name", + "faviconLink", + "loginUrl", + "createdAt", + "updatedAt", + "billingHistory", + "billingNodes" + ] + } + }, + "required": [ + "response" + ] + }, + "UpdateInfraProviderRequestDto": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string", + "minLength": 2, + "maxLength": 30 + }, + "faviconLink": { + "type": "string", + "format": "uri", + "nullable": true + }, + "loginUrl": { + "type": "string", + "format": "uri", + "nullable": true + } + }, + "required": [ + "uuid" + ] + }, + "UpdateInfraProviderResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "faviconLink": { + "type": "string", + "nullable": true + }, + "loginUrl": { + "type": "string", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "billingHistory": { + "type": "object", + "properties": { + "totalAmount": { + "type": "number" + }, + "totalBills": { + "type": "number" + } + }, + "required": [ + "totalAmount", + "totalBills" + ] + }, + "billingNodes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "nodeUuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "countryCode": { + "type": "string" + } + }, + "required": [ + "nodeUuid", + "name", + "countryCode" + ] + } + } + }, + "required": [ + "uuid", + "name", + "faviconLink", + "loginUrl", + "createdAt", + "updatedAt", + "billingHistory", + "billingNodes" + ] + } + }, + "required": [ + "response" + ] + }, + "CreateInfraBillingHistoryRecordRequestDto": { + "type": "object", + "properties": { + "providerUuid": { + "type": "string", + "format": "uuid" + }, + "amount": { + "type": "number", + "minimum": 0, + "exclusiveMinimum": false + }, + "billedAt": { + "description": "Billing date. Format: 2025-01-17T15:38:45.065Z", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "providerUuid", + "amount", + "billedAt" + ] + }, + "CreateInfraBillingHistoryRecordResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "records": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "providerUuid": { + "type": "string", + "format": "uuid" + }, + "amount": { + "type": "number" + }, + "billedAt": { + "type": "string", + "format": "date-time" + }, + "provider": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "faviconLink": { + "type": "string", + "nullable": true + } + }, + "required": [ + "uuid", + "name", + "faviconLink" + ] + } + }, + "required": [ + "uuid", + "providerUuid", + "amount", + "billedAt", + "provider" + ] + } + }, + "total": { + "type": "number" + } + }, + "required": [ + "records", + "total" + ] + } + }, + "required": [ + "response" + ] + }, + "GetInfraBillingHistoryRecordsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "records": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "providerUuid": { + "type": "string", + "format": "uuid" + }, + "amount": { + "type": "number" + }, + "billedAt": { + "type": "string", + "format": "date-time" + }, + "provider": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "faviconLink": { + "type": "string", + "nullable": true + } + }, + "required": [ + "uuid", + "name", + "faviconLink" + ] + } + }, + "required": [ + "uuid", + "providerUuid", + "amount", + "billedAt", + "provider" + ] + } + }, + "total": { + "type": "number" + } + }, + "required": [ + "records", + "total" + ] + } + }, + "required": [ + "response" + ] + }, + "DeleteInfraBillingHistoryRecordByUuidResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "records": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "providerUuid": { + "type": "string", + "format": "uuid" + }, + "amount": { + "type": "number" + }, + "billedAt": { + "type": "string", + "format": "date-time" + }, + "provider": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "faviconLink": { + "type": "string", + "nullable": true + } + }, + "required": [ + "uuid", + "name", + "faviconLink" + ] + } + }, + "required": [ + "uuid", + "providerUuid", + "amount", + "billedAt", + "provider" + ] + } + }, + "total": { + "type": "number" + } + }, + "required": [ + "records", + "total" + ] + } + }, + "required": [ + "response" + ] + }, + "GetInfraBillingNodesResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "totalBillingNodes": { + "type": "number" + }, + "billingNodes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "nodeUuid": { + "type": "string", + "format": "uuid" + }, + "providerUuid": { + "type": "string", + "format": "uuid" + }, + "provider": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "loginUrl": { + "type": "string", + "nullable": true + }, + "faviconLink": { + "type": "string", + "nullable": true + } + }, + "required": [ + "uuid", + "name", + "loginUrl", + "faviconLink" + ] + }, + "node": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "countryCode": { + "type": "string" + } + }, + "required": [ + "uuid", + "name", + "countryCode" + ] + }, + "nextBillingAt": { + "type": "string", + "format": "date-time" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "nodeUuid", + "providerUuid", + "provider", + "node", + "nextBillingAt", + "createdAt", + "updatedAt" + ] + } + }, + "availableBillingNodes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "countryCode": { + "type": "string" + } + }, + "required": [ + "uuid", + "name", + "countryCode" + ] + } + }, + "totalAvailableBillingNodes": { + "type": "number" + }, + "stats": { + "type": "object", + "properties": { + "upcomingNodesCount": { + "type": "number" + }, + "currentMonthPayments": { + "type": "number" + }, + "totalSpent": { + "type": "number" + } + }, + "required": [ + "upcomingNodesCount", + "currentMonthPayments", + "totalSpent" + ] + } + }, + "required": [ + "totalBillingNodes", + "billingNodes", + "availableBillingNodes", + "totalAvailableBillingNodes", + "stats" + ] + } + }, + "required": [ + "response" + ] + }, + "UpdateInfraBillingNodeRequestDto": { + "type": "object", + "properties": { + "uuids": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "nextBillingAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuids", + "nextBillingAt" + ] + }, + "UpdateInfraBillingNodeResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "totalBillingNodes": { + "type": "number" + }, + "billingNodes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "nodeUuid": { + "type": "string", + "format": "uuid" + }, + "providerUuid": { + "type": "string", + "format": "uuid" + }, + "provider": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "loginUrl": { + "type": "string", + "nullable": true + }, + "faviconLink": { + "type": "string", + "nullable": true + } + }, + "required": [ + "uuid", + "name", + "loginUrl", + "faviconLink" + ] + }, + "node": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "countryCode": { + "type": "string" + } + }, + "required": [ + "uuid", + "name", + "countryCode" + ] + }, + "nextBillingAt": { + "type": "string", + "format": "date-time" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "nodeUuid", + "providerUuid", + "provider", + "node", + "nextBillingAt", + "createdAt", + "updatedAt" + ] + } + }, + "availableBillingNodes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "countryCode": { + "type": "string" + } + }, + "required": [ + "uuid", + "name", + "countryCode" + ] + } + }, + "totalAvailableBillingNodes": { + "type": "number" + }, + "stats": { + "type": "object", + "properties": { + "upcomingNodesCount": { + "type": "number" + }, + "currentMonthPayments": { + "type": "number" + }, + "totalSpent": { + "type": "number" + } + }, + "required": [ + "upcomingNodesCount", + "currentMonthPayments", + "totalSpent" + ] + } + }, + "required": [ + "totalBillingNodes", + "billingNodes", + "availableBillingNodes", + "totalAvailableBillingNodes", + "stats" + ] + } + }, + "required": [ + "response" + ] + }, + "CreateInfraBillingNodeRequestDto": { + "type": "object", + "properties": { + "providerUuid": { + "type": "string", + "format": "uuid" + }, + "nodeUuid": { + "type": "string", + "format": "uuid" + }, + "nextBillingAt": { + "description": "Next billing date. Format: 2025-01-17T15:38:45.065Z", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "providerUuid", + "nodeUuid" + ] + }, + "CreateInfraBillingNodeResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "totalBillingNodes": { + "type": "number" + }, + "billingNodes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "nodeUuid": { + "type": "string", + "format": "uuid" + }, + "providerUuid": { + "type": "string", + "format": "uuid" + }, + "provider": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "loginUrl": { + "type": "string", + "nullable": true + }, + "faviconLink": { + "type": "string", + "nullable": true + } + }, + "required": [ + "uuid", + "name", + "loginUrl", + "faviconLink" + ] + }, + "node": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "countryCode": { + "type": "string" + } + }, + "required": [ + "uuid", + "name", + "countryCode" + ] + }, + "nextBillingAt": { + "type": "string", + "format": "date-time" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "nodeUuid", + "providerUuid", + "provider", + "node", + "nextBillingAt", + "createdAt", + "updatedAt" + ] + } + }, + "availableBillingNodes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "countryCode": { + "type": "string" + } + }, + "required": [ + "uuid", + "name", + "countryCode" + ] + } + }, + "totalAvailableBillingNodes": { + "type": "number" + }, + "stats": { + "type": "object", + "properties": { + "upcomingNodesCount": { + "type": "number" + }, + "currentMonthPayments": { + "type": "number" + }, + "totalSpent": { + "type": "number" + } + }, + "required": [ + "upcomingNodesCount", + "currentMonthPayments", + "totalSpent" + ] + } + }, + "required": [ + "totalBillingNodes", + "billingNodes", + "availableBillingNodes", + "totalAvailableBillingNodes", + "stats" + ] + } + }, + "required": [ + "response" + ] + }, + "DeleteInfraBillingNodeByUuidResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "totalBillingNodes": { + "type": "number" + }, + "billingNodes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "nodeUuid": { + "type": "string", + "format": "uuid" + }, + "providerUuid": { + "type": "string", + "format": "uuid" + }, + "provider": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "loginUrl": { + "type": "string", + "nullable": true + }, + "faviconLink": { + "type": "string", + "nullable": true + } + }, + "required": [ + "uuid", + "name", + "loginUrl", + "faviconLink" + ] + }, + "node": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "countryCode": { + "type": "string" + } + }, + "required": [ + "uuid", + "name", + "countryCode" + ] + }, + "nextBillingAt": { + "type": "string", + "format": "date-time" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "nodeUuid", + "providerUuid", + "provider", + "node", + "nextBillingAt", + "createdAt", + "updatedAt" + ] + } + }, + "availableBillingNodes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "countryCode": { + "type": "string" + } + }, + "required": [ + "uuid", + "name", + "countryCode" + ] + } + }, + "totalAvailableBillingNodes": { + "type": "number" + }, + "stats": { + "type": "object", + "properties": { + "upcomingNodesCount": { + "type": "number" + }, + "currentMonthPayments": { + "type": "number" + }, + "totalSpent": { + "type": "number" + } + }, + "required": [ + "upcomingNodesCount", + "currentMonthPayments", + "totalSpent" + ] + } + }, + "required": [ + "totalBillingNodes", + "billingNodes", + "availableBillingNodes", + "totalAvailableBillingNodes", + "stats" + ] + } + }, + "required": [ + "response" + ] + }, + "GetSubscriptionRequestHistoryResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "records": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "userUuid": { + "type": "string", + "format": "uuid" + }, + "requestIp": { + "type": "string", + "nullable": true + }, + "userAgent": { + "type": "string", + "nullable": true + }, + "requestAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "userUuid", + "requestIp", + "userAgent", + "requestAt" + ] + } + }, + "total": { + "type": "number" + } + }, + "required": [ + "records", + "total" + ] + } + }, + "required": [ + "response" + ] + }, + "GetSubscriptionRequestHistoryStatsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "byParsedApp": { + "type": "array", + "items": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "count": { + "type": "number" + } + }, + "required": [ + "app", + "count" + ] + } + }, + "hourlyRequestStats": { + "type": "array", + "items": { + "type": "object", + "properties": { + "dateTime": { + "type": "string", + "format": "date-time" + }, + "requestCount": { + "type": "number" + } + }, + "required": [ + "dateTime", + "requestCount" + ] + } + } + }, + "required": [ + "byParsedApp", + "hourlyRequestStats" + ] + } + }, + "required": [ + "response" + ] + }, + "GetMetadataResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "version": { + "type": "string" + }, + "build": { + "type": "object", + "properties": { + "time": { + "type": "string" + }, + "number": { + "type": "string" + } + }, + "required": [ + "time", + "number" + ] + }, + "git": { + "type": "object", + "properties": { + "backend": { + "type": "object", + "properties": { + "commitSha": { + "type": "string" + }, + "branch": { + "type": "string" + }, + "commitUrl": { + "type": "string" + } + }, + "required": [ + "commitSha", + "branch", + "commitUrl" + ] + }, + "frontend": { + "type": "object", + "properties": { + "commitSha": { + "type": "string" + }, + "commitUrl": { + "type": "string" + } + }, + "required": [ + "commitSha", + "commitUrl" + ] + } + }, + "required": [ + "backend", + "frontend" + ] + } + }, + "required": [ + "version", + "build", + "git" + ] + } + }, + "required": [ + "response" + ] + }, + "GetStatsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "cpu": { + "type": "object", + "properties": { + "cores": { + "type": "number" + } + }, + "required": [ + "cores" + ] + }, + "memory": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "free": { + "type": "number" + }, + "used": { + "type": "number" + } + }, + "required": [ + "total", + "free", + "used" + ] + }, + "uptime": { + "type": "number" + }, + "timestamp": { + "type": "number" + }, + "users": { + "type": "object", + "properties": { + "statusCounts": { + "type": "object", + "additionalProperties": { + "type": "number" + } + }, + "totalUsers": { + "type": "number" + } + }, + "required": [ + "statusCounts", + "totalUsers" + ] + }, + "onlineStats": { + "type": "object", + "properties": { + "lastDay": { + "type": "number" + }, + "lastWeek": { + "type": "number" + }, + "neverOnline": { + "type": "number" + }, + "onlineNow": { + "type": "number" + } + }, + "required": [ + "lastDay", + "lastWeek", + "neverOnline", + "onlineNow" + ] + }, + "nodes": { + "type": "object", + "properties": { + "totalOnline": { + "type": "number" + }, + "totalBytesLifetime": { + "type": "string" + } + }, + "required": [ + "totalOnline", + "totalBytesLifetime" + ] + } + }, + "required": [ + "cpu", + "memory", + "uptime", + "timestamp", + "users", + "onlineStats", + "nodes" + ] + } + }, + "required": [ + "response" + ] + }, + "GetBandwidthStatsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "bandwidthLastTwoDays": { + "type": "object", + "properties": { + "current": { + "type": "string" + }, + "previous": { + "type": "string" + }, + "difference": { + "type": "string" + } + }, + "required": [ + "current", + "previous", + "difference" + ] + }, + "bandwidthLastSevenDays": { + "type": "object", + "properties": { + "current": { + "type": "string" + }, + "previous": { + "type": "string" + }, + "difference": { + "type": "string" + } + }, + "required": [ + "current", + "previous", + "difference" + ] + }, + "bandwidthLast30Days": { + "type": "object", + "properties": { + "current": { + "type": "string" + }, + "previous": { + "type": "string" + }, + "difference": { + "type": "string" + } + }, + "required": [ + "current", + "previous", + "difference" + ] + }, + "bandwidthCalendarMonth": { + "type": "object", + "properties": { + "current": { + "type": "string" + }, + "previous": { + "type": "string" + }, + "difference": { + "type": "string" + } + }, + "required": [ + "current", + "previous", + "difference" + ] + }, + "bandwidthCurrentYear": { + "type": "object", + "properties": { + "current": { + "type": "string" + }, + "previous": { + "type": "string" + }, + "difference": { + "type": "string" + } + }, + "required": [ + "current", + "previous", + "difference" + ] + } + }, + "required": [ + "bandwidthLastTwoDays", + "bandwidthLastSevenDays", + "bandwidthLast30Days", + "bandwidthCalendarMonth", + "bandwidthCurrentYear" + ] + } + }, + "required": [ + "response" + ] + }, + "GetNodesStatisticsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "lastSevenDays": { + "type": "array", + "items": { + "type": "object", + "properties": { + "nodeName": { + "type": "string" + }, + "date": { + "type": "string" + }, + "totalBytes": { + "type": "string" + } + }, + "required": [ + "nodeName", + "date", + "totalBytes" + ] + } + } + }, + "required": [ + "lastSevenDays" + ] + } + }, + "required": [ + "response" + ] + }, + "GetRemnawaveHealthResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "runtimeMetrics": { + "type": "array", + "items": { + "type": "object", + "properties": { + "rss": { + "type": "number" + }, + "heapUsed": { + "type": "number" + }, + "heapTotal": { + "type": "number" + }, + "external": { + "type": "number" + }, + "arrayBuffers": { + "type": "number" + }, + "eventLoopDelayMs": { + "type": "number" + }, + "eventLoopP99Ms": { + "type": "number" + }, + "activeHandles": { + "type": "number" + }, + "uptime": { + "type": "number" + }, + "pid": { + "type": "number" + }, + "timestamp": { + "type": "number" + }, + "instanceId": { + "type": "string" + }, + "instanceType": { + "type": "string" + } + }, + "required": [ + "rss", + "heapUsed", + "heapTotal", + "external", + "arrayBuffers", + "eventLoopDelayMs", + "eventLoopP99Ms", + "activeHandles", + "uptime", + "pid", + "timestamp", + "instanceId", + "instanceType" + ] + } + } + }, + "required": [ + "runtimeMetrics" + ] + } + }, + "required": [ + "response" + ] + }, + "GetNodesMetricsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "nodes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "nodeUuid": { + "type": "string" + }, + "nodeName": { + "type": "string" + }, + "countryEmoji": { + "type": "string" + }, + "providerName": { + "type": "string" + }, + "usersOnline": { + "type": "number" + }, + "inboundsStats": { + "type": "array", + "items": { + "type": "object", + "properties": { + "tag": { + "type": "string" + }, + "upload": { + "type": "string" + }, + "download": { + "type": "string" + } + }, + "required": [ + "tag", + "upload", + "download" + ] + } + }, + "outboundsStats": { + "type": "array", + "items": { + "type": "object", + "properties": { + "tag": { + "type": "string" + }, + "upload": { + "type": "string" + }, + "download": { + "type": "string" + } + }, + "required": [ + "tag", + "upload", + "download" + ] + } + } + }, + "required": [ + "nodeUuid", + "nodeName", + "countryEmoji", + "providerName", + "usersOnline", + "inboundsStats", + "outboundsStats" + ] + } + } + }, + "required": [ + "nodes" + ] + } + }, + "required": [ + "response" + ] + }, + "GenerateX25519ResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "keypairs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "publicKey": { + "type": "string" + }, + "privateKey": { + "type": "string" + } + }, + "required": [ + "publicKey", + "privateKey" + ] + } + } + }, + "required": [ + "keypairs" + ] + } + }, + "required": [ + "response" + ] + }, + "EncryptHappCryptoLinkRequestDto": { + "type": "object", + "properties": { + "linkToEncrypt": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "linkToEncrypt" + ] + }, + "EncryptHappCryptoLinkResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "encryptedLink": { + "type": "string" + } + }, + "required": [ + "encryptedLink" + ] + } + }, + "required": [ + "response" + ] + }, + "DebugSrrMatcherRequestDto": { + "type": "object", + "properties": { + "responseRules": { + "type": "object", + "properties": { + "version": { + "description": "{\"title\":\"Response Rules Config Version\",\"markdownDescription\":\"Version of the **response rules** config. Currently supported version is **1**.\"}", + "type": "string", + "enum": [ + "1" + ], + "x-enumNames": [ + "1" + ] + }, + "settings": { + "description": "{\"markdownDescription\":\"Settings for the **response rules** config. Optional.\"}", + "type": "object", + "properties": { + "disableSubscriptionAccessByPath": { + "description": "{\"markdownDescription\":\"Usually, a user's subscription may also be available via additional paths such as **/json**, **/stash**, or **/mihomo**. If this flag is set to **true**, access via these additional paths will be disabled.\"}", + "type": "boolean" + } + } + }, + "rules": { + "description": "{\"title\":\"Response Rules\",\"markdownDescription\":\"Array of **response rules**. Rules are evaluated in order and the first rule that matches is applied. If no rule matches, request will be blocked by default.\\n\\n**Example:**\\n```json\\n[\\n {\\n \\\"name\\\": \\\"Blank rule\\\",\\n \\\"description\\\": \\\"Blank rule\\\",\\n \\\"operator\\\": \\\"AND\\\",\\n \\\"enabled\\\": true,\\n \\\"conditions\\\": [],\\n \\\"responseType\\\": \\\"BLOCK\\\",\\n \\\"responseModifications\\\": {\\n \\\"headers\\\": []\\n }\\n }\\n]\\n```\",\"defaultSnippets\":[]}", + "type": "array", + "items": { + "description": "{\"defaultSnippets\":[{\"label\":\"Examples: Blank rule\",\"markdownDescription\":\"Simple blank rule with no conditions or modifications.\\n```json\\n{\\n \\\"name\\\": \\\"Blank rule\\\",\\n \\\"description\\\": \\\"Blank rule\\\",\\n \\\"operator\\\": \\\"AND\\\",\\n \\\"enabled\\\": true,\\n \\\"conditions\\\": [],\\n \\\"responseType\\\": \\\"BLOCK\\\",\\n \\\"responseModifications\\\": {\\n \\\"headers\\\": []\\n }\\n}\\n```\",\"body\":{\"name\":\"Blank rule\",\"description\":\"Blank rule\",\"operator\":\"AND\",\"enabled\":true,\"conditions\":[],\"responseType\":\"BLOCK\",\"responseModifications\":{\"headers\":[]}}},{\"label\":\"Examples: Block Legacy Clients\",\"markdownDescription\":\"Block requests from legacy clients\\n```json\\n{\\n \\\"name\\\": \\\"Block Legacy Clients\\\",\\n \\\"description\\\": \\\"Block requests from legacy clients\\\",\\n \\\"enabled\\\": true,\\n \\\"operator\\\": \\\"OR\\\",\\n \\\"conditions\\\": [\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"Hiddify\\\",\\n \\\"caseSensitive\\\": true\\n },\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"FoxRay\\\",\\n \\\"caseSensitive\\\": true\\n }\\n ],\\n \\\"responseType\\\": \\\"BLOCK\\\"\\n}\\n```\",\"body\":{\"name\":\"Block Legacy Clients\",\"description\":\"Block requests from legacy clients\",\"enabled\":true,\"operator\":\"OR\",\"conditions\":[{\"headerName\":\"user-agent\",\"operator\":\"CONTAINS\",\"value\":\"Hiddify\",\"caseSensitive\":true},{\"headerName\":\"user-agent\",\"operator\":\"CONTAINS\",\"value\":\"FoxRay\",\"caseSensitive\":true}],\"responseType\":\"BLOCK\"}}],\"title\":\"Response Rule\",\"markdownDescription\":\"Response rule configuration.\\n\\n**Fields:**\\n- **name**: Name of the response rule.\\n- **description**: Description of the response rule. Optional.\\n- **enabled**: Control whether the response rule is enabled or disabled. \\n\\n - `true` the rule will be applied. \\n\\n - `false` the rule will be always ignored.\\n- **operator**: Operator to use for combining conditions in the rule.\\n- **conditions**: Array of conditions to check against the request headers. Conditions are applied with **operator**. If conditions are empty, the rule will be matched.\\n- **responseType**: Type of the response. Determines the type of **response** to be returned when the rule is matched.\\n- **responseModifications**: Response modifications to be applied when the rule is matched. Optional.\\n\\n**Example:**\\n```json\\n{\\n \\\"name\\\": \\\"Block Legacy Clients\\\",\\n \\\"description\\\": \\\"Block requests from legacy clients\\\",\\n \\\"enabled\\\": true,\\n \\\"operator\\\": \\\"OR\\\",\\n \\\"conditions\\\": [\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"Hiddify\\\",\\n \\\"caseSensitive\\\": true\\n },\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"FoxRay\\\",\\n \\\"caseSensitive\\\": true\\n }\\n ],\\n \\\"responseType\\\": \\\"BLOCK\\\"\\n}\\n```\"}", + "type": "object", + "properties": { + "name": { + "description": "{\"markdownDescription\":\"Name of the response rule.\"}", + "type": "string", + "minLength": 1, + "maxLength": 50 + }, + "description": { + "description": "{\"markdownDescription\":\"Description of the response rule. Optional.\"}", + "type": "string", + "minLength": 1, + "maxLength": 250 + }, + "enabled": { + "description": "{\"markdownDescription\":\"Control whether the response rule is enabled or disabled. \\n\\n - `true` the rule will be applied. \\n\\n - `false` the rule will be always ignored.\"}", + "type": "boolean" + }, + "operator": { + "description": "{\"markdownDescription\":\"Operator to use for combining conditions in the rule.\"}", + "type": "string", + "enum": [ + "AND", + "OR" + ], + "x-enumNames": [ + "AND", + "OR" + ] + }, + "conditions": { + "description": "{\"markdownDescription\":\"Array of conditions to check against the request headers. Conditions are applied with **operator**. If conditions are empty, the rule will be matched.\"}", + "type": "array", + "items": { + "description": "{\"markdownDescription\":\"Condition to check against the **headerName**.\",\"defaultSnippets\":[{\"label\":\"Examples: Check if header contains \\\"text/html\\\"\",\"markdownDescription\":\"Condition to check if **headerName** contains \\\"text/html\\\"\",\"body\":{\"headerName\":\"accept\",\"operator\":\"CONTAINS\",\"value\":\"text/html\",\"caseSensitive\":true}}]}", + "type": "object", + "properties": { + "headerName": { + "description": "{\"markdownDescription\":\"**Name** of the HTTP header to check. Must comply with RFC 7230.\"}", + "type": "string", + "pattern": "^[!#$%&'*+\\-.0-9A-Z^_`a-z|~]+$" + }, + "operator": { + "description": "{\"errorMessage\":\"Invalid operator. Please select a valid operator.\",\"markdownDescription\":\"Operator to use for comparing the `headerName` with `value`.\",\"markdownEnumDescriptions\":[\"Performs an exact, comparison between the header value and specified string. `string === value`\",\"Ensures the header value does not exactly match the specified string. `string !== value`\",\"Checks if the header value contains the specified string as a substring. `string.includes()`\",\"Verifies the header value does not contain the specified string as a substring. `!string.includes()`\",\"Validates that the header value begins with the specified string. `string.startsWith()`\",\"Validates that the header value does not begin with the specified string. `!string.startsWith()`\",\"Confirms the header value ends with the specified string. `string.endsWith()`\",\"Confirms the header value does not end with the specified string. `!string.endsWith()`\",\"Evaluates if the header value matches the specified regular expression pattern. `regex.test()`\",\"Evaluates if the header value does not match the specified regular expression pattern. `!regex.test()`\"]}", + "type": "string", + "enum": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS", + "STARTS_WITH", + "NOT_STARTS_WITH", + "ENDS_WITH", + "NOT_ENDS_WITH", + "REGEX", + "NOT_REGEX" + ], + "x-enumNames": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS", + "STARTS_WITH", + "NOT_STARTS_WITH", + "ENDS_WITH", + "NOT_ENDS_WITH", + "REGEX", + "NOT_REGEX" + ] + }, + "value": { + "description": "{\"markdownDescription\":\"**Value** to check against the **headerName**.\"}", + "type": "string", + "minLength": 1, + "maxLength": 255 + }, + "caseSensitive": { + "description": "{\"markdownDescription\":\"Whether the value is **case sensitive**. \\n\\n - `true`: the value will be compared as is. \\n\\n - `false`: the value will be lowercased **before** comparison.\"}", + "type": "boolean" + } + }, + "required": [ + "headerName", + "operator", + "value", + "caseSensitive" + ] + } + }, + "responseType": { + "description": "{\"errorMessage\":\"Invalid response type. Please select a valid response type.\",\"markdownDescription\":\"Type of the response. Determines the type of **response** to be returned when the rule is matched.\",\"markdownEnumDescriptions\":[\"Return **subscription** in XRAY-JSON format. (Using `Xray Json` template)\",\"Return **subscription** in BASE64 encoded string. Compatible with most client application with Xray core.\",\"Return **subscription** in Mihomo format. (Using `Mihomo` template)\",\"Return **subscription** in Stash format. (Using `Stash` template)\",\"Return **subscription** in Clash format. (Using `Clash` template) Useful for client application that use Legacy Clash core.\",\"Return **subscription** in Singbox format. (Using `Singbox` template) Format which is used by Singbox client application.\",\"Return **subscription** as browser format. The same as on `/info` route.\",\"**Drop** request and return `403` status code.\",\"**Drop** request and return `404` status code.\",\"**Drop** request and return `451` status code.\",\"**Drop** the socket connection.\"]}", + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX", + "BROWSER", + "BLOCK", + "STATUS_CODE_404", + "STATUS_CODE_451", + "SOCKET_DROP" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX", + "BROWSER", + "BLOCK", + "STATUS_CODE_404", + "STATUS_CODE_451", + "SOCKET_DROP" + ] + }, + "responseModifications": { + "description": "{\"examples\":[{\"headers\":[{\"key\":\"X-Custom-Header\",\"value\":\"CustomValue\"}]}],\"markdownDescription\":\"Response modifications to be applied when the rule is matched. Optional.\"}", + "type": "object", + "properties": { + "headers": { + "description": "{\"defaultSnippets\":[{\"label\":\"Examples: Add custom header\",\"markdownDescription\":\"Add a custom header to the response\",\"body\":[{\"key\":\"X-Custom-Header\",\"value\":\"CustomValue\"}]}],\"markdownDescription\":\"Array of headers to be added when the rule is matched.\"}", + "type": "array", + "items": { + "description": "{\"markdownDescription\":\"**Key** and **value** of the response header will be added to the response.\"}", + "type": "object", + "properties": { + "key": { + "description": "{\"markdownDescription\":\"Key of the response header. Must comply with RFC 7230.\"}", + "type": "string", + "pattern": "^[!#$%&'*+\\-.0-9A-Z^_`a-z|~]+$" + }, + "value": { + "description": "{\"markdownDescription\":\"Value of the response header. \"}", + "type": "string", + "minLength": 1 + } + }, + "required": [ + "key", + "value" + ] + } + }, + "applyHeadersToEnd": { + "description": "{\"markdownDescription\":\"By default, headers are added when forming the response. In some cases, headers set in SRR may be overridden by headers from other parts of the system. If you set this flag to **true**, headers from SRR will be added at the very end, just before the response is sent. In this case, SRR headers may override headers from other sections.\"}", + "type": "boolean" + }, + "subscriptionTemplate": { + "description": "{\"markdownDescription\":\"Override the subscription template with the given name. If not provided, the default subscription template will be used. If the template name is not found, the default subscription template for this type will be used. **This modification have higher priority than settings from External Squads.**\"}", + "type": "string", + "minLength": 1 + }, + "ignoreHostXrayJsonTemplate": { + "description": "{\"markdownDescription\":\"Each Host may have its own Xray Json Template. If you set this flag to **true**, the Xray Json Template defined by the SRR will be used. **The Host's Xray Json Template will be ignored.**\"}", + "type": "boolean" + }, + "ignoreServeJsonAtBaseSubscription": { + "description": "{\"markdownDescription\":\"If you set this flag to **true**, the **Serve JSON at Base Subscription** setting will be ignored (set to **false**).\"}", + "type": "boolean" + }, + "additionalExtendedClientsRegex": { + "description": "{\"markdownDescription\":\"Additional regex patterns to match extended clients. Matched clients will receive `serverDescription` in the subscription response.\\n\\n**Default Mihomo extended clients:**\\n- `^FlClash ?X/`\\n- `^Flowvy/`\\n- `^prizrak-box/`\\n- `^koala-clash/`\\n\\n**Default Xray extended clients:**\\n- `^Happ/`\\n- `^INCY/`\\n\\n**Example:** `[\\\"^MyClient/\\\", \\\"^CustomApp\\\\\\\\/v2\\\"]`\"}", + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + } + } + } + }, + "required": [ + "name", + "enabled", + "operator", + "conditions", + "responseType" + ] + } + } + }, + "required": [ + "version", + "rules" + ] + } + }, + "required": [ + "responseRules" + ] + }, + "DebugSrrMatcherResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "matched": { + "type": "boolean" + }, + "responseType": { + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX", + "BROWSER", + "BLOCK", + "STATUS_CODE_404", + "STATUS_CODE_451", + "SOCKET_DROP" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX", + "BROWSER", + "BLOCK", + "STATUS_CODE_404", + "STATUS_CODE_451", + "SOCKET_DROP" + ] + }, + "matchedRule": { + "description": "{\"defaultSnippets\":[{\"label\":\"Examples: Blank rule\",\"markdownDescription\":\"Simple blank rule with no conditions or modifications.\\n```json\\n{\\n \\\"name\\\": \\\"Blank rule\\\",\\n \\\"description\\\": \\\"Blank rule\\\",\\n \\\"operator\\\": \\\"AND\\\",\\n \\\"enabled\\\": true,\\n \\\"conditions\\\": [],\\n \\\"responseType\\\": \\\"BLOCK\\\",\\n \\\"responseModifications\\\": {\\n \\\"headers\\\": []\\n }\\n}\\n```\",\"body\":{\"name\":\"Blank rule\",\"description\":\"Blank rule\",\"operator\":\"AND\",\"enabled\":true,\"conditions\":[],\"responseType\":\"BLOCK\",\"responseModifications\":{\"headers\":[]}}},{\"label\":\"Examples: Block Legacy Clients\",\"markdownDescription\":\"Block requests from legacy clients\\n```json\\n{\\n \\\"name\\\": \\\"Block Legacy Clients\\\",\\n \\\"description\\\": \\\"Block requests from legacy clients\\\",\\n \\\"enabled\\\": true,\\n \\\"operator\\\": \\\"OR\\\",\\n \\\"conditions\\\": [\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"Hiddify\\\",\\n \\\"caseSensitive\\\": true\\n },\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"FoxRay\\\",\\n \\\"caseSensitive\\\": true\\n }\\n ],\\n \\\"responseType\\\": \\\"BLOCK\\\"\\n}\\n```\",\"body\":{\"name\":\"Block Legacy Clients\",\"description\":\"Block requests from legacy clients\",\"enabled\":true,\"operator\":\"OR\",\"conditions\":[{\"headerName\":\"user-agent\",\"operator\":\"CONTAINS\",\"value\":\"Hiddify\",\"caseSensitive\":true},{\"headerName\":\"user-agent\",\"operator\":\"CONTAINS\",\"value\":\"FoxRay\",\"caseSensitive\":true}],\"responseType\":\"BLOCK\"}}],\"title\":\"Response Rule\",\"markdownDescription\":\"Response rule configuration.\\n\\n**Fields:**\\n- **name**: Name of the response rule.\\n- **description**: Description of the response rule. Optional.\\n- **enabled**: Control whether the response rule is enabled or disabled. \\n\\n - `true` the rule will be applied. \\n\\n - `false` the rule will be always ignored.\\n- **operator**: Operator to use for combining conditions in the rule.\\n- **conditions**: Array of conditions to check against the request headers. Conditions are applied with **operator**. If conditions are empty, the rule will be matched.\\n- **responseType**: Type of the response. Determines the type of **response** to be returned when the rule is matched.\\n- **responseModifications**: Response modifications to be applied when the rule is matched. Optional.\\n\\n**Example:**\\n```json\\n{\\n \\\"name\\\": \\\"Block Legacy Clients\\\",\\n \\\"description\\\": \\\"Block requests from legacy clients\\\",\\n \\\"enabled\\\": true,\\n \\\"operator\\\": \\\"OR\\\",\\n \\\"conditions\\\": [\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"Hiddify\\\",\\n \\\"caseSensitive\\\": true\\n },\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"FoxRay\\\",\\n \\\"caseSensitive\\\": true\\n }\\n ],\\n \\\"responseType\\\": \\\"BLOCK\\\"\\n}\\n```\"}", + "type": "object", + "properties": { + "name": { + "description": "{\"markdownDescription\":\"Name of the response rule.\"}", + "type": "string", + "minLength": 1, + "maxLength": 50 + }, + "description": { + "description": "{\"markdownDescription\":\"Description of the response rule. Optional.\"}", + "type": "string", + "minLength": 1, + "maxLength": 250 + }, + "enabled": { + "description": "{\"markdownDescription\":\"Control whether the response rule is enabled or disabled. \\n\\n - `true` the rule will be applied. \\n\\n - `false` the rule will be always ignored.\"}", + "type": "boolean" + }, + "operator": { + "description": "{\"markdownDescription\":\"Operator to use for combining conditions in the rule.\"}", + "type": "string", + "enum": [ + "AND", + "OR" + ], + "x-enumNames": [ + "AND", + "OR" + ] + }, + "conditions": { + "description": "{\"markdownDescription\":\"Array of conditions to check against the request headers. Conditions are applied with **operator**. If conditions are empty, the rule will be matched.\"}", + "type": "array", + "items": { + "description": "{\"markdownDescription\":\"Condition to check against the **headerName**.\",\"defaultSnippets\":[{\"label\":\"Examples: Check if header contains \\\"text/html\\\"\",\"markdownDescription\":\"Condition to check if **headerName** contains \\\"text/html\\\"\",\"body\":{\"headerName\":\"accept\",\"operator\":\"CONTAINS\",\"value\":\"text/html\",\"caseSensitive\":true}}]}", + "type": "object", + "properties": { + "headerName": { + "description": "{\"markdownDescription\":\"**Name** of the HTTP header to check. Must comply with RFC 7230.\"}", + "type": "string", + "pattern": "^[!#$%&'*+\\-.0-9A-Z^_`a-z|~]+$" + }, + "operator": { + "description": "{\"errorMessage\":\"Invalid operator. Please select a valid operator.\",\"markdownDescription\":\"Operator to use for comparing the `headerName` with `value`.\",\"markdownEnumDescriptions\":[\"Performs an exact, comparison between the header value and specified string. `string === value`\",\"Ensures the header value does not exactly match the specified string. `string !== value`\",\"Checks if the header value contains the specified string as a substring. `string.includes()`\",\"Verifies the header value does not contain the specified string as a substring. `!string.includes()`\",\"Validates that the header value begins with the specified string. `string.startsWith()`\",\"Validates that the header value does not begin with the specified string. `!string.startsWith()`\",\"Confirms the header value ends with the specified string. `string.endsWith()`\",\"Confirms the header value does not end with the specified string. `!string.endsWith()`\",\"Evaluates if the header value matches the specified regular expression pattern. `regex.test()`\",\"Evaluates if the header value does not match the specified regular expression pattern. `!regex.test()`\"]}", + "type": "string", + "enum": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS", + "STARTS_WITH", + "NOT_STARTS_WITH", + "ENDS_WITH", + "NOT_ENDS_WITH", + "REGEX", + "NOT_REGEX" + ], + "x-enumNames": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS", + "STARTS_WITH", + "NOT_STARTS_WITH", + "ENDS_WITH", + "NOT_ENDS_WITH", + "REGEX", + "NOT_REGEX" + ] + }, + "value": { + "description": "{\"markdownDescription\":\"**Value** to check against the **headerName**.\"}", + "type": "string", + "minLength": 1, + "maxLength": 255 + }, + "caseSensitive": { + "description": "{\"markdownDescription\":\"Whether the value is **case sensitive**. \\n\\n - `true`: the value will be compared as is. \\n\\n - `false`: the value will be lowercased **before** comparison.\"}", + "type": "boolean" + } + }, + "required": [ + "headerName", + "operator", + "value", + "caseSensitive" + ] + } + }, + "responseType": { + "description": "{\"errorMessage\":\"Invalid response type. Please select a valid response type.\",\"markdownDescription\":\"Type of the response. Determines the type of **response** to be returned when the rule is matched.\",\"markdownEnumDescriptions\":[\"Return **subscription** in XRAY-JSON format. (Using `Xray Json` template)\",\"Return **subscription** in BASE64 encoded string. Compatible with most client application with Xray core.\",\"Return **subscription** in Mihomo format. (Using `Mihomo` template)\",\"Return **subscription** in Stash format. (Using `Stash` template)\",\"Return **subscription** in Clash format. (Using `Clash` template) Useful for client application that use Legacy Clash core.\",\"Return **subscription** in Singbox format. (Using `Singbox` template) Format which is used by Singbox client application.\",\"Return **subscription** as browser format. The same as on `/info` route.\",\"**Drop** request and return `403` status code.\",\"**Drop** request and return `404` status code.\",\"**Drop** request and return `451` status code.\",\"**Drop** the socket connection.\"]}", + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX", + "BROWSER", + "BLOCK", + "STATUS_CODE_404", + "STATUS_CODE_451", + "SOCKET_DROP" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX", + "BROWSER", + "BLOCK", + "STATUS_CODE_404", + "STATUS_CODE_451", + "SOCKET_DROP" + ] + }, + "responseModifications": { + "description": "{\"examples\":[{\"headers\":[{\"key\":\"X-Custom-Header\",\"value\":\"CustomValue\"}]}],\"markdownDescription\":\"Response modifications to be applied when the rule is matched. Optional.\"}", + "type": "object", + "properties": { + "headers": { + "description": "{\"defaultSnippets\":[{\"label\":\"Examples: Add custom header\",\"markdownDescription\":\"Add a custom header to the response\",\"body\":[{\"key\":\"X-Custom-Header\",\"value\":\"CustomValue\"}]}],\"markdownDescription\":\"Array of headers to be added when the rule is matched.\"}", + "type": "array", + "items": { + "description": "{\"markdownDescription\":\"**Key** and **value** of the response header will be added to the response.\"}", + "type": "object", + "properties": { + "key": { + "description": "{\"markdownDescription\":\"Key of the response header. Must comply with RFC 7230.\"}", + "type": "string", + "pattern": "^[!#$%&'*+\\-.0-9A-Z^_`a-z|~]+$" + }, + "value": { + "description": "{\"markdownDescription\":\"Value of the response header. \"}", + "type": "string", + "minLength": 1 + } + }, + "required": [ + "key", + "value" + ] + } + }, + "applyHeadersToEnd": { + "description": "{\"markdownDescription\":\"By default, headers are added when forming the response. In some cases, headers set in SRR may be overridden by headers from other parts of the system. If you set this flag to **true**, headers from SRR will be added at the very end, just before the response is sent. In this case, SRR headers may override headers from other sections.\"}", + "type": "boolean" + }, + "subscriptionTemplate": { + "description": "{\"markdownDescription\":\"Override the subscription template with the given name. If not provided, the default subscription template will be used. If the template name is not found, the default subscription template for this type will be used. **This modification have higher priority than settings from External Squads.**\"}", + "type": "string", + "minLength": 1 + }, + "ignoreHostXrayJsonTemplate": { + "description": "{\"markdownDescription\":\"Each Host may have its own Xray Json Template. If you set this flag to **true**, the Xray Json Template defined by the SRR will be used. **The Host's Xray Json Template will be ignored.**\"}", + "type": "boolean" + }, + "ignoreServeJsonAtBaseSubscription": { + "description": "{\"markdownDescription\":\"If you set this flag to **true**, the **Serve JSON at Base Subscription** setting will be ignored (set to **false**).\"}", + "type": "boolean" + }, + "additionalExtendedClientsRegex": { + "description": "{\"markdownDescription\":\"Additional regex patterns to match extended clients. Matched clients will receive `serverDescription` in the subscription response.\\n\\n**Default Mihomo extended clients:**\\n- `^FlClash ?X/`\\n- `^Flowvy/`\\n- `^prizrak-box/`\\n- `^koala-clash/`\\n\\n**Default Xray extended clients:**\\n- `^Happ/`\\n- `^INCY/`\\n\\n**Example:** `[\\\"^MyClient/\\\", \\\"^CustomApp\\\\\\\\/v2\\\"]`\"}", + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + } + } + } + }, + "required": [ + "name", + "enabled", + "operator", + "conditions", + "responseType" + ], + "nullable": true + }, + "inputHeaders": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "outputHeaders": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "matched", + "responseType", + "matchedRule", + "inputHeaders", + "outputHeaders" + ] + } + }, + "required": [ + "response" + ] + }, + "GetRecapResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "thisMonth": { + "type": "object", + "properties": { + "users": { + "type": "number" + }, + "traffic": { + "type": "string" + } + }, + "required": [ + "users", + "traffic" + ] + }, + "total": { + "type": "object", + "properties": { + "users": { + "type": "number" + }, + "nodes": { + "type": "number" + }, + "traffic": { + "type": "string" + }, + "nodesRam": { + "type": "string" + }, + "nodesCpuCores": { + "type": "number" + }, + "distinctCountries": { + "type": "number" + } + }, + "required": [ + "users", + "nodes", + "traffic", + "nodesRam", + "nodesCpuCores", + "distinctCountries" + ] + }, + "version": { + "type": "string" + }, + "initDate": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "thisMonth", + "total", + "version", + "initDate" + ] + } + }, + "required": [ + "response" + ] + }, + "GetSubscriptionSettingsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "profileTitle": { + "type": "string" + }, + "supportLink": { + "type": "string" + }, + "profileUpdateInterval": { + "type": "integer", + "minimum": 1, + "exclusiveMinimum": false + }, + "isProfileWebpageUrlEnabled": { + "type": "boolean" + }, + "serveJsonAtBaseSubscription": { + "type": "boolean" + }, + "isShowCustomRemarks": { + "type": "boolean" + }, + "customRemarks": { + "type": "object", + "properties": { + "expiredUsers": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "limitedUsers": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "disabledUsers": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "emptyHosts": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "HWIDMaxDevicesExceeded": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "HWIDNotSupported": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + } + }, + "required": [ + "expiredUsers", + "limitedUsers", + "disabledUsers", + "emptyHosts", + "HWIDMaxDevicesExceeded", + "HWIDNotSupported" + ] + }, + "happAnnounce": { + "type": "string", + "nullable": true + }, + "happRouting": { + "type": "string", + "nullable": true + }, + "customResponseHeaders": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + }, + "randomizeHosts": { + "type": "boolean" + }, + "responseRules": { + "type": "object", + "properties": { + "version": { + "description": "{\"title\":\"Response Rules Config Version\",\"markdownDescription\":\"Version of the **response rules** config. Currently supported version is **1**.\"}", + "type": "string", + "enum": [ + "1" + ], + "x-enumNames": [ + "1" + ] + }, + "settings": { + "description": "{\"markdownDescription\":\"Settings for the **response rules** config. Optional.\"}", + "type": "object", + "properties": { + "disableSubscriptionAccessByPath": { + "description": "{\"markdownDescription\":\"Usually, a user's subscription may also be available via additional paths such as **/json**, **/stash**, or **/mihomo**. If this flag is set to **true**, access via these additional paths will be disabled.\"}", + "type": "boolean" + } + } + }, + "rules": { + "description": "{\"title\":\"Response Rules\",\"markdownDescription\":\"Array of **response rules**. Rules are evaluated in order and the first rule that matches is applied. If no rule matches, request will be blocked by default.\\n\\n**Example:**\\n```json\\n[\\n {\\n \\\"name\\\": \\\"Blank rule\\\",\\n \\\"description\\\": \\\"Blank rule\\\",\\n \\\"operator\\\": \\\"AND\\\",\\n \\\"enabled\\\": true,\\n \\\"conditions\\\": [],\\n \\\"responseType\\\": \\\"BLOCK\\\",\\n \\\"responseModifications\\\": {\\n \\\"headers\\\": []\\n }\\n }\\n]\\n```\",\"defaultSnippets\":[]}", + "type": "array", + "items": { + "description": "{\"defaultSnippets\":[{\"label\":\"Examples: Blank rule\",\"markdownDescription\":\"Simple blank rule with no conditions or modifications.\\n```json\\n{\\n \\\"name\\\": \\\"Blank rule\\\",\\n \\\"description\\\": \\\"Blank rule\\\",\\n \\\"operator\\\": \\\"AND\\\",\\n \\\"enabled\\\": true,\\n \\\"conditions\\\": [],\\n \\\"responseType\\\": \\\"BLOCK\\\",\\n \\\"responseModifications\\\": {\\n \\\"headers\\\": []\\n }\\n}\\n```\",\"body\":{\"name\":\"Blank rule\",\"description\":\"Blank rule\",\"operator\":\"AND\",\"enabled\":true,\"conditions\":[],\"responseType\":\"BLOCK\",\"responseModifications\":{\"headers\":[]}}},{\"label\":\"Examples: Block Legacy Clients\",\"markdownDescription\":\"Block requests from legacy clients\\n```json\\n{\\n \\\"name\\\": \\\"Block Legacy Clients\\\",\\n \\\"description\\\": \\\"Block requests from legacy clients\\\",\\n \\\"enabled\\\": true,\\n \\\"operator\\\": \\\"OR\\\",\\n \\\"conditions\\\": [\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"Hiddify\\\",\\n \\\"caseSensitive\\\": true\\n },\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"FoxRay\\\",\\n \\\"caseSensitive\\\": true\\n }\\n ],\\n \\\"responseType\\\": \\\"BLOCK\\\"\\n}\\n```\",\"body\":{\"name\":\"Block Legacy Clients\",\"description\":\"Block requests from legacy clients\",\"enabled\":true,\"operator\":\"OR\",\"conditions\":[{\"headerName\":\"user-agent\",\"operator\":\"CONTAINS\",\"value\":\"Hiddify\",\"caseSensitive\":true},{\"headerName\":\"user-agent\",\"operator\":\"CONTAINS\",\"value\":\"FoxRay\",\"caseSensitive\":true}],\"responseType\":\"BLOCK\"}}],\"title\":\"Response Rule\",\"markdownDescription\":\"Response rule configuration.\\n\\n**Fields:**\\n- **name**: Name of the response rule.\\n- **description**: Description of the response rule. Optional.\\n- **enabled**: Control whether the response rule is enabled or disabled. \\n\\n - `true` the rule will be applied. \\n\\n - `false` the rule will be always ignored.\\n- **operator**: Operator to use for combining conditions in the rule.\\n- **conditions**: Array of conditions to check against the request headers. Conditions are applied with **operator**. If conditions are empty, the rule will be matched.\\n- **responseType**: Type of the response. Determines the type of **response** to be returned when the rule is matched.\\n- **responseModifications**: Response modifications to be applied when the rule is matched. Optional.\\n\\n**Example:**\\n```json\\n{\\n \\\"name\\\": \\\"Block Legacy Clients\\\",\\n \\\"description\\\": \\\"Block requests from legacy clients\\\",\\n \\\"enabled\\\": true,\\n \\\"operator\\\": \\\"OR\\\",\\n \\\"conditions\\\": [\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"Hiddify\\\",\\n \\\"caseSensitive\\\": true\\n },\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"FoxRay\\\",\\n \\\"caseSensitive\\\": true\\n }\\n ],\\n \\\"responseType\\\": \\\"BLOCK\\\"\\n}\\n```\"}", + "type": "object", + "properties": { + "name": { + "description": "{\"markdownDescription\":\"Name of the response rule.\"}", + "type": "string", + "minLength": 1, + "maxLength": 50 + }, + "description": { + "description": "{\"markdownDescription\":\"Description of the response rule. Optional.\"}", + "type": "string", + "minLength": 1, + "maxLength": 250 + }, + "enabled": { + "description": "{\"markdownDescription\":\"Control whether the response rule is enabled or disabled. \\n\\n - `true` the rule will be applied. \\n\\n - `false` the rule will be always ignored.\"}", + "type": "boolean" + }, + "operator": { + "description": "{\"markdownDescription\":\"Operator to use for combining conditions in the rule.\"}", + "type": "string", + "enum": [ + "AND", + "OR" + ], + "x-enumNames": [ + "AND", + "OR" + ] + }, + "conditions": { + "description": "{\"markdownDescription\":\"Array of conditions to check against the request headers. Conditions are applied with **operator**. If conditions are empty, the rule will be matched.\"}", + "type": "array", + "items": { + "description": "{\"markdownDescription\":\"Condition to check against the **headerName**.\",\"defaultSnippets\":[{\"label\":\"Examples: Check if header contains \\\"text/html\\\"\",\"markdownDescription\":\"Condition to check if **headerName** contains \\\"text/html\\\"\",\"body\":{\"headerName\":\"accept\",\"operator\":\"CONTAINS\",\"value\":\"text/html\",\"caseSensitive\":true}}]}", + "type": "object", + "properties": { + "headerName": { + "description": "{\"markdownDescription\":\"**Name** of the HTTP header to check. Must comply with RFC 7230.\"}", + "type": "string", + "pattern": "^[!#$%&'*+\\-.0-9A-Z^_`a-z|~]+$" + }, + "operator": { + "description": "{\"errorMessage\":\"Invalid operator. Please select a valid operator.\",\"markdownDescription\":\"Operator to use for comparing the `headerName` with `value`.\",\"markdownEnumDescriptions\":[\"Performs an exact, comparison between the header value and specified string. `string === value`\",\"Ensures the header value does not exactly match the specified string. `string !== value`\",\"Checks if the header value contains the specified string as a substring. `string.includes()`\",\"Verifies the header value does not contain the specified string as a substring. `!string.includes()`\",\"Validates that the header value begins with the specified string. `string.startsWith()`\",\"Validates that the header value does not begin with the specified string. `!string.startsWith()`\",\"Confirms the header value ends with the specified string. `string.endsWith()`\",\"Confirms the header value does not end with the specified string. `!string.endsWith()`\",\"Evaluates if the header value matches the specified regular expression pattern. `regex.test()`\",\"Evaluates if the header value does not match the specified regular expression pattern. `!regex.test()`\"]}", + "type": "string", + "enum": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS", + "STARTS_WITH", + "NOT_STARTS_WITH", + "ENDS_WITH", + "NOT_ENDS_WITH", + "REGEX", + "NOT_REGEX" + ], + "x-enumNames": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS", + "STARTS_WITH", + "NOT_STARTS_WITH", + "ENDS_WITH", + "NOT_ENDS_WITH", + "REGEX", + "NOT_REGEX" + ] + }, + "value": { + "description": "{\"markdownDescription\":\"**Value** to check against the **headerName**.\"}", + "type": "string", + "minLength": 1, + "maxLength": 255 + }, + "caseSensitive": { + "description": "{\"markdownDescription\":\"Whether the value is **case sensitive**. \\n\\n - `true`: the value will be compared as is. \\n\\n - `false`: the value will be lowercased **before** comparison.\"}", + "type": "boolean" + } + }, + "required": [ + "headerName", + "operator", + "value", + "caseSensitive" + ] + } + }, + "responseType": { + "description": "{\"errorMessage\":\"Invalid response type. Please select a valid response type.\",\"markdownDescription\":\"Type of the response. Determines the type of **response** to be returned when the rule is matched.\",\"markdownEnumDescriptions\":[\"Return **subscription** in XRAY-JSON format. (Using `Xray Json` template)\",\"Return **subscription** in BASE64 encoded string. Compatible with most client application with Xray core.\",\"Return **subscription** in Mihomo format. (Using `Mihomo` template)\",\"Return **subscription** in Stash format. (Using `Stash` template)\",\"Return **subscription** in Clash format. (Using `Clash` template) Useful for client application that use Legacy Clash core.\",\"Return **subscription** in Singbox format. (Using `Singbox` template) Format which is used by Singbox client application.\",\"Return **subscription** as browser format. The same as on `/info` route.\",\"**Drop** request and return `403` status code.\",\"**Drop** request and return `404` status code.\",\"**Drop** request and return `451` status code.\",\"**Drop** the socket connection.\"]}", + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX", + "BROWSER", + "BLOCK", + "STATUS_CODE_404", + "STATUS_CODE_451", + "SOCKET_DROP" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX", + "BROWSER", + "BLOCK", + "STATUS_CODE_404", + "STATUS_CODE_451", + "SOCKET_DROP" + ] + }, + "responseModifications": { + "description": "{\"examples\":[{\"headers\":[{\"key\":\"X-Custom-Header\",\"value\":\"CustomValue\"}]}],\"markdownDescription\":\"Response modifications to be applied when the rule is matched. Optional.\"}", + "type": "object", + "properties": { + "headers": { + "description": "{\"defaultSnippets\":[{\"label\":\"Examples: Add custom header\",\"markdownDescription\":\"Add a custom header to the response\",\"body\":[{\"key\":\"X-Custom-Header\",\"value\":\"CustomValue\"}]}],\"markdownDescription\":\"Array of headers to be added when the rule is matched.\"}", + "type": "array", + "items": { + "description": "{\"markdownDescription\":\"**Key** and **value** of the response header will be added to the response.\"}", + "type": "object", + "properties": { + "key": { + "description": "{\"markdownDescription\":\"Key of the response header. Must comply with RFC 7230.\"}", + "type": "string", + "pattern": "^[!#$%&'*+\\-.0-9A-Z^_`a-z|~]+$" + }, + "value": { + "description": "{\"markdownDescription\":\"Value of the response header. \"}", + "type": "string", + "minLength": 1 + } + }, + "required": [ + "key", + "value" + ] + } + }, + "applyHeadersToEnd": { + "description": "{\"markdownDescription\":\"By default, headers are added when forming the response. In some cases, headers set in SRR may be overridden by headers from other parts of the system. If you set this flag to **true**, headers from SRR will be added at the very end, just before the response is sent. In this case, SRR headers may override headers from other sections.\"}", + "type": "boolean" + }, + "subscriptionTemplate": { + "description": "{\"markdownDescription\":\"Override the subscription template with the given name. If not provided, the default subscription template will be used. If the template name is not found, the default subscription template for this type will be used. **This modification have higher priority than settings from External Squads.**\"}", + "type": "string", + "minLength": 1 + }, + "ignoreHostXrayJsonTemplate": { + "description": "{\"markdownDescription\":\"Each Host may have its own Xray Json Template. If you set this flag to **true**, the Xray Json Template defined by the SRR will be used. **The Host's Xray Json Template will be ignored.**\"}", + "type": "boolean" + }, + "ignoreServeJsonAtBaseSubscription": { + "description": "{\"markdownDescription\":\"If you set this flag to **true**, the **Serve JSON at Base Subscription** setting will be ignored (set to **false**).\"}", + "type": "boolean" + }, + "additionalExtendedClientsRegex": { + "description": "{\"markdownDescription\":\"Additional regex patterns to match extended clients. Matched clients will receive `serverDescription` in the subscription response.\\n\\n**Default Mihomo extended clients:**\\n- `^FlClash ?X/`\\n- `^Flowvy/`\\n- `^prizrak-box/`\\n- `^koala-clash/`\\n\\n**Default Xray extended clients:**\\n- `^Happ/`\\n- `^INCY/`\\n\\n**Example:** `[\\\"^MyClient/\\\", \\\"^CustomApp\\\\\\\\/v2\\\"]`\"}", + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + } + } + } + }, + "required": [ + "name", + "enabled", + "operator", + "conditions", + "responseType" + ] + } + } + }, + "required": [ + "version", + "rules" + ], + "nullable": true + }, + "hwidSettings": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "fallbackDeviceLimit": { + "type": "number" + }, + "maxDevicesAnnounce": { + "type": "string", + "maxLength": 200, + "nullable": true + } + }, + "required": [ + "enabled", + "fallbackDeviceLimit", + "maxDevicesAnnounce" + ], + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "profileTitle", + "supportLink", + "profileUpdateInterval", + "isProfileWebpageUrlEnabled", + "serveJsonAtBaseSubscription", + "isShowCustomRemarks", + "customRemarks", + "happAnnounce", + "happRouting", + "customResponseHeaders", + "randomizeHosts", + "responseRules", + "hwidSettings", + "createdAt", + "updatedAt" + ] + } + }, + "required": [ + "response" + ] + }, + "UpdateSubscriptionSettingsRequestDto": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "profileTitle": { + "type": "string" + }, + "supportLink": { + "type": "string" + }, + "profileUpdateInterval": { + "type": "integer" + }, + "isProfileWebpageUrlEnabled": { + "type": "boolean" + }, + "serveJsonAtBaseSubscription": { + "type": "boolean" + }, + "happAnnounce": { + "type": "string", + "maxLength": 200, + "nullable": true + }, + "happRouting": { + "type": "string", + "nullable": true + }, + "isShowCustomRemarks": { + "type": "boolean" + }, + "customRemarks": { + "type": "object", + "properties": { + "expiredUsers": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "limitedUsers": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "disabledUsers": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "emptyHosts": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "HWIDMaxDevicesExceeded": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "HWIDNotSupported": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + } + }, + "required": [ + "expiredUsers", + "limitedUsers", + "disabledUsers", + "emptyHosts", + "HWIDMaxDevicesExceeded", + "HWIDNotSupported" + ] + }, + "customResponseHeaders": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "randomizeHosts": { + "type": "boolean" + }, + "responseRules": { + "type": "object", + "properties": { + "version": { + "description": "{\"title\":\"Response Rules Config Version\",\"markdownDescription\":\"Version of the **response rules** config. Currently supported version is **1**.\"}", + "type": "string", + "enum": [ + "1" + ], + "x-enumNames": [ + "1" + ] + }, + "settings": { + "description": "{\"markdownDescription\":\"Settings for the **response rules** config. Optional.\"}", + "type": "object", + "properties": { + "disableSubscriptionAccessByPath": { + "description": "{\"markdownDescription\":\"Usually, a user's subscription may also be available via additional paths such as **/json**, **/stash**, or **/mihomo**. If this flag is set to **true**, access via these additional paths will be disabled.\"}", + "type": "boolean" + } + } + }, + "rules": { + "description": "{\"title\":\"Response Rules\",\"markdownDescription\":\"Array of **response rules**. Rules are evaluated in order and the first rule that matches is applied. If no rule matches, request will be blocked by default.\\n\\n**Example:**\\n```json\\n[\\n {\\n \\\"name\\\": \\\"Blank rule\\\",\\n \\\"description\\\": \\\"Blank rule\\\",\\n \\\"operator\\\": \\\"AND\\\",\\n \\\"enabled\\\": true,\\n \\\"conditions\\\": [],\\n \\\"responseType\\\": \\\"BLOCK\\\",\\n \\\"responseModifications\\\": {\\n \\\"headers\\\": []\\n }\\n }\\n]\\n```\",\"defaultSnippets\":[]}", + "type": "array", + "items": { + "description": "{\"defaultSnippets\":[{\"label\":\"Examples: Blank rule\",\"markdownDescription\":\"Simple blank rule with no conditions or modifications.\\n```json\\n{\\n \\\"name\\\": \\\"Blank rule\\\",\\n \\\"description\\\": \\\"Blank rule\\\",\\n \\\"operator\\\": \\\"AND\\\",\\n \\\"enabled\\\": true,\\n \\\"conditions\\\": [],\\n \\\"responseType\\\": \\\"BLOCK\\\",\\n \\\"responseModifications\\\": {\\n \\\"headers\\\": []\\n }\\n}\\n```\",\"body\":{\"name\":\"Blank rule\",\"description\":\"Blank rule\",\"operator\":\"AND\",\"enabled\":true,\"conditions\":[],\"responseType\":\"BLOCK\",\"responseModifications\":{\"headers\":[]}}},{\"label\":\"Examples: Block Legacy Clients\",\"markdownDescription\":\"Block requests from legacy clients\\n```json\\n{\\n \\\"name\\\": \\\"Block Legacy Clients\\\",\\n \\\"description\\\": \\\"Block requests from legacy clients\\\",\\n \\\"enabled\\\": true,\\n \\\"operator\\\": \\\"OR\\\",\\n \\\"conditions\\\": [\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"Hiddify\\\",\\n \\\"caseSensitive\\\": true\\n },\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"FoxRay\\\",\\n \\\"caseSensitive\\\": true\\n }\\n ],\\n \\\"responseType\\\": \\\"BLOCK\\\"\\n}\\n```\",\"body\":{\"name\":\"Block Legacy Clients\",\"description\":\"Block requests from legacy clients\",\"enabled\":true,\"operator\":\"OR\",\"conditions\":[{\"headerName\":\"user-agent\",\"operator\":\"CONTAINS\",\"value\":\"Hiddify\",\"caseSensitive\":true},{\"headerName\":\"user-agent\",\"operator\":\"CONTAINS\",\"value\":\"FoxRay\",\"caseSensitive\":true}],\"responseType\":\"BLOCK\"}}],\"title\":\"Response Rule\",\"markdownDescription\":\"Response rule configuration.\\n\\n**Fields:**\\n- **name**: Name of the response rule.\\n- **description**: Description of the response rule. Optional.\\n- **enabled**: Control whether the response rule is enabled or disabled. \\n\\n - `true` the rule will be applied. \\n\\n - `false` the rule will be always ignored.\\n- **operator**: Operator to use for combining conditions in the rule.\\n- **conditions**: Array of conditions to check against the request headers. Conditions are applied with **operator**. If conditions are empty, the rule will be matched.\\n- **responseType**: Type of the response. Determines the type of **response** to be returned when the rule is matched.\\n- **responseModifications**: Response modifications to be applied when the rule is matched. Optional.\\n\\n**Example:**\\n```json\\n{\\n \\\"name\\\": \\\"Block Legacy Clients\\\",\\n \\\"description\\\": \\\"Block requests from legacy clients\\\",\\n \\\"enabled\\\": true,\\n \\\"operator\\\": \\\"OR\\\",\\n \\\"conditions\\\": [\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"Hiddify\\\",\\n \\\"caseSensitive\\\": true\\n },\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"FoxRay\\\",\\n \\\"caseSensitive\\\": true\\n }\\n ],\\n \\\"responseType\\\": \\\"BLOCK\\\"\\n}\\n```\"}", + "type": "object", + "properties": { + "name": { + "description": "{\"markdownDescription\":\"Name of the response rule.\"}", + "type": "string", + "minLength": 1, + "maxLength": 50 + }, + "description": { + "description": "{\"markdownDescription\":\"Description of the response rule. Optional.\"}", + "type": "string", + "minLength": 1, + "maxLength": 250 + }, + "enabled": { + "description": "{\"markdownDescription\":\"Control whether the response rule is enabled or disabled. \\n\\n - `true` the rule will be applied. \\n\\n - `false` the rule will be always ignored.\"}", + "type": "boolean" + }, + "operator": { + "description": "{\"markdownDescription\":\"Operator to use for combining conditions in the rule.\"}", + "type": "string", + "enum": [ + "AND", + "OR" + ], + "x-enumNames": [ + "AND", + "OR" + ] + }, + "conditions": { + "description": "{\"markdownDescription\":\"Array of conditions to check against the request headers. Conditions are applied with **operator**. If conditions are empty, the rule will be matched.\"}", + "type": "array", + "items": { + "description": "{\"markdownDescription\":\"Condition to check against the **headerName**.\",\"defaultSnippets\":[{\"label\":\"Examples: Check if header contains \\\"text/html\\\"\",\"markdownDescription\":\"Condition to check if **headerName** contains \\\"text/html\\\"\",\"body\":{\"headerName\":\"accept\",\"operator\":\"CONTAINS\",\"value\":\"text/html\",\"caseSensitive\":true}}]}", + "type": "object", + "properties": { + "headerName": { + "description": "{\"markdownDescription\":\"**Name** of the HTTP header to check. Must comply with RFC 7230.\"}", + "type": "string", + "pattern": "^[!#$%&'*+\\-.0-9A-Z^_`a-z|~]+$" + }, + "operator": { + "description": "{\"errorMessage\":\"Invalid operator. Please select a valid operator.\",\"markdownDescription\":\"Operator to use for comparing the `headerName` with `value`.\",\"markdownEnumDescriptions\":[\"Performs an exact, comparison between the header value and specified string. `string === value`\",\"Ensures the header value does not exactly match the specified string. `string !== value`\",\"Checks if the header value contains the specified string as a substring. `string.includes()`\",\"Verifies the header value does not contain the specified string as a substring. `!string.includes()`\",\"Validates that the header value begins with the specified string. `string.startsWith()`\",\"Validates that the header value does not begin with the specified string. `!string.startsWith()`\",\"Confirms the header value ends with the specified string. `string.endsWith()`\",\"Confirms the header value does not end with the specified string. `!string.endsWith()`\",\"Evaluates if the header value matches the specified regular expression pattern. `regex.test()`\",\"Evaluates if the header value does not match the specified regular expression pattern. `!regex.test()`\"]}", + "type": "string", + "enum": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS", + "STARTS_WITH", + "NOT_STARTS_WITH", + "ENDS_WITH", + "NOT_ENDS_WITH", + "REGEX", + "NOT_REGEX" + ], + "x-enumNames": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS", + "STARTS_WITH", + "NOT_STARTS_WITH", + "ENDS_WITH", + "NOT_ENDS_WITH", + "REGEX", + "NOT_REGEX" + ] + }, + "value": { + "description": "{\"markdownDescription\":\"**Value** to check against the **headerName**.\"}", + "type": "string", + "minLength": 1, + "maxLength": 255 + }, + "caseSensitive": { + "description": "{\"markdownDescription\":\"Whether the value is **case sensitive**. \\n\\n - `true`: the value will be compared as is. \\n\\n - `false`: the value will be lowercased **before** comparison.\"}", + "type": "boolean" + } + }, + "required": [ + "headerName", + "operator", + "value", + "caseSensitive" + ] + } + }, + "responseType": { + "description": "{\"errorMessage\":\"Invalid response type. Please select a valid response type.\",\"markdownDescription\":\"Type of the response. Determines the type of **response** to be returned when the rule is matched.\",\"markdownEnumDescriptions\":[\"Return **subscription** in XRAY-JSON format. (Using `Xray Json` template)\",\"Return **subscription** in BASE64 encoded string. Compatible with most client application with Xray core.\",\"Return **subscription** in Mihomo format. (Using `Mihomo` template)\",\"Return **subscription** in Stash format. (Using `Stash` template)\",\"Return **subscription** in Clash format. (Using `Clash` template) Useful for client application that use Legacy Clash core.\",\"Return **subscription** in Singbox format. (Using `Singbox` template) Format which is used by Singbox client application.\",\"Return **subscription** as browser format. The same as on `/info` route.\",\"**Drop** request and return `403` status code.\",\"**Drop** request and return `404` status code.\",\"**Drop** request and return `451` status code.\",\"**Drop** the socket connection.\"]}", + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX", + "BROWSER", + "BLOCK", + "STATUS_CODE_404", + "STATUS_CODE_451", + "SOCKET_DROP" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX", + "BROWSER", + "BLOCK", + "STATUS_CODE_404", + "STATUS_CODE_451", + "SOCKET_DROP" + ] + }, + "responseModifications": { + "description": "{\"examples\":[{\"headers\":[{\"key\":\"X-Custom-Header\",\"value\":\"CustomValue\"}]}],\"markdownDescription\":\"Response modifications to be applied when the rule is matched. Optional.\"}", + "type": "object", + "properties": { + "headers": { + "description": "{\"defaultSnippets\":[{\"label\":\"Examples: Add custom header\",\"markdownDescription\":\"Add a custom header to the response\",\"body\":[{\"key\":\"X-Custom-Header\",\"value\":\"CustomValue\"}]}],\"markdownDescription\":\"Array of headers to be added when the rule is matched.\"}", + "type": "array", + "items": { + "description": "{\"markdownDescription\":\"**Key** and **value** of the response header will be added to the response.\"}", + "type": "object", + "properties": { + "key": { + "description": "{\"markdownDescription\":\"Key of the response header. Must comply with RFC 7230.\"}", + "type": "string", + "pattern": "^[!#$%&'*+\\-.0-9A-Z^_`a-z|~]+$" + }, + "value": { + "description": "{\"markdownDescription\":\"Value of the response header. \"}", + "type": "string", + "minLength": 1 + } + }, + "required": [ + "key", + "value" + ] + } + }, + "applyHeadersToEnd": { + "description": "{\"markdownDescription\":\"By default, headers are added when forming the response. In some cases, headers set in SRR may be overridden by headers from other parts of the system. If you set this flag to **true**, headers from SRR will be added at the very end, just before the response is sent. In this case, SRR headers may override headers from other sections.\"}", + "type": "boolean" + }, + "subscriptionTemplate": { + "description": "{\"markdownDescription\":\"Override the subscription template with the given name. If not provided, the default subscription template will be used. If the template name is not found, the default subscription template for this type will be used. **This modification have higher priority than settings from External Squads.**\"}", + "type": "string", + "minLength": 1 + }, + "ignoreHostXrayJsonTemplate": { + "description": "{\"markdownDescription\":\"Each Host may have its own Xray Json Template. If you set this flag to **true**, the Xray Json Template defined by the SRR will be used. **The Host's Xray Json Template will be ignored.**\"}", + "type": "boolean" + }, + "ignoreServeJsonAtBaseSubscription": { + "description": "{\"markdownDescription\":\"If you set this flag to **true**, the **Serve JSON at Base Subscription** setting will be ignored (set to **false**).\"}", + "type": "boolean" + }, + "additionalExtendedClientsRegex": { + "description": "{\"markdownDescription\":\"Additional regex patterns to match extended clients. Matched clients will receive `serverDescription` in the subscription response.\\n\\n**Default Mihomo extended clients:**\\n- `^FlClash ?X/`\\n- `^Flowvy/`\\n- `^prizrak-box/`\\n- `^koala-clash/`\\n\\n**Default Xray extended clients:**\\n- `^Happ/`\\n- `^INCY/`\\n\\n**Example:** `[\\\"^MyClient/\\\", \\\"^CustomApp\\\\\\\\/v2\\\"]`\"}", + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + } + } + } + }, + "required": [ + "name", + "enabled", + "operator", + "conditions", + "responseType" + ] + } + } + }, + "required": [ + "version", + "rules" + ] + }, + "hwidSettings": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "fallbackDeviceLimit": { + "type": "number" + }, + "maxDevicesAnnounce": { + "type": "string", + "maxLength": 200, + "nullable": true + } + }, + "required": [ + "enabled", + "fallbackDeviceLimit", + "maxDevicesAnnounce" + ] + } + }, + "required": [ + "uuid" + ] + }, + "UpdateSubscriptionSettingsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "profileTitle": { + "type": "string" + }, + "supportLink": { + "type": "string" + }, + "profileUpdateInterval": { + "type": "integer", + "minimum": 1, + "exclusiveMinimum": false + }, + "isProfileWebpageUrlEnabled": { + "type": "boolean" + }, + "serveJsonAtBaseSubscription": { + "type": "boolean" + }, + "isShowCustomRemarks": { + "type": "boolean" + }, + "customRemarks": { + "type": "object", + "properties": { + "expiredUsers": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "limitedUsers": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "disabledUsers": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "emptyHosts": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "HWIDMaxDevicesExceeded": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "HWIDNotSupported": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + } + }, + "required": [ + "expiredUsers", + "limitedUsers", + "disabledUsers", + "emptyHosts", + "HWIDMaxDevicesExceeded", + "HWIDNotSupported" + ] + }, + "happAnnounce": { + "type": "string", + "nullable": true + }, + "happRouting": { + "type": "string", + "nullable": true + }, + "customResponseHeaders": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + }, + "randomizeHosts": { + "type": "boolean" + }, + "responseRules": { + "type": "object", + "properties": { + "version": { + "description": "{\"title\":\"Response Rules Config Version\",\"markdownDescription\":\"Version of the **response rules** config. Currently supported version is **1**.\"}", + "type": "string", + "enum": [ + "1" + ], + "x-enumNames": [ + "1" + ] + }, + "settings": { + "description": "{\"markdownDescription\":\"Settings for the **response rules** config. Optional.\"}", + "type": "object", + "properties": { + "disableSubscriptionAccessByPath": { + "description": "{\"markdownDescription\":\"Usually, a user's subscription may also be available via additional paths such as **/json**, **/stash**, or **/mihomo**. If this flag is set to **true**, access via these additional paths will be disabled.\"}", + "type": "boolean" + } + } + }, + "rules": { + "description": "{\"title\":\"Response Rules\",\"markdownDescription\":\"Array of **response rules**. Rules are evaluated in order and the first rule that matches is applied. If no rule matches, request will be blocked by default.\\n\\n**Example:**\\n```json\\n[\\n {\\n \\\"name\\\": \\\"Blank rule\\\",\\n \\\"description\\\": \\\"Blank rule\\\",\\n \\\"operator\\\": \\\"AND\\\",\\n \\\"enabled\\\": true,\\n \\\"conditions\\\": [],\\n \\\"responseType\\\": \\\"BLOCK\\\",\\n \\\"responseModifications\\\": {\\n \\\"headers\\\": []\\n }\\n }\\n]\\n```\",\"defaultSnippets\":[]}", + "type": "array", + "items": { + "description": "{\"defaultSnippets\":[{\"label\":\"Examples: Blank rule\",\"markdownDescription\":\"Simple blank rule with no conditions or modifications.\\n```json\\n{\\n \\\"name\\\": \\\"Blank rule\\\",\\n \\\"description\\\": \\\"Blank rule\\\",\\n \\\"operator\\\": \\\"AND\\\",\\n \\\"enabled\\\": true,\\n \\\"conditions\\\": [],\\n \\\"responseType\\\": \\\"BLOCK\\\",\\n \\\"responseModifications\\\": {\\n \\\"headers\\\": []\\n }\\n}\\n```\",\"body\":{\"name\":\"Blank rule\",\"description\":\"Blank rule\",\"operator\":\"AND\",\"enabled\":true,\"conditions\":[],\"responseType\":\"BLOCK\",\"responseModifications\":{\"headers\":[]}}},{\"label\":\"Examples: Block Legacy Clients\",\"markdownDescription\":\"Block requests from legacy clients\\n```json\\n{\\n \\\"name\\\": \\\"Block Legacy Clients\\\",\\n \\\"description\\\": \\\"Block requests from legacy clients\\\",\\n \\\"enabled\\\": true,\\n \\\"operator\\\": \\\"OR\\\",\\n \\\"conditions\\\": [\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"Hiddify\\\",\\n \\\"caseSensitive\\\": true\\n },\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"FoxRay\\\",\\n \\\"caseSensitive\\\": true\\n }\\n ],\\n \\\"responseType\\\": \\\"BLOCK\\\"\\n}\\n```\",\"body\":{\"name\":\"Block Legacy Clients\",\"description\":\"Block requests from legacy clients\",\"enabled\":true,\"operator\":\"OR\",\"conditions\":[{\"headerName\":\"user-agent\",\"operator\":\"CONTAINS\",\"value\":\"Hiddify\",\"caseSensitive\":true},{\"headerName\":\"user-agent\",\"operator\":\"CONTAINS\",\"value\":\"FoxRay\",\"caseSensitive\":true}],\"responseType\":\"BLOCK\"}}],\"title\":\"Response Rule\",\"markdownDescription\":\"Response rule configuration.\\n\\n**Fields:**\\n- **name**: Name of the response rule.\\n- **description**: Description of the response rule. Optional.\\n- **enabled**: Control whether the response rule is enabled or disabled. \\n\\n - `true` the rule will be applied. \\n\\n - `false` the rule will be always ignored.\\n- **operator**: Operator to use for combining conditions in the rule.\\n- **conditions**: Array of conditions to check against the request headers. Conditions are applied with **operator**. If conditions are empty, the rule will be matched.\\n- **responseType**: Type of the response. Determines the type of **response** to be returned when the rule is matched.\\n- **responseModifications**: Response modifications to be applied when the rule is matched. Optional.\\n\\n**Example:**\\n```json\\n{\\n \\\"name\\\": \\\"Block Legacy Clients\\\",\\n \\\"description\\\": \\\"Block requests from legacy clients\\\",\\n \\\"enabled\\\": true,\\n \\\"operator\\\": \\\"OR\\\",\\n \\\"conditions\\\": [\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"Hiddify\\\",\\n \\\"caseSensitive\\\": true\\n },\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"FoxRay\\\",\\n \\\"caseSensitive\\\": true\\n }\\n ],\\n \\\"responseType\\\": \\\"BLOCK\\\"\\n}\\n```\"}", + "type": "object", + "properties": { + "name": { + "description": "{\"markdownDescription\":\"Name of the response rule.\"}", + "type": "string", + "minLength": 1, + "maxLength": 50 + }, + "description": { + "description": "{\"markdownDescription\":\"Description of the response rule. Optional.\"}", + "type": "string", + "minLength": 1, + "maxLength": 250 + }, + "enabled": { + "description": "{\"markdownDescription\":\"Control whether the response rule is enabled or disabled. \\n\\n - `true` the rule will be applied. \\n\\n - `false` the rule will be always ignored.\"}", + "type": "boolean" + }, + "operator": { + "description": "{\"markdownDescription\":\"Operator to use for combining conditions in the rule.\"}", + "type": "string", + "enum": [ + "AND", + "OR" + ], + "x-enumNames": [ + "AND", + "OR" + ] + }, + "conditions": { + "description": "{\"markdownDescription\":\"Array of conditions to check against the request headers. Conditions are applied with **operator**. If conditions are empty, the rule will be matched.\"}", + "type": "array", + "items": { + "description": "{\"markdownDescription\":\"Condition to check against the **headerName**.\",\"defaultSnippets\":[{\"label\":\"Examples: Check if header contains \\\"text/html\\\"\",\"markdownDescription\":\"Condition to check if **headerName** contains \\\"text/html\\\"\",\"body\":{\"headerName\":\"accept\",\"operator\":\"CONTAINS\",\"value\":\"text/html\",\"caseSensitive\":true}}]}", + "type": "object", + "properties": { + "headerName": { + "description": "{\"markdownDescription\":\"**Name** of the HTTP header to check. Must comply with RFC 7230.\"}", + "type": "string", + "pattern": "^[!#$%&'*+\\-.0-9A-Z^_`a-z|~]+$" + }, + "operator": { + "description": "{\"errorMessage\":\"Invalid operator. Please select a valid operator.\",\"markdownDescription\":\"Operator to use for comparing the `headerName` with `value`.\",\"markdownEnumDescriptions\":[\"Performs an exact, comparison between the header value and specified string. `string === value`\",\"Ensures the header value does not exactly match the specified string. `string !== value`\",\"Checks if the header value contains the specified string as a substring. `string.includes()`\",\"Verifies the header value does not contain the specified string as a substring. `!string.includes()`\",\"Validates that the header value begins with the specified string. `string.startsWith()`\",\"Validates that the header value does not begin with the specified string. `!string.startsWith()`\",\"Confirms the header value ends with the specified string. `string.endsWith()`\",\"Confirms the header value does not end with the specified string. `!string.endsWith()`\",\"Evaluates if the header value matches the specified regular expression pattern. `regex.test()`\",\"Evaluates if the header value does not match the specified regular expression pattern. `!regex.test()`\"]}", + "type": "string", + "enum": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS", + "STARTS_WITH", + "NOT_STARTS_WITH", + "ENDS_WITH", + "NOT_ENDS_WITH", + "REGEX", + "NOT_REGEX" + ], + "x-enumNames": [ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS", + "STARTS_WITH", + "NOT_STARTS_WITH", + "ENDS_WITH", + "NOT_ENDS_WITH", + "REGEX", + "NOT_REGEX" + ] + }, + "value": { + "description": "{\"markdownDescription\":\"**Value** to check against the **headerName**.\"}", + "type": "string", + "minLength": 1, + "maxLength": 255 + }, + "caseSensitive": { + "description": "{\"markdownDescription\":\"Whether the value is **case sensitive**. \\n\\n - `true`: the value will be compared as is. \\n\\n - `false`: the value will be lowercased **before** comparison.\"}", + "type": "boolean" + } + }, + "required": [ + "headerName", + "operator", + "value", + "caseSensitive" + ] + } + }, + "responseType": { + "description": "{\"errorMessage\":\"Invalid response type. Please select a valid response type.\",\"markdownDescription\":\"Type of the response. Determines the type of **response** to be returned when the rule is matched.\",\"markdownEnumDescriptions\":[\"Return **subscription** in XRAY-JSON format. (Using `Xray Json` template)\",\"Return **subscription** in BASE64 encoded string. Compatible with most client application with Xray core.\",\"Return **subscription** in Mihomo format. (Using `Mihomo` template)\",\"Return **subscription** in Stash format. (Using `Stash` template)\",\"Return **subscription** in Clash format. (Using `Clash` template) Useful for client application that use Legacy Clash core.\",\"Return **subscription** in Singbox format. (Using `Singbox` template) Format which is used by Singbox client application.\",\"Return **subscription** as browser format. The same as on `/info` route.\",\"**Drop** request and return `403` status code.\",\"**Drop** request and return `404` status code.\",\"**Drop** request and return `451` status code.\",\"**Drop** the socket connection.\"]}", + "type": "string", + "enum": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX", + "BROWSER", + "BLOCK", + "STATUS_CODE_404", + "STATUS_CODE_451", + "SOCKET_DROP" + ], + "x-enumNames": [ + "XRAY_JSON", + "XRAY_BASE64", + "MIHOMO", + "STASH", + "CLASH", + "SINGBOX", + "BROWSER", + "BLOCK", + "STATUS_CODE_404", + "STATUS_CODE_451", + "SOCKET_DROP" + ] + }, + "responseModifications": { + "description": "{\"examples\":[{\"headers\":[{\"key\":\"X-Custom-Header\",\"value\":\"CustomValue\"}]}],\"markdownDescription\":\"Response modifications to be applied when the rule is matched. Optional.\"}", + "type": "object", + "properties": { + "headers": { + "description": "{\"defaultSnippets\":[{\"label\":\"Examples: Add custom header\",\"markdownDescription\":\"Add a custom header to the response\",\"body\":[{\"key\":\"X-Custom-Header\",\"value\":\"CustomValue\"}]}],\"markdownDescription\":\"Array of headers to be added when the rule is matched.\"}", + "type": "array", + "items": { + "description": "{\"markdownDescription\":\"**Key** and **value** of the response header will be added to the response.\"}", + "type": "object", + "properties": { + "key": { + "description": "{\"markdownDescription\":\"Key of the response header. Must comply with RFC 7230.\"}", + "type": "string", + "pattern": "^[!#$%&'*+\\-.0-9A-Z^_`a-z|~]+$" + }, + "value": { + "description": "{\"markdownDescription\":\"Value of the response header. \"}", + "type": "string", + "minLength": 1 + } + }, + "required": [ + "key", + "value" + ] + } + }, + "applyHeadersToEnd": { + "description": "{\"markdownDescription\":\"By default, headers are added when forming the response. In some cases, headers set in SRR may be overridden by headers from other parts of the system. If you set this flag to **true**, headers from SRR will be added at the very end, just before the response is sent. In this case, SRR headers may override headers from other sections.\"}", + "type": "boolean" + }, + "subscriptionTemplate": { + "description": "{\"markdownDescription\":\"Override the subscription template with the given name. If not provided, the default subscription template will be used. If the template name is not found, the default subscription template for this type will be used. **This modification have higher priority than settings from External Squads.**\"}", + "type": "string", + "minLength": 1 + }, + "ignoreHostXrayJsonTemplate": { + "description": "{\"markdownDescription\":\"Each Host may have its own Xray Json Template. If you set this flag to **true**, the Xray Json Template defined by the SRR will be used. **The Host's Xray Json Template will be ignored.**\"}", + "type": "boolean" + }, + "ignoreServeJsonAtBaseSubscription": { + "description": "{\"markdownDescription\":\"If you set this flag to **true**, the **Serve JSON at Base Subscription** setting will be ignored (set to **false**).\"}", + "type": "boolean" + }, + "additionalExtendedClientsRegex": { + "description": "{\"markdownDescription\":\"Additional regex patterns to match extended clients. Matched clients will receive `serverDescription` in the subscription response.\\n\\n**Default Mihomo extended clients:**\\n- `^FlClash ?X/`\\n- `^Flowvy/`\\n- `^prizrak-box/`\\n- `^koala-clash/`\\n\\n**Default Xray extended clients:**\\n- `^Happ/`\\n- `^INCY/`\\n\\n**Example:** `[\\\"^MyClient/\\\", \\\"^CustomApp\\\\\\\\/v2\\\"]`\"}", + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + } + } + } + }, + "required": [ + "name", + "enabled", + "operator", + "conditions", + "responseType" + ] + } + } + }, + "required": [ + "version", + "rules" + ], + "nullable": true + }, + "hwidSettings": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "fallbackDeviceLimit": { + "type": "number" + }, + "maxDevicesAnnounce": { + "type": "string", + "maxLength": 200, + "nullable": true + } + }, + "required": [ + "enabled", + "fallbackDeviceLimit", + "maxDevicesAnnounce" + ], + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "profileTitle", + "supportLink", + "profileUpdateInterval", + "isProfileWebpageUrlEnabled", + "serveJsonAtBaseSubscription", + "isShowCustomRemarks", + "customRemarks", + "happAnnounce", + "happRouting", + "customResponseHeaders", + "randomizeHosts", + "responseRules", + "hwidSettings", + "createdAt", + "updatedAt" + ] + } + }, + "required": [ + "response" + ] + }, + "FetchIpsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "jobId": { + "type": "string" + } + }, + "required": [ + "jobId" + ] + } + }, + "required": [ + "response" + ] + }, + "FetchIpsResultResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "isCompleted": { + "type": "boolean" + }, + "isFailed": { + "type": "boolean" + }, + "progress": { + "type": "object", + "properties": { + "total": { + "type": "number" + }, + "completed": { + "type": "number" + }, + "percent": { + "type": "number" + } + }, + "required": [ + "total", + "completed", + "percent" + ] + }, + "result": { + "type": "object", + "properties": { + "success": { + "type": "boolean" + }, + "userUuid": { + "type": "string", + "format": "uuid" + }, + "userId": { + "type": "string" + }, + "nodes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "nodeUuid": { + "type": "string", + "format": "uuid" + }, + "nodeName": { + "type": "string" + }, + "countryCode": { + "type": "string" + }, + "ips": { + "type": "array", + "items": { + "type": "object", + "properties": { + "ip": { + "type": "string" + }, + "lastSeen": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "ip", + "lastSeen" + ] + } + } + }, + "required": [ + "nodeUuid", + "nodeName", + "countryCode", + "ips" + ] + } + } + }, + "required": [ + "success", + "userUuid", + "userId", + "nodes" + ], + "nullable": true + } + }, + "required": [ + "isCompleted", + "isFailed", + "progress", + "result" + ] + } + }, + "required": [ + "response" + ] + }, + "DropConnectionsRequestDto": { + "type": "object", + "properties": { + "dropBy": { + "oneOf": [ + { + "description": "Drop by user UUIDs", + "type": "object", + "properties": { + "by": { + "type": "string", + "enum": [ + "userUuids" + ] + }, + "userUuids": { + "type": "array", + "minItems": 1, + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "by", + "userUuids" + ] + }, + { + "description": "Drop by IP addresses", + "type": "object", + "properties": { + "by": { + "type": "string", + "enum": [ + "ipAddresses" + ] + }, + "ipAddresses": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + } + }, + "required": [ + "by", + "ipAddresses" + ] + } + ] + }, + "targetNodes": { + "oneOf": [ + { + "description": "Target all connected nodes", + "type": "object", + "properties": { + "target": { + "type": "string", + "enum": [ + "allNodes" + ] + } + }, + "required": [ + "target" + ] + }, + { + "description": "Target specific nodes", + "type": "object", + "properties": { + "target": { + "type": "string", + "enum": [ + "specificNodes" + ] + }, + "nodeUuids": { + "type": "array", + "minItems": 1, + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "target", + "nodeUuids" + ] + } + ] + } + }, + "required": [ + "dropBy", + "targetNodes" + ] + }, + "DropConnectionsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "eventSent": { + "type": "boolean" + } + }, + "required": [ + "eventSent" + ] + } + }, + "required": [ + "response" + ] + }, + "FetchUsersIpsResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "jobId": { + "type": "string" + } + }, + "required": [ + "jobId" + ] + } + }, + "required": [ + "response" + ] + }, + "FetchUsersIpsResultResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "isCompleted": { + "type": "boolean" + }, + "isFailed": { + "type": "boolean" + }, + "result": { + "type": "object", + "properties": { + "success": { + "type": "boolean" + }, + "nodeUuid": { + "type": "string", + "format": "uuid" + }, + "users": { + "type": "array", + "items": { + "type": "object", + "properties": { + "userId": { + "type": "string" + }, + "ips": { + "type": "array", + "items": { + "type": "object", + "properties": { + "ip": { + "type": "string" + }, + "lastSeen": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "ip", + "lastSeen" + ] + } + } + }, + "required": [ + "userId", + "ips" + ] + } + } + }, + "required": [ + "success", + "nodeUuid", + "users" + ], + "nullable": true + } + }, + "required": [ + "isCompleted", + "isFailed", + "result" + ] + } + }, + "required": [ + "response" + ] + }, + "GetUserMetadataResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "metadata": { + "type": "object", + "properties": {} + } + }, + "required": [ + "metadata" + ] + } + }, + "required": [ + "response" + ] + }, + "UpsertUserMetadataRequestBodyDto": { + "type": "object", + "properties": { + "metadata": { + "type": "object", + "properties": {} + } + }, + "required": [ + "metadata" + ] + }, + "UpsertUserMetadataResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "metadata": { + "type": "object", + "properties": {} + } + }, + "required": [ + "metadata" + ] + } + }, + "required": [ + "response" + ] + }, + "GetNodeMetadataResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "metadata": { + "type": "object", + "properties": {} + } + }, + "required": [ + "metadata" + ] + } + }, + "required": [ + "response" + ] + }, + "UpsertNodeMetadataRequestBodyDto": { + "type": "object", + "properties": { + "metadata": { + "type": "object", + "properties": {} + } + }, + "required": [ + "metadata" + ] + }, + "UpsertNodeMetadataResponseDto": { + "type": "object", + "properties": { + "response": { + "type": "object", + "properties": { + "metadata": { + "type": "object", + "properties": {} + } + }, + "required": [ + "metadata" + ] + } + }, + "required": [ + "response" + ] + }, + "RemnawaveWebhookUserEventsDto": { + "type": "object", + "properties": { + "scope": { + "type": "string", + "enum": [ + "user" + ] + }, + "event": { + "type": "string", + "enum": [ + "user.created", + "user.modified", + "user.deleted", + "user.revoked", + "user.disabled", + "user.enabled", + "user.limited", + "user.expired", + "user.traffic_reset", + "user.expires_in_72_hours", + "user.expires_in_48_hours", + "user.expires_in_24_hours", + "user.expired_24_hours_ago", + "user.first_connected", + "user.bandwidth_usage_threshold_reached", + "user.not_connected" + ] + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "data": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "id": { + "type": "number" + }, + "shortUuid": { + "type": "string" + }, + "username": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "x-enumNames": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "default": "ACTIVE" + }, + "trafficLimitBytes": { + "type": "integer", + "default": 0 + }, + "trafficLimitStrategy": { + "description": "Available reset periods", + "type": "string", + "enum": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "x-enumNames": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "default": "NO_RESET" + }, + "expireAt": { + "type": "string", + "format": "date-time" + }, + "telegramId": { + "type": "integer", + "nullable": true + }, + "email": { + "type": "string", + "format": "email", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tag": { + "type": "string", + "nullable": true + }, + "hwidDeviceLimit": { + "type": "integer", + "nullable": true + }, + "externalSquadUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "trojanPassword": { + "type": "string" + }, + "vlessUuid": { + "type": "string", + "format": "uuid" + }, + "ssPassword": { + "type": "string" + }, + "lastTriggeredThreshold": { + "type": "integer", + "default": 0 + }, + "subRevokedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastTrafficResetAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "subscriptionUrl": { + "type": "string" + }, + "activeInternalSquads": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + } + }, + "required": [ + "uuid", + "name" + ] + } + }, + "userTraffic": { + "type": "object", + "properties": { + "usedTrafficBytes": { + "type": "number" + }, + "lifetimeUsedTrafficBytes": { + "type": "number" + }, + "onlineAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "firstConnectedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastConnectedNodeUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "usedTrafficBytes", + "lifetimeUsedTrafficBytes", + "onlineAt", + "firstConnectedAt", + "lastConnectedNodeUuid" + ] + } + }, + "required": [ + "uuid", + "id", + "shortUuid", + "username", + "expireAt", + "telegramId", + "email", + "description", + "tag", + "hwidDeviceLimit", + "externalSquadUuid", + "trojanPassword", + "vlessUuid", + "ssPassword", + "subRevokedAt", + "lastTrafficResetAt", + "createdAt", + "updatedAt", + "subscriptionUrl", + "activeInternalSquads", + "userTraffic" + ] + }, + "meta": { + "type": "object", + "properties": { + "notConnectedAfterHours": { + "type": "integer", + "nullable": true + } + }, + "nullable": true + } + }, + "required": [ + "scope", + "event", + "timestamp", + "data", + "meta" + ] + }, + "RemnawaveWebhookUserHwidDevicesEventsDto": { + "type": "object", + "properties": { + "scope": { + "type": "string", + "enum": [ + "user_hwid_devices" + ] + }, + "event": { + "type": "string", + "enum": [ + "user_hwid_devices.added", + "user_hwid_devices.deleted" + ] + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "data": { + "type": "object", + "properties": { + "user": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "id": { + "type": "number" + }, + "shortUuid": { + "type": "string" + }, + "username": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "x-enumNames": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "default": "ACTIVE" + }, + "trafficLimitBytes": { + "type": "integer", + "default": 0 + }, + "trafficLimitStrategy": { + "description": "Available reset periods", + "type": "string", + "enum": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "x-enumNames": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "default": "NO_RESET" + }, + "expireAt": { + "type": "string", + "format": "date-time" + }, + "telegramId": { + "type": "integer", + "nullable": true + }, + "email": { + "type": "string", + "format": "email", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tag": { + "type": "string", + "nullable": true + }, + "hwidDeviceLimit": { + "type": "integer", + "nullable": true + }, + "externalSquadUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "trojanPassword": { + "type": "string" + }, + "vlessUuid": { + "type": "string", + "format": "uuid" + }, + "ssPassword": { + "type": "string" + }, + "lastTriggeredThreshold": { + "type": "integer", + "default": 0 + }, + "subRevokedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastTrafficResetAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "subscriptionUrl": { + "type": "string" + }, + "activeInternalSquads": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + } + }, + "required": [ + "uuid", + "name" + ] + } + }, + "userTraffic": { + "type": "object", + "properties": { + "usedTrafficBytes": { + "type": "number" + }, + "lifetimeUsedTrafficBytes": { + "type": "number" + }, + "onlineAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "firstConnectedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastConnectedNodeUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "usedTrafficBytes", + "lifetimeUsedTrafficBytes", + "onlineAt", + "firstConnectedAt", + "lastConnectedNodeUuid" + ] + } + }, + "required": [ + "uuid", + "id", + "shortUuid", + "username", + "expireAt", + "telegramId", + "email", + "description", + "tag", + "hwidDeviceLimit", + "externalSquadUuid", + "trojanPassword", + "vlessUuid", + "ssPassword", + "subRevokedAt", + "lastTrafficResetAt", + "createdAt", + "updatedAt", + "subscriptionUrl", + "activeInternalSquads", + "userTraffic" + ] + }, + "hwidUserDevice": { + "type": "object", + "properties": { + "hwid": { + "type": "string" + }, + "userUuid": { + "type": "string", + "format": "uuid" + }, + "platform": { + "type": "string", + "nullable": true + }, + "osVersion": { + "type": "string", + "nullable": true + }, + "deviceModel": { + "type": "string", + "nullable": true + }, + "userAgent": { + "type": "string", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "hwid", + "userUuid", + "platform", + "osVersion", + "deviceModel", + "userAgent", + "createdAt", + "updatedAt" + ] + } + }, + "required": [ + "user", + "hwidUserDevice" + ] + } + }, + "required": [ + "scope", + "event", + "timestamp", + "data" + ] + }, + "RemnawaveWebhookNodeEventsDto": { + "type": "object", + "properties": { + "scope": { + "type": "string", + "enum": [ + "node" + ] + }, + "event": { + "type": "string", + "enum": [ + "node.created", + "node.modified", + "node.disabled", + "node.enabled", + "node.deleted", + "node.connection_lost", + "node.connection_restored", + "node.traffic_notify" + ] + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "data": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "address": { + "type": "string" + }, + "port": { + "type": "integer", + "nullable": true + }, + "isConnected": { + "type": "boolean" + }, + "isDisabled": { + "type": "boolean" + }, + "isConnecting": { + "type": "boolean" + }, + "lastStatusChange": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastStatusMessage": { + "type": "string", + "nullable": true + }, + "isTrafficTrackingActive": { + "type": "boolean" + }, + "trafficResetDay": { + "type": "integer", + "nullable": true + }, + "trafficLimitBytes": { + "type": "number", + "nullable": true + }, + "trafficUsedBytes": { + "type": "number", + "nullable": true + }, + "notifyPercent": { + "type": "integer", + "nullable": true + }, + "viewPosition": { + "type": "integer" + }, + "countryCode": { + "type": "string" + }, + "consumptionMultiplier": { + "type": "number" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "configProfile": { + "type": "object", + "properties": { + "activeConfigProfileUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "activeInbounds": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "profileUuid": { + "type": "string", + "format": "uuid" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + }, + "network": { + "type": "string", + "nullable": true + }, + "security": { + "type": "string", + "nullable": true + }, + "port": { + "type": "number", + "nullable": true + }, + "rawInbound": { + "nullable": true + } + }, + "required": [ + "uuid", + "profileUuid", + "tag", + "type", + "network", + "security", + "port", + "rawInbound" + ] + } + } + }, + "required": [ + "activeConfigProfileUuid", + "activeInbounds" + ] + }, + "providerUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "provider": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "faviconLink": { + "type": "string", + "nullable": true + }, + "loginUrl": { + "type": "string", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "name", + "faviconLink", + "loginUrl", + "createdAt", + "updatedAt" + ], + "nullable": true + }, + "activePluginUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "system": { + "type": "object", + "properties": { + "info": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "cpus": { + "type": "integer" + }, + "cpuModel": { + "type": "string" + }, + "memoryTotal": { + "type": "number" + }, + "hostname": { + "type": "string" + }, + "platform": { + "type": "string" + }, + "release": { + "type": "string" + }, + "type": { + "type": "string" + }, + "version": { + "type": "string" + }, + "networkInterfaces": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "arch", + "cpus", + "cpuModel", + "memoryTotal", + "hostname", + "platform", + "release", + "type", + "version", + "networkInterfaces" + ] + }, + "stats": { + "type": "object", + "properties": { + "memoryFree": { + "type": "number" + }, + "memoryUsed": { + "type": "number" + }, + "uptime": { + "type": "number" + }, + "loadAvg": { + "type": "array", + "items": { + "type": "number" + } + }, + "interface": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "rxBytesPerSec": { + "type": "number" + }, + "txBytesPerSec": { + "type": "number" + }, + "rxTotal": { + "type": "number" + }, + "txTotal": { + "type": "number" + } + }, + "required": [ + "interface", + "rxBytesPerSec", + "txBytesPerSec", + "rxTotal", + "txTotal" + ], + "nullable": true + } + }, + "required": [ + "memoryFree", + "memoryUsed", + "uptime", + "loadAvg", + "interface" + ] + } + }, + "required": [ + "info", + "stats" + ], + "nullable": true + }, + "versions": { + "type": "object", + "properties": { + "xray": { + "type": "string" + }, + "node": { + "type": "string" + } + }, + "required": [ + "xray", + "node" + ], + "nullable": true + }, + "xrayUptime": { + "type": "number" + }, + "usersOnline": { + "type": "number" + } + }, + "required": [ + "uuid", + "name", + "address", + "port", + "isConnected", + "isDisabled", + "isConnecting", + "lastStatusChange", + "lastStatusMessage", + "isTrafficTrackingActive", + "trafficResetDay", + "trafficLimitBytes", + "trafficUsedBytes", + "notifyPercent", + "viewPosition", + "countryCode", + "consumptionMultiplier", + "tags", + "createdAt", + "updatedAt", + "configProfile", + "providerUuid", + "provider", + "activePluginUuid", + "system", + "versions", + "xrayUptime", + "usersOnline" + ] + } + }, + "required": [ + "scope", + "event", + "timestamp", + "data" + ] + }, + "RemnawaveWebhookServiceEventsDto": { + "type": "object", + "properties": { + "scope": { + "type": "string", + "enum": [ + "service" + ] + }, + "event": { + "type": "string", + "enum": [ + "service.panel_started", + "service.login_attempt_failed", + "service.login_attempt_success", + "service.subpage_config_changed" + ] + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "data": { + "type": "object", + "properties": { + "loginAttempt": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "ip": { + "type": "string" + }, + "userAgent": { + "type": "string" + }, + "description": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "required": [ + "username", + "ip", + "userAgent" + ] + }, + "panelVersion": { + "type": "string" + }, + "subpageConfig": { + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "CREATED", + "UPDATED", + "DELETED" + ] + }, + "uuid": { + "type": "string", + "format": "uuid" + } + }, + "required": [ + "action", + "uuid" + ] + } + } + } + }, + "required": [ + "scope", + "event", + "timestamp", + "data" + ] + }, + "RemnawaveWebhookErrorsEventsDto": { + "type": "object", + "properties": { + "scope": { + "type": "string", + "enum": [ + "errors" + ] + }, + "event": { + "type": "string", + "enum": [ + "errors.bandwidth_usage_threshold_reached_max_notifications" + ] + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "data": { + "type": "object", + "properties": { + "description": { + "type": "string" + } + }, + "required": [ + "description" + ] + } + }, + "required": [ + "scope", + "event", + "timestamp", + "data" + ] + }, + "RemnawaveWebhookCrmEventsDto": { + "type": "object", + "properties": { + "scope": { + "type": "string", + "enum": [ + "crm" + ] + }, + "event": { + "type": "string", + "enum": [ + "crm.infra_billing_node_payment_in_7_days", + "crm.infra_billing_node_payment_in_48hrs", + "crm.infra_billing_node_payment_in_24hrs", + "crm.infra_billing_node_payment_due_today", + "crm.infra_billing_node_payment_overdue_24hrs", + "crm.infra_billing_node_payment_overdue_48hrs", + "crm.infra_billing_node_payment_overdue_7_days" + ] + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "data": { + "type": "object", + "properties": { + "providerName": { + "type": "string" + }, + "nodeName": { + "type": "string" + }, + "nextBillingAt": { + "type": "string", + "format": "date-time" + }, + "loginUrl": { + "type": "string" + } + }, + "required": [ + "providerName", + "nodeName", + "nextBillingAt", + "loginUrl" + ] + } + }, + "required": [ + "scope", + "event", + "timestamp", + "data" + ] + }, + "RemnawaveWebhookTorrentBlockerEventsDto": { + "type": "object", + "properties": { + "scope": { + "type": "string", + "enum": [ + "torrent_blocker" + ] + }, + "event": { + "type": "string", + "enum": [ + "torrent_blocker.report" + ] + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "data": { + "type": "object", + "properties": { + "node": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "address": { + "type": "string" + }, + "port": { + "type": "integer", + "nullable": true + }, + "isConnected": { + "type": "boolean" + }, + "isDisabled": { + "type": "boolean" + }, + "isConnecting": { + "type": "boolean" + }, + "lastStatusChange": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastStatusMessage": { + "type": "string", + "nullable": true + }, + "isTrafficTrackingActive": { + "type": "boolean" + }, + "trafficResetDay": { + "type": "integer", + "nullable": true + }, + "trafficLimitBytes": { + "type": "number", + "nullable": true + }, + "trafficUsedBytes": { + "type": "number", + "nullable": true + }, + "notifyPercent": { + "type": "integer", + "nullable": true + }, + "viewPosition": { + "type": "integer" + }, + "countryCode": { + "type": "string" + }, + "consumptionMultiplier": { + "type": "number" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "configProfile": { + "type": "object", + "properties": { + "activeConfigProfileUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "activeInbounds": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "profileUuid": { + "type": "string", + "format": "uuid" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + }, + "network": { + "type": "string", + "nullable": true + }, + "security": { + "type": "string", + "nullable": true + }, + "port": { + "type": "number", + "nullable": true + }, + "rawInbound": { + "nullable": true + } + }, + "required": [ + "uuid", + "profileUuid", + "tag", + "type", + "network", + "security", + "port", + "rawInbound" + ] + } + } + }, + "required": [ + "activeConfigProfileUuid", + "activeInbounds" + ] + }, + "providerUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "provider": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "faviconLink": { + "type": "string", + "nullable": true + }, + "loginUrl": { + "type": "string", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "uuid", + "name", + "faviconLink", + "loginUrl", + "createdAt", + "updatedAt" + ], + "nullable": true + }, + "activePluginUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "system": { + "type": "object", + "properties": { + "info": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "cpus": { + "type": "integer" + }, + "cpuModel": { + "type": "string" + }, + "memoryTotal": { + "type": "number" + }, + "hostname": { + "type": "string" + }, + "platform": { + "type": "string" + }, + "release": { + "type": "string" + }, + "type": { + "type": "string" + }, + "version": { + "type": "string" + }, + "networkInterfaces": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "arch", + "cpus", + "cpuModel", + "memoryTotal", + "hostname", + "platform", + "release", + "type", + "version", + "networkInterfaces" + ] + }, + "stats": { + "type": "object", + "properties": { + "memoryFree": { + "type": "number" + }, + "memoryUsed": { + "type": "number" + }, + "uptime": { + "type": "number" + }, + "loadAvg": { + "type": "array", + "items": { + "type": "number" + } + }, + "interface": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "rxBytesPerSec": { + "type": "number" + }, + "txBytesPerSec": { + "type": "number" + }, + "rxTotal": { + "type": "number" + }, + "txTotal": { + "type": "number" + } + }, + "required": [ + "interface", + "rxBytesPerSec", + "txBytesPerSec", + "rxTotal", + "txTotal" + ], + "nullable": true + } + }, + "required": [ + "memoryFree", + "memoryUsed", + "uptime", + "loadAvg", + "interface" + ] + } + }, + "required": [ + "info", + "stats" + ], + "nullable": true + }, + "versions": { + "type": "object", + "properties": { + "xray": { + "type": "string" + }, + "node": { + "type": "string" + } + }, + "required": [ + "xray", + "node" + ], + "nullable": true + }, + "xrayUptime": { + "type": "number" + }, + "usersOnline": { + "type": "number" + } + }, + "required": [ + "uuid", + "name", + "address", + "port", + "isConnected", + "isDisabled", + "isConnecting", + "lastStatusChange", + "lastStatusMessage", + "isTrafficTrackingActive", + "trafficResetDay", + "trafficLimitBytes", + "trafficUsedBytes", + "notifyPercent", + "viewPosition", + "countryCode", + "consumptionMultiplier", + "tags", + "createdAt", + "updatedAt", + "configProfile", + "providerUuid", + "provider", + "activePluginUuid", + "system", + "versions", + "xrayUptime", + "usersOnline" + ] + }, + "user": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "id": { + "type": "number" + }, + "shortUuid": { + "type": "string" + }, + "username": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "x-enumNames": [ + "ACTIVE", + "DISABLED", + "LIMITED", + "EXPIRED" + ], + "default": "ACTIVE" + }, + "trafficLimitBytes": { + "type": "integer", + "default": 0 + }, + "trafficLimitStrategy": { + "description": "Available reset periods", + "type": "string", + "enum": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "x-enumNames": [ + "NO_RESET", + "DAY", + "WEEK", + "MONTH", + "MONTH_ROLLING" + ], + "default": "NO_RESET" + }, + "expireAt": { + "type": "string", + "format": "date-time" + }, + "telegramId": { + "type": "integer", + "nullable": true + }, + "email": { + "type": "string", + "format": "email", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tag": { + "type": "string", + "nullable": true + }, + "hwidDeviceLimit": { + "type": "integer", + "nullable": true + }, + "externalSquadUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "trojanPassword": { + "type": "string" + }, + "vlessUuid": { + "type": "string", + "format": "uuid" + }, + "ssPassword": { + "type": "string" + }, + "lastTriggeredThreshold": { + "type": "integer", + "default": 0 + }, + "subRevokedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastTrafficResetAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "subscriptionUrl": { + "type": "string" + }, + "activeInternalSquads": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + } + }, + "required": [ + "uuid", + "name" + ] + } + }, + "userTraffic": { + "type": "object", + "properties": { + "usedTrafficBytes": { + "type": "number" + }, + "lifetimeUsedTrafficBytes": { + "type": "number" + }, + "onlineAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "firstConnectedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastConnectedNodeUuid": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "required": [ + "usedTrafficBytes", + "lifetimeUsedTrafficBytes", + "onlineAt", + "firstConnectedAt", + "lastConnectedNodeUuid" + ] + } + }, + "required": [ + "uuid", + "id", + "shortUuid", + "username", + "expireAt", + "telegramId", + "email", + "description", + "tag", + "hwidDeviceLimit", + "externalSquadUuid", + "trojanPassword", + "vlessUuid", + "ssPassword", + "subRevokedAt", + "lastTrafficResetAt", + "createdAt", + "updatedAt", + "subscriptionUrl", + "activeInternalSquads", + "userTraffic" + ] + }, + "report": { + "type": "object", + "properties": { + "actionReport": { + "type": "object", + "properties": { + "blocked": { + "type": "boolean" + }, + "ip": { + "type": "string" + }, + "blockDuration": { + "type": "number" + }, + "willUnblockAt": { + "type": "string", + "format": "date-time" + }, + "userId": { + "type": "string" + }, + "processedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "blocked", + "ip", + "blockDuration", + "willUnblockAt", + "userId", + "processedAt" + ] + }, + "xrayReport": { + "type": "object", + "properties": { + "email": { + "type": "string", + "nullable": true + }, + "level": { + "type": "number", + "nullable": true + }, + "protocol": { + "type": "string", + "nullable": true + }, + "network": { + "type": "string" + }, + "source": { + "type": "string", + "nullable": true + }, + "destination": { + "type": "string" + }, + "routeTarget": { + "type": "string", + "nullable": true + }, + "originalTarget": { + "type": "string", + "nullable": true + }, + "inboundTag": { + "type": "string", + "nullable": true + }, + "inboundName": { + "type": "string", + "nullable": true + }, + "inboundLocal": { + "type": "string", + "nullable": true + }, + "outboundTag": { + "type": "string", + "nullable": true + }, + "ts": { + "type": "number" + } + }, + "required": [ + "email", + "level", + "protocol", + "network", + "source", + "destination", + "routeTarget", + "originalTarget", + "inboundTag", + "inboundName", + "inboundLocal", + "outboundTag", + "ts" + ] + } + }, + "required": [ + "actionReport", + "xrayReport" + ] + } + }, + "required": [ + "node", + "user", + "report" + ] + } + }, + "required": [ + "scope", + "event", + "timestamp", + "data" + ] + } + } + } +}