From 7ab54bb8d35adf28b6d1a6e868a85b6c872fd775 Mon Sep 17 00:00:00 2001 From: Dakroach Date: Wed, 27 May 2026 20:34:13 -0700 Subject: [PATCH] core network first time gen --- .gitignore | 3 +- README.md | 446 ++++-------------- .../generated/api/v1/ControlPlaneApiV1.java | 95 ++++ .../api/v1/announcements/ActiveEndpoint.java | 28 ++ .../v1/announcements/AnnouncementsApi.java | 41 ++ .../generated/api/v1/audit/AuditApi.java | 41 ++ .../api/v1/audit/EventsIndexEndpoint.java | 28 ++ .../generated/api/v1/health/HealthApi.java | 41 ++ .../api/v1/health/HealthEndpoint.java | 28 ++ .../v1/infrastructure/InfrastructureApi.java | 61 +++ .../ServerInstancesPresenceIndexEndpoint.java | 28 ++ .../ServerTemplatesIndexEndpoint.java | 28 ++ .../ServerTemplatesShowEndpoint.java | 28 ++ .../ServerTemplatesStoreEndpoint.java | 28 ++ .../ServerTemplatesUpdateEndpoint.java | 28 ++ .../api/v1/integrations/IndexEndpoint.java | 28 ++ .../api/v1/integrations/IntegrationsApi.java | 51 ++ .../api/v1/integrations/StoreEndpoint.java | 28 ++ .../api/v1/integrations/UpdateEndpoint.java | 28 ++ .../moderation/CasesAppealsStoreEndpoint.java | 28 ++ .../CasesEvidenceStoreEndpoint.java | 28 ++ .../api/v1/moderation/CasesIndexEndpoint.java | 28 ++ .../CasesPunishmentsStoreEndpoint.java | 28 ++ .../CasesPunishmentsUpdateEndpoint.java | 28 ++ .../v1/moderation/CasesReopenEndpoint.java | 28 ++ .../api/v1/moderation/CasesShowEndpoint.java | 28 ++ .../api/v1/moderation/CasesStoreEndpoint.java | 28 ++ .../v1/moderation/CasesUpdateEndpoint.java | 28 ++ .../api/v1/moderation/ModerationApi.java | 81 ++++ .../players/NotificationsIndexEndpoint.java | 28 ++ .../v1/players/NotificationsReadEndpoint.java | 28 ++ .../players/NotificationsStoreEndpoint.java | 28 ++ .../generated/api/v1/players/PlayersApi.java | 66 +++ .../v1/players/SessionProfileEndpoint.java | 28 ++ .../api/v1/players/SocialGraphEndpoint.java | 28 ++ .../v1/players/WebsiteProfileEndpoint.java | 28 ++ .../plugins/ConfigVersionsIndexEndpoint.java | 28 ++ .../plugins/ConfigVersionsStoreEndpoint.java | 28 ++ .../v1/plugins/DeploymentsIndexEndpoint.java | 28 ++ .../plugins/DeploymentsRollbackEndpoint.java | 28 ++ .../v1/plugins/DeploymentsStoreEndpoint.java | 28 ++ .../api/v1/plugins/IndexEndpoint.java | 28 ++ .../generated/api/v1/plugins/PluginsApi.java | 71 +++ .../api/v1/plugins/ShowEndpoint.java | 28 ++ .../v1/server/InstancesHeartbeatEndpoint.java | 28 ++ .../InstancesMatchesResultsStoreEndpoint.java | 28 ++ .../v1/server/InstancesRegisterEndpoint.java | 28 ++ .../v1/server/InstancesShutdownEndpoint.java | 28 ++ .../api/v1/server/ProfileEndpoint.java | 28 ++ .../generated/api/v1/server/ServerApi.java | 61 +++ .../serviceaccounts/ServiceAccountsApi.java | 56 +++ .../TokensDestroyEndpoint.java | 28 ++ .../serviceaccounts/TokensIndexEndpoint.java | 28 ++ .../serviceaccounts/TokensRotateEndpoint.java | 28 ++ .../serviceaccounts/TokensStoreEndpoint.java | 28 ++ .../generated/api/v1/shared/ApiEndpoint.java | 15 + .../api/v1/shared/RequestDescriptor.java | 6 + .../generated/api/v1/shared/RequestField.java | 6 + .../api/v1/shared/ResponseDescriptor.java | 4 + .../api/v1/shared/RouteParameter.java | 4 + .../api/v1/shared/RuleDescriptor.java | 4 + .../api/v1/shared/TypeDescriptor.java | 4 + .../v1/social/FriendshipsAcceptEndpoint.java | 28 ++ .../v1/social/FriendshipsStoreEndpoint.java | 28 ++ .../v1/social/GuildInvitesAcceptEndpoint.java | 28 ++ .../v1/social/GuildInvitesCancelEndpoint.java | 28 ++ .../social/GuildInvitesDeclineEndpoint.java | 28 ++ .../v1/social/GuildsInvitesStoreEndpoint.java | 28 ++ .../v1/social/GuildsKicksStoreEndpoint.java | 28 ++ .../api/v1/social/GuildsLeaveEndpoint.java | 28 ++ .../v1/social/GuildsMembersStoreEndpoint.java | 28 ++ .../GuildsOwnershipTransferEndpoint.java | 28 ++ .../api/v1/social/GuildsStoreEndpoint.java | 28 ++ .../social/PartiesInvitesStoreEndpoint.java | 28 ++ .../v1/social/PartiesKicksStoreEndpoint.java | 28 ++ .../PartiesLeadershipTransferEndpoint.java | 28 ++ .../api/v1/social/PartiesLeaveEndpoint.java | 28 ++ .../social/PartiesMembersStoreEndpoint.java | 28 ++ .../api/v1/social/PartiesStoreEndpoint.java | 28 ++ .../v1/social/PartyInvitesAcceptEndpoint.java | 28 ++ .../v1/social/PartyInvitesCancelEndpoint.java | 28 ++ .../social/PartyInvitesDeclineEndpoint.java | 28 ++ .../generated/api/v1/social/SocialApi.java | 136 ++++++ .../IssuesAssignmentsStoreEndpoint.java | 28 ++ .../api/v1/support/IssuesIndexEndpoint.java | 28 ++ .../support/IssuesMessagesStoreEndpoint.java | 28 ++ .../api/v1/support/IssuesReopenEndpoint.java | 28 ++ .../api/v1/support/IssuesShowEndpoint.java | 28 ++ .../api/v1/support/IssuesStoreEndpoint.java | 28 ++ .../api/v1/support/IssuesUpdateEndpoint.java | 28 ++ .../generated/api/v1/support/SupportApi.java | 71 +++ .../java/net/kewwbec/network/network.java | 9 + 92 files changed, 2952 insertions(+), 353 deletions(-) create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/ControlPlaneApiV1.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/announcements/ActiveEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/announcements/AnnouncementsApi.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/audit/AuditApi.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/audit/EventsIndexEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/health/HealthApi.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/health/HealthEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/infrastructure/InfrastructureApi.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/infrastructure/ServerInstancesPresenceIndexEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/infrastructure/ServerTemplatesIndexEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/infrastructure/ServerTemplatesShowEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/infrastructure/ServerTemplatesStoreEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/infrastructure/ServerTemplatesUpdateEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/integrations/IndexEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/integrations/IntegrationsApi.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/integrations/StoreEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/integrations/UpdateEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesAppealsStoreEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesEvidenceStoreEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesIndexEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesPunishmentsStoreEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesPunishmentsUpdateEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesReopenEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesShowEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesStoreEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesUpdateEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/moderation/ModerationApi.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/players/NotificationsIndexEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/players/NotificationsReadEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/players/NotificationsStoreEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/players/PlayersApi.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/players/SessionProfileEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/players/SocialGraphEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/players/WebsiteProfileEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/plugins/ConfigVersionsIndexEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/plugins/ConfigVersionsStoreEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/plugins/DeploymentsIndexEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/plugins/DeploymentsRollbackEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/plugins/DeploymentsStoreEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/plugins/IndexEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/plugins/PluginsApi.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/plugins/ShowEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/server/InstancesHeartbeatEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/server/InstancesMatchesResultsStoreEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/server/InstancesRegisterEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/server/InstancesShutdownEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/server/ProfileEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/server/ServerApi.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/serviceaccounts/ServiceAccountsApi.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/serviceaccounts/TokensDestroyEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/serviceaccounts/TokensIndexEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/serviceaccounts/TokensRotateEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/serviceaccounts/TokensStoreEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/shared/ApiEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/shared/RequestDescriptor.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/shared/RequestField.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/shared/ResponseDescriptor.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/shared/RouteParameter.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/shared/RuleDescriptor.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/shared/TypeDescriptor.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/social/FriendshipsAcceptEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/social/FriendshipsStoreEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/social/GuildInvitesAcceptEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/social/GuildInvitesCancelEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/social/GuildInvitesDeclineEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/social/GuildsInvitesStoreEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/social/GuildsKicksStoreEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/social/GuildsLeaveEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/social/GuildsMembersStoreEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/social/GuildsOwnershipTransferEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/social/GuildsStoreEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/social/PartiesInvitesStoreEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/social/PartiesKicksStoreEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/social/PartiesLeadershipTransferEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/social/PartiesLeaveEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/social/PartiesMembersStoreEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/social/PartiesStoreEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/social/PartyInvitesAcceptEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/social/PartyInvitesCancelEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/social/PartyInvitesDeclineEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/social/SocialApi.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/support/IssuesAssignmentsStoreEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/support/IssuesIndexEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/support/IssuesMessagesStoreEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/support/IssuesReopenEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/support/IssuesShowEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/support/IssuesStoreEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/support/IssuesUpdateEndpoint.java create mode 100644 src/main/java/net/kewwbec/network/generated/api/v1/support/SupportApi.java create mode 100644 src/main/java/net/kewwbec/network/network.java diff --git a/.gitignore b/.gitignore index 31342f7..ed12b28 100644 --- a/.gitignore +++ b/.gitignore @@ -60,4 +60,5 @@ desktop.ini # Template specific libs/HytaleServer.jar -buildSrc/ \ No newline at end of file +buildSrc/ +.github/ \ No newline at end of file diff --git a/README.md b/README.md index 0eae348..4ef3bd7 100644 --- a/README.md +++ b/README.md @@ -1,381 +1,123 @@ -# Hytale Plugin Template +# Kweebec Network Core -A minimal, ready-to-use template for creating Hytale plugins with modern build tools and automated testing. +This repository contains the Hytale plugin-side code for the Kweebec network along with the generated Java view of the control-plane API. -> **✨ Builds immediately without any changes!** Clone and run `./gradlew shadowJar` to get a working plugin JAR. +It is not just a generic plugin template anymore. The repo now has two important responsibilities: -## Features +- handwritten Hytale plugin and runtime code +- generator-owned Java API packages synced from the sibling `core-control-plane` repository -✅ **Modern Build System** - Gradle with Groovy DSL -✅ **Automated Testing** - Custom Gradle plugin for one-command server testing -✅ **Java 25** - Latest Java features -✅ **ShadowJar** - Automatic dependency bundling -✅ **CI/CD Ready** - GitHub Actions workflow included -✅ **Minimal Structure** - Only essential files, write your own code +## Repository purpose ---- +`core-network` is where game-side integrations for the network live. -## Quick Start +That includes: -### Prerequisites +- plugin entry points and handwritten Java glue +- future gameplay-facing integrations that consume the control-plane API +- the generated versioned API tree under `net.kewwbec.network.generated.api.v1` -- **Java 25 JDK** - [Download here](https://www.oracle.com/java/technologies/downloads/) -- **IntelliJ IDEA** - [Download here](https://www.jetbrains.com/idea/download/) (Community Edition is fine) -- **Git** - [Download here](https://git-scm.com/) +The generated files are meant to make the control plane feel like a stable Java dependency instead of a pile of raw route strings. -### 1. Clone or Download +## Generated control-plane SDK tree -```bash -git clone https://github.com/yourusername/hytale-plugin-template.git -cd hytale-plugin-template +The generated Java API output now lives under: + +```text +src/main/java/net/kewwbec/network/generated/api/v1/ + ControlPlaneApiV1.java + shared/ + announcements/ + audit/ + health/ + infrastructure/ + integrations/ + moderation/ + players/ + plugins/ + server/ + serviceaccounts/ + social/ + support/ ``` -**The template builds immediately without any changes!** -You can customize it later when you're ready to develop your plugin. +What that means: -### 2. Build Immediately (No Changes Needed!) +- each top-level API domain has its own package +- each domain has a `Api` entry point +- each route has its own generated `*Endpoint` file +- shared descriptor records live in `shared/` -The template works out-of-the-box: +Example imports now look like: + +```java +import net.kewwbec.network.generated.api.v1.ControlPlaneApiV1; +import net.kewwbec.network.generated.api.v1.plugins.PluginsApi; +import net.kewwbec.network.generated.api.v1.moderation.CasesShowEndpoint; +``` + +The handwritten bridge is still: + +```text +src/main/java/net/kewwbec/network/network.java +``` + +Everything under `src/main/java/net/kewwbec/network/generated` is generator-owned and should not be edited manually. + +## How generation works + +The source of truth for the generated API tree is the sibling `core-control-plane` repository. + +Run the sync from that repository: ```bash -# Windows +php artisan control-plane:sync-network-sdk --dry-run +php artisan control-plane:sync-network-sdk +``` + +That command exports the Laravel API contract and rewrites the generated Java tree in this repository. + +## Common commands + +```bash +# Compile Java sources +gradlew.bat compileJava + +# Build the plugin jar gradlew.bat shadowJar -# Linux/Mac -./gradlew shadowJar -``` +# Build with the standard lifecycle +gradlew.bat build -Your plugin JAR will be in: `build/libs/TemplatePlugin-1.0.0.jar` - -### 3. Customize Your Plugin (Optional) - -When ready to customize, edit these files: - -**`settings.gradle`:** - -```groovy -rootProject.name = "your-plugin-name" -``` - -**`gradle.properties`:** - -```properties -pluginGroup=com.yourname -pluginVersion=1.0.0 -pluginDescription=Your plugin description -``` - -**`src/main/resources/manifest.json`:** - -```json -{ - "Group": "YourName", - "Name": "YourPluginName", - "Main": "com.yourname.yourplugin.YourPlugin" -} -``` - -**Rename the main plugin class:** - -- Rename `src/main/java/com/example/templateplugin/TemplatePlugin.java` -- Update package name to match your `pluginGroup` - -### 4. Build Your Plugin - -```bash -# Windows -gradlew.bat shadowJar - -# Linux/Mac -./gradlew shadowJar -``` - -Your plugin JAR will be in: `build/libs/YourPluginName-1.0.0.jar` - -### 5. Implement Your Plugin - -Write your plugin code in `src/main/java/`: - -- Commands -- Event listeners -- Services -- Storage -- Utilities - -See our [documentation](../Documentation/) for examples and patterns. - -### 6. Test Your Plugin (Automated!) - -```bash -# Windows +# Run the Hytale server workflow when local server prerequisites are available gradlew.bat runServer - -# Linux/Mac -./gradlew runServer ``` -This will: +If the upstream Hytale server artifact is unavailable, full Gradle compilation may fail before it reaches your plugin code. In that case, validate generated Java-only slices separately and re-run once the dependency is resolvable. -1. Download the Hytale server (cached for future runs) -2. Build your plugin -3. Copy it to the server's mods folder -4. Start the server with interactive console +## Project structure ---- - -## Project Structure - -``` -TemplatePlugin/ -├── .github/workflows/ -│ └── build.yml # CI/CD workflow -├── buildSrc/ -│ ├── build.gradle.kts # Custom plugin configuration -│ └── src/main/kotlin/ -│ └── RunHytalePlugin.kt # Automated server testing -├── src/main/ -│ ├── java/com/example/templateplugin/ -│ │ └── TemplatePlugin.java # Minimal main class (example) -│ └── resources/ -│ └── manifest.json # Plugin metadata -├── .gitignore # Git ignore rules -├── build.gradle # Build configuration -├── gradle.properties # Project properties -├── settings.gradle # Project settings -├── LICENSE # MIT License -└── README.md # This file +```text +core-network/ + src/main/java/ + net/kewwbec/network/ + network.java + generated/api/v1/... + src/main/resources/ + manifest.json + build.gradle + gradle.properties + settings.gradle ``` -**Note:** This is a minimal template. Create your own folder structure: +## Working rules -- `commands/` - For command implementations -- `listeners/` - For event listeners -- `services/` - For business logic -- `storage/` - For data persistence -- `utils/` - For utility classes -- `config/` - For configuration management +- Do not patch generated files by hand. +- Fix the control-plane routes or generator, then re-run the sync command. +- Keep handwritten plugin code outside the generated tree. +- Treat the control plane as the API owner; the game-side repo is the consumer. ---- +## Related repositories -## Development Workflow - -### Building - -```bash -# Compile only -./gradlew compileJava - -# Build plugin JAR -./gradlew shadowJar - -# Clean and rebuild -./gradlew clean shadowJar -``` - -### Testing - -```bash -# Run server with your plugin -./gradlew runServer - -# Run unit tests -./gradlew test - -# Clean test server -rm -rf run/ -``` - -### Debugging - -```bash -# Run server in debug mode -./gradlew runServer -Pdebug - -# Then connect your IDE debugger to localhost:5005 -``` - ---- - -## Customization - -### Adding Dependencies - -Edit `build.gradle`: - -```groovy -dependencies { - // Hytale API (provided by server) - compileOnly(files("./HytaleServer.jar")) - - // Your dependencies (will be bundled) - implementation("com.google.code.gson:gson:2.10.1") - - // Test dependencies - testImplementation("org.junit.jupiter:junit-jupiter:5.10.0") -} -``` - -### Configuring Server Testing - -**Run Hytale Server** - A Gradle plugin to download and run a Hytale server for development and testing purposes. The server files will be located in the `run/` directory of the project. Before starting the server it will compile (shadowJar task) and copy the plugin jar to the server's `mods/` folder. - -**Usage:** - -Edit `build.gradle`: - -```groovy -runHytale { - jarUrl = "url to hytale server jar" -} -``` - -Run the server with: - -```bash -# Windows -gradlew.bat runServer - -# Linux/Mac -./gradlew runServer -``` - -**Features:** - -- ✅ Automatic server JAR download and caching -- ✅ Compiles and deploys your plugin automatically -- ✅ Starts server with interactive console -- ✅ One-command workflow: `./gradlew runServer` -- ✅ Server files in `run/` directory (gitignored) - -### Implementing Your Plugin - -**Recommended folder structure:** - -``` -src/main/java/com/yourname/yourplugin/ -├── YourPlugin.java # Main class -├── commands/ # Commands -├── listeners/ # Event listeners -├── services/ # Business logic -├── storage/ # Data persistence -├── config/ # Configuration -└── utils/ # Utilities -``` - -**See our documentation for examples:** - -- [Getting Started with Plugins](https://britakee-studios.gitbook.io/hytale-modding-documentation/plugins-java-development/07-getting-started-with-plugins) -- [Advanced Plugin Patterns](https://britakee-studios.gitbook.io/hytale-modding-documentation/plugins-java-development/12-advanced-plugin-patterns) -- [Common Plugin Features](https://britakee-studios.gitbook.io/hytale-modding-documentation/plugins-java-development/14-common-plugin-features) - ---- - -## CI/CD - -This template includes a GitHub Actions workflow that: - -1. ✅ Builds your plugin on every push -2. ✅ Runs tests -3. ✅ Uploads artifacts -4. ✅ Creates releases (when you tag) - -### Creating a Release - -```bash -git tag v1.0.0 -git push origin v1.0.0 -``` - -GitHub Actions will automatically build and create a release with your plugin JAR. - ---- - -## Best Practices - -### ✅ DO: - -- Use the Service-Storage pattern for data management -- Write unit tests for your business logic -- Use structured logging (not `System.out.println`) -- Handle errors gracefully -- Document your public API -- Version your releases semantically (1.0.0, 1.1.0, etc.) - -### ❌ DON'T: - -- Hardcode configuration values -- Block the main thread with heavy operations -- Ignore exceptions -- Use deprecated APIs -- Commit sensitive data (API keys, passwords) - ---- - -## Troubleshooting - -### Build Fails - -```bash -# Clean and rebuild -./gradlew clean build --refresh-dependencies -``` - -### Server Won't Start - -1. Check that `jarUrl` in `build.gradle` is correct -2. Verify Java 25 is installed: `java -version` -3. Check logs in `run/logs/` - -### Plugin Not Loading - -1. Verify `manifest.json` has correct `Main` class -2. Check server logs for errors -3. Ensure all dependencies are bundled in JAR - ---- - -## Documentation - -For detailed guides on plugin development, see: - -- [Hytale Modding Documentation](https://github.com/yourusername/hytale-modding/tree/main/Documentation) -- [Getting Started with Plugins](../Documentation/07-getting-started-with-plugins.md) -- [Advanced Plugin Patterns](../Documentation/12-advanced-plugin-patterns.md) -- [Common Plugin Features](../Documentation/14-common-plugin-features.md) - ---- - -## Contributing - -Contributions are welcome! Please: - -1. Fork the repository -2. Create a feature branch -3. Make your changes -4. Submit a pull request - ---- - -## License - -This template is released under the MIT License. You are free to use it for any purpose. - ---- - -## Support - -- **Issues:** [GitHub Issues](https://github.com/yourusername/hytale-plugin-template/issues) -- **Documentation:** [Hytale Modding Docs](https://github.com/yourusername/hytale-modding) -- **Community:** Join the Hytale modding community - ---- - -## Credits - -Created by the Hytale modding community. - -Based on best practices from production Hytale plugins. - ---- - -**Happy Modding! 🎮** +- `../core-control-plane` owns the Laravel API and the SDK sync commands. +- `core-network` consumes the generated Java tree and will host the gameplay-facing wrappers around it. diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/ControlPlaneApiV1.java b/src/main/java/net/kewwbec/network/generated/api/v1/ControlPlaneApiV1.java new file mode 100644 index 0000000..25a44e2 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/ControlPlaneApiV1.java @@ -0,0 +1,95 @@ +package net.kewwbec.network.generated.api.v1; + +import net.kewwbec.network.generated.api.v1.announcements.AnnouncementsApi; +import net.kewwbec.network.generated.api.v1.audit.AuditApi; +import net.kewwbec.network.generated.api.v1.health.HealthApi; +import net.kewwbec.network.generated.api.v1.infrastructure.InfrastructureApi; +import net.kewwbec.network.generated.api.v1.integrations.IntegrationsApi; +import net.kewwbec.network.generated.api.v1.moderation.ModerationApi; +import net.kewwbec.network.generated.api.v1.players.PlayersApi; +import net.kewwbec.network.generated.api.v1.plugins.PluginsApi; +import net.kewwbec.network.generated.api.v1.server.ServerApi; +import net.kewwbec.network.generated.api.v1.serviceaccounts.ServiceAccountsApi; +import net.kewwbec.network.generated.api.v1.social.SocialApi; +import net.kewwbec.network.generated.api.v1.support.SupportApi; + +public final class ControlPlaneApiV1 { + public static final ControlPlaneApiV1 INSTANCE = new ControlPlaneApiV1(); + + private static final String API_VERSION = "v1"; + private static final String BASE_PATH = "/api/v1"; + private static final String FINGERPRINT = "4dfbb2630cab5693fcc6f310408442201b6a4881f60a582d04fc2d6d05c45420"; + private static final int DOMAIN_COUNT = 12; + private static final int ENDPOINT_COUNT = 69; + + private ControlPlaneApiV1() { + } + + public String apiVersion() { + return API_VERSION; + } + + public String basePath() { + return BASE_PATH; + } + + public String fingerprint() { + return FINGERPRINT; + } + + public int domainCount() { + return DOMAIN_COUNT; + } + + public int endpointCount() { + return ENDPOINT_COUNT; + } + + public AnnouncementsApi announcements() { + return AnnouncementsApi.INSTANCE; + } + + public AuditApi audit() { + return AuditApi.INSTANCE; + } + + public HealthApi health() { + return HealthApi.INSTANCE; + } + + public InfrastructureApi infrastructure() { + return InfrastructureApi.INSTANCE; + } + + public IntegrationsApi integrations() { + return IntegrationsApi.INSTANCE; + } + + public ModerationApi moderation() { + return ModerationApi.INSTANCE; + } + + public PlayersApi players() { + return PlayersApi.INSTANCE; + } + + public PluginsApi plugins() { + return PluginsApi.INSTANCE; + } + + public ServerApi server() { + return ServerApi.INSTANCE; + } + + public ServiceAccountsApi serviceAccounts() { + return ServiceAccountsApi.INSTANCE; + } + + public SocialApi social() { + return SocialApi.INSTANCE; + } + + public SupportApi support() { + return SupportApi.INSTANCE; + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/announcements/ActiveEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/announcements/ActiveEndpoint.java new file mode 100644 index 0000000..52579e0 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/announcements/ActiveEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.announcements; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class ActiveEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.announcements.active", + List.of("GET"), + "/api/v1/announcements/active", + List.of("announcements.read"), + List.of("api", "auth:sanctum", "service.abilities:announcements.read"), + List.of(), + new RequestDescriptor("App\\Domains\\Announcements\\Http\\Requests\\ListActiveAnnouncementsRequest", "query", List.of(new RequestField("audience", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"network\",\"server\",\"website\",\"player_portal\""))), new RequestField("limit", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "integer"), new RuleDescriptor("string", null, "min:1"), new RuleDescriptor("string", null, "max:100"))))), + new ResponseDescriptor("json_resource", new TypeDescriptor("Illuminate\\Http\\Resources\\Json\\AnonymousResourceCollection", false, false)) + ) + ; + + private ActiveEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/announcements/AnnouncementsApi.java b/src/main/java/net/kewwbec/network/generated/api/v1/announcements/AnnouncementsApi.java new file mode 100644 index 0000000..db02b27 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/announcements/AnnouncementsApi.java @@ -0,0 +1,41 @@ +package net.kewwbec.network.generated.api.v1.announcements; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; + +public final class AnnouncementsApi { + public static final AnnouncementsApi INSTANCE = new AnnouncementsApi(); + + private static final List ENDPOINTS = List.of( + ActiveEndpoint.VALUE + ); + + private AnnouncementsApi() { + } + + public String domain() { + return "announcements"; + } + + public int endpointCount() { + return ENDPOINTS.size(); + } + + public List endpoints() { + return ENDPOINTS; + } + + public ApiEndpoint endpoint(String routeName) { + for (ApiEndpoint endpoint : ENDPOINTS) { + if (endpoint.name().equals(routeName)) { + return endpoint; + } + } + + throw new IllegalArgumentException("Unknown route: " + routeName); + } + + public ApiEndpoint active() { + return ActiveEndpoint.VALUE; + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/audit/AuditApi.java b/src/main/java/net/kewwbec/network/generated/api/v1/audit/AuditApi.java new file mode 100644 index 0000000..8eeeedc --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/audit/AuditApi.java @@ -0,0 +1,41 @@ +package net.kewwbec.network.generated.api.v1.audit; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; + +public final class AuditApi { + public static final AuditApi INSTANCE = new AuditApi(); + + private static final List ENDPOINTS = List.of( + EventsIndexEndpoint.VALUE + ); + + private AuditApi() { + } + + public String domain() { + return "audit"; + } + + public int endpointCount() { + return ENDPOINTS.size(); + } + + public List endpoints() { + return ENDPOINTS; + } + + public ApiEndpoint endpoint(String routeName) { + for (ApiEndpoint endpoint : ENDPOINTS) { + if (endpoint.name().equals(routeName)) { + return endpoint; + } + } + + throw new IllegalArgumentException("Unknown route: " + routeName); + } + + public ApiEndpoint eventsIndex() { + return EventsIndexEndpoint.VALUE; + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/audit/EventsIndexEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/audit/EventsIndexEndpoint.java new file mode 100644 index 0000000..02f1942 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/audit/EventsIndexEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.audit; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class EventsIndexEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.audit.events.index", + List.of("GET"), + "/api/v1/audit/events", + List.of("audit-events.read"), + List.of("api", "auth:sanctum", "service.abilities:audit-events.read"), + List.of(), + new RequestDescriptor("App\\Domains\\Audit\\Http\\Requests\\ListAuditEventsRequest", "query", List.of(new RequestField("action", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:255"))), new RequestField("actor_type", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:255"))), new RequestField("actor_id", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:255"))), new RequestField("target_type", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:255"))), new RequestField("target_id", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:255"))), new RequestField("limit", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "integer"), new RuleDescriptor("string", null, "min:1"), new RuleDescriptor("string", null, "max:100"))))), + new ResponseDescriptor("json_resource", new TypeDescriptor("Illuminate\\Http\\Resources\\Json\\AnonymousResourceCollection", false, false)) + ) + ; + + private EventsIndexEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/health/HealthApi.java b/src/main/java/net/kewwbec/network/generated/api/v1/health/HealthApi.java new file mode 100644 index 0000000..d0bbaac --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/health/HealthApi.java @@ -0,0 +1,41 @@ +package net.kewwbec.network.generated.api.v1.health; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; + +public final class HealthApi { + public static final HealthApi INSTANCE = new HealthApi(); + + private static final List ENDPOINTS = List.of( + HealthEndpoint.VALUE + ); + + private HealthApi() { + } + + public String domain() { + return "health"; + } + + public int endpointCount() { + return ENDPOINTS.size(); + } + + public List endpoints() { + return ENDPOINTS; + } + + public ApiEndpoint endpoint(String routeName) { + for (ApiEndpoint endpoint : ENDPOINTS) { + if (endpoint.name().equals(routeName)) { + return endpoint; + } + } + + throw new IllegalArgumentException("Unknown route: " + routeName); + } + + public ApiEndpoint health() { + return HealthEndpoint.VALUE; + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/health/HealthEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/health/HealthEndpoint.java new file mode 100644 index 0000000..e4eebea --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/health/HealthEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.health; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class HealthEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.health", + List.of("GET"), + "/api/v1/health", + List.of(), + List.of("api"), + List.of(), + null, + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private HealthEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/infrastructure/InfrastructureApi.java b/src/main/java/net/kewwbec/network/generated/api/v1/infrastructure/InfrastructureApi.java new file mode 100644 index 0000000..8f8c015 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/infrastructure/InfrastructureApi.java @@ -0,0 +1,61 @@ +package net.kewwbec.network.generated.api.v1.infrastructure; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; + +public final class InfrastructureApi { + public static final InfrastructureApi INSTANCE = new InfrastructureApi(); + + private static final List ENDPOINTS = List.of( + ServerInstancesPresenceIndexEndpoint.VALUE, + ServerTemplatesIndexEndpoint.VALUE, + ServerTemplatesShowEndpoint.VALUE, + ServerTemplatesStoreEndpoint.VALUE, + ServerTemplatesUpdateEndpoint.VALUE + ); + + private InfrastructureApi() { + } + + public String domain() { + return "infrastructure"; + } + + public int endpointCount() { + return ENDPOINTS.size(); + } + + public List endpoints() { + return ENDPOINTS; + } + + public ApiEndpoint endpoint(String routeName) { + for (ApiEndpoint endpoint : ENDPOINTS) { + if (endpoint.name().equals(routeName)) { + return endpoint; + } + } + + throw new IllegalArgumentException("Unknown route: " + routeName); + } + + public ApiEndpoint serverInstancesPresenceIndex() { + return ServerInstancesPresenceIndexEndpoint.VALUE; + } + + public ApiEndpoint serverTemplatesIndex() { + return ServerTemplatesIndexEndpoint.VALUE; + } + + public ApiEndpoint serverTemplatesShow() { + return ServerTemplatesShowEndpoint.VALUE; + } + + public ApiEndpoint serverTemplatesStore() { + return ServerTemplatesStoreEndpoint.VALUE; + } + + public ApiEndpoint serverTemplatesUpdate() { + return ServerTemplatesUpdateEndpoint.VALUE; + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/infrastructure/ServerInstancesPresenceIndexEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/infrastructure/ServerInstancesPresenceIndexEndpoint.java new file mode 100644 index 0000000..53879df --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/infrastructure/ServerInstancesPresenceIndexEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.infrastructure; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class ServerInstancesPresenceIndexEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.infrastructure.server-instances.presence.index", + List.of("GET"), + "/api/v1/infrastructure/server-instances/presence", + List.of("presence.read"), + List.of("api", "auth:sanctum", "service.abilities:presence.read"), + List.of(), + new RequestDescriptor("App\\Domains\\Infrastructure\\Http\\Requests\\ListServerPresenceRequest", "query", List.of(new RequestField("region", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:100"))), new RequestField("template", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:150"))), new RequestField("category", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:100"))), new RequestField("status", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"provisioning\",\"starting\",\"running\",\"draining\",\"stopped\",\"unhealthy\""))), new RequestField("presence_state", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"online\",\"missing\",\"any\""))), new RequestField("has_capacity", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "boolean"))), new RequestField("limit", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "integer"), new RuleDescriptor("string", null, "min:1"), new RuleDescriptor("string", null, "max:100"))))), + new ResponseDescriptor("json_resource", new TypeDescriptor("Illuminate\\Http\\Resources\\Json\\AnonymousResourceCollection", false, false)) + ) + ; + + private ServerInstancesPresenceIndexEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/infrastructure/ServerTemplatesIndexEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/infrastructure/ServerTemplatesIndexEndpoint.java new file mode 100644 index 0000000..5a19156 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/infrastructure/ServerTemplatesIndexEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.infrastructure; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class ServerTemplatesIndexEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.infrastructure.server-templates.index", + List.of("GET"), + "/api/v1/infrastructure/server-templates", + List.of("server-templates.read"), + List.of("api", "auth:sanctum", "service.abilities:server-templates.read"), + List.of(), + new RequestDescriptor("App\\Domains\\Infrastructure\\Http\\Requests\\ListServerTemplatesRequest", "query", List.of(new RequestField("region_key", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:regions,key"))), new RequestField("category", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:100"))), new RequestField("lifecycle_strategy", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"manual\",\"static\",\"elastic\""))), new RequestField("is_active", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "boolean"))), new RequestField("limit", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "integer"), new RuleDescriptor("string", null, "min:1"), new RuleDescriptor("string", null, "max:100"))))), + new ResponseDescriptor("json_resource", new TypeDescriptor("Illuminate\\Http\\Resources\\Json\\AnonymousResourceCollection", false, false)) + ) + ; + + private ServerTemplatesIndexEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/infrastructure/ServerTemplatesShowEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/infrastructure/ServerTemplatesShowEndpoint.java new file mode 100644 index 0000000..395c1a2 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/infrastructure/ServerTemplatesShowEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.infrastructure; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class ServerTemplatesShowEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.infrastructure.server-templates.show", + List.of("GET"), + "/api/v1/infrastructure/server-templates/{serverTemplate}", + List.of("server-templates.read"), + List.of("api", "auth:sanctum", "service.abilities:server-templates.read"), + List.of(new RouteParameter("serverTemplate", new TypeDescriptor("App\\Domains\\Infrastructure\\Models\\ServerTemplate", false, false))), + null, + new ResponseDescriptor("json_resource", new TypeDescriptor("App\\Domains\\Infrastructure\\Resources\\ServerTemplateResource", false, false)) + ) + ; + + private ServerTemplatesShowEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/infrastructure/ServerTemplatesStoreEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/infrastructure/ServerTemplatesStoreEndpoint.java new file mode 100644 index 0000000..5f16dde --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/infrastructure/ServerTemplatesStoreEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.infrastructure; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class ServerTemplatesStoreEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.infrastructure.server-templates.store", + List.of("POST"), + "/api/v1/infrastructure/server-templates", + List.of("server-templates.write"), + List.of("api", "auth:sanctum", "service.abilities:server-templates.write"), + List.of(), + new RequestDescriptor("App\\Domains\\Infrastructure\\Http\\Requests\\StoreServerTemplateRequest", "body", List.of(new RequestField("region_key", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:regions,key"))), new RequestField("key", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:150"), new RuleDescriptor("string", null, "regex:/^[a-z0-9._-]+$/"), new RuleDescriptor("string", null, "unique:server_templates,key"))), new RequestField("name", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:120"))), new RequestField("category", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:100"))), new RequestField("lifecycle_strategy", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"manual\",\"static\",\"elastic\""))), new RequestField("version", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:80"))), new RequestField("max_players", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "integer"), new RuleDescriptor("string", null, "min:0"))), new RequestField("is_active", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "boolean"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private ServerTemplatesStoreEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/infrastructure/ServerTemplatesUpdateEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/infrastructure/ServerTemplatesUpdateEndpoint.java new file mode 100644 index 0000000..ec2f117 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/infrastructure/ServerTemplatesUpdateEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.infrastructure; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class ServerTemplatesUpdateEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.infrastructure.server-templates.update", + List.of("PATCH"), + "/api/v1/infrastructure/server-templates/{serverTemplate}", + List.of("server-templates.write"), + List.of("api", "auth:sanctum", "service.abilities:server-templates.write"), + List.of(new RouteParameter("serverTemplate", new TypeDescriptor("App\\Domains\\Infrastructure\\Models\\ServerTemplate", false, false))), + new RequestDescriptor("App\\Domains\\Infrastructure\\Http\\Requests\\UpdateServerTemplateRequest", "body", List.of(new RequestField("region_key", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:regions,key"))), new RequestField("key", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:150"), new RuleDescriptor("string", null, "regex:/^[a-z0-9._-]+$/"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\Unique", "unique:server_templates,key,NULL,id"))), new RequestField("name", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:120"))), new RequestField("category", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:100"))), new RequestField("lifecycle_strategy", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"manual\",\"static\",\"elastic\""))), new RequestField("version", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:80"))), new RequestField("max_players", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "integer"), new RuleDescriptor("string", null, "min:0"))), new RequestField("is_active", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "boolean"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private ServerTemplatesUpdateEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/integrations/IndexEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/integrations/IndexEndpoint.java new file mode 100644 index 0000000..155224c --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/integrations/IndexEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.integrations; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class IndexEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.integrations.index", + List.of("GET"), + "/api/v1/integrations", + List.of("integrations.read"), + List.of("api", "auth:sanctum", "service.abilities:integrations.read"), + List.of(), + new RequestDescriptor("App\\Domains\\Integrations\\Http\\Requests\\ListIntegrationsRequest", "query", List.of(new RequestField("driver", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"discord\",\"website\",\"webhook\",\"commerce\",\"analytics\",\"internal_tool\""))), new RequestField("direction", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"inbound\",\"outbound\",\"bidirectional\""))), new RequestField("status", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"active\",\"paused\",\"error\",\"retired\""))), new RequestField("limit", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "integer"), new RuleDescriptor("string", null, "min:1"), new RuleDescriptor("string", null, "max:100"))))), + new ResponseDescriptor("json_resource", new TypeDescriptor("Illuminate\\Http\\Resources\\Json\\AnonymousResourceCollection", false, false)) + ) + ; + + private IndexEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/integrations/IntegrationsApi.java b/src/main/java/net/kewwbec/network/generated/api/v1/integrations/IntegrationsApi.java new file mode 100644 index 0000000..e1496c5 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/integrations/IntegrationsApi.java @@ -0,0 +1,51 @@ +package net.kewwbec.network.generated.api.v1.integrations; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; + +public final class IntegrationsApi { + public static final IntegrationsApi INSTANCE = new IntegrationsApi(); + + private static final List ENDPOINTS = List.of( + IndexEndpoint.VALUE, + StoreEndpoint.VALUE, + UpdateEndpoint.VALUE + ); + + private IntegrationsApi() { + } + + public String domain() { + return "integrations"; + } + + public int endpointCount() { + return ENDPOINTS.size(); + } + + public List endpoints() { + return ENDPOINTS; + } + + public ApiEndpoint endpoint(String routeName) { + for (ApiEndpoint endpoint : ENDPOINTS) { + if (endpoint.name().equals(routeName)) { + return endpoint; + } + } + + throw new IllegalArgumentException("Unknown route: " + routeName); + } + + public ApiEndpoint index() { + return IndexEndpoint.VALUE; + } + + public ApiEndpoint store() { + return StoreEndpoint.VALUE; + } + + public ApiEndpoint update() { + return UpdateEndpoint.VALUE; + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/integrations/StoreEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/integrations/StoreEndpoint.java new file mode 100644 index 0000000..1cd3c6c --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/integrations/StoreEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.integrations; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class StoreEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.integrations.store", + List.of("POST"), + "/api/v1/integrations", + List.of("integrations.write"), + List.of("api", "auth:sanctum", "service.abilities:integrations.write"), + List.of(), + new RequestDescriptor("App\\Domains\\Integrations\\Http\\Requests\\StoreIntegrationRequest", "body", List.of(new RequestField("key", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:100"), new RuleDescriptor("string", null, "unique:integrations,key"))), new RequestField("name", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:255"))), new RequestField("driver", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"discord\",\"website\",\"webhook\",\"commerce\",\"analytics\",\"internal_tool\""))), new RequestField("direction", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"inbound\",\"outbound\",\"bidirectional\""))), new RequestField("status", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"active\",\"paused\",\"error\",\"retired\""))), new RequestField("endpoint", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:255"))), new RequestField("secret_reference", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:255"))), new RequestField("last_sync_at", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private StoreEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/integrations/UpdateEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/integrations/UpdateEndpoint.java new file mode 100644 index 0000000..5d8d3d7 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/integrations/UpdateEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.integrations; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class UpdateEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.integrations.update", + List.of("PATCH"), + "/api/v1/integrations/{integration}", + List.of("integrations.write"), + List.of("api", "auth:sanctum", "service.abilities:integrations.write"), + List.of(new RouteParameter("integration", new TypeDescriptor("App\\Domains\\Integrations\\Models\\Integration", false, false))), + new RequestDescriptor("App\\Domains\\Integrations\\Http\\Requests\\UpdateIntegrationRequest", "body", List.of(new RequestField("name", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:255"))), new RequestField("driver", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"discord\",\"website\",\"webhook\",\"commerce\",\"analytics\",\"internal_tool\""))), new RequestField("direction", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"inbound\",\"outbound\",\"bidirectional\""))), new RequestField("status", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"active\",\"paused\",\"error\",\"retired\""))), new RequestField("endpoint", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:255"))), new RequestField("secret_reference", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:255"))), new RequestField("last_sync_at", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("last_error_at", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("last_error_summary", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private UpdateEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesAppealsStoreEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesAppealsStoreEndpoint.java new file mode 100644 index 0000000..9839324 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesAppealsStoreEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.moderation; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class CasesAppealsStoreEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.moderation.cases.appeals.store", + List.of("POST"), + "/api/v1/moderation/cases/{moderationCase}/appeals", + List.of("moderation.cases.write"), + List.of("api", "auth:sanctum", "service.abilities:moderation.cases.write"), + List.of(new RouteParameter("moderationCase", new TypeDescriptor("App\\Domains\\Moderation\\Models\\ModerationCase", false, false))), + new RequestDescriptor("App\\Domains\\Moderation\\Http\\Requests\\StoreModerationCaseAppealRequest", "body", List.of(new RequestField("submitted_by_player_id", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("reason", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"))), new RequestField("submitted_at", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private CasesAppealsStoreEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesEvidenceStoreEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesEvidenceStoreEndpoint.java new file mode 100644 index 0000000..d0a8998 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesEvidenceStoreEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.moderation; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class CasesEvidenceStoreEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.moderation.cases.evidence.store", + List.of("POST"), + "/api/v1/moderation/cases/{moderationCase}/evidence", + List.of("moderation.cases.write"), + List.of("api", "auth:sanctum", "service.abilities:moderation.cases.write"), + List.of(new RouteParameter("moderationCase", new TypeDescriptor("App\\Domains\\Moderation\\Models\\ModerationCase", false, false))), + new RequestDescriptor("App\\Domains\\Moderation\\Http\\Requests\\StoreModerationCaseEvidenceRequest", "body", List.of(new RequestField("kind", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"chat_log\",\"screenshot\",\"video\",\"external_link\",\"note\""))), new RequestField("headline", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:255"))), new RequestField("summary", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"))), new RequestField("storage_driver", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:100"))), new RequestField("storage_reference", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:1000"))), new RequestField("submitted_at", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private CasesEvidenceStoreEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesIndexEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesIndexEndpoint.java new file mode 100644 index 0000000..02a0f7b --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesIndexEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.moderation; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class CasesIndexEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.moderation.cases.index", + List.of("GET"), + "/api/v1/moderation/cases", + List.of("moderation.cases.read"), + List.of("api", "auth:sanctum", "service.abilities:moderation.cases.read"), + List.of(), + new RequestDescriptor("App\\Domains\\Moderation\\Http\\Requests\\ListModerationCasesRequest", "query", List.of(new RequestField("status", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"open\",\"under_review\",\"resolved\",\"closed\""))), new RequestField("case_type", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"report\",\"investigation\",\"appeal\""))), new RequestField("priority", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"low\",\"normal\",\"high\",\"urgent\""))), new RequestField("subject_player_id", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("assigned_to_player_id", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("limit", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "integer"), new RuleDescriptor("string", null, "min:1"), new RuleDescriptor("string", null, "max:100"))))), + new ResponseDescriptor("json_resource", new TypeDescriptor("Illuminate\\Http\\Resources\\Json\\AnonymousResourceCollection", false, false)) + ) + ; + + private CasesIndexEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesPunishmentsStoreEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesPunishmentsStoreEndpoint.java new file mode 100644 index 0000000..1821b69 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesPunishmentsStoreEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.moderation; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class CasesPunishmentsStoreEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.moderation.cases.punishments.store", + List.of("POST"), + "/api/v1/moderation/cases/{moderationCase}/punishments", + List.of("moderation.cases.write"), + List.of("api", "auth:sanctum", "service.abilities:moderation.cases.write"), + List.of(new RouteParameter("moderationCase", new TypeDescriptor("App\\Domains\\Moderation\\Models\\ModerationCase", false, false))), + new RequestDescriptor("App\\Domains\\Moderation\\Http\\Requests\\StoreModerationPunishmentRequest", "body", List.of(new RequestField("punishment_type", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"warning\",\"mute\",\"suspension\",\"ban\""))), new RequestField("reason", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"))), new RequestField("starts_at", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("ends_at", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private CasesPunishmentsStoreEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesPunishmentsUpdateEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesPunishmentsUpdateEndpoint.java new file mode 100644 index 0000000..8cf8722 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesPunishmentsUpdateEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.moderation; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class CasesPunishmentsUpdateEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.moderation.cases.punishments.update", + List.of("PATCH"), + "/api/v1/moderation/cases/{moderationCase}/punishments/{punishment}", + List.of("moderation.cases.write"), + List.of("api", "auth:sanctum", "service.abilities:moderation.cases.write"), + List.of(new RouteParameter("moderationCase", new TypeDescriptor("App\\Domains\\Moderation\\Models\\ModerationCase", false, false)), new RouteParameter("punishment", new TypeDescriptor("App\\Domains\\Moderation\\Models\\ModerationPunishment", false, false))), + new RequestDescriptor("App\\Domains\\Moderation\\Http\\Requests\\RevokeModerationPunishmentRequest", "body", List.of(new RequestField("revoked_reason", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"))), new RequestField("revoked_at", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private CasesPunishmentsUpdateEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesReopenEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesReopenEndpoint.java new file mode 100644 index 0000000..695d6a8 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesReopenEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.moderation; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class CasesReopenEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.moderation.cases.reopen", + List.of("POST"), + "/api/v1/moderation/cases/{moderationCase}/reopen", + List.of("moderation.cases.write"), + List.of("api", "auth:sanctum", "service.abilities:moderation.cases.write"), + List.of(new RouteParameter("moderationCase", new TypeDescriptor("App\\Domains\\Moderation\\Models\\ModerationCase", false, false))), + new RequestDescriptor("App\\Domains\\Moderation\\Http\\Requests\\ReopenModerationCaseRequest", "body", List.of(new RequestField("reason", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"))), new RequestField("status", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"open\",\"under_review\""))), new RequestField("summary", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"))), new RequestField("assigned_to_player_id", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("reopened_at", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private CasesReopenEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesShowEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesShowEndpoint.java new file mode 100644 index 0000000..b5ce0fa --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesShowEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.moderation; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class CasesShowEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.moderation.cases.show", + List.of("GET"), + "/api/v1/moderation/cases/{moderationCase}", + List.of("moderation.cases.read"), + List.of("api", "auth:sanctum", "service.abilities:moderation.cases.read"), + List.of(new RouteParameter("moderationCase", new TypeDescriptor("App\\Domains\\Moderation\\Models\\ModerationCase", false, false))), + null, + new ResponseDescriptor("json_resource", new TypeDescriptor("App\\Domains\\Moderation\\Resources\\ModerationCaseResource", false, false)) + ) + ; + + private CasesShowEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesStoreEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesStoreEndpoint.java new file mode 100644 index 0000000..6b9218c --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesStoreEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.moderation; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class CasesStoreEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.moderation.cases.store", + List.of("POST"), + "/api/v1/moderation/cases", + List.of("moderation.cases.write"), + List.of("api", "auth:sanctum", "service.abilities:moderation.cases.write"), + List.of(), + new RequestDescriptor("App\\Domains\\Moderation\\Http\\Requests\\StoreModerationCaseRequest", "body", List.of(new RequestField("case_type", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"report\",\"investigation\",\"appeal\""))), new RequestField("priority", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"low\",\"normal\",\"high\",\"urgent\""))), new RequestField("subject_player_id", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("reported_by_player_id", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("assigned_to_player_id", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("title", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:255"))), new RequestField("summary", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"))), new RequestField("incident_occurred_at", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private CasesStoreEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesUpdateEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesUpdateEndpoint.java new file mode 100644 index 0000000..9e6dcff --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/moderation/CasesUpdateEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.moderation; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class CasesUpdateEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.moderation.cases.update", + List.of("PATCH"), + "/api/v1/moderation/cases/{moderationCase}", + List.of("moderation.cases.write"), + List.of("api", "auth:sanctum", "service.abilities:moderation.cases.write"), + List.of(new RouteParameter("moderationCase", new TypeDescriptor("App\\Domains\\Moderation\\Models\\ModerationCase", false, false))), + new RequestDescriptor("App\\Domains\\Moderation\\Http\\Requests\\UpdateModerationCaseRequest", "body", List.of(new RequestField("status", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"open\",\"under_review\",\"resolved\",\"closed\""))), new RequestField("priority", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"low\",\"normal\",\"high\",\"urgent\""))), new RequestField("assigned_to_player_id", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("summary", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"))), new RequestField("resolution_summary", List.of(new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\RequiredIf", ""), new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"))), new RequestField("last_reviewed_at", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("resolved_at", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private CasesUpdateEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/moderation/ModerationApi.java b/src/main/java/net/kewwbec/network/generated/api/v1/moderation/ModerationApi.java new file mode 100644 index 0000000..6d39e97 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/moderation/ModerationApi.java @@ -0,0 +1,81 @@ +package net.kewwbec.network.generated.api.v1.moderation; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; + +public final class ModerationApi { + public static final ModerationApi INSTANCE = new ModerationApi(); + + private static final List ENDPOINTS = List.of( + CasesAppealsStoreEndpoint.VALUE, + CasesEvidenceStoreEndpoint.VALUE, + CasesIndexEndpoint.VALUE, + CasesPunishmentsStoreEndpoint.VALUE, + CasesPunishmentsUpdateEndpoint.VALUE, + CasesReopenEndpoint.VALUE, + CasesShowEndpoint.VALUE, + CasesStoreEndpoint.VALUE, + CasesUpdateEndpoint.VALUE + ); + + private ModerationApi() { + } + + public String domain() { + return "moderation"; + } + + public int endpointCount() { + return ENDPOINTS.size(); + } + + public List endpoints() { + return ENDPOINTS; + } + + public ApiEndpoint endpoint(String routeName) { + for (ApiEndpoint endpoint : ENDPOINTS) { + if (endpoint.name().equals(routeName)) { + return endpoint; + } + } + + throw new IllegalArgumentException("Unknown route: " + routeName); + } + + public ApiEndpoint casesAppealsStore() { + return CasesAppealsStoreEndpoint.VALUE; + } + + public ApiEndpoint casesEvidenceStore() { + return CasesEvidenceStoreEndpoint.VALUE; + } + + public ApiEndpoint casesIndex() { + return CasesIndexEndpoint.VALUE; + } + + public ApiEndpoint casesPunishmentsStore() { + return CasesPunishmentsStoreEndpoint.VALUE; + } + + public ApiEndpoint casesPunishmentsUpdate() { + return CasesPunishmentsUpdateEndpoint.VALUE; + } + + public ApiEndpoint casesReopen() { + return CasesReopenEndpoint.VALUE; + } + + public ApiEndpoint casesShow() { + return CasesShowEndpoint.VALUE; + } + + public ApiEndpoint casesStore() { + return CasesStoreEndpoint.VALUE; + } + + public ApiEndpoint casesUpdate() { + return CasesUpdateEndpoint.VALUE; + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/players/NotificationsIndexEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/players/NotificationsIndexEndpoint.java new file mode 100644 index 0000000..681d1f0 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/players/NotificationsIndexEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.players; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class NotificationsIndexEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.players.notifications.index", + List.of("GET"), + "/api/v1/players/{player}/notifications", + List.of("notifications.read"), + List.of("api", "auth:sanctum", "service.abilities:notifications.read"), + List.of(new RouteParameter("player", new TypeDescriptor("App\\Domains\\Identity\\Models\\Player", false, false))), + new RequestDescriptor("App\\Domains\\Notifications\\Http\\Requests\\ListPlayerNotificationsRequest", "query", List.of(new RequestField("status", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"unread\",\"read\",\"archived\""))), new RequestField("limit", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "integer"), new RuleDescriptor("string", null, "min:1"), new RuleDescriptor("string", null, "max:100"))))), + new ResponseDescriptor("json_resource", new TypeDescriptor("Illuminate\\Http\\Resources\\Json\\AnonymousResourceCollection", false, false)) + ) + ; + + private NotificationsIndexEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/players/NotificationsReadEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/players/NotificationsReadEndpoint.java new file mode 100644 index 0000000..cecdbd7 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/players/NotificationsReadEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.players; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class NotificationsReadEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.players.notifications.read", + List.of("PATCH"), + "/api/v1/players/{player}/notifications/{notification}/read", + List.of("notifications.write"), + List.of("api", "auth:sanctum", "service.abilities:notifications.write"), + List.of(new RouteParameter("player", new TypeDescriptor("App\\Domains\\Identity\\Models\\Player", false, false)), new RouteParameter("notification", new TypeDescriptor("App\\Domains\\Notifications\\Models\\PlayerNotification", false, false))), + null, + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private NotificationsReadEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/players/NotificationsStoreEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/players/NotificationsStoreEndpoint.java new file mode 100644 index 0000000..6424a2e --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/players/NotificationsStoreEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.players; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class NotificationsStoreEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.players.notifications.store", + List.of("POST"), + "/api/v1/players/{player}/notifications", + List.of("notifications.write"), + List.of("api", "auth:sanctum", "service.abilities:notifications.write"), + List.of(new RouteParameter("player", new TypeDescriptor("App\\Domains\\Identity\\Models\\Player", false, false))), + new RequestDescriptor("App\\Domains\\Notifications\\Http\\Requests\\StorePlayerNotificationRequest", "body", List.of(new RequestField("type", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:100"))), new RequestField("title", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:255"))), new RequestField("body", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"))), new RequestField("priority", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"low\",\"normal\",\"high\""))), new RequestField("sent_at", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "date"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private NotificationsStoreEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/players/PlayersApi.java b/src/main/java/net/kewwbec/network/generated/api/v1/players/PlayersApi.java new file mode 100644 index 0000000..f11d042 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/players/PlayersApi.java @@ -0,0 +1,66 @@ +package net.kewwbec.network.generated.api.v1.players; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; + +public final class PlayersApi { + public static final PlayersApi INSTANCE = new PlayersApi(); + + private static final List ENDPOINTS = List.of( + NotificationsIndexEndpoint.VALUE, + NotificationsReadEndpoint.VALUE, + NotificationsStoreEndpoint.VALUE, + SessionProfileEndpoint.VALUE, + SocialGraphEndpoint.VALUE, + WebsiteProfileEndpoint.VALUE + ); + + private PlayersApi() { + } + + public String domain() { + return "players"; + } + + public int endpointCount() { + return ENDPOINTS.size(); + } + + public List endpoints() { + return ENDPOINTS; + } + + public ApiEndpoint endpoint(String routeName) { + for (ApiEndpoint endpoint : ENDPOINTS) { + if (endpoint.name().equals(routeName)) { + return endpoint; + } + } + + throw new IllegalArgumentException("Unknown route: " + routeName); + } + + public ApiEndpoint notificationsIndex() { + return NotificationsIndexEndpoint.VALUE; + } + + public ApiEndpoint notificationsRead() { + return NotificationsReadEndpoint.VALUE; + } + + public ApiEndpoint notificationsStore() { + return NotificationsStoreEndpoint.VALUE; + } + + public ApiEndpoint sessionProfile() { + return SessionProfileEndpoint.VALUE; + } + + public ApiEndpoint socialGraph() { + return SocialGraphEndpoint.VALUE; + } + + public ApiEndpoint websiteProfile() { + return WebsiteProfileEndpoint.VALUE; + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/players/SessionProfileEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/players/SessionProfileEndpoint.java new file mode 100644 index 0000000..dd27246 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/players/SessionProfileEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.players; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class SessionProfileEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.players.session-profile", + List.of("GET"), + "/api/v1/players/{player}/session-profile", + List.of("players.session-profile.read"), + List.of("api", "auth:sanctum", "service.abilities:players.session-profile.read"), + List.of(new RouteParameter("player", new TypeDescriptor("App\\Domains\\Identity\\Models\\Player", false, false))), + null, + new ResponseDescriptor("json_resource", new TypeDescriptor("App\\Domains\\Identity\\Resources\\PlayerSessionProfileResource", false, false)) + ) + ; + + private SessionProfileEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/players/SocialGraphEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/players/SocialGraphEndpoint.java new file mode 100644 index 0000000..1fc8906 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/players/SocialGraphEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.players; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class SocialGraphEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.players.social-graph", + List.of("GET"), + "/api/v1/players/{player}/social-graph", + List.of("social.read"), + List.of("api", "auth:sanctum", "service.abilities:social.read"), + List.of(new RouteParameter("player", new TypeDescriptor("App\\Domains\\Identity\\Models\\Player", false, false))), + null, + new ResponseDescriptor("json_resource", new TypeDescriptor("App\\Domains\\Social\\Resources\\PlayerSocialGraphResource", false, false)) + ) + ; + + private SocialGraphEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/players/WebsiteProfileEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/players/WebsiteProfileEndpoint.java new file mode 100644 index 0000000..5e5f5b6 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/players/WebsiteProfileEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.players; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class WebsiteProfileEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.players.website-profile", + List.of("GET"), + "/api/v1/players/{player}/website-profile", + List.of("players.website-profile.read"), + List.of("api", "auth:sanctum", "service.abilities:players.website-profile.read"), + List.of(new RouteParameter("player", new TypeDescriptor("App\\Domains\\Identity\\Models\\Player", false, false))), + null, + new ResponseDescriptor("json_resource", new TypeDescriptor("App\\Domains\\Identity\\Resources\\PlayerWebsiteProfileResource", false, false)) + ) + ; + + private WebsiteProfileEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/plugins/ConfigVersionsIndexEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/plugins/ConfigVersionsIndexEndpoint.java new file mode 100644 index 0000000..e21eb0f --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/plugins/ConfigVersionsIndexEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.plugins; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class ConfigVersionsIndexEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.plugins.config-versions.index", + List.of("GET"), + "/api/v1/plugins/{plugin}/config-versions", + List.of("plugins.read"), + List.of("api", "auth:sanctum", "service.abilities:plugins.read"), + List.of(new RouteParameter("plugin", new TypeDescriptor("App\\Domains\\Plugins\\Models\\Plugin", false, false))), + new RequestDescriptor("App\\Domains\\Plugins\\Http\\Requests\\ListPluginConfigVersionsRequest", "query", List.of(new RequestField("limit", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "integer"), new RuleDescriptor("string", null, "min:1"), new RuleDescriptor("string", null, "max:100"))))), + new ResponseDescriptor("json_resource", new TypeDescriptor("Illuminate\\Http\\Resources\\Json\\AnonymousResourceCollection", false, false)) + ) + ; + + private ConfigVersionsIndexEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/plugins/ConfigVersionsStoreEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/plugins/ConfigVersionsStoreEndpoint.java new file mode 100644 index 0000000..f03be05 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/plugins/ConfigVersionsStoreEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.plugins; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class ConfigVersionsStoreEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.plugins.config-versions.store", + List.of("POST"), + "/api/v1/plugins/{plugin}/config-versions", + List.of("plugins.deploy.write"), + List.of("api", "auth:sanctum", "service.abilities:plugins.deploy.write"), + List.of(new RouteParameter("plugin", new TypeDescriptor("App\\Domains\\Plugins\\Models\\Plugin", false, false))), + new RequestDescriptor("App\\Domains\\Plugins\\Http\\Requests\\StorePluginConfigVersionRequest", "body", List.of(new RequestField("version", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:255"))), new RequestField("format", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:100"))), new RequestField("content_driver", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:100"))), new RequestField("content_reference", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:2048"))), new RequestField("checksum", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:255"))), new RequestField("released_at", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private ConfigVersionsStoreEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/plugins/DeploymentsIndexEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/plugins/DeploymentsIndexEndpoint.java new file mode 100644 index 0000000..5cba695 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/plugins/DeploymentsIndexEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.plugins; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class DeploymentsIndexEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.plugins.deployments.index", + List.of("GET"), + "/api/v1/plugins/{plugin}/deployments", + List.of("plugins.read"), + List.of("api", "auth:sanctum", "service.abilities:plugins.read"), + List.of(new RouteParameter("plugin", new TypeDescriptor("App\\Domains\\Plugins\\Models\\Plugin", false, false))), + new RequestDescriptor("App\\Domains\\Plugins\\Http\\Requests\\ListPluginDeploymentHistoryRequest", "query", List.of(new RequestField("server_template", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:255"))), new RequestField("status", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"active\",\"superseded\",\"rolled_back\""))), new RequestField("limit", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "integer"), new RuleDescriptor("string", null, "min:1"), new RuleDescriptor("string", null, "max:100"))))), + new ResponseDescriptor("json_resource", new TypeDescriptor("Illuminate\\Http\\Resources\\Json\\AnonymousResourceCollection", false, false)) + ) + ; + + private DeploymentsIndexEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/plugins/DeploymentsRollbackEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/plugins/DeploymentsRollbackEndpoint.java new file mode 100644 index 0000000..f847717 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/plugins/DeploymentsRollbackEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.plugins; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class DeploymentsRollbackEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.plugins.deployments.rollback", + List.of("POST"), + "/api/v1/plugins/deployments/{pluginDeployment}/rollback", + List.of("plugins.deploy.write"), + List.of("api", "auth:sanctum", "service.abilities:plugins.deploy.write"), + List.of(new RouteParameter("pluginDeployment", new TypeDescriptor("App\\Domains\\Plugins\\Models\\PluginDeployment", false, false))), + new RequestDescriptor("App\\Domains\\Plugins\\Http\\Requests\\RollbackPluginDeploymentRequest", "body", List.of(new RequestField("reason", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"))), new RequestField("rolled_back_at", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private DeploymentsRollbackEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/plugins/DeploymentsStoreEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/plugins/DeploymentsStoreEndpoint.java new file mode 100644 index 0000000..1da2e29 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/plugins/DeploymentsStoreEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.plugins; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class DeploymentsStoreEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.plugins.deployments.store", + List.of("POST"), + "/api/v1/plugins/{plugin}/deployments", + List.of("plugins.deploy.write"), + List.of("api", "auth:sanctum", "service.abilities:plugins.deploy.write"), + List.of(new RouteParameter("plugin", new TypeDescriptor("App\\Domains\\Plugins\\Models\\Plugin", false, false))), + new RequestDescriptor("App\\Domains\\Plugins\\Http\\Requests\\StorePluginDeploymentRequest", "body", List.of(new RequestField("plugin_version_id", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:plugin_versions,id"))), new RequestField("plugin_config_version_id", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:plugin_config_versions,id"))), new RequestField("server_template_id", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:server_templates,id"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private DeploymentsStoreEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/plugins/IndexEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/plugins/IndexEndpoint.java new file mode 100644 index 0000000..0c1aa5c --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/plugins/IndexEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.plugins; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class IndexEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.plugins.index", + List.of("GET"), + "/api/v1/plugins", + List.of("plugins.read"), + List.of("api", "auth:sanctum", "service.abilities:plugins.read"), + List.of(), + null, + new ResponseDescriptor("json_resource", new TypeDescriptor("Illuminate\\Http\\Resources\\Json\\AnonymousResourceCollection", false, false)) + ) + ; + + private IndexEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/plugins/PluginsApi.java b/src/main/java/net/kewwbec/network/generated/api/v1/plugins/PluginsApi.java new file mode 100644 index 0000000..672c2da --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/plugins/PluginsApi.java @@ -0,0 +1,71 @@ +package net.kewwbec.network.generated.api.v1.plugins; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; + +public final class PluginsApi { + public static final PluginsApi INSTANCE = new PluginsApi(); + + private static final List ENDPOINTS = List.of( + ConfigVersionsIndexEndpoint.VALUE, + ConfigVersionsStoreEndpoint.VALUE, + DeploymentsIndexEndpoint.VALUE, + DeploymentsRollbackEndpoint.VALUE, + DeploymentsStoreEndpoint.VALUE, + IndexEndpoint.VALUE, + ShowEndpoint.VALUE + ); + + private PluginsApi() { + } + + public String domain() { + return "plugins"; + } + + public int endpointCount() { + return ENDPOINTS.size(); + } + + public List endpoints() { + return ENDPOINTS; + } + + public ApiEndpoint endpoint(String routeName) { + for (ApiEndpoint endpoint : ENDPOINTS) { + if (endpoint.name().equals(routeName)) { + return endpoint; + } + } + + throw new IllegalArgumentException("Unknown route: " + routeName); + } + + public ApiEndpoint configVersionsIndex() { + return ConfigVersionsIndexEndpoint.VALUE; + } + + public ApiEndpoint configVersionsStore() { + return ConfigVersionsStoreEndpoint.VALUE; + } + + public ApiEndpoint deploymentsIndex() { + return DeploymentsIndexEndpoint.VALUE; + } + + public ApiEndpoint deploymentsRollback() { + return DeploymentsRollbackEndpoint.VALUE; + } + + public ApiEndpoint deploymentsStore() { + return DeploymentsStoreEndpoint.VALUE; + } + + public ApiEndpoint index() { + return IndexEndpoint.VALUE; + } + + public ApiEndpoint show() { + return ShowEndpoint.VALUE; + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/plugins/ShowEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/plugins/ShowEndpoint.java new file mode 100644 index 0000000..a1a3a13 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/plugins/ShowEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.plugins; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class ShowEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.plugins.show", + List.of("GET"), + "/api/v1/plugins/{plugin}", + List.of("plugins.read"), + List.of("api", "auth:sanctum", "service.abilities:plugins.read"), + List.of(new RouteParameter("plugin", new TypeDescriptor("App\\Domains\\Plugins\\Models\\Plugin", false, false))), + null, + new ResponseDescriptor("json_resource", new TypeDescriptor("App\\Domains\\Plugins\\Resources\\PluginResource", false, false)) + ) + ; + + private ShowEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/server/InstancesHeartbeatEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/server/InstancesHeartbeatEndpoint.java new file mode 100644 index 0000000..288cdcd --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/server/InstancesHeartbeatEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.server; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class InstancesHeartbeatEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.server.instances.heartbeat", + List.of("POST"), + "/api/v1/server/instances/{instance}/heartbeat", + List.of("server-instance.heartbeat.write"), + List.of("api", "auth:sanctum", "service.abilities:server-instance.heartbeat.write", "service.instance:instance"), + List.of(new RouteParameter("instance", new TypeDescriptor("App\\Domains\\Infrastructure\\Models\\ServerInstance", false, false))), + new RequestDescriptor("App\\Domains\\Infrastructure\\Http\\Requests\\ServerHeartbeatRequest", "body", List.of(new RequestField("status", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"starting\",\"running\",\"draining\",\"stopped\",\"unhealthy\""))), new RequestField("current_players", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "integer"), new RuleDescriptor("string", null, "min:0"))), new RequestField("max_players", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "integer"), new RuleDescriptor("string", null, "min:0"), new RuleDescriptor("string", null, "gte:current_players"))), new RequestField("host", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:255"))), new RequestField("port", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "integer"), new RuleDescriptor("string", null, "between:1,65535"))), new RequestField("reported_at", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("meta", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private InstancesHeartbeatEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/server/InstancesMatchesResultsStoreEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/server/InstancesMatchesResultsStoreEndpoint.java new file mode 100644 index 0000000..741b176 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/server/InstancesMatchesResultsStoreEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.server; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class InstancesMatchesResultsStoreEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.server.instances.matches.results.store", + List.of("POST"), + "/api/v1/server/instances/{instance}/matches/results", + List.of("matches.result.write"), + List.of("api", "auth:sanctum", "service.abilities:matches.result.write", "service.instance:instance"), + List.of(new RouteParameter("instance", new TypeDescriptor("App\\Domains\\Infrastructure\\Models\\ServerInstance", false, false))), + new RequestDescriptor("App\\Domains\\Gameplay\\Http\\Requests\\StoreMatchResultRequest", "body", List.of(new RequestField("match_id", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:255"))), new RequestField("game_mode", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:100"))), new RequestField("status", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"completed\",\"abandoned\",\"cancelled\""))), new RequestField("started_at", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "date"))), new RequestField("ended_at", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "date"), new RuleDescriptor("string", null, "after_or_equal:started_at"))), new RequestField("replay_driver", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:100"))), new RequestField("replay_reference", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:2048"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))), new RequestField("participants", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "array"), new RuleDescriptor("string", null, "min:1"), new RuleDescriptor("string", null, "max:100"))), new RequestField("participants.*.player_id", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("participants.*.team_key", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:100"))), new RequestField("participants.*.placement", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "integer"), new RuleDescriptor("string", null, "min:1"))), new RequestField("participants.*.outcome", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"win\",\"loss\",\"draw\",\"abandoned\""))), new RequestField("participants.*.score", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "integer"))), new RequestField("participants.*.stats", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private InstancesMatchesResultsStoreEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/server/InstancesRegisterEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/server/InstancesRegisterEndpoint.java new file mode 100644 index 0000000..3b72d96 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/server/InstancesRegisterEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.server; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class InstancesRegisterEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.server.instances.register", + List.of("POST"), + "/api/v1/server/instances/{instance}/register", + List.of("presence.write"), + List.of("api", "auth:sanctum", "service.abilities:presence.write", "service.instance:instance"), + List.of(new RouteParameter("instance", new TypeDescriptor("App\\Domains\\Infrastructure\\Models\\ServerInstance", false, false))), + new RequestDescriptor("App\\Domains\\Infrastructure\\Http\\Requests\\ServerRegistrationRequest", "body", List.of(new RequestField("status", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"starting\",\"running\",\"draining\",\"unhealthy\""))), new RequestField("host", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:255"))), new RequestField("port", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "integer"), new RuleDescriptor("string", null, "between:1,65535"))), new RequestField("current_players", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "integer"), new RuleDescriptor("string", null, "min:0"))), new RequestField("max_players", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "integer"), new RuleDescriptor("string", null, "min:0"), new RuleDescriptor("string", null, "gte:current_players"))), new RequestField("reported_at", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("meta", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private InstancesRegisterEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/server/InstancesShutdownEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/server/InstancesShutdownEndpoint.java new file mode 100644 index 0000000..0e66542 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/server/InstancesShutdownEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.server; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class InstancesShutdownEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.server.instances.shutdown", + List.of("POST"), + "/api/v1/server/instances/{instance}/shutdown", + List.of("presence.write"), + List.of("api", "auth:sanctum", "service.abilities:presence.write", "service.instance:instance"), + List.of(new RouteParameter("instance", new TypeDescriptor("App\\Domains\\Infrastructure\\Models\\ServerInstance", false, false))), + new RequestDescriptor("App\\Domains\\Infrastructure\\Http\\Requests\\ServerShutdownRequest", "body", List.of(new RequestField("reason", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:255"))), new RequestField("current_players", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "integer"), new RuleDescriptor("string", null, "min:0"))), new RequestField("reported_at", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("meta", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private InstancesShutdownEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/server/ProfileEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/server/ProfileEndpoint.java new file mode 100644 index 0000000..7cc7fed --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/server/ProfileEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.server; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class ProfileEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.server.profile", + List.of("GET"), + "/api/v1/server/profile", + List.of("server.profile.read"), + List.of("api", "auth:sanctum", "service.abilities:server.profile.read"), + List.of(), + null, + new ResponseDescriptor("unknown", new TypeDescriptor(null, null, false)) + ) + ; + + private ProfileEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/server/ServerApi.java b/src/main/java/net/kewwbec/network/generated/api/v1/server/ServerApi.java new file mode 100644 index 0000000..1cd50e3 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/server/ServerApi.java @@ -0,0 +1,61 @@ +package net.kewwbec.network.generated.api.v1.server; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; + +public final class ServerApi { + public static final ServerApi INSTANCE = new ServerApi(); + + private static final List ENDPOINTS = List.of( + InstancesHeartbeatEndpoint.VALUE, + InstancesMatchesResultsStoreEndpoint.VALUE, + InstancesRegisterEndpoint.VALUE, + InstancesShutdownEndpoint.VALUE, + ProfileEndpoint.VALUE + ); + + private ServerApi() { + } + + public String domain() { + return "server"; + } + + public int endpointCount() { + return ENDPOINTS.size(); + } + + public List endpoints() { + return ENDPOINTS; + } + + public ApiEndpoint endpoint(String routeName) { + for (ApiEndpoint endpoint : ENDPOINTS) { + if (endpoint.name().equals(routeName)) { + return endpoint; + } + } + + throw new IllegalArgumentException("Unknown route: " + routeName); + } + + public ApiEndpoint instancesHeartbeat() { + return InstancesHeartbeatEndpoint.VALUE; + } + + public ApiEndpoint instancesMatchesResultsStore() { + return InstancesMatchesResultsStoreEndpoint.VALUE; + } + + public ApiEndpoint instancesRegister() { + return InstancesRegisterEndpoint.VALUE; + } + + public ApiEndpoint instancesShutdown() { + return InstancesShutdownEndpoint.VALUE; + } + + public ApiEndpoint profile() { + return ProfileEndpoint.VALUE; + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/serviceaccounts/ServiceAccountsApi.java b/src/main/java/net/kewwbec/network/generated/api/v1/serviceaccounts/ServiceAccountsApi.java new file mode 100644 index 0000000..01da44d --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/serviceaccounts/ServiceAccountsApi.java @@ -0,0 +1,56 @@ +package net.kewwbec.network.generated.api.v1.serviceaccounts; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; + +public final class ServiceAccountsApi { + public static final ServiceAccountsApi INSTANCE = new ServiceAccountsApi(); + + private static final List ENDPOINTS = List.of( + TokensDestroyEndpoint.VALUE, + TokensIndexEndpoint.VALUE, + TokensRotateEndpoint.VALUE, + TokensStoreEndpoint.VALUE + ); + + private ServiceAccountsApi() { + } + + public String domain() { + return "service-accounts"; + } + + public int endpointCount() { + return ENDPOINTS.size(); + } + + public List endpoints() { + return ENDPOINTS; + } + + public ApiEndpoint endpoint(String routeName) { + for (ApiEndpoint endpoint : ENDPOINTS) { + if (endpoint.name().equals(routeName)) { + return endpoint; + } + } + + throw new IllegalArgumentException("Unknown route: " + routeName); + } + + public ApiEndpoint tokensDestroy() { + return TokensDestroyEndpoint.VALUE; + } + + public ApiEndpoint tokensIndex() { + return TokensIndexEndpoint.VALUE; + } + + public ApiEndpoint tokensRotate() { + return TokensRotateEndpoint.VALUE; + } + + public ApiEndpoint tokensStore() { + return TokensStoreEndpoint.VALUE; + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/serviceaccounts/TokensDestroyEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/serviceaccounts/TokensDestroyEndpoint.java new file mode 100644 index 0000000..c2d76f4 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/serviceaccounts/TokensDestroyEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.serviceaccounts; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class TokensDestroyEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.service-accounts.tokens.destroy", + List.of("DELETE"), + "/api/v1/service-accounts/{serviceAccount}/tokens/{tokenId}", + List.of("service-accounts.tokens.manage"), + List.of("api", "auth:sanctum", "service.abilities:service-accounts.tokens.manage"), + List.of(new RouteParameter("serviceAccount", new TypeDescriptor("App\\Domains\\Authorization\\Models\\ServiceAccount", false, false)), new RouteParameter("tokenId", new TypeDescriptor("string", true, false))), + new RequestDescriptor("App\\Domains\\Authorization\\Http\\Requests\\RevokeServiceAccountTokenRequest", "body", List.of(new RequestField("reason", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:255"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private TokensDestroyEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/serviceaccounts/TokensIndexEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/serviceaccounts/TokensIndexEndpoint.java new file mode 100644 index 0000000..747d347 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/serviceaccounts/TokensIndexEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.serviceaccounts; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class TokensIndexEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.service-accounts.tokens.index", + List.of("GET"), + "/api/v1/service-accounts/{serviceAccount}/tokens", + List.of("service-accounts.tokens.manage"), + List.of("api", "auth:sanctum", "service.abilities:service-accounts.tokens.manage"), + List.of(new RouteParameter("serviceAccount", new TypeDescriptor("App\\Domains\\Authorization\\Models\\ServiceAccount", false, false))), + new RequestDescriptor("App\\Domains\\Authorization\\Http\\Requests\\ListServiceAccountTokensRequest", "query", List.of(new RequestField("include_expired", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "boolean"))))), + new ResponseDescriptor("json_resource", new TypeDescriptor("Illuminate\\Http\\Resources\\Json\\AnonymousResourceCollection", false, false)) + ) + ; + + private TokensIndexEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/serviceaccounts/TokensRotateEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/serviceaccounts/TokensRotateEndpoint.java new file mode 100644 index 0000000..46145ba --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/serviceaccounts/TokensRotateEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.serviceaccounts; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class TokensRotateEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.service-accounts.tokens.rotate", + List.of("POST"), + "/api/v1/service-accounts/{serviceAccount}/tokens/rotate", + List.of("service-accounts.tokens.manage"), + List.of("api", "auth:sanctum", "service.abilities:service-accounts.tokens.manage"), + List.of(new RouteParameter("serviceAccount", new TypeDescriptor("App\\Domains\\Authorization\\Models\\ServiceAccount", false, false))), + new RequestDescriptor("App\\Domains\\Authorization\\Http\\Requests\\IssueServiceAccountTokenRequest", "body", List.of(new RequestField("name", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:255"))), new RequestField("abilities", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "array"), new RuleDescriptor("string", null, "min:1"))), new RequestField("abilities.*", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"announcements.read\",\"audit-events.read\",\"configs.read\",\"integrations.read\",\"integrations.write\",\"matches.result.write\",\"moderation.cases.read\",\"moderation.cases.write\",\"notifications.read\",\"notifications.write\",\"plugins.deploy.write\",\"plugins.read\",\"presence.read\",\"players.website-profile.read\",\"players.session-profile.read\",\"presence.write\",\"rewards.request\",\"social.read\",\"social.write\",\"service-accounts.tokens.manage\",\"server-instance.heartbeat.write\",\"server.profile.read\",\"server-templates.read\",\"server-templates.write\",\"support.issues.read\",\"support.issues.write\""))), new RequestField("expires_in_minutes", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "integer"), new RuleDescriptor("string", null, "min:1"), new RuleDescriptor("string", null, "max:10080"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private TokensRotateEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/serviceaccounts/TokensStoreEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/serviceaccounts/TokensStoreEndpoint.java new file mode 100644 index 0000000..f5fe326 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/serviceaccounts/TokensStoreEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.serviceaccounts; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class TokensStoreEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.service-accounts.tokens.store", + List.of("POST"), + "/api/v1/service-accounts/{serviceAccount}/tokens", + List.of("service-accounts.tokens.manage"), + List.of("api", "auth:sanctum", "service.abilities:service-accounts.tokens.manage"), + List.of(new RouteParameter("serviceAccount", new TypeDescriptor("App\\Domains\\Authorization\\Models\\ServiceAccount", false, false))), + new RequestDescriptor("App\\Domains\\Authorization\\Http\\Requests\\IssueServiceAccountTokenRequest", "body", List.of(new RequestField("name", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:255"))), new RequestField("abilities", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "array"), new RuleDescriptor("string", null, "min:1"))), new RequestField("abilities.*", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"announcements.read\",\"audit-events.read\",\"configs.read\",\"integrations.read\",\"integrations.write\",\"matches.result.write\",\"moderation.cases.read\",\"moderation.cases.write\",\"notifications.read\",\"notifications.write\",\"plugins.deploy.write\",\"plugins.read\",\"presence.read\",\"players.website-profile.read\",\"players.session-profile.read\",\"presence.write\",\"rewards.request\",\"social.read\",\"social.write\",\"service-accounts.tokens.manage\",\"server-instance.heartbeat.write\",\"server.profile.read\",\"server-templates.read\",\"server-templates.write\",\"support.issues.read\",\"support.issues.write\""))), new RequestField("expires_in_minutes", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "integer"), new RuleDescriptor("string", null, "min:1"), new RuleDescriptor("string", null, "max:10080"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private TokensStoreEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/shared/ApiEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/shared/ApiEndpoint.java new file mode 100644 index 0000000..1b4192c --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/shared/ApiEndpoint.java @@ -0,0 +1,15 @@ +package net.kewwbec.network.generated.api.v1.shared; + +import java.util.List; + +public record ApiEndpoint( + String name, + List methods, + String uri, + List abilities, + List middleware, + List routeParameters, + RequestDescriptor request, + ResponseDescriptor response +) { +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/shared/RequestDescriptor.java b/src/main/java/net/kewwbec/network/generated/api/v1/shared/RequestDescriptor.java new file mode 100644 index 0000000..ee694aa --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/shared/RequestDescriptor.java @@ -0,0 +1,6 @@ +package net.kewwbec.network.generated.api.v1.shared; + +import java.util.List; + +public record RequestDescriptor(String className, String location, List fields) { +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/shared/RequestField.java b/src/main/java/net/kewwbec/network/generated/api/v1/shared/RequestField.java new file mode 100644 index 0000000..6ef0e7e --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/shared/RequestField.java @@ -0,0 +1,6 @@ +package net.kewwbec.network.generated.api.v1.shared; + +import java.util.List; + +public record RequestField(String name, List rules) { +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/shared/ResponseDescriptor.java b/src/main/java/net/kewwbec/network/generated/api/v1/shared/ResponseDescriptor.java new file mode 100644 index 0000000..6b76e42 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/shared/ResponseDescriptor.java @@ -0,0 +1,4 @@ +package net.kewwbec.network.generated.api.v1.shared; + +public record ResponseDescriptor(String kind, TypeDescriptor type) { +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/shared/RouteParameter.java b/src/main/java/net/kewwbec/network/generated/api/v1/shared/RouteParameter.java new file mode 100644 index 0000000..5246300 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/shared/RouteParameter.java @@ -0,0 +1,4 @@ +package net.kewwbec.network.generated.api.v1.shared; + +public record RouteParameter(String name, TypeDescriptor type) { +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/shared/RuleDescriptor.java b/src/main/java/net/kewwbec/network/generated/api/v1/shared/RuleDescriptor.java new file mode 100644 index 0000000..fd9014a --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/shared/RuleDescriptor.java @@ -0,0 +1,4 @@ +package net.kewwbec.network.generated.api.v1.shared; + +public record RuleDescriptor(String kind, String className, String value) { +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/shared/TypeDescriptor.java b/src/main/java/net/kewwbec/network/generated/api/v1/shared/TypeDescriptor.java new file mode 100644 index 0000000..c00d51e --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/shared/TypeDescriptor.java @@ -0,0 +1,4 @@ +package net.kewwbec.network.generated.api.v1.shared; + +public record TypeDescriptor(String name, Boolean builtin, boolean nullable) { +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/social/FriendshipsAcceptEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/social/FriendshipsAcceptEndpoint.java new file mode 100644 index 0000000..286206b --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/social/FriendshipsAcceptEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.social; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class FriendshipsAcceptEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.social.friendships.accept", + List.of("POST"), + "/api/v1/social/friendships/{friendship}/accept", + List.of("social.write"), + List.of("api", "auth:sanctum", "service.abilities:social.write"), + List.of(new RouteParameter("friendship", new TypeDescriptor("App\\Domains\\Social\\Models\\PlayerFriendship", false, false))), + new RequestDescriptor("App\\Domains\\Social\\Http\\Requests\\AcceptFriendshipRequest", "body", List.of(new RequestField("accepting_player_id", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("accepted_at", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private FriendshipsAcceptEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/social/FriendshipsStoreEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/social/FriendshipsStoreEndpoint.java new file mode 100644 index 0000000..9d2c30e --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/social/FriendshipsStoreEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.social; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class FriendshipsStoreEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.social.friendships.store", + List.of("POST"), + "/api/v1/social/friendships", + List.of("social.write"), + List.of("api", "auth:sanctum", "service.abilities:social.write"), + List.of(), + new RequestDescriptor("App\\Domains\\Social\\Http\\Requests\\StoreFriendshipRequest", "body", List.of(new RequestField("requester_player_id", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("addressee_player_id", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "different:requester_player_id"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("requested_at", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private FriendshipsStoreEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/social/GuildInvitesAcceptEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/social/GuildInvitesAcceptEndpoint.java new file mode 100644 index 0000000..86e374c --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/social/GuildInvitesAcceptEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.social; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class GuildInvitesAcceptEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.social.guild-invites.accept", + List.of("POST"), + "/api/v1/social/guild-invites/{guildInvite}/accept", + List.of("social.write"), + List.of("api", "auth:sanctum", "service.abilities:social.write"), + List.of(new RouteParameter("guildInvite", new TypeDescriptor("App\\Domains\\Social\\Models\\GuildInvite", false, false))), + new RequestDescriptor("App\\Domains\\Social\\Http\\Requests\\AcceptGuildInviteRequest", "body", List.of(new RequestField("accepting_player_id", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("accepted_at", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private GuildInvitesAcceptEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/social/GuildInvitesCancelEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/social/GuildInvitesCancelEndpoint.java new file mode 100644 index 0000000..263663f --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/social/GuildInvitesCancelEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.social; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class GuildInvitesCancelEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.social.guild-invites.cancel", + List.of("POST"), + "/api/v1/social/guild-invites/{guildInvite}/cancel", + List.of("social.write"), + List.of("api", "auth:sanctum", "service.abilities:social.write"), + List.of(new RouteParameter("guildInvite", new TypeDescriptor("App\\Domains\\Social\\Models\\GuildInvite", false, false))), + new RequestDescriptor("App\\Domains\\Social\\Http\\Requests\\CancelGuildInviteRequest", "body", List.of(new RequestField("cancelled_by_player_id", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("cancelled_at", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("reason", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:500"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private GuildInvitesCancelEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/social/GuildInvitesDeclineEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/social/GuildInvitesDeclineEndpoint.java new file mode 100644 index 0000000..0fa7556 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/social/GuildInvitesDeclineEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.social; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class GuildInvitesDeclineEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.social.guild-invites.decline", + List.of("POST"), + "/api/v1/social/guild-invites/{guildInvite}/decline", + List.of("social.write"), + List.of("api", "auth:sanctum", "service.abilities:social.write"), + List.of(new RouteParameter("guildInvite", new TypeDescriptor("App\\Domains\\Social\\Models\\GuildInvite", false, false))), + new RequestDescriptor("App\\Domains\\Social\\Http\\Requests\\DeclineGuildInviteRequest", "body", List.of(new RequestField("declining_player_id", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("declined_at", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("reason", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:500"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private GuildInvitesDeclineEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/social/GuildsInvitesStoreEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/social/GuildsInvitesStoreEndpoint.java new file mode 100644 index 0000000..4cb61a8 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/social/GuildsInvitesStoreEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.social; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class GuildsInvitesStoreEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.social.guilds.invites.store", + List.of("POST"), + "/api/v1/social/guilds/{guild}/invites", + List.of("social.write"), + List.of("api", "auth:sanctum", "service.abilities:social.write"), + List.of(new RouteParameter("guild", new TypeDescriptor("App\\Domains\\Social\\Models\\Guild", false, false))), + new RequestDescriptor("App\\Domains\\Social\\Http\\Requests\\StoreGuildInviteRequest", "body", List.of(new RequestField("invited_player_id", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("invited_by_player_id", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("message", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:1000"))), new RequestField("invited_at", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("expires_at", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private GuildsInvitesStoreEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/social/GuildsKicksStoreEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/social/GuildsKicksStoreEndpoint.java new file mode 100644 index 0000000..af57cab --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/social/GuildsKicksStoreEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.social; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class GuildsKicksStoreEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.social.guilds.kicks.store", + List.of("POST"), + "/api/v1/social/guilds/{guild}/kicks", + List.of("social.write"), + List.of("api", "auth:sanctum", "service.abilities:social.write"), + List.of(new RouteParameter("guild", new TypeDescriptor("App\\Domains\\Social\\Models\\Guild", false, false))), + new RequestDescriptor("App\\Domains\\Social\\Http\\Requests\\KickGuildMemberRequest", "body", List.of(new RequestField("acting_player_id", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("target_player_id", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("kicked_at", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("reason", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:500"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private GuildsKicksStoreEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/social/GuildsLeaveEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/social/GuildsLeaveEndpoint.java new file mode 100644 index 0000000..e1cf94a --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/social/GuildsLeaveEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.social; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class GuildsLeaveEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.social.guilds.leave", + List.of("POST"), + "/api/v1/social/guilds/{guild}/leave", + List.of("social.write"), + List.of("api", "auth:sanctum", "service.abilities:social.write"), + List.of(new RouteParameter("guild", new TypeDescriptor("App\\Domains\\Social\\Models\\Guild", false, false))), + new RequestDescriptor("App\\Domains\\Social\\Http\\Requests\\LeaveGuildRequest", "body", List.of(new RequestField("player_id", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("left_at", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("reason", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:500"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private GuildsLeaveEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/social/GuildsMembersStoreEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/social/GuildsMembersStoreEndpoint.java new file mode 100644 index 0000000..57954ea --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/social/GuildsMembersStoreEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.social; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class GuildsMembersStoreEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.social.guilds.members.store", + List.of("POST"), + "/api/v1/social/guilds/{guild}/members", + List.of("social.write"), + List.of("api", "auth:sanctum", "service.abilities:social.write"), + List.of(new RouteParameter("guild", new TypeDescriptor("App\\Domains\\Social\\Models\\Guild", false, false))), + new RequestDescriptor("App\\Domains\\Social\\Http\\Requests\\StoreGuildMemberRequest", "body", List.of(new RequestField("player_id", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("invited_by_player_id", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("role", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"leader\",\"officer\",\"member\""))), new RequestField("joined_at", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private GuildsMembersStoreEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/social/GuildsOwnershipTransferEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/social/GuildsOwnershipTransferEndpoint.java new file mode 100644 index 0000000..1ac9807 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/social/GuildsOwnershipTransferEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.social; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class GuildsOwnershipTransferEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.social.guilds.ownership-transfer", + List.of("POST"), + "/api/v1/social/guilds/{guild}/ownership-transfer", + List.of("social.write"), + List.of("api", "auth:sanctum", "service.abilities:social.write"), + List.of(new RouteParameter("guild", new TypeDescriptor("App\\Domains\\Social\\Models\\Guild", false, false))), + new RequestDescriptor("App\\Domains\\Social\\Http\\Requests\\TransferGuildOwnershipRequest", "body", List.of(new RequestField("acting_player_id", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("new_owner_player_id", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("transferred_at", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("reason", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:500"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private GuildsOwnershipTransferEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/social/GuildsStoreEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/social/GuildsStoreEndpoint.java new file mode 100644 index 0000000..d0ccf3e --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/social/GuildsStoreEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.social; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class GuildsStoreEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.social.guilds.store", + List.of("POST"), + "/api/v1/social/guilds", + List.of("social.write"), + List.of("api", "auth:sanctum", "service.abilities:social.write"), + List.of(), + new RequestDescriptor("App\\Domains\\Social\\Http\\Requests\\StoreGuildRequest", "body", List.of(new RequestField("owner_player_id", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("slug", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:80"), new RuleDescriptor("string", null, "regex:/^[a-z0-9-]+$/"), new RuleDescriptor("string", null, "unique:guilds,slug"))), new RequestField("name", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:120"))), new RequestField("tag", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:12"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\Unique", "unique:guilds,tag,NULL,id"))), new RequestField("max_members", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "integer"), new RuleDescriptor("string", null, "between:2,200"))), new RequestField("motd", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:255"))), new RequestField("founded_at", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private GuildsStoreEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/social/PartiesInvitesStoreEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/social/PartiesInvitesStoreEndpoint.java new file mode 100644 index 0000000..e59b3a9 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/social/PartiesInvitesStoreEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.social; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class PartiesInvitesStoreEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.social.parties.invites.store", + List.of("POST"), + "/api/v1/social/parties/{party}/invites", + List.of("social.write"), + List.of("api", "auth:sanctum", "service.abilities:social.write"), + List.of(new RouteParameter("party", new TypeDescriptor("App\\Domains\\Social\\Models\\Party", false, false))), + new RequestDescriptor("App\\Domains\\Social\\Http\\Requests\\StorePartyInviteRequest", "body", List.of(new RequestField("invited_player_id", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("invited_by_player_id", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("message", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:1000"))), new RequestField("invited_at", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("expires_at", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private PartiesInvitesStoreEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/social/PartiesKicksStoreEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/social/PartiesKicksStoreEndpoint.java new file mode 100644 index 0000000..fbb9c6a --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/social/PartiesKicksStoreEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.social; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class PartiesKicksStoreEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.social.parties.kicks.store", + List.of("POST"), + "/api/v1/social/parties/{party}/kicks", + List.of("social.write"), + List.of("api", "auth:sanctum", "service.abilities:social.write"), + List.of(new RouteParameter("party", new TypeDescriptor("App\\Domains\\Social\\Models\\Party", false, false))), + new RequestDescriptor("App\\Domains\\Social\\Http\\Requests\\KickPartyMemberRequest", "body", List.of(new RequestField("acting_player_id", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("target_player_id", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("kicked_at", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("reason", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:500"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private PartiesKicksStoreEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/social/PartiesLeadershipTransferEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/social/PartiesLeadershipTransferEndpoint.java new file mode 100644 index 0000000..e2a6217 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/social/PartiesLeadershipTransferEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.social; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class PartiesLeadershipTransferEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.social.parties.leadership-transfer", + List.of("POST"), + "/api/v1/social/parties/{party}/leadership-transfer", + List.of("social.write"), + List.of("api", "auth:sanctum", "service.abilities:social.write"), + List.of(new RouteParameter("party", new TypeDescriptor("App\\Domains\\Social\\Models\\Party", false, false))), + new RequestDescriptor("App\\Domains\\Social\\Http\\Requests\\TransferPartyLeadershipRequest", "body", List.of(new RequestField("acting_player_id", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("new_leader_player_id", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("transferred_at", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("reason", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:500"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private PartiesLeadershipTransferEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/social/PartiesLeaveEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/social/PartiesLeaveEndpoint.java new file mode 100644 index 0000000..92c5feb --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/social/PartiesLeaveEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.social; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class PartiesLeaveEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.social.parties.leave", + List.of("POST"), + "/api/v1/social/parties/{party}/leave", + List.of("social.write"), + List.of("api", "auth:sanctum", "service.abilities:social.write"), + List.of(new RouteParameter("party", new TypeDescriptor("App\\Domains\\Social\\Models\\Party", false, false))), + new RequestDescriptor("App\\Domains\\Social\\Http\\Requests\\LeavePartyRequest", "body", List.of(new RequestField("player_id", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("left_at", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("reason", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:500"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private PartiesLeaveEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/social/PartiesMembersStoreEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/social/PartiesMembersStoreEndpoint.java new file mode 100644 index 0000000..b6b4bfd --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/social/PartiesMembersStoreEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.social; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class PartiesMembersStoreEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.social.parties.members.store", + List.of("POST"), + "/api/v1/social/parties/{party}/members", + List.of("social.write"), + List.of("api", "auth:sanctum", "service.abilities:social.write"), + List.of(new RouteParameter("party", new TypeDescriptor("App\\Domains\\Social\\Models\\Party", false, false))), + new RequestDescriptor("App\\Domains\\Social\\Http\\Requests\\StorePartyMemberRequest", "body", List.of(new RequestField("player_id", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("invited_by_player_id", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("joined_at", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private PartiesMembersStoreEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/social/PartiesStoreEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/social/PartiesStoreEndpoint.java new file mode 100644 index 0000000..a0d4e2f --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/social/PartiesStoreEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.social; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class PartiesStoreEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.social.parties.store", + List.of("POST"), + "/api/v1/social/parties", + List.of("social.write"), + List.of("api", "auth:sanctum", "service.abilities:social.write"), + List.of(), + new RequestDescriptor("App\\Domains\\Social\\Http\\Requests\\StorePartyRequest", "body", List.of(new RequestField("leader_player_id", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("max_members", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "integer"), new RuleDescriptor("string", null, "between:2,12"))), new RequestField("formed_at", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private PartiesStoreEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/social/PartyInvitesAcceptEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/social/PartyInvitesAcceptEndpoint.java new file mode 100644 index 0000000..06a8425 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/social/PartyInvitesAcceptEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.social; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class PartyInvitesAcceptEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.social.party-invites.accept", + List.of("POST"), + "/api/v1/social/party-invites/{partyInvite}/accept", + List.of("social.write"), + List.of("api", "auth:sanctum", "service.abilities:social.write"), + List.of(new RouteParameter("partyInvite", new TypeDescriptor("App\\Domains\\Social\\Models\\PartyInvite", false, false))), + new RequestDescriptor("App\\Domains\\Social\\Http\\Requests\\AcceptPartyInviteRequest", "body", List.of(new RequestField("accepting_player_id", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("accepted_at", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private PartyInvitesAcceptEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/social/PartyInvitesCancelEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/social/PartyInvitesCancelEndpoint.java new file mode 100644 index 0000000..0985315 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/social/PartyInvitesCancelEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.social; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class PartyInvitesCancelEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.social.party-invites.cancel", + List.of("POST"), + "/api/v1/social/party-invites/{partyInvite}/cancel", + List.of("social.write"), + List.of("api", "auth:sanctum", "service.abilities:social.write"), + List.of(new RouteParameter("partyInvite", new TypeDescriptor("App\\Domains\\Social\\Models\\PartyInvite", false, false))), + new RequestDescriptor("App\\Domains\\Social\\Http\\Requests\\CancelPartyInviteRequest", "body", List.of(new RequestField("cancelled_by_player_id", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("cancelled_at", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("reason", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:500"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private PartyInvitesCancelEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/social/PartyInvitesDeclineEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/social/PartyInvitesDeclineEndpoint.java new file mode 100644 index 0000000..0f9eef1 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/social/PartyInvitesDeclineEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.social; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class PartyInvitesDeclineEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.social.party-invites.decline", + List.of("POST"), + "/api/v1/social/party-invites/{partyInvite}/decline", + List.of("social.write"), + List.of("api", "auth:sanctum", "service.abilities:social.write"), + List.of(new RouteParameter("partyInvite", new TypeDescriptor("App\\Domains\\Social\\Models\\PartyInvite", false, false))), + new RequestDescriptor("App\\Domains\\Social\\Http\\Requests\\DeclinePartyInviteRequest", "body", List.of(new RequestField("declining_player_id", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("declined_at", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("reason", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:500"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private PartyInvitesDeclineEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/social/SocialApi.java b/src/main/java/net/kewwbec/network/generated/api/v1/social/SocialApi.java new file mode 100644 index 0000000..bf7a7f4 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/social/SocialApi.java @@ -0,0 +1,136 @@ +package net.kewwbec.network.generated.api.v1.social; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; + +public final class SocialApi { + public static final SocialApi INSTANCE = new SocialApi(); + + private static final List ENDPOINTS = List.of( + FriendshipsAcceptEndpoint.VALUE, + FriendshipsStoreEndpoint.VALUE, + GuildInvitesAcceptEndpoint.VALUE, + GuildInvitesCancelEndpoint.VALUE, + GuildInvitesDeclineEndpoint.VALUE, + GuildsInvitesStoreEndpoint.VALUE, + GuildsKicksStoreEndpoint.VALUE, + GuildsLeaveEndpoint.VALUE, + GuildsMembersStoreEndpoint.VALUE, + GuildsOwnershipTransferEndpoint.VALUE, + GuildsStoreEndpoint.VALUE, + PartiesInvitesStoreEndpoint.VALUE, + PartiesKicksStoreEndpoint.VALUE, + PartiesLeadershipTransferEndpoint.VALUE, + PartiesLeaveEndpoint.VALUE, + PartiesMembersStoreEndpoint.VALUE, + PartiesStoreEndpoint.VALUE, + PartyInvitesAcceptEndpoint.VALUE, + PartyInvitesCancelEndpoint.VALUE, + PartyInvitesDeclineEndpoint.VALUE + ); + + private SocialApi() { + } + + public String domain() { + return "social"; + } + + public int endpointCount() { + return ENDPOINTS.size(); + } + + public List endpoints() { + return ENDPOINTS; + } + + public ApiEndpoint endpoint(String routeName) { + for (ApiEndpoint endpoint : ENDPOINTS) { + if (endpoint.name().equals(routeName)) { + return endpoint; + } + } + + throw new IllegalArgumentException("Unknown route: " + routeName); + } + + public ApiEndpoint friendshipsAccept() { + return FriendshipsAcceptEndpoint.VALUE; + } + + public ApiEndpoint friendshipsStore() { + return FriendshipsStoreEndpoint.VALUE; + } + + public ApiEndpoint guildInvitesAccept() { + return GuildInvitesAcceptEndpoint.VALUE; + } + + public ApiEndpoint guildInvitesCancel() { + return GuildInvitesCancelEndpoint.VALUE; + } + + public ApiEndpoint guildInvitesDecline() { + return GuildInvitesDeclineEndpoint.VALUE; + } + + public ApiEndpoint guildsInvitesStore() { + return GuildsInvitesStoreEndpoint.VALUE; + } + + public ApiEndpoint guildsKicksStore() { + return GuildsKicksStoreEndpoint.VALUE; + } + + public ApiEndpoint guildsLeave() { + return GuildsLeaveEndpoint.VALUE; + } + + public ApiEndpoint guildsMembersStore() { + return GuildsMembersStoreEndpoint.VALUE; + } + + public ApiEndpoint guildsOwnershipTransfer() { + return GuildsOwnershipTransferEndpoint.VALUE; + } + + public ApiEndpoint guildsStore() { + return GuildsStoreEndpoint.VALUE; + } + + public ApiEndpoint partiesInvitesStore() { + return PartiesInvitesStoreEndpoint.VALUE; + } + + public ApiEndpoint partiesKicksStore() { + return PartiesKicksStoreEndpoint.VALUE; + } + + public ApiEndpoint partiesLeadershipTransfer() { + return PartiesLeadershipTransferEndpoint.VALUE; + } + + public ApiEndpoint partiesLeave() { + return PartiesLeaveEndpoint.VALUE; + } + + public ApiEndpoint partiesMembersStore() { + return PartiesMembersStoreEndpoint.VALUE; + } + + public ApiEndpoint partiesStore() { + return PartiesStoreEndpoint.VALUE; + } + + public ApiEndpoint partyInvitesAccept() { + return PartyInvitesAcceptEndpoint.VALUE; + } + + public ApiEndpoint partyInvitesCancel() { + return PartyInvitesCancelEndpoint.VALUE; + } + + public ApiEndpoint partyInvitesDecline() { + return PartyInvitesDeclineEndpoint.VALUE; + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/support/IssuesAssignmentsStoreEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/support/IssuesAssignmentsStoreEndpoint.java new file mode 100644 index 0000000..a170e50 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/support/IssuesAssignmentsStoreEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.support; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class IssuesAssignmentsStoreEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.support.issues.assignments.store", + List.of("POST"), + "/api/v1/support/issues/{supportIssue}/assignments", + List.of("support.issues.write"), + List.of("api", "auth:sanctum", "service.abilities:support.issues.write"), + List.of(new RouteParameter("supportIssue", new TypeDescriptor("App\\Domains\\Support\\Models\\SupportIssue", false, false))), + new RequestDescriptor("App\\Domains\\Support\\Http\\Requests\\ChangeSupportIssueAssignmentRequest", "body", List.of(new RequestField("assigned_to_player_id", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("reason", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"))), new RequestField("assigned_at", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private IssuesAssignmentsStoreEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/support/IssuesIndexEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/support/IssuesIndexEndpoint.java new file mode 100644 index 0000000..ba41b48 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/support/IssuesIndexEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.support; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class IssuesIndexEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.support.issues.index", + List.of("GET"), + "/api/v1/support/issues", + List.of("support.issues.read"), + List.of("api", "auth:sanctum", "service.abilities:support.issues.read"), + List.of(), + new RequestDescriptor("App\\Domains\\Support\\Http\\Requests\\ListSupportIssuesRequest", "query", List.of(new RequestField("status", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"open\",\"in_progress\",\"waiting_on_player\",\"resolved\",\"closed\""))), new RequestField("priority", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"low\",\"normal\",\"high\",\"urgent\""))), new RequestField("category", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"account\",\"purchase\",\"bug_report\",\"appeal\",\"other\""))), new RequestField("subject_player_id", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("assigned_to_player_id", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("limit", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "integer"), new RuleDescriptor("string", null, "min:1"), new RuleDescriptor("string", null, "max:100"))))), + new ResponseDescriptor("json_resource", new TypeDescriptor("Illuminate\\Http\\Resources\\Json\\AnonymousResourceCollection", false, false)) + ) + ; + + private IssuesIndexEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/support/IssuesMessagesStoreEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/support/IssuesMessagesStoreEndpoint.java new file mode 100644 index 0000000..6fcf2b4 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/support/IssuesMessagesStoreEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.support; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class IssuesMessagesStoreEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.support.issues.messages.store", + List.of("POST"), + "/api/v1/support/issues/{supportIssue}/messages", + List.of("support.issues.write"), + List.of("api", "auth:sanctum", "service.abilities:support.issues.write"), + List.of(new RouteParameter("supportIssue", new TypeDescriptor("App\\Domains\\Support\\Models\\SupportIssue", false, false))), + new RequestDescriptor("App\\Domains\\Support\\Http\\Requests\\StoreSupportIssueMessageRequest", "body", List.of(new RequestField("visibility", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"requester\",\"internal\""))), new RequestField("body", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"))), new RequestField("sent_at", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private IssuesMessagesStoreEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/support/IssuesReopenEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/support/IssuesReopenEndpoint.java new file mode 100644 index 0000000..76033f5 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/support/IssuesReopenEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.support; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class IssuesReopenEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.support.issues.reopen", + List.of("POST"), + "/api/v1/support/issues/{supportIssue}/reopen", + List.of("support.issues.write"), + List.of("api", "auth:sanctum", "service.abilities:support.issues.write"), + List.of(new RouteParameter("supportIssue", new TypeDescriptor("App\\Domains\\Support\\Models\\SupportIssue", false, false))), + new RequestDescriptor("App\\Domains\\Support\\Http\\Requests\\ReopenSupportIssueRequest", "body", List.of(new RequestField("reason", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"))), new RequestField("status", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"open\",\"in_progress\",\"waiting_on_player\""))), new RequestField("summary", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"))), new RequestField("assigned_to_player_id", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("reopened_at", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private IssuesReopenEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/support/IssuesShowEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/support/IssuesShowEndpoint.java new file mode 100644 index 0000000..f9d9f30 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/support/IssuesShowEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.support; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class IssuesShowEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.support.issues.show", + List.of("GET"), + "/api/v1/support/issues/{supportIssue}", + List.of("support.issues.read"), + List.of("api", "auth:sanctum", "service.abilities:support.issues.read"), + List.of(new RouteParameter("supportIssue", new TypeDescriptor("App\\Domains\\Support\\Models\\SupportIssue", false, false))), + null, + new ResponseDescriptor("json_resource", new TypeDescriptor("App\\Domains\\Support\\Resources\\SupportIssueResource", false, false)) + ) + ; + + private IssuesShowEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/support/IssuesStoreEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/support/IssuesStoreEndpoint.java new file mode 100644 index 0000000..4ba8a80 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/support/IssuesStoreEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.support; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class IssuesStoreEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.support.issues.store", + List.of("POST"), + "/api/v1/support/issues", + List.of("support.issues.write"), + List.of("api", "auth:sanctum", "service.abilities:support.issues.write"), + List.of(), + new RequestDescriptor("App\\Domains\\Support\\Http\\Requests\\StoreSupportIssueRequest", "body", List.of(new RequestField("subject_player_id", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("assigned_to_player_id", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("category", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"account\",\"purchase\",\"bug_report\",\"appeal\",\"other\""))), new RequestField("channel", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"player_portal\",\"email\",\"discord\",\"in_game\",\"internal\""))), new RequestField("priority", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"low\",\"normal\",\"high\",\"urgent\""))), new RequestField("title", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "max:255"))), new RequestField("summary", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"))), new RequestField("initial_message", List.of(new RuleDescriptor("string", null, "required"), new RuleDescriptor("string", null, "string"))), new RequestField("message_visibility", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"requester\",\"internal\""))), new RequestField("opened_at", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "date"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "array"))), new RequestField("initial_message_metadata", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private IssuesStoreEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/support/IssuesUpdateEndpoint.java b/src/main/java/net/kewwbec/network/generated/api/v1/support/IssuesUpdateEndpoint.java new file mode 100644 index 0000000..7759297 --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/support/IssuesUpdateEndpoint.java @@ -0,0 +1,28 @@ +package net.kewwbec.network.generated.api.v1.support; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; +import net.kewwbec.network.generated.api.v1.shared.RequestDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RequestField; +import net.kewwbec.network.generated.api.v1.shared.ResponseDescriptor; +import net.kewwbec.network.generated.api.v1.shared.RouteParameter; +import net.kewwbec.network.generated.api.v1.shared.RuleDescriptor; +import net.kewwbec.network.generated.api.v1.shared.TypeDescriptor; + +public final class IssuesUpdateEndpoint { + public static final ApiEndpoint VALUE = + new ApiEndpoint( + "api.v1.support.issues.update", + List.of("PATCH"), + "/api/v1/support/issues/{supportIssue}", + List.of("support.issues.write"), + List.of("api", "auth:sanctum", "service.abilities:support.issues.write"), + List.of(new RouteParameter("supportIssue", new TypeDescriptor("App\\Domains\\Support\\Models\\SupportIssue", false, false))), + new RequestDescriptor("App\\Domains\\Support\\Http\\Requests\\UpdateSupportIssueRequest", "body", List.of(new RequestField("status", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"open\",\"in_progress\",\"waiting_on_player\",\"resolved\",\"closed\""))), new RequestField("priority", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\In", "in:\"low\",\"normal\",\"high\",\"urgent\""))), new RequestField("assigned_to_player_id", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"), new RuleDescriptor("string", null, "exists:players,id"))), new RequestField("summary", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"))), new RequestField("resolution_summary", List.of(new RuleDescriptor("object", "Illuminate\\Validation\\Rules\\RequiredIf", ""), new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "string"))), new RequestField("resolved_at", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "date"))), new RequestField("metadata", List.of(new RuleDescriptor("string", null, "sometimes"), new RuleDescriptor("string", null, "nullable"), new RuleDescriptor("string", null, "array"))))), + new ResponseDescriptor("json_response", new TypeDescriptor("Illuminate\\Http\\JsonResponse", false, false)) + ) + ; + + private IssuesUpdateEndpoint() { + } +} diff --git a/src/main/java/net/kewwbec/network/generated/api/v1/support/SupportApi.java b/src/main/java/net/kewwbec/network/generated/api/v1/support/SupportApi.java new file mode 100644 index 0000000..f0f78ff --- /dev/null +++ b/src/main/java/net/kewwbec/network/generated/api/v1/support/SupportApi.java @@ -0,0 +1,71 @@ +package net.kewwbec.network.generated.api.v1.support; + +import java.util.List; +import net.kewwbec.network.generated.api.v1.shared.ApiEndpoint; + +public final class SupportApi { + public static final SupportApi INSTANCE = new SupportApi(); + + private static final List ENDPOINTS = List.of( + IssuesAssignmentsStoreEndpoint.VALUE, + IssuesIndexEndpoint.VALUE, + IssuesMessagesStoreEndpoint.VALUE, + IssuesReopenEndpoint.VALUE, + IssuesShowEndpoint.VALUE, + IssuesStoreEndpoint.VALUE, + IssuesUpdateEndpoint.VALUE + ); + + private SupportApi() { + } + + public String domain() { + return "support"; + } + + public int endpointCount() { + return ENDPOINTS.size(); + } + + public List endpoints() { + return ENDPOINTS; + } + + public ApiEndpoint endpoint(String routeName) { + for (ApiEndpoint endpoint : ENDPOINTS) { + if (endpoint.name().equals(routeName)) { + return endpoint; + } + } + + throw new IllegalArgumentException("Unknown route: " + routeName); + } + + public ApiEndpoint issuesAssignmentsStore() { + return IssuesAssignmentsStoreEndpoint.VALUE; + } + + public ApiEndpoint issuesIndex() { + return IssuesIndexEndpoint.VALUE; + } + + public ApiEndpoint issuesMessagesStore() { + return IssuesMessagesStoreEndpoint.VALUE; + } + + public ApiEndpoint issuesReopen() { + return IssuesReopenEndpoint.VALUE; + } + + public ApiEndpoint issuesShow() { + return IssuesShowEndpoint.VALUE; + } + + public ApiEndpoint issuesStore() { + return IssuesStoreEndpoint.VALUE; + } + + public ApiEndpoint issuesUpdate() { + return IssuesUpdateEndpoint.VALUE; + } +} diff --git a/src/main/java/net/kewwbec/network/network.java b/src/main/java/net/kewwbec/network/network.java new file mode 100644 index 0000000..3853bf9 --- /dev/null +++ b/src/main/java/net/kewwbec/network/network.java @@ -0,0 +1,9 @@ +package net.kewwbec.network; + +import net.kewwbec.network.generated.api.v1.ControlPlaneApiV1; + +public class network { + public ControlPlaneApiV1 controlPlane() { + return ControlPlaneApiV1.INSTANCE; + } +}