core network first time gen
Build Plugin / build (push) Has been cancelled
Build Plugin / release (push) Has been cancelled

This commit is contained in:
2026-05-27 20:34:13 -07:00
parent b6a2a9d515
commit 7ab54bb8d3
92 changed files with 2952 additions and 353 deletions
+2 -1
View File
@@ -60,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 Groovy DSL
**Automated Testing** - Custom Gradle plugin for one-command server testing
**Java 25** - Latest Java features
**ShadowJar** - Automatic dependency bundling
**CI/CD Ready** - GitHub Actions workflow included
**Minimal Structure** - Only essential files, write your own code
## Repository purpose
---
`core-network` is where game-side integrations for the network live.
## Quick Start
That includes:
### Prerequisites
- plugin entry points and handwritten Java glue
- future gameplay-facing integrations that consume the control-plane API
- the generated versioned API tree under `net.kewwbec.network.generated.api.v1`
- **Java 25 JDK** - [Download here](https://www.oracle.com/java/technologies/downloads/)
- **IntelliJ IDEA** - [Download here](https://www.jetbrains.com/idea/download/) (Community Edition is fine)
- **Git** - [Download here](https://git-scm.com/)
The generated files are meant to make the control plane feel like a stable Java dependency instead of a pile of raw route strings.
### 1. Clone or Download
## Generated control-plane SDK tree
```bash
git clone https://github.com/yourusername/hytale-plugin-template.git
cd hytale-plugin-template
The generated Java API output now lives under:
```text
src/main/java/net/kewwbec/network/generated/api/v1/
ControlPlaneApiV1.java
shared/
announcements/
audit/
health/
infrastructure/
integrations/
moderation/
players/
plugins/
server/
serviceaccounts/
social/
support/
```
**The template builds immediately without any changes!**
You can customize it later when you're ready to develop your plugin.
What that means:
### 2. Build Immediately (No Changes Needed!)
- each top-level API domain has its own package
- each domain has a `<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`:**
```groovy
rootProject.name = "your-plugin-name"
```
**`gradle.properties`:**
```properties
pluginGroup=com.yourname
pluginVersion=1.0.0
pluginDescription=Your plugin description
```
**`src/main/resources/manifest.json`:**
```json
{
"Group": "YourName",
"Name": "YourPluginName",
"Main": "com.yourname.yourplugin.YourPlugin"
}
```
**Rename the main plugin class:**
- Rename `src/main/java/com/example/templateplugin/TemplatePlugin.java`
- Update package name to match your `pluginGroup`
### 4. Build Your Plugin
```bash
# Windows
gradlew.bat shadowJar
# Linux/Mac
./gradlew shadowJar
```
Your plugin JAR will be in: `build/libs/YourPluginName-1.0.0.jar`
### 5. Implement Your Plugin
Write your plugin code in `src/main/java/`:
- Commands
- Event listeners
- Services
- Storage
- Utilities
See our [documentation](../Documentation/) for examples and patterns.
### 6. Test Your Plugin (Automated!)
```bash
# Windows
# Run the Hytale server workflow when local server prerequisites are available
gradlew.bat runServer
# Linux/Mac
./gradlew runServer
```
This will:
If the upstream Hytale server artifact is unavailable, full Gradle compilation may fail before it reaches your plugin code. In that case, validate generated Java-only slices separately and re-run once the dependency is resolvable.
1. Download the Hytale server (cached for future runs)
2. Build your plugin
3. Copy it to the server's mods folder
4. Start the server with interactive console
## Project structure
---
## Project Structure
```
TemplatePlugin/
├── .github/workflows/
│ └── build.yml # CI/CD workflow
├── buildSrc/
│ ├── build.gradle.kts # Custom plugin configuration
│ └── src/main/kotlin/
│ └── RunHytalePlugin.kt # Automated server testing
├── src/main/
│ ├── java/com/example/templateplugin/
│ │ └── TemplatePlugin.java # Minimal main class (example)
│ └── resources/
│ └── manifest.json # Plugin metadata
├── .gitignore # Git ignore rules
├── build.gradle # Build configuration
├── gradle.properties # Project properties
├── settings.gradle # Project settings
├── LICENSE # MIT License
└── README.md # This file
```text
core-network/
src/main/java/
net/kewwbec/network/
network.java
generated/api/v1/...
src/main/resources/
manifest.json
build.gradle
gradle.properties
settings.gradle
```
**Note:** This is a minimal template. Create your own folder structure:
## Working rules
- `commands/` - For command implementations
- `listeners/` - For event listeners
- `services/` - For business logic
- `storage/` - For data persistence
- `utils/` - For utility classes
- `config/` - For configuration management
- Do not patch generated files by hand.
- Fix the control-plane routes or generator, then re-run the sync command.
- Keep handwritten plugin code outside the generated tree.
- Treat the control plane as the API owner; the game-side repo is the consumer.
---
## Related repositories
## Development Workflow
### Building
```bash
# Compile only
./gradlew compileJava
# Build plugin JAR
./gradlew shadowJar
# Clean and rebuild
./gradlew clean shadowJar
```
### Testing
```bash
# Run server with your plugin
./gradlew runServer
# Run unit tests
./gradlew test
# Clean test server
rm -rf run/
```
### Debugging
```bash
# Run server in debug mode
./gradlew runServer -Pdebug
# Then connect your IDE debugger to localhost:5005
```
---
## Customization
### Adding Dependencies
Edit `build.gradle`:
```groovy
dependencies {
// Hytale API (provided by server)
compileOnly(files("./HytaleServer.jar"))
// Your dependencies (will be bundled)
implementation("com.google.code.gson:gson:2.10.1")
// Test dependencies
testImplementation("org.junit.jupiter:junit-jupiter:5.10.0")
}
```
### Configuring Server Testing
**Run Hytale Server** - A Gradle plugin to download and run a Hytale server for development and testing purposes. The server files will be located in the `run/` directory of the project. Before starting the server it will compile (shadowJar task) and copy the plugin jar to the server's `mods/` folder.
**Usage:**
Edit `build.gradle`:
```groovy
runHytale {
jarUrl = "url to hytale server jar"
}
```
Run the server with:
```bash
# Windows
gradlew.bat runServer
# Linux/Mac
./gradlew runServer
```
**Features:**
- ✅ Automatic server JAR download and caching
- ✅ Compiles and deploys your plugin automatically
- ✅ Starts server with interactive console
- ✅ One-command workflow: `./gradlew runServer`
- ✅ Server files in `run/` directory (gitignored)
### Implementing Your Plugin
**Recommended folder structure:**
```
src/main/java/com/yourname/yourplugin/
├── YourPlugin.java # Main class
├── commands/ # Commands
├── listeners/ # Event listeners
├── services/ # Business logic
├── storage/ # Data persistence
├── config/ # Configuration
└── utils/ # Utilities
```
**See our documentation for examples:**
- [Getting Started with Plugins](https://britakee-studios.gitbook.io/hytale-modding-documentation/plugins-java-development/07-getting-started-with-plugins)
- [Advanced Plugin Patterns](https://britakee-studios.gitbook.io/hytale-modding-documentation/plugins-java-development/12-advanced-plugin-patterns)
- [Common Plugin Features](https://britakee-studios.gitbook.io/hytale-modding-documentation/plugins-java-development/14-common-plugin-features)
---
## CI/CD
This template includes a GitHub Actions workflow that:
1. ✅ Builds your plugin on every push
2. ✅ Runs tests
3. ✅ Uploads artifacts
4. ✅ Creates releases (when you tag)
### Creating a Release
```bash
git tag v1.0.0
git push origin v1.0.0
```
GitHub Actions will automatically build and create a release with your plugin JAR.
---
## Best Practices
### ✅ DO:
- Use the Service-Storage pattern for data management
- Write unit tests for your business logic
- Use structured logging (not `System.out.println`)
- Handle errors gracefully
- Document your public API
- Version your releases semantically (1.0.0, 1.1.0, etc.)
### ❌ DON'T:
- Hardcode configuration values
- Block the main thread with heavy operations
- Ignore exceptions
- Use deprecated APIs
- Commit sensitive data (API keys, passwords)
---
## Troubleshooting
### Build Fails
```bash
# Clean and rebuild
./gradlew clean build --refresh-dependencies
```
### Server Won't Start
1. Check that `jarUrl` in `build.gradle` is correct
2. Verify Java 25 is installed: `java -version`
3. Check logs in `run/logs/`
### Plugin Not Loading
1. Verify `manifest.json` has correct `Main` class
2. Check server logs for errors
3. Ensure all dependencies are bundled in JAR
---
## Documentation
For detailed guides on plugin development, see:
- [Hytale Modding Documentation](https://github.com/yourusername/hytale-modding/tree/main/Documentation)
- [Getting Started with Plugins](../Documentation/07-getting-started-with-plugins.md)
- [Advanced Plugin Patterns](../Documentation/12-advanced-plugin-patterns.md)
- [Common Plugin Features](../Documentation/14-common-plugin-features.md)
---
## Contributing
Contributions are welcome! Please:
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Submit a pull request
---
## License
This template is released under the MIT License. You are free to use it for any purpose.
---
## Support
- **Issues:** [GitHub Issues](https://github.com/yourusername/hytale-plugin-template/issues)
- **Documentation:** [Hytale Modding Docs](https://github.com/yourusername/hytale-modding)
- **Community:** Join the Hytale modding community
---
## Credits
Created by the Hytale modding community.
Based on best practices from production Hytale plugins.
---
**Happy Modding! 🎮**
- `../core-control-plane` owns the Laravel API and the SDK sync commands.
- `core-network` consumes the generated Java tree and will host the gameplay-facing wrappers around it.
@@ -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;
}
}