Compare commits

...

10 Commits

Author SHA1 Message Date
HeruEdhel 7ab54bb8d3 core network first time gen
Build Plugin / build (push) Has been cancelled
Build Plugin / release (push) Has been cancelled
2026-05-27 20:34:13 -07:00
Britakee b6a2a9d515 updated the template so it finds Hytale even when it isn’t in the default path 2026-02-18 08:57:15 +01:00
Britakee be9968c345 Switch to Groovy DSL; add runServer task
Migrate the project from Gradle Kotlin DSL to Groovy DSL: update README to reference build.gradle/settings.gradle and change code blocks to Groovy. Remove build.gradle.kts. Add runServerJar and runServer tasks in build.gradle that depend on shadowJar and launch the Hytale server (uses hytaleHome paths, assets, and optional user mods). Bump plugin manifest version to 0.0.3 and set a concrete ServerVersion string. Fixed some issues.
2026-02-17 19:21:10 +01:00
Britakee a1f96f58e6 Merge pull request #22 from hytailor/dev/vscode
Fix gitignore for VS Code
2026-02-17 18:23:34 +01:00
Britakee 839df5f059 Merge pull request #19 from FedericoLeiva12/main
Use official Hytale mavel repository and fix Github Actions workflow
2026-02-17 18:23:15 +01:00
DocW 647fe81537 Track VS Code Java formatter config in repo
Add negated pattern to `.gitignore` for the VS Code Java formatter
configuration file (`.vscode/java-formatter.xml`).
2026-02-01 14:20:58 -05:00
DocW 772dabc708 Track VS Code settings in repository
Add negated pattern to `.gitignore` for the VS Code settings file
(`.vscode/settings.json`).
2026-02-01 14:19:36 -05:00
DocW bbd0265f2e Allow files in .vscode/ to be included in Git repo
Allow the exclusion of files in the `.vscode/` directory to be
overridden via negated patterns (gitignore patterns beginning with `!`)
by changing the pattern in `.gitignore` from `.vscode/` to `.vscode/*`
(i.e., by ignoring the files in `.vscode/` rather than the `.vscode/`
directory itself).
2026-02-01 14:13:52 -05:00
InvBoy b0d6afbd4c Remove unused database driver dependencies
Removed unused database driver dependencies.
2026-01-27 23:00:05 -03:00
Federico Leiva b2045653ef Enhance build configuration and dependencies for Hytale plugin to use HytaleServer.jar from official maven repository. Added permissions in workflows to allow github action to create new releases. 2026-01-27 17:46:48 -03:00
97 changed files with 3139 additions and 553 deletions
+57 -53
View File
@@ -1,8 +1,12 @@
name: Build Plugin
permissions:
contents: write
on:
push:
branches: [ main, develop ]
tags: [ 'v*' ]
pull_request:
branches: [ main ]
@@ -11,62 +15,62 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Setup Java 25
uses: actions/setup-java@v4
with:
java-version: '25'
distribution: 'temurin'
- name: Cache Gradle Dependencies
uses: actions/cache@v4
with:
path: ~/.gradle
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Grant Execute Permission for Gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew shadowJar
- name: Run Tests
run: ./gradlew test
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: plugin-jar
path: build/libs/*.jar
- name: Checkout Repository
uses: actions/checkout@v4
- name: Setup Java 25
uses: actions/setup-java@v4
with:
java-version: '25'
distribution: 'temurin'
- name: Cache Gradle Dependencies
uses: actions/cache@v4
with:
path: ~/.gradle
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Grant Execute Permission for Gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew shadowJar
- name: Run Tests
run: ./gradlew test
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: plugin-jar
path: build/libs/*.jar
release:
needs: build
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/v')
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Setup Java 25
uses: actions/setup-java@v4
with:
java-version: '25'
distribution: 'temurin'
- name: Grant Execute Permission for Gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew shadowJar
- name: Create Release
uses: softprops/action-gh-release@v1
with:
files: build/libs/*.jar
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Checkout Repository
uses: actions/checkout@v4
- name: Setup Java 25
uses: actions/setup-java@v4
with:
java-version: '25'
distribution: 'temurin'
- name: Grant Execute Permission for Gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew shadowJar
- name: Create Release
uses: softprops/action-gh-release@v1
with:
files: build/libs/*.jar
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+5 -2
View File
@@ -38,7 +38,9 @@ bin/
/.nb-gradle/
# VS Code
.vscode/
.vscode/*
!.vscode/java-formatter.xml
!.vscode/settings.json
# Mac OS
.DS_Store
@@ -58,4 +60,5 @@ desktop.ini
# Template specific
libs/HytaleServer.jar
buildSrc/
buildSrc/
.github/
+94 -352
View File
@@ -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 Kotlin 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 `<Domain>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.kts`:**
```kotlin
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.kts # Build configuration
├── gradle.properties # Project properties
├── settings.gradle.kts # 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.kts`:
```kotlin
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.kts`:
```kotlin
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.kts` 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.
+120 -57
View File
@@ -1,6 +1,7 @@
plugins {
id 'java'
id 'org.jetbrains.gradle.plugin.idea-ext' version '1.3'
id 'com.gradleup.shadow' version '9.3.1'
}
import org.gradle.internal.os.OperatingSystem
@@ -8,8 +9,9 @@ import org.gradle.internal.os.OperatingSystem
ext {
if (project.hasProperty('hytale_home')) {
hytaleHome = project.findProperty('hytale_home')
}
else {
} else if (System.getenv('HYTALE_HOME')) {
hytaleHome = System.getenv('HYTALE_HOME')
} else {
def os = OperatingSystem.current()
if (os.isWindows()) {
hytaleHome = "${System.getProperty("user.home")}/AppData/Roaming/Hytale"
@@ -26,11 +28,10 @@ ext {
}
}
if (!project.hasProperty('hytaleHome')) {
throw new GradleException('Your Hytale install could not be detected automatically. If you are on an unsupported platform or using a custom install location, please define the install location using the hytale_home property.');
}
else if (!file(project.findProperty('hytaleHome')).exists()) {
throw new GradleException("Failed to find Hytale at the expected location. Please make sure you have installed the game. The expected location can be changed using the hytale_home property. Currently looking in ${project.findProperty('hytaleHome')}")
def hytaleHomePath = ext.has('hytaleHome') ? hytaleHome : null
def hasHytaleHome = (hytaleHomePath != null) && file(hytaleHomePath).exists()
if (!hasHytaleHome) {
logger.lifecycle("Hytale install not detected; run configs that launch the server will be skipped. Set -Phytale_home=/path/to/Hytale to enable them.")
}
java {
@@ -45,16 +46,27 @@ javadoc {
}
// Adds the Hytale server as a build dependency, allowing you to reference and
// compile against their code. This requires you to have Hytale installed using
// the official launcher for now.
// compile against their code without bundling it. When a local install is
// present, we still use its jar for launching the server in IDE run configs.
dependencies {
implementation(files("$hytaleHome/install/$patchline/package/game/latest/Server/HytaleServer.jar"))
compileOnly("com.hypixel.hytale:Server:$hytale_build")
if (hasHytaleHome) {
runtimeOnly(files("$hytaleHome/install/$patchline/package/game/latest/Server/HytaleServer.jar"))
}
// Your dependencies here
}
// Create the working directory to run the server if it does not already exist.
def serverRunDir = file("$projectDir/run")
if (!serverRunDir.exists()) {
serverRunDir.mkdirs()
repositories {
mavenCentral()
maven {
name = "hytale-release"
url = uri("https://maven.hytale.com/release")
}
maven {
name = "hytale-pre-release"
url = uri("https://maven.hytale.com/pre-release")
}
}
// Updates the manifest.json file with the latest properties defined in the
@@ -78,54 +90,105 @@ tasks.named('processResources') {
dependsOn 'updatePluginManifest'
}
def createServerRunArguments(String srcDir) {
def programParameters = '--allow-op --disable-sentry --assets="' + "${hytaleHome}/install/$patchline/package/game/latest/Assets.zip" + '"'
def modPaths = []
if (includes_pack.toBoolean()) {
modPaths << srcDir
}
if (load_user_mods.toBoolean()) {
modPaths << "${hytaleHome}/UserData/Mods"
}
if (!modPaths.isEmpty()) {
programParameters += ' --mods="' + modPaths.join(',') + '"'
}
return programParameters
tasks.named('shadowJar') {
archiveClassifier.set('')
mergeServiceFiles()
}
// Creates a run configuration in IDEA that will run the Hytale server with
// your plugin and the default assets.
idea.project.settings.runConfigurations {
'HytaleServer'(org.jetbrains.gradle.ext.Application) {
mainClass = 'com.hypixel.hytale.Main'
moduleName = project.idea.module.name + '.main'
programParameters = createServerRunArguments(sourceSets.main.java.srcDirs.first().parentFile.absolutePath)
workingDirectory = serverRunDir.absolutePath
}
// Ensure the shaded jar is produced during a normal build.
tasks.named('build') {
dependsOn 'shadowJar'
}
// Creates a launch.json file for VSCode with the same configuration
tasks.register('generateVSCodeLaunch') {
def vscodeDir = file("$projectDir/.vscode")
def launchFile = file("$vscodeDir/launch.json")
doLast {
if (!vscodeDir.exists()) {
vscodeDir.mkdirs()
if (hasHytaleHome) {
// Create the working directory to run the server if it does not already exist.
def serverRunDir = file("$projectDir/run")
if (!serverRunDir.exists()) {
serverRunDir.mkdirs()
}
def createServerRunArguments = { String srcDir ->
def programParameters = '--allow-op --disable-sentry --assets="' + "${hytaleHome}/install/$patchline/package/game/latest/Assets.zip" + '"'
def modPaths = []
if (includes_pack.toBoolean()) {
modPaths << srcDir
}
def programParams = createServerRunArguments("\${workspaceFolder}")
def launchConfig = [
version: "0.2.0",
configurations: [
[
type: "java",
name: "HytaleServer",
request: "launch",
mainClass: "com.hypixel.hytale.Main",
args: programParams,
cwd: "\${workspaceFolder}/run"
]
if (load_user_mods.toBoolean()) {
modPaths << "${hytaleHome}/UserData/Mods"
}
if (!modPaths.isEmpty()) {
programParameters += ' --mods="' + modPaths.join(',') + '"'
}
return programParameters
}
def serverJar = file("$hytaleHome/install/$patchline/package/game/latest/Server/HytaleServer.jar")
def assetsZip = file("$hytaleHome/install/$patchline/package/game/latest/Assets.zip")
def shadowJarTask = tasks.named('shadowJar')
tasks.register('runServerJar', JavaExec) {
dependsOn shadowJarTask
mainClass = 'com.hypixel.hytale.Main'
classpath = files(serverJar)
workingDir = serverRunDir.absolutePath
doFirst {
def modPaths = [shadowJarTask.get().archiveFile.get().asFile.absolutePath]
if (load_user_mods.toBoolean()) {
modPaths << "${hytaleHome}/UserData/Mods"
}
setArgs([
'--allow-op',
'--disable-sentry',
"--assets=${assetsZip}",
"--mods=${modPaths.join(',')}"
])
}
}
tasks.register('runServer') {
dependsOn 'runServerJar'
}
// Creates a run configuration in IDEA that will run the Hytale server with
// your plugin and the default assets.
idea.project.settings.runConfigurations {
'HytaleServer'(org.jetbrains.gradle.ext.Application) {
mainClass = 'com.hypixel.hytale.Main'
moduleName = project.idea.module.name + '.main'
programParameters = createServerRunArguments(sourceSets.main.java.srcDirs.first().parentFile.absolutePath)
workingDirectory = serverRunDir.absolutePath
}
}
// Creates a launch.json file for VSCode with the same configuration
tasks.register('generateVSCodeLaunch') {
def vscodeDir = file("$projectDir/.vscode")
def launchFile = file("$vscodeDir/launch.json")
doLast {
if (!vscodeDir.exists()) {
vscodeDir.mkdirs()
}
def programParams = createServerRunArguments("\${workspaceFolder}")
def launchConfig = [
version: "0.2.0",
configurations: [
[
type: "java",
name: "HytaleServer",
request: "launch",
mainClass: "com.hypixel.hytale.Main",
args: programParams,
cwd: "\${workspaceFolder}/run"
]
]
]
]
launchFile.text = groovy.json.JsonOutput.prettyPrint(groovy.json.JsonOutput.toJson(launchConfig))
launchFile.text = groovy.json.JsonOutput.prettyPrint(groovy.json.JsonOutput.toJson(launchConfig))
}
}
} else {
tasks.register('generateVSCodeLaunch') {
doLast {
logger.lifecycle("Skipped VSCode launch configuration because hytale_home is not set or the install path is missing.")
}
}
}
-87
View File
@@ -1,87 +0,0 @@
plugins {
id("java-library")
id("com.gradleup.shadow") version "9.3.1"
id("run-hytale")
}
group = findProperty("pluginGroup") as String? ?: "com.example"
version = findProperty("pluginVersion") as String? ?: "1.0.0"
description = findProperty("pluginDescription") as String? ?: "A Hytale plugin template"
repositories {
mavenLocal()
mavenCentral()
}
dependencies {
// Hytale Server API (provided by server at runtime)
compileOnly(files("./libs/HytaleServer.jar"))
// Common dependencies (will be bundled in JAR)
implementation("com.google.code.gson:gson:2.10.1")
implementation("org.jetbrains:annotations:24.1.0")
// Test dependencies
testImplementation("org.junit.jupiter:junit-jupiter:5.10.0")
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
}
// Configure server testing
runHytale {
jarUrl = "./libs/HytaleServer.jar"
assetsPath = "./libs/Assets.zip"
}
tasks {
// Configure Java compilation
compileJava {
options.encoding = Charsets.UTF_8.name()
options.release = 25
}
// Configure resource processing
processResources {
filteringCharset = Charsets.UTF_8.name()
// Replace placeholders in manifest.json
val props = mapOf(
"group" to project.group,
"version" to project.version,
"description" to project.description
)
inputs.properties(props)
filesMatching("manifest.json") {
expand(props)
}
}
// Configure ShadowJar (bundle dependencies)
shadowJar {
archiveBaseName.set(rootProject.name)
archiveClassifier.set("")
// Relocate dependencies to avoid conflicts
relocate("com.google.gson", "com.yourplugin.libs.gson")
// Minimize JAR size (removes unused classes)
minimize()
}
// Configure tests
test {
useJUnitPlatform()
}
// Make build depend on shadowJar
build {
dependsOn(shadowJar)
}
}
// Configure Java toolchain
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(25))
}
}
+6 -1
View File
@@ -19,6 +19,11 @@ includes_pack=true
# official launcher.
patchline=release
# The exact Hytale build to compile against. Use the build string from the
# launcher (format YYYY.MM.DD-<hash>) so Gradle pulls the matching server jar
# for your selected patchline.
hytale_build=2026.01.27-734d39026
# Determines if the development server should also load mods from the user's
# standard mods folder. This lets you test mods by installing them where a
# normal player would, instead of adding them as dependencies or adding them
@@ -29,4 +34,4 @@ load_user_mods=false
# manually. You may also want to use a custom path if you are building in
# a non-standard environment like a build server. The home path should
# the folder that contains the install and UserData folder.
# hytale_home=./test-file
# hytale_home=./test-file
@@ -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;
}
}
@@ -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() {
}
}
@@ -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<ApiEndpoint> ENDPOINTS = List.of(
ActiveEndpoint.VALUE
);
private AnnouncementsApi() {
}
public String domain() {
return "announcements";
}
public int endpointCount() {
return ENDPOINTS.size();
}
public List<ApiEndpoint> 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;
}
}
@@ -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<ApiEndpoint> ENDPOINTS = List.of(
EventsIndexEndpoint.VALUE
);
private AuditApi() {
}
public String domain() {
return "audit";
}
public int endpointCount() {
return ENDPOINTS.size();
}
public List<ApiEndpoint> 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;
}
}
@@ -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() {
}
}
@@ -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<ApiEndpoint> ENDPOINTS = List.of(
HealthEndpoint.VALUE
);
private HealthApi() {
}
public String domain() {
return "health";
}
public int endpointCount() {
return ENDPOINTS.size();
}
public List<ApiEndpoint> 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;
}
}
@@ -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() {
}
}
@@ -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<ApiEndpoint> 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<ApiEndpoint> 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;
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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<ApiEndpoint> ENDPOINTS = List.of(
IndexEndpoint.VALUE,
StoreEndpoint.VALUE,
UpdateEndpoint.VALUE
);
private IntegrationsApi() {
}
public String domain() {
return "integrations";
}
public int endpointCount() {
return ENDPOINTS.size();
}
public List<ApiEndpoint> 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;
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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<ApiEndpoint> 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<ApiEndpoint> 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;
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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<ApiEndpoint> 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<ApiEndpoint> 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;
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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<ApiEndpoint> 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<ApiEndpoint> 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;
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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<ApiEndpoint> 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<ApiEndpoint> 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;
}
}
@@ -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<ApiEndpoint> 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<ApiEndpoint> 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;
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -0,0 +1,15 @@
package net.kewwbec.network.generated.api.v1.shared;
import java.util.List;
public record ApiEndpoint(
String name,
List<String> methods,
String uri,
List<String> abilities,
List<String> middleware,
List<RouteParameter> routeParameters,
RequestDescriptor request,
ResponseDescriptor response
) {
}
@@ -0,0 +1,6 @@
package net.kewwbec.network.generated.api.v1.shared;
import java.util.List;
public record RequestDescriptor(String className, String location, List<RequestField> fields) {
}
@@ -0,0 +1,6 @@
package net.kewwbec.network.generated.api.v1.shared;
import java.util.List;
public record RequestField(String name, List<RuleDescriptor> rules) {
}
@@ -0,0 +1,4 @@
package net.kewwbec.network.generated.api.v1.shared;
public record ResponseDescriptor(String kind, TypeDescriptor type) {
}
@@ -0,0 +1,4 @@
package net.kewwbec.network.generated.api.v1.shared;
public record RouteParameter(String name, TypeDescriptor type) {
}
@@ -0,0 +1,4 @@
package net.kewwbec.network.generated.api.v1.shared;
public record RuleDescriptor(String kind, String className, String value) {
}
@@ -0,0 +1,4 @@
package net.kewwbec.network.generated.api.v1.shared;
public record TypeDescriptor(String name, Boolean builtin, boolean nullable) {
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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<ApiEndpoint> 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<ApiEndpoint> 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;
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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() {
}
}
@@ -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<ApiEndpoint> 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<ApiEndpoint> 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;
}
}
@@ -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;
}
}
+1 -1
View File
@@ -9,7 +9,7 @@
}
],
"Website": "example.org",
"ServerVersion": "*",
"ServerVersion": "2026.02.17-255364b8e",
"Dependencies": {
},